diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..24e02db --- /dev/null +++ b/Makefile @@ -0,0 +1,243 @@ +#!/usr/bin/make +# Copyright 2006 Sony Computer Entertainment Inc. +# +# Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this +# file except in compliance with the License. You may obtain a copy of the License at: +# http://research.scea.com/scea_shared_source_license.html +# +# Unless required by applicable law or agreed to in writing, software distributed under the License +# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing permissions and limitations under the +# License. + +# By default, all commands are silent. Echo statements are provided for each rule (if appropriate) +# so the user knows what's going on. If you need to debug the makefile or need to know what's +# going on, call make with verbose=yes. +ifneq ($(verbose),yes) +.SILENT: +endif + +# os: 'linux', 'mac', 'windows', or 'ps3'. Use the 'uname' command to decide the +# default value. To detect when we're on Windows we'll check to see if we're +# running on Cygwin or MinGW. +os := linux +ifneq ($(shell uname | grep -i darwin),) +os := mac +else ifneq ($(or $(shell uname | grep -i cygwin),$(shell uname | grep -i mingw)),) +os := windows +endif + +# nativeArch: For internal use. Don't override this, instead override 'arch'. +nativeArch := x86 +ifneq ($(shell uname -p | grep -i powerpc),) +nativeArch := ppc +endif + +# arch: x86 (or i386), x64 (or x86_64), ppc, ppc64 +arch := $(nativeArch) + +# project: 'dom', 'domTest', or 'all' +project := all + +# Release/debug configuration: 'release', 'debug', or 'all' +conf := release + +# Collada version: No other versions supported for now +colladaVersion := 1.4 + +# parser: 'libxml', 'tinyxml', or 'all'. +parser := libxml + +# file: Set this to the name of a source file (eg 'dae.cpp') to build just that file +file := + +# Include any custom build settings +-include ~/.collada-dom/customSettings.mk +-include make/customSettings.mk + +-include make/installPrefix.mk + +ifneq ($(findstring test,$(MAKECMDGOALS)),) +# If we're running the automated tests, make sure that everything gets a chance to build +project := all +endif + +# Initialize the build variables +define setBuildVar +$(1)s := $(sort $(subst all,$(2),$($(1)))) +ifneq ($$(filter-out $(2),$$($(1)s)),) +$$(error Invalid setting: $(1)=$($(1))) +endif +endef + +oss := $(sort $(os)) +ifneq ($(filter-out linux mac ps3 windows,$(oss)),) +$(error Invalid setting os=$(os)) +endif + +archs := $(sort $(subst i386,x86,$(arch))) +ifneq ($(filter-out x86 ppc,$(archs)),) +$(error Invalid setting arch=$(arch)) +endif + +$(eval $(call setBuildVar,project,dom domTest)) +$(eval $(call setBuildVar,colladaVersion,1.4)) +$(eval $(call setBuildVar,conf,debug release)) +$(eval $(call setBuildVar,parser,libxml tinyxml)) + +comma := , +domMajorVersion := 2 +domMinorVersion := 1 +domVersion := $(domMajorVersion).$(domMinorVersion) +domVersionNoDots := $(subst .,,$(domVersion)) + + +# Have make automatically delete a target if there's an error in one of the rule commands +.DELETE_ON_ERROR: + +allOutputFiles := +allTargets := + +define includeConfig +override project := $(1) +override os := $(2) +override colladaVersion := $(3) +override conf := $(4) +include make/$(1).mk +allOutputFiles += $$(outputFiles) +allTargets += $$(targets) +endef + +$(foreach _project,$(projects),\ +$(foreach _os,$(oss),\ +$(foreach _colladaVersion,$(colladaVersions),\ +$(foreach _conf,$(confs),\ +$(eval $(call includeConfig,$(_project),$(_os),$(_colladaVersion),$(_conf))))))) + +buildObj := $(filter %$(file:.cpp=.o),$(filter %.o,$(allOutputFiles))) + +.DEFAULT_GOAL := all +.PHONY: all +ifeq ($(file),) +# Do a normal build of all targets +all: $(allTargets) +else ifneq ($(buildObj),) +# Just build the source files the user requested +all: $(buildObj) +else +$(error Invalid source file - $(file)) +endif + +allOutputPaths := $(sort $(dir $(allOutputFiles))) +$(allOutputPaths): + if [ ! -d $@ ] ; then mkdir -p $@; fi; + + +############################################## +# clean +# +.PHONY: clean +clean: + @echo Removing build files. +# Delete all the output files + rm -rf $(allOutputFiles) +# Delete each empty output folder + for path in $(allOutputPaths); do \ + if [ -d $$path ] && [ `find $$path -type f | wc -l` -eq 0 ]; then rm -r $$path ; fi \ + done; +# Delete the build folder if it's empty + if [ -d build ] && [ `find build -type f | wc -l` -eq 0 ] ; then rm -r build ; fi + + +############################################## +# test target for running the automated tests. +# +# Note: I originally had a separate target for each test, one reason being so that each +# test suite could be run in parallel. However when running in parallel I'd get weird errors where +# some of the tests would fail and some would succeed, with error messages like this: +# I/O error : No such file or directory +# I/O error : No such file or directory +# error : xmlNewTextWriterFilename : out of memory! +# To work around this, I changed to using a single target with a shell loop to run each test program. +# This way the tests are forced to run serially. +domTestOpts := -all +domTestExes := $(filter %domTest,$(allTargets)) +.PHONY: test +test: $(domTestExes) + @for testExe in $(domTestExes); do \ + echo $$testExe $(domTestOpts); \ + $$testExe $(domTestOpts); \ + done + + +############################################## +# install/uninstall +# +ifneq ($(filter install uninstall installTest,$(MAKECMDGOALS)),) +# You can only install on Mac or Linux. Check for that. +ifeq ($(oss),linux) +prefix := /usr/local +else ifeq ($(oss),mac) +prefix := /Library/Frameworks +else +$(error You can only install with 'os' set to 'mac' or 'linux') +endif +endif + +.PHONY: uninstall +ifneq ($(installPrefix),) +ifeq ($(oss),linux) +uninstall: + @echo Uninstalling from $(installPrefix) + rm -rf $(installPrefix)/include/colladadom + rm -f $(installPrefix)/lib/libcollada*dom* +else ifeq ($(oss),mac) +uninstall: + @echo Uninstalling from $(prefix) + rm -rf $(installPrefix)/Collada*Dom*.framework +endif +else ifneq ($(findstring uninstall,$(MAKECMDGOALS)),) +$(error Can't uninstall because we don't know what path we installed to (missing make/installPrefix.mk file)) +else +uninstall: +endif + +# 1st param is build path, 2nd param is framework name, 3rd param is framework version number +# e.g. $(call installMacFrameworkCmd,build/mac-1.4,Collada14Dom.framework,2.0) +define installMacFrameworkCmd +if [ -d $(1) ]; then \ +cp -R $(1)/$(2) $(prefix)/$(2); \ +install_name_tool -id $(prefix)/$(2)/Versions/$(3)/$(basename $(2)) $(prefix)/$(2)/$(basename $(2)); \ +fi; +endef + +.PHONY: install +ifeq ($(oss),linux) +install: uninstall + @echo Installing to $(prefix) +# Write the install prefix to the file make/installPrefix.mk so we can retrieve it for uninstalling. + echo 'installPrefix := $(prefix)' > make/installPrefix.mk +# Install headers + cp -R include $(prefix)/include/colladadom + find $(prefix)/include/colladadom -name '.svn' | xargs rm -r +# Install linux-1.4 libs + if [ -d build/linux-1.4 ]; then cp -P build/linux-1.4/libcollada*dom* $(prefix)/lib; fi; +# Install linux-1.4-d libs + if [ -d build/linux-1.4-d ]; then cp -P build/linux-1.4-d/libcollada*dom* $(prefix)/lib; fi; +else ifeq ($(oss),mac) +install: uninstall + @echo Installing to $(prefix) + echo 'installPrefix := $(prefix)' > make/installPrefix.mk + $(call installMacFrameworkCmd,build/mac-1.4,Collada14Dom.framework,$(domVersion)) + $(call installMacFrameworkCmd,build/mac-1.4-d,Collada14Dom-d.framework,$(domVersion)) +endif + +.PHONY: installTest +installTest: + $(MAKE) install + $(MAKE) clean project=domTest + $(MAKE) test installTest=yes + $(MAKE) uninstall + $(MAKE) clean project=domTest + $(MAKE) project=domTest + @echo installTest done diff --git a/codeGen/bin/php.exe b/codeGen/bin/php.exe new file mode 100644 index 0000000..70fa708 Binary files /dev/null and b/codeGen/bin/php.exe differ diff --git a/codeGen/bin/php5ts.dll b/codeGen/bin/php5ts.dll new file mode 100644 index 0000000..f7e648d Binary files /dev/null and b/codeGen/bin/php5ts.dll differ diff --git a/codeGen/gen.bat b/codeGen/gen.bat new file mode 100644 index 0000000..ccf4bfd --- /dev/null +++ b/codeGen/gen.bat @@ -0,0 +1,2 @@ +bin\php gen.php "../COLLADA_DOM/doc/colladaschema.xsd" cprt +rem bin\php gen.php "../COLLADA_DOM/doc/colladaschema.xsd" min cprt \ No newline at end of file diff --git a/codeGen/gen.php b/codeGen/gen.php new file mode 100644 index 0000000..808530d --- /dev/null +++ b/codeGen/gen.php @@ -0,0 +1,163 @@ +parse( $collada_file ); + + +initGen( $collada_file ); + + +$pop = $p->root_elements[0]; + +//Grab the collada version number +$_globals['constStrings']['COLLADA_VERSION'] = "\"". $pop->getAttribute('version') . "\";\n"; +//Grab the collada namespace +$_globals['constStrings']['COLLADA_NAMESPACE'] = "\"". $pop->getAttribute('xmlns') . "\";\n\n"; + +// Grab simple types and collect meta-data for code-gen +$t_list = $pop->getElementsByType( 'xsSimpleType' ); + + +$typemeta = array(); + +for( $i=0; $igenerate(); + $typemeta[ $local_meta['type'] ] = & $local_meta; + //print "Type: ". $local_meta['type'] ." created\n"; +} + +function propogateArrayTypes( &$lmeta ) { + global $typemeta; + if ( $lmeta['isArray'] ) { + return; + } + if( isset( $typemeta[$lmeta['base']] ) ) { + propogateArrayTypes( $typemeta[$lmeta['base']] ); + $lmeta['isArray'] = $typemeta[$lmeta['base']]['isArray']; + } + //print $lmeta['type'] ." isArray = ". $lmeta['isArray'] ."\n"; +} +foreach( $typemeta as $k => &$local_meta ) { + propogateArrayTypes( $local_meta ); +} + +//Grab global complex types and make them available for all who need them + +$_globals['complex_types'] = $pop->getElementsByType( 'xsComplexType' ); + +//generate type meta data +//print applyTemplate( 'TYPES_HEADER_FILE', $typemeta ); +//print applyTemplate( 'TYPES_CPP_FILE', $typemeta ); + +$element_context = array(); +$meta = array(); + +print "COMPLEX TYPES\n"; +for( $i=0; $igenerate( $element_context, $_globals['global_elements'] ); + $meta[ $local_meta['element_name'] ] = & $local_meta; +} + +//collect element meta-data for code-gen + +//Grab global groups and make them available for all who need them +$_globals['groups'] = $pop->getElementsByType( 'xsGroup' ); +//collect meta-data for code-gen +print "GROUPS\n"; +for( $i=0; $igenerate( $element_context, $_globals['global_elements'] ); + $meta[ $local_meta['element_name'] ] = & $local_meta; +} + +// Grab global elements and collect meta-data for code-gen +$e_list = $pop->getElementsByType( 'xsElement' ); + +print "ELEMENTS\n"; + +for( $i=0; $igenerate( $element_context, $_globals['global_elements'] ); + $meta[ $local_meta['element_name'] ] = & $local_meta; +} + +//propogate the substitutableWith lists and attributes inherited by type +foreach( $meta as $k => &$local_meta ) { + if ( $local_meta['substitution_group'] != '' ) { + $meta[$local_meta['substitution_group']]['substitutableWith'][] = $k; + //$meta[$local_meta['substitution_group']]['ref_elements'][] = $k; + //print $local_meta['substitution_group'] ." sub with ". $k ."\n"; + } +} + +$indentNum = 0; +// Generate header files +$includeList = array(); +foreach( $meta as $k => &$local_meta ) +{ + // Generate the dom + print applyTemplate( 'HEADER_FILE', $local_meta ); + print applyTemplate( 'CPP_FILE', $local_meta ); +} + +print applyTemplate( 'TYPES_HEADER_FILE', $typemeta ); +print applyTemplate( 'TYPES_CPP_FILE', $typemeta ); + +print applyTemplate( 'ELEMENTS_FILE', $meta ); +print applyTemplate( 'CONSTANTS_FILE', $_globals['constStrings'] ); +print applyTemplate( 'CONSTANTS_CPP_FILE', $_globals['constStrings'] ); +cleanupGen(); + +?> diff --git a/codeGen/om/base-types.php b/codeGen/om/base-types.php new file mode 100644 index 0000000..0d28435 --- /dev/null +++ b/codeGen/om/base-types.php @@ -0,0 +1,177 @@ +type[] = "MotherOfAllTypes"; + } + + function isOfType( $type ) + { + return( $type == $this->type[ count( $this->type ) - 1 ] ); + } + + function getType() + { + $type = "NULL"; + if ( count( $this->type ) > 0 ) { $type = $this->type[ 0 ]; } + return $type; + } + + function isAncestor( $type ) + { + return in_array( $type, $this->type ); + } +} + +class _typedData extends _type +{ + var $data; + + var $attributeMeta = array(); + var $attributes = array(); + + function _typedData() + { + $this->type[] = "TypedData"; + parent::_type(); + } + + function _addAttribute( $name, $meta ) + { + $this->attributeMeta[ $name ] = $meta; + } + + function setAttribute( $name, $value ) + { + // Make sure we know about the attribute before setting it + if ( isset( $this->attributeMeta[ $name ] ) ) + { + $this->attributes[ $name ] = $value; + } + } + + function getAttribute( $name ) + { + $val = ""; + if ( isset( $this->attributeMeta[ $name ] ) && isset( $this->attributes[ $name ] ) ) { + $val = $this->attributes[ $name ]; + } + return $val; + } + + function & getAttributes() + { + return $this->attributes; + } + + function set( & $buffer ) + { + $this->data = $buffer; + } + + function append( & $buffer ) + { + $this->data .= $buffer; + } + + function get() + { + return $this->data; + } +} + +class _elementSet extends _typedData +{ + var $elementMeta = array(); + var $elements = array(); + + function _elementSet() + { + $this->_addAttribute( 'minOccurs', array( 'type' => 'xs:integer' ) ); + $this->setAttribute( 'minOccurs', '1' ); + $this->_addAttribute( 'maxOccurs', array( 'type' => 'xs:integer' ) ); + $this->setAttribute( 'maxOccurs', '1' ); + + $this->type[] = "ElementSet"; + parent::_typedData(); + } + + function _addElement( $name, $attrs ) + { + $this->elementMeta[ $name ] = $attrs; + } + + function addElement( & $e ) + { + if ( in_array( $e->getType(), array_keys( $this->elementMeta ) ) ) + { + $this->elements[] = & $e; + } else + { + print "Invalid element ". $e->getType() ."in ". $this->getType() ."\n"; + $this->log( "WARN: " . $e->getType() . " not a valid member of " . $this->getType() ); + } + } + + function & getElements() + { + return $this->elements; + } + + function & getElementsByType( $type ) + { + $list = array(); + for( $i=0; $ielements ); $i++ ) + { + if ( $this->elements[$i]->getType() == $type ) + { + $list[] = & $this->elements[$i]; + } + } + return $list; + } + + function setElement( $name, & $value ) + { + $this->elements[ $name ] = $value; + } + + function exists( $name ) + { + return isset( $this->elements[ $name ] ); + } + + function delete( $name ) + { + unset( $this->elements[ $name ] ); + } + + function _delete( $name ) + { + $this->delete( $name ); + unset( $this->elementMeta[ $name ] ); + } + + function getCount() + { + return count( $this->elements ); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/object-model.php b/codeGen/om/object-model.php new file mode 100644 index 0000000..b39bb50 --- /dev/null +++ b/codeGen/om/object-model.php @@ -0,0 +1,48 @@ + \ No newline at end of file diff --git a/codeGen/om/xsAll.php b/codeGen/om/xsAll.php new file mode 100644 index 0000000..ec9ae26 --- /dev/null +++ b/codeGen/om/xsAll.php @@ -0,0 +1,32 @@ +_addElement( 'xsElement', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAttribute', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->type[] = "xsAll"; + parent::_elementSet(); + } + + function addAllElement( & $e ) + { + $this->addElement( $e ); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsAnnotation.php b/codeGen/om/xsAnnotation.php new file mode 100644 index 0000000..8ea487b --- /dev/null +++ b/codeGen/om/xsAnnotation.php @@ -0,0 +1,36 @@ +_addElement( 'xsDocumentation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAppinfo', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->type[] = "xsAnnotation"; + parent::_elementSet(); + + // Set bounds on number of elements allowable in annotation element + $this->setAttribute( 'minOccurs', '0' ); + $this->setAttribute( 'maxOccurs', 'unbounded' ); + } + + function addAnnotationElement( & $e ) + { + $this->addElement( $e ); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsAny.php b/codeGen/om/xsAny.php new file mode 100644 index 0000000..83e688a --- /dev/null +++ b/codeGen/om/xsAny.php @@ -0,0 +1,32 @@ +_addAttribute( 'namespace', array( 'type' => 'xs:anyURI' ) ); + $this->_addAttribute( 'processContents', array( 'type' => 'xs:string' ) ); + + $this->_addAttribute( 'minOccurs', array( 'type' => 'xs:integer' ) ); + $this->setAttribute( 'minOccurs', '1' ); + $this->_addAttribute( 'maxOccurs', array( 'type' => 'xs:integer' ) ); + $this->setAttribute( 'maxOccurs', '1' ); + + $this->type[] = 'xsAny'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsAppinfo.php b/codeGen/om/xsAppinfo.php new file mode 100644 index 0000000..e047df2 --- /dev/null +++ b/codeGen/om/xsAppinfo.php @@ -0,0 +1,24 @@ +type[] = "xsAppinfo"; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsAttribute.php b/codeGen/om/xsAttribute.php new file mode 100644 index 0000000..f0efec3 --- /dev/null +++ b/codeGen/om/xsAttribute.php @@ -0,0 +1,32 @@ +_addAttribute( 'name', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'type', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'use', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'default', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'ref', array( 'type' => 'xs:string' ) ); + + $this->_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->type[] = 'xsAttribute'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsChoice.php b/codeGen/om/xsChoice.php new file mode 100644 index 0000000..4d603b9 --- /dev/null +++ b/codeGen/om/xsChoice.php @@ -0,0 +1,36 @@ +_addElement( 'xsElement', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAttribute', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsChoice', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsSequence', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsGroup', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->type[] = "xsChoice"; + parent::_elementSet(); + } + + function addChoiceElement( & $e ) + { + $this->addElement( $e ); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsComplexContent.php b/codeGen/om/xsComplexContent.php new file mode 100644 index 0000000..14c9f22 --- /dev/null +++ b/codeGen/om/xsComplexContent.php @@ -0,0 +1,29 @@ +_addElement( 'xsRestriction', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsExtension', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + +// $this->_addAttribute( 'name', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsComplexContent'; + parent::_elementSet(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsComplexType.php b/codeGen/om/xsComplexType.php new file mode 100644 index 0000000..036a780 --- /dev/null +++ b/codeGen/om/xsComplexType.php @@ -0,0 +1,227 @@ +_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsChoice', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsAttribute', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsSequence', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsAll', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsGroup', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsSimpleContent', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsComplexContent', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + + $this->_addAttribute( 'name', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'mixed', array( 'type' => 'xs:string', 'default' => 'false' ) ); + + $this->type[] = 'xsComplexType'; + parent::_elementSet(); + } + + function & generate( $element_context, & $global_elements ) + { + $element_context[] = $this->getAttribute( "name" ); + print implode( ",", $element_context ) . "\n"; + + // Get new factory + $generator = new ElementMeta( $global_elements ); + $generator->setIsAComplexType( true ); + + // Load the class name and a context pre-fix (in case we're inside another element) + $generator->setName( $this->getAttribute( 'name' ) ); + $generator->setContext( $element_context ); + + // Extract any documentation for this node + $a = $this->getElementsByType( 'xsAnnotation' ); + if ( count( $a ) > 0 ) + { + $d = $a[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $d ) > 0 ) + { + $generator->setDocumentation( $d[0]->get() ); + } + } + if ( $this->getAttribute( 'mixed' ) == 'true' ) + { + $generator->setMixed( true ); + } + + $content = $this; // Should only be one + $this->generateComplexType( $content, $generator, $element_context ); + + if ( count( $generator->bag['elements'] ) == 0 ) { + $generator->setIsEmptyContent( true ); + } + + $meta = & $generator->getMeta(); + + if ( count( $element_context ) == 1 ) + { + $global_elements[ $element_context[0] ] = & $meta; + } + + return $meta; + } + + // Flatten choice/all/sequence groups into a single list of contained elements + function flatten( & $element, & $generator, & $context, $maxOccurs ) + { + //print "in flatten "; + $e_list = $element->getElements(); + for( $i=0; $igetType() ) + { + case 'xsChoice': + $generator->setHasChoice( true ); + $generator->addContentModel( 1, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsSequence': + $generator->addContentModel( 0, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsAll': + $generator->addContentModel( 3, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsGroup': + $generator->addContentModel( 2, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + $generator->addGroup( $e_list[$i] ); + case 'xsElement': + $nm = $e_list[$i]->getAttribute( 'name' ); + if ( $nm == '' ) { $nm = $e_list[$i]->getAttribute( 'ref' ); } + $generator->addContentModel( $nm, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + //print "found element!\n"; + // If a containing element/group has a maxOccurs > 1, then inherit it (will flag as array in code gen) + if ( $maxOccurs == 'unbounded' || $maxOccurs > 1 ) + { + $e_list[$i]->setAttribute( 'maxOccurs', $maxOccurs ); + } + $generator->addElement( $e_list[$i], $context ); + break; + case 'xsAttribute': + //print "found attribute!\n"; + $generator->addAttribute( $e_list[$i] ); + break; + case 'xsAny': + print "found an any\n"; + $generator->addContentModel( 4, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + $generator->bag['has_any'] = true; + break; + default: + break; + } + } + $generator->addContentModel( 5, 0, 0 ); //END content model - There will be one extra on every element + } + + //function that reads complex types. will recurse complex type derived heirarchies. + function generateComplexType( $content, & $generator, & $context ) { + //print "in generatecomplextype\n"; + if ( count( $content->getElementsByType( 'xsSimpleContent' ) ) > 0 ) { + //print "found simpleContent!\n"; + $temp = $content->getElementsByType( 'xsSimpleContent' ); + $content = $temp[0]; // Should only be one - now we now find out element's parent class + $temp = & $content->getElements(); + $content = $temp[0]; // Should either be an xsExtension or xsRestriction + $type = $content->getAttribute( 'base' ); + //print "setting extends to ". $type ."\n"; + $generator->setContentType( $type ); + $temp = & $content->getElementsByType( 'xsAttribute' ); + for( $i=0; $iaddAttribute( $temp[$i] ); + } + } else if ( count( $content->getElementsByType( 'xsComplexContent' ) ) > 0 ) { + //print "found complexContent!\n"; + //ComplexContent specified means type is derived + $temp = $content->getElementsByType( 'xsComplexContent' ); + $content = $temp[0]; // Should only be one - now we now find out element's parent class + $temp = & $content->getElements(); + $content = $temp[0]; // Should either be an xsExtension or xsRestriction + if ( $content->getType() == 'xsExtension' ) { + $generator->bag['isExtension'] = true; + } + if ( $content->getType() == 'xsRestriction' ) { + $generator->bag['isRestriction'] = true; + } + $type = $content->getAttribute( 'base' ); + //print "setting extends to ". $type ."\n"; + $generator->bag['base_type'] = $type; + //Generate the complex type this is derived from + //*************CHANGE NEEDED HERE 8-25 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + for ( $i = 0; $i < count( $GLOBALS['_globals']['complex_types'] ); $i++ ) { + if ( $type == $GLOBALS['_globals']['complex_types'][$i]->getAttribute('name') ) { + $generator->setComplexType( true ); + $generator->bag['ref_elements'][] = $type; + //$this->generateComplexType( $GLOBALS['_globals']['complex_types'][$i], $generator, $context ); + break; + } + } + + // Parse element context + $this->flatten( $content, $generator, $element_context, $content->getAttribute( 'maxOccurs' ) ); + + } else { + //print "found nothing so doing complex content flatten\n"; + // The alternative to xsSimpleContent is xsComplexContent - if it is not specified, it is implied + // Parse element context + $this->flatten( $content, $generator, $element_context, $content->getAttribute( 'maxOccurs' ) ); + if ( count( $generator->bag['elements'] ) == 0 ) { + $generator->setIsEmptyContent( true ); + } + } + } + + function & generateType() { + $vars = array(); + $e = $this->getElements(); + $generator = new TypeMeta(); + + $generator->setType( $this->getAttribute( 'name' ) ); + $generator->setIsComplex( true ); + + $meta = & $generator->getMeta(); + return $meta; + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsDocumentation.php b/codeGen/om/xsDocumentation.php new file mode 100644 index 0000000..e594334 --- /dev/null +++ b/codeGen/om/xsDocumentation.php @@ -0,0 +1,24 @@ +type[] = "xsDocumentation"; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsElement.php b/codeGen/om/xsElement.php new file mode 100644 index 0000000..1f1d7da --- /dev/null +++ b/codeGen/om/xsElement.php @@ -0,0 +1,373 @@ +_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsComplexType', array( 'minOccurs' => '0', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsSimpleType', array( 'minOccurs' => '0', 'maxOccurs' => '1' ) ); + + $this->_addAttribute( 'ref', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'name', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'type', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'abstract', array( 'type' => 'xs:bool' ) ); + $this->_addAttribute( 'substitutionGroup', array( 'type' => 'xs:string' ) ); +// $this->_addAttribute( 'maxOccurs', array( 'type' => 'xs:integer' ) ); +// $this->_addAttribute( 'minOccurs', array( 'type' => 'xs:integer' ) ); + + $this->type[] = 'xsElement'; + parent::_elementSet(); + } + + function & generate( $element_context, & $global_elements ) + { + $element_context[] = $this->getAttribute( "name" ); + print implode( ",", $element_context ) . "\n"; + + // Get new factory + $generator = new ElementMeta( $global_elements ); + + // Load the class name and a context pre-fix (in case we're inside another element) + $generator->setName( $this->getAttribute( 'name' ) ); + $generator->setContext( $element_context ); + $subGroup = $this->getAttribute( 'substitutionGroup' ); + if ( $subGroup != '' ) { + //print "found a subGroup ". $subGroup ."!\n"; + $generator->setSubstitutionGroup( $subGroup ); + $generator->bag['ref_elements'][] = $subGroup; + } + $abstract = $this->getAttribute( 'abstract' ); + if ( $abstract != '' ) { + $generator->setAbstract( $abstract ); + } + + // Extract any documentation for this node + $a = $this->getElementsByType( 'xsAnnotation' ); + if ( count( $a ) > 0 ) + { + $d = $a[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $d ) > 0 ) + { + $generator->setDocumentation( $d[0]->get() ); + } + $ap = $a[0]->getElementsByType( 'xsAppinfo' ); + if ( count( $ap ) > 0 ) + { + $generator->setAppInfo( $ap[0]->get() ); + } + } + + //******************************************************************************************/ + //$generator->setContentType( $this->getAttribute( 'type' ) ); + $type = $this->getAttribute( 'type' ); + $generator->bag['base_type'] = $type; + //check if this type equals a complex type + //print "element ". $this->getAttribute( 'name' ) ." is of type ". $type ."!\n"; + if ( $type != "" ) { + //print "complex types: " . count($GLOBALS['_globals']['complex_types']) . "\n"; + for ( $i = 0; $i < count( $GLOBALS['_globals']['complex_types'] ); $i++ ) { + if ( !strcmp($type, $GLOBALS['_globals']['complex_types'][$i]->getAttribute('name') ) ) { + //print "found a match for ". $type ."\n"; + $generator->setComplexType( true ); + $generator->bag['ref_elements'][] = $type; + break; + } + } + if ( !$generator->bag['complex_type'] ) { + //wasn't a complex type that means it needs a content type + $generator->setContentType( $type ); + } + } + //*******************************************************************************************/ + + // Inspect the semantic structure of this node and extract the elements/attributes + $temp = $this->getElementsByType( 'xsComplexType' ); + + if ( count( $temp ) > 0 ) + { + if ( $temp[0]->getAttribute( 'mixed' ) == 'true' ) + { + $generator->setMixed( true ); + $generator->setContentType( 'ListOfInts' ); + } + + $content = $temp[0]; // Should only be one + $this->generateComplexType( $content, $generator, $element_context ); + if ( count( $generator->bag['elements'] ) == 0 ) { + $generator->setIsEmptyContent( true ); + } + } + else if ( count( $this->getElementsByType( 'xsSimpleType' ) ) > 0 ) { + //inline simple type definition. right now handle as string but needs to be fixed + $generator->bag['simple_type'] = new TypeMeta(); + $temp = $this->getElementsByType( 'xsSimpleType' ); + $this->generateSimpleType( $temp[0], $generator->bag['simple_type'] ); + if ( count( $generator->bag['simple_type']->bag['enum'] ) >0 ) { + $generator->setContentType( $this->getAttribute( 'name' ) ."_type" ); + } + else { + $generator->setContentType( $generator->bag['simple_type']->bag['base'] ); + } + } + + $meta = & $generator->getMeta(); + + if ( count( $element_context ) == 1 ) + { + $global_elements[ $element_context[0] ] = & $meta; + } + + return $meta; + } + + // Flatten choice/all/sequence groups into a single list of contained elements + function flatten( & $element, & $generator, & $context, $maxOccurs ) + { + //print "in flatten "; + $e_list = $element->getElements(); + for( $i=0; $igetType() ) + { + case 'xsChoice': + $generator->setHasChoice( true ); + $generator->addContentModel( 1, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsSequence': + $generator->addContentModel( 0, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsAll': + $generator->addContentModel( 3, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsGroup': + $generator->addContentModel( 2, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + $generator->addGroup( $e_list[$i] ); + case 'xsElement': + $nm = $e_list[$i]->getAttribute( 'name' ); + if ( $nm == '' ) { $nm = $e_list[$i]->getAttribute( 'ref' ); } + $generator->addContentModel( $nm, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + //print "found element!\n"; + // If a containing element/group has a maxOccurs > 1, then inherit it (will flag as array in code gen) + if ( $maxOccurs == 'unbounded' || $maxOccurs > 1 ) + { + $e_list[$i]->setAttribute( 'maxOccurs', $maxOccurs ); + } + $generator->addElement( $e_list[$i], $context ); + break; + case 'xsAttribute': + //print "found attribute!\n"; + $generator->addAttribute( $e_list[$i] ); + break; + case 'xsAny': + print "found an any\n"; + $generator->addContentModel( 4, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + $generator->bag['has_any'] = true; + break; + default: + break; + } + } + $generator->addContentModel( 5, 0, 0 ); //END content model - There will be one extra on every element + } + + //function that reads complex types. will recurse complex type derived heirarchies. + function generateComplexType( $content, & $generator, & $context ) { + //print "in generatecomplextype\n"; + if ( count( $content->getElementsByType( 'xsSimpleContent' ) ) > 0 ) { + //print "found simpleContent!\n"; + $temp = $content->getElementsByType( 'xsSimpleContent' ); + $content = $temp[0]; // Should only be one - now we now find out element's parent class + $temp = & $content->getElements(); + $content = $temp[0]; // Should either be an xsExtension or xsRestriction + $type = $content->getAttribute( 'base' ); + //print "setting extends to ". $type ."\n"; + $generator->setContentType( $type ); + $temp = & $content->getElementsByType( 'xsAttribute' ); + for( $i=0; $iaddAttribute( $temp[$i] ); + } + } else if ( count( $content->getElementsByType( 'xsComplexContent' ) ) > 0 ) { + //print "found complexContent!\n"; + //ComplexContent specified means type is derived + $temp = $content->getElementsByType( 'xsComplexContent' ); + $content = $temp[0]; // Should only be one - now we now find out element's parent class + $temp = & $content->getElements(); + $content = $temp[0]; // Should either be an xsExtension or xsRestriction + if ( $content->getType() == 'xsExtension' ) { + $generator->bag['isExtension'] = true; + } + if ( $content->getType() == 'xsRestriction' ) { + $generator->bag['isRestriction'] = true; + } + $type = $content->getAttribute( 'base' ); + //print "setting extends to ". $type ."\n"; + $generator->bag['base_type'] = $type; + //Generate the complex type this is derived from + for ( $i = 0; $i < count( $GLOBALS['_globals']['complex_types'] ); $i++ ) { + if ( $type == $GLOBALS['_globals']['complex_types'][$i]->getAttribute('name') ) { + $generator->setComplexType( true ); + $generator->bag['ref_elements'][] = $type; + //$this->generateComplexType( $GLOBALS['_globals']['complex_types'][$i], $generator, $context ); + break; + } + } + + // Parse element context + $this->flatten( $content, $generator, $element_context, $content->getAttribute( 'maxOccurs' ) ); + + } else { + //print "found nothing so doing complex content flatten\n"; + // The alternative to xsSimpleContent is xsComplexContent - if it is not specified, it is implied + // Parse element context + $this->flatten( $content, $generator, $element_context, $content->getAttribute( 'maxOccurs' ) ); + + } + } + + //function that generates the inline simpleType + function generateSimpleType( $content, & $generator ) { + + $e = $content->getElements(); + $generator->setType( $this->getAttribute( 'name' ) ); + //print $this->getAttribute( 'name' ) ." has a simpletype\n"; + $a = $content->getElementsByType( 'xsAnnotation' ); + if ( count( $a ) > 0 ) { + //print "found annotation for ". $this->getAttribute( 'name' ) ."!\n"; + $d = $a[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $d ) > 0 ) + { + //print "found documentation for ". $this->getAttribute( 'name' ) ."!\n"; + $generator->setDocumentation( $d[0]->get() ); + } + $ap = $a[0]->getElementsByType( 'xsAppinfo' ); + if ( count( $ap ) > 0 ) + { + $generator->setAppInfo( $ap[0]->get() ); + } + } + + $idx = 0; + if ( $e[$idx]->getType() == 'xsAnnotation' ) { + $idx = 1; + } + if ( $e[$idx]->getType() == 'xsRestriction' || $e[$idx]->getType() == 'xsExtension' ) + { + $generator->setIsExtension( $e[$idx]->getType() == 'xsExtension' ); + + // Set base class + $generator->setBase( $e[$idx]->getAttribute( 'base' ) ); + + // Look for enums + $enums = $e[$idx]->getElementsByType( 'xsEnumeration' ); + for( $i=0; $iaddEnum( $enums[$i]->getAttribute( 'value' ) ); + //print $enums[$i]->getAttribute( 'value' ); + $an = $enums[$i]->getElementsByType('xsAnnotation'); + if ( count( $an ) > 0 ) { + $doc = $an[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $doc ) > 0 ) { + $generator->addEnumDoc( $i, $doc[0]->get() ); + } + $ap = $an[0]->getElementsByType( 'xsAppinfo' ); + if ( count( $ap ) > 0 ) + { + $generator->addEnumAppInfo( $i, $ap[0]->get() ); + } + } + } + + // Look for max/mins + $array_limits = array(); + $min = $e[$idx]->getElementsByType( 'xsMinLength' ); + $max = $e[$idx]->getElementsByType( 'xsMaxLength' ); + $minIn = $e[$idx]->getElementsByType( 'xsMinInclusive' ); + $maxIn = $e[$idx]->getElementsByType( 'xsMaxInclusive' ); + $minEx = $e[$idx]->getElementsByType( 'xsMinExclusive' ); + $maxEx = $e[$idx]->getElementsByType( 'xsMaxExclusive' ); + + if ( count( $min ) > 0 ) + { + $generator->setRestriction( 'minLength', $min[0]->getAttribute( 'value' ) ); + } + + if ( count( $max ) > 0 ) + { + $generator->setRestriction( 'maxLength', $max[0]->getAttribute( 'value' ) ); + } + + if ( count( $minIn ) > 0 ) + { + $generator->setRestriction( 'minInclusive', $minIn[0]->getAttribute( 'value' ) ); + } + + if ( count( $maxIn ) > 0 ) + { + $generator->setRestriction( 'maxInclusive', $maxIn[0]->getAttribute( 'value' ) ); + } + + if ( count( $minEx ) > 0 ) + { + $generator->setRestriction( 'minExclusive', $minEx[0]->getAttribute( 'value' ) ); + } + + if ( count( $maxEx ) > 0 ) + { + $generator->setRestriction( 'maxExclusive', $maxEx[0]->getAttribute( 'value' ) ); + } + } else if ( $e[$idx]->getType() == 'xsList' ) + { + //$extends = "xsList"; + $itemType = $e[$idx]->getAttribute( 'itemType' ); + $generator->setListType( $itemType ); + $generator->bag['isArray'] = true; + } else + { + $this->log( "WARN: unexpected element in xsSimpleType code generation" ); + } + } +} +?> \ No newline at end of file diff --git a/codeGen/om/xsEnumeration.php b/codeGen/om/xsEnumeration.php new file mode 100644 index 0000000..6b2e74e --- /dev/null +++ b/codeGen/om/xsEnumeration.php @@ -0,0 +1,28 @@ +_addAttribute( 'value', array( 'type' => 'xs:integer' ) ); + + $this->_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->type[] = 'xsEnumeration'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsExtension.php b/codeGen/om/xsExtension.php new file mode 100644 index 0000000..22c19d5 --- /dev/null +++ b/codeGen/om/xsExtension.php @@ -0,0 +1,29 @@ +_addElement( 'xsAttribute', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsSequence', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->_addAttribute( 'base', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsExtension'; + parent::_elementSet(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsGroup.php b/codeGen/om/xsGroup.php new file mode 100644 index 0000000..7f7c4ef --- /dev/null +++ b/codeGen/om/xsGroup.php @@ -0,0 +1,157 @@ +_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsElement', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAttribute', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsChoice', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsSequence', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsGroup', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->_addAttribute( 'ref', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'name', array( 'type' => 'xs:string' ) ); + + $this->type[] = "xsGroup"; + parent::_elementSet(); + } + + function addChoiceElement( & $e ) + { + $this->addElement( $e ); + } + + function & generate( $element_context, & $global_elements ) + { + $element_context[] = $this->getAttribute( "name" ); + print implode( ",", $element_context ) . "\n"; + + // Get new factory + $generator = new ElementMeta( $global_elements ); + $generator->setIsAGroup( true ); + + // Load the class name and a context pre-fix (in case we're inside another element) + $generator->setName( $this->getAttribute( 'name' ) ); + $generator->setContext( $element_context ); + + // Extract any documentation for this node + $a = $this->getElementsByType( 'xsAnnotation' ); + if ( count( $a ) > 0 ) + { + $d = $a[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $d ) > 0 ) + { + $generator->setDocumentation( $d[0]->get() ); + } + } + + // Inspect the semantic structure of this node and extract the elements/attributes + $this->flatten( $this, $generator, $element_context, $this->getAttribute( 'maxOccurs' ) ); + + if ( count( $generator->bag['elements'] ) == 0 ) { + $generator->setIsEmptyContent( true ); + } + + $meta = & $generator->getMeta(); + + if ( count( $element_context ) == 1 ) + { + $global_elements[ $element_context[0] ] = & $meta; + } + + return $meta; + } + + // Flatten choice/all/sequence groups into a single list of contained elements + function flatten( & $element, & $generator, & $context, $maxOccurs ) + { + //print "in flatten "; + $e_list = $element->getElements(); + for( $i=0; $igetType() ) + { + case 'xsChoice': + $generator->setHasChoice( true ); + $generator->addContentModel( 1, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsSequence': + $generator->addContentModel( 0, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsAll': + $generator->addContentModel( 3, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + // Propagate the maxOccurs down through choice hierarchy (while flattening) + $local_max = $e_list[$i]->getAttribute( 'maxOccurs' ); + if ( $maxOccurs == 'unbounded' || (is_int( $local_max ) && ($maxOccurs > $local_max)) ) + { + $this->flatten( $e_list[$i], $generator, $context, $maxOccurs ); + } else + { + $this->flatten( $e_list[$i], $generator, $context, $local_max ); + } + break; + case 'xsGroup': + $generator->addContentModel( 2, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + $generator->addGroup( $e_list[$i] ); + case 'xsElement': + $nm = $e_list[$i]->getAttribute( 'name' ); + if ( $nm == '' ) { $nm = $e_list[$i]->getAttribute( 'ref' ); } + $generator->addContentModel( $nm, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + //print "found element!\n"; + // If a containing element/group has a maxOccurs > 1, then inherit it (will flag as array in code gen) + if ( $maxOccurs == 'unbounded' || $maxOccurs > 1 ) + { + $e_list[$i]->setAttribute( 'maxOccurs', $maxOccurs ); + } + $generator->addElement( $e_list[$i], $context ); + break; + case 'xsAttribute': + //print "found attribute!\n"; + $generator->addAttribute( $e_list[$i] ); + break; + case 'xsAny': + print "found an any\n"; + $generator->addContentModel( 4, $e_list[$i]->getAttribute( 'minOccurs' ), $e_list[$i]->getAttribute( 'maxOccurs' ) ); + $generator->bag['has_any'] = true; + break; + default: + break; + } + } + $generator->addContentModel( 5, 0, 0 ); //END content model - There will be one extra on every element + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsImport.php b/codeGen/om/xsImport.php new file mode 100644 index 0000000..d1ec816 --- /dev/null +++ b/codeGen/om/xsImport.php @@ -0,0 +1,27 @@ +_addAttribute( 'namespace', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'schemaLocation', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsImport'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsList.php b/codeGen/om/xsList.php new file mode 100644 index 0000000..1d43c64 --- /dev/null +++ b/codeGen/om/xsList.php @@ -0,0 +1,54 @@ +minLength = 0; + $this->maxLength = $MAX_ARRAY_LENGTH; + + $this->_addAttribute( 'itemType', array( 'type' => 'xs:string' ) ); + $this->setAttribute( 'itemType', 'TypedData' ); + + $this->type[] = 'xsList'; + parent::_typedData(); + } + + // To save the heavyweight object-per-data-point approach, allow a list type + // to parse the buffer into a single array + function set( & $buffer ) + { + eval( '$type = new ' . $this->getAttribute( 'itemType' ) . '();' ); + $this->data = & $type->parse( $buffer ); + +/* for( $i=0; trim( $buffer ) != "" && $i<$this->maxLength; $i++ ) + { + eval( '$this->data[ $i ] = new ' . $this->getAttribute( 'itemType' ) . '();' ); + $this->data[ $i ]->set( $buffer ); + }*/ + } + + function getCount() + { + return count( $this->data ); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsMaxExclusive.php b/codeGen/om/xsMaxExclusive.php new file mode 100644 index 0000000..0ec5b31 --- /dev/null +++ b/codeGen/om/xsMaxExclusive.php @@ -0,0 +1,26 @@ +_addAttribute( 'value', array( 'type' => 'xs:float' ) ); + + $this->type[] = 'xsMaxExclusive'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsMaxInclusive.php b/codeGen/om/xsMaxInclusive.php new file mode 100644 index 0000000..e8c105d --- /dev/null +++ b/codeGen/om/xsMaxInclusive.php @@ -0,0 +1,26 @@ +_addAttribute( 'value', array( 'type' => 'xs:float' ) ); + + $this->type[] = 'xsMaxInclusive'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsMaxLength.php b/codeGen/om/xsMaxLength.php new file mode 100644 index 0000000..f4550fb --- /dev/null +++ b/codeGen/om/xsMaxLength.php @@ -0,0 +1,26 @@ +_addAttribute( 'value', array( 'type' => 'xs:integer' ) ); + + $this->type[] = 'xsMaxLength'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsMinExclusive.php b/codeGen/om/xsMinExclusive.php new file mode 100644 index 0000000..f50b261 --- /dev/null +++ b/codeGen/om/xsMinExclusive.php @@ -0,0 +1,26 @@ +_addAttribute( 'value', array( 'type' => 'xs:float' ) ); + + $this->type[] = 'xsMinExclusive'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsMinInclusive.php b/codeGen/om/xsMinInclusive.php new file mode 100644 index 0000000..817e463 --- /dev/null +++ b/codeGen/om/xsMinInclusive.php @@ -0,0 +1,26 @@ +_addAttribute( 'value', array( 'type' => 'xs:float' ) ); + + $this->type[] = 'xsMinInclusive'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsMinLength.php b/codeGen/om/xsMinLength.php new file mode 100644 index 0000000..12d6b5a --- /dev/null +++ b/codeGen/om/xsMinLength.php @@ -0,0 +1,26 @@ +_addAttribute( 'value', array( 'type' => 'xs:integer' ) ); + + $this->type[] = 'xsMinLength'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsPattern.php b/codeGen/om/xsPattern.php new file mode 100644 index 0000000..4f4c66b --- /dev/null +++ b/codeGen/om/xsPattern.php @@ -0,0 +1,28 @@ +_addAttribute( 'value', array( 'type' => 'xs:string' ) ); + + $this->_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->type[] = 'xsPattern'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsRestriction.php b/codeGen/om/xsRestriction.php new file mode 100644 index 0000000..e58ef58 --- /dev/null +++ b/codeGen/om/xsRestriction.php @@ -0,0 +1,37 @@ +_addElement( 'xsAttribute', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsMinLength', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsMaxLength', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsMinInclusive', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsMaxInclusive', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsMinExclusive', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsMaxExclusive', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsEnumeration', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsWhiteSpace', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsPattern', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->_addAttribute( 'base', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsRestriction'; + parent::_elementSet(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsSchema.php b/codeGen/om/xsSchema.php new file mode 100644 index 0000000..cce0827 --- /dev/null +++ b/codeGen/om/xsSchema.php @@ -0,0 +1,37 @@ +_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsElement', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsSimpleType', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsComplexType', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsGroup', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsImport', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->_addAttribute( 'targetNamespace', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'elementFormDefault', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'xmlns:xs', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'xmlns', array( 'type' => 'xs:string' ) ); + $this->_addAttribute( 'version', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsSchema'; + parent::_elementSet(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsSequence.php b/codeGen/om/xsSequence.php new file mode 100644 index 0000000..62c2de9 --- /dev/null +++ b/codeGen/om/xsSequence.php @@ -0,0 +1,37 @@ +_addElement( 'xsElement', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAttribute', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsChoice', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsSequence', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsGroup', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAny', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + $this->_addElement( 'xsAnnotation', array( 'minOccurs' => '0', 'maxOccurs' => 'unbounded' ) ); + + $this->type[] = "xsSequence"; + parent::_elementSet(); + } + + function addSequenceElement( & $e ) + { + $this->addElement( $e ); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsSimpleContent.php b/codeGen/om/xsSimpleContent.php new file mode 100644 index 0000000..f4a027a --- /dev/null +++ b/codeGen/om/xsSimpleContent.php @@ -0,0 +1,29 @@ +_addElement( 'xsRestriction', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsExtension', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + +// $this->_addAttribute( 'name', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsSimpleContent'; + parent::_elementSet(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsSimpleType.php b/codeGen/om/xsSimpleType.php new file mode 100644 index 0000000..f3d2863 --- /dev/null +++ b/codeGen/om/xsSimpleType.php @@ -0,0 +1,148 @@ +_addElement( 'xsRestriction', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsExtension', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsList', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + $this->_addElement( 'xsUnion', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + + $this->_addElement( 'xsAnnotation', array( 'minOccurs' => '1', 'maxOccurs' => '1' ) ); + + $this->_addAttribute( 'name', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsSimpleType'; + parent::_elementSet(); + } + + function & generate() + { + $vars = array(); + $e = $this->getElements(); + $generator = new TypeMeta(); + + $generator->setType( $this->getAttribute( 'name' ) ); + + $a = $this->getElementsByType( 'xsAnnotation' ); + if ( count( $a ) > 0 ) + { + //print "found annotation for ". $this->getAttribute( 'name' ) ."!\n"; + $d = $a[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $d ) > 0 ) + { + //print "found documentation for ". $this->getAttribute( 'name' ) ."!\n"; + $generator->setDocumentation( $d[0]->get() ); + } + $ap = $a[0]->getElementsByType( 'xsAppinfo' ); + if ( count( $ap ) > 0 ) + { + $generator->setAppInfo( $ap[0]->get() ); + } + } + + $idx = 0; + if ( $e[$idx]->getType() == 'xsAnnotation' ) { + $idx = 1; + } + if ( $e[$idx]->getType() == 'xsRestriction' || $e[$idx]->getType() == 'xsExtension' ) + { + $generator->setIsExtension( $e[$idx]->getType() == 'xsExtension' ); + + // Set base class + $generator->setBase( $e[$idx]->getAttribute( 'base' ) ); + + // Look for enums + $enums = $e[$idx]->getElementsByType( 'xsEnumeration' ); + for( $i=0; $iaddEnum( $enums[$i]->getAttribute( 'value' ) ); + $an = $enums[$i]->getElementsByType('xsAnnotation'); + if ( count( $an ) > 0 ) { + $doc = $an[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $doc ) > 0 ) { + $generator->addEnumDoc( $i, $doc[0]->get() ); + } + $ap = $an[0]->getElementsByType( 'xsAppinfo' ); + if ( count( $ap ) > 0 ) + { + $generator->addEnumAppInfo( $i, $ap[0]->get() ); + } + } + } + + // Look for max/mins + $array_limits = array(); + $min = $e[$idx]->getElementsByType( 'xsMinLength' ); + $max = $e[$idx]->getElementsByType( 'xsMaxLength' ); + $minIn = $e[$idx]->getElementsByType( 'xsMinInclusive' ); + $maxIn = $e[$idx]->getElementsByType( 'xsMaxInclusive' ); + $minEx = $e[$idx]->getElementsByType( 'xsMinExclusive' ); + $maxEx = $e[$idx]->getElementsByType( 'xsMaxExclusive' ); + + if ( count( $min ) > 0 ) + { + $generator->setRestriction( 'minLength', $min[0]->getAttribute( 'value' ) ); + } + + if ( count( $max ) > 0 ) + { + $generator->setRestriction( 'maxLength', $max[0]->getAttribute( 'value' ) ); + } + + if ( count( $minIn ) > 0 ) + { + $generator->setRestriction( 'minInclusive', $minIn[0]->getAttribute( 'value' ) ); + } + + if ( count( $maxIn ) > 0 ) + { + $generator->setRestriction( 'maxInclusive', $maxIn[0]->getAttribute( 'value' ) ); + } + + if ( count( $minEx ) > 0 ) + { + $generator->setRestriction( 'minExclusive', $minEx[0]->getAttribute( 'value' ) ); + } + + if ( count( $maxEx ) > 0 ) + { + $generator->setRestriction( 'maxExclusive', $maxEx[0]->getAttribute( 'value' ) ); + } + } else if ( $e[$idx]->getType() == 'xsList' ) + { + //$extends = "xsList"; + $itemType = $e[$idx]->getAttribute( 'itemType' ); + $generator->setListType( $itemType ); + $generator->bag['isArray'] = true; + } + else if ( $e[$idx]->getType() == 'xsUnion' ) { + $generator->setUnionMembers( $e[$idx]->getAttribute( 'memberTypes' ) ); + } + else + { + $this->log( "WARN: unexpected element in xsSimpleType code generation" ); + } + + $meta = & $generator->getMeta(); + return $meta; + } +} + + +?> \ No newline at end of file diff --git a/codeGen/om/xsUnion.php b/codeGen/om/xsUnion.php new file mode 100644 index 0000000..358c0bf --- /dev/null +++ b/codeGen/om/xsUnion.php @@ -0,0 +1,26 @@ +_addAttribute( 'memberTypes', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsUnion'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/om/xsWhiteSpace.php b/codeGen/om/xsWhiteSpace.php new file mode 100644 index 0000000..94163fb --- /dev/null +++ b/codeGen/om/xsWhiteSpace.php @@ -0,0 +1,26 @@ +_addAttribute( 'value', array( 'type' => 'xs:string' ) ); + + $this->type[] = 'xsWhiteSpace'; + parent::_typedData(); + } +} + +?> \ No newline at end of file diff --git a/codeGen/readme_e.txt b/codeGen/readme_e.txt new file mode 100644 index 0000000..7dc737c --- /dev/null +++ b/codeGen/readme_e.txt @@ -0,0 +1,19 @@ +Code generator usage +-------------------- + +Windows: bin\php gen.php schema [cprt] +Linux/Mac: php gen.php schema [cprt] + +schema File name of the COLLADA schema document +cprt Generate the files with an SCEA shared source copyright notice + +When running the code generator under Windows, be sure to use the php provided in the bin +directory. Don't install the latest php and try to use that. The latest php comes with a +php.ini file whose settings are totally incompatible with the code used in the DOM code +generator. If you get tons of errors when you run the code generator, it may be because +php is using a php.ini file that's incompatible with the code generator. Check +C:\Program Files\PHP and delete php.ini if it's there. Be careful though, as this will +affect any other PHP programs on your system as well. + +On Linux/Mac, you should be able to use the PHP 5 that comes with your distro for running +the code generator. diff --git a/codeGen/relnotes_e.txt b/codeGen/relnotes_e.txt new file mode 100644 index 0000000..a0e3aff --- /dev/null +++ b/codeGen/relnotes_e.txt @@ -0,0 +1,39 @@ +====================================================================== +COLLADA CODE GEN + +Date: June 22, 2007 +Author: Andrew C. Lorino, Mark C. Barnes, Herbert Law, Steven Thomas +====================================================================== +====================================================================== + +This Code Gen will generate basic collada dom api from xml schema. +This is done in php script. + +====================================================================== +Known bugs +====================================================================== +* [Bug] + +- No Bugs yet. + +====================================================================== +Restriction +====================================================================== +* [Guideline] + +- No Guidelines yet. + +====================================================================== +Contributions +====================================================================== +* Thank Andy Lorino for all his contribution. + + +====================================================================== +Changes (for developer) +====================================================================== +* Tested for Collada 1.41 + + +====================================================================== +[ Notes about this document go here ] diff --git a/codeGen/src/ElementMeta.php b/codeGen/src/ElementMeta.php new file mode 100644 index 0000000..9a2aec1 --- /dev/null +++ b/codeGen/src/ElementMeta.php @@ -0,0 +1,285 @@ + false, + 'context' => '', + 'pre_name' => '', + 'content_type' => '', + 'base_type' => '', + 'documentation' => array(), + 'element_name' => '', + 'elements' => array(), + 'inline_elements' => array(), + 'ref_elements' => array(), + 'element_attrs' => array(), + 'attributes' => array(), + 'mixed' => false, + 'complex_type' => false, + 'abstract' => false, + 'substitution_group' => '', + 'element_documentation' => array(), + 'useXMLNS' => false, + 'hasChoice' => false, + 'isEmptyContent' => false, + 'groupElements' => array(), + 'isAComplexType' => false, + 'isAGroup' => false, + 'substitutableWith' => array(), + 'isExtension' => false, + 'isRestriction' => false, + 'simple_type' => NULL, + 'parent_meta' => NULL, + 'has_any' => false, + 'content_model' => array() + ); + + $this->bag = & $bag; + $this->bag['global_elements'] = & $global_elements; + } + + function addGroup( & $e ) { + $this->bag['groupElements'][] = $e->getAttribute('ref'); + } + + function setSubstitutionGroup( $subGroup ) { + $this->bag['substitution_group'] = trim( $subGroup ); + } + + function setComplexType( $bool ) { + $this->bag['complex_type'] = ( $bool == true ); + } + + function setAbstract( $bool ) { + $this->bag['abstract'] = ( $bool == true ); + } + + function setHasChoice( $bool ) { + $this->bag['hasChoice'] = $bool; + } + + function setIsEmptyContent( $bool ) { + $this->bag['isEmptyContent'] = $bool; + } + + function setIsAComplexType( $bool ) { + $this->bag['isAComplexType'] = ( $bool == true ); + } + + function setIsAGroup( $bool ) { + $this->bag['isAGroup'] = ( $bool == true ); + } + + function & getMeta() + { + return $this->bag; + } + + function setMixed( $bool ) + { + $this->bag['mixed'] = ( $bool == true ); + } + + function setContentType( $type ) + { + // Strip xs if we've got a built-in type + /*if ( preg_match( "/xs\:/", $type ) ) + { + $type = 'xs' . substr( $type, 3 ); + }*/ + // If type is non-empty, then go ahead and set it + if ( preg_match( "/[^\s]+/", $type ) ) + { + $this->bag['content_type'] = trim( $type ); + } + } + + function setMinOccurs( $min ) + { + if ( is_int( $min ) && $min >= 0 ) + { + $this->bag['minOccurs'] = $min; + } + } + + function setMaxOccurs( $max ) + { + if ( $max == 'unbounded' || (is_int( $max ) && $max >= 1 ) ) + { + $this->bag['maxOccurs'] = $max; + } + } + + function setPreName( $pre ) + { + $this->pre_name = $pre; + $this->bag['pre_name'] = $pre; + } + + function setName( $name ) + { + $this->name = $name; + $this->bag['element_name'] = $name; + } + + function getName() + { + return $this->name; + } + + function setHasID( $bool ) + { + $this->bag['has_id_attr'] = $bool; + } + + function setDocumentation( $doc ) + { + $this->doc = $doc; + $this->bag['documentation']['en'] = trim( $doc ); + } + + function setAppInfo( $ap ) { + if (!strcmp( trim($ap), 'enable-xmlns' ) ) { + //use the xmlns attribute + $this->bag['useXMLNS'] = true; + } + } + + function setContext( $context ) + { + $this->bag['context'] = $context; + } + + function addElement( & $e, $context ) + { + $name = 'undefined'; + $ref_element = false; + $_attributes = array(); + + foreach( $e->getAttributes() as $k => $v ) + { + $_attributes[ $k ] = $v; + + if ( $k == 'ref' ) + { + $name = $v; + $ref_element = true; + } + else if ( $k == 'name' ) + { + $name = $v; + } + } + + //check if this element already exists this only applies if in a sequence. + foreach( $this->bag['elements'] as $nm ) { + if ( $nm == $name ) { + //print "found duplicate element upping max occurs"; + //if it does then update its max occurs and exit + if ( !$this->bag['hasChoice'] || $_attributes['maxOccurs'] == 'unbounded' ) { + if ( $this->bag['element_attrs'][$nm]['maxOccurs'] != 'unbounded' ) { + $this->bag['element_attrs'][$nm]['maxOccurs']++; + } + } + //print " to ". $this->bag['element_attrs'][$nm]['maxOccurs'] ."\n"; + return; + } + } + + // Track the attrs on each sub-element + $this->bag['element_attrs'][ $name ] = & $_attributes; + + // Call the dom-recurse function on each new element + if ( !$ref_element ) + { + $this->bag['elements'][] = $name; + $this->bag['inline_elements'][ $name ] = & $e->generate( $this->bag['context'], $this->bag['global_elements'] ); + $this->bag['element_documentation'][$name] = $this->bag['inline_elements'][ $name ]['documentation']['en']; + $this->bag['inline_elements'][ $name ]['parent_meta'] = & $this->bag; + } + else { + $this->bag['elements'][] = $name; + $this->bag['ref_elements'][] = $name; + //check for documentation + $a = $e->getElementsByType( 'xsAnnotation' ); + if ( count( $a ) > 0 ) { + $d = $a[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $d ) > 0 ) + { + $this->bag['element_documentation'][$name] = $d[0]->get(); + } + } + } + + } + + function addAttribute( & $a ) + { + $name = ''; + $a_list = array(); + + foreach( $a->getAttributes() as $k => $v ) + { + $a_list[ $k ] = $v; + if ( $k == 'name' ) + { + $name = $v; + if ( $name == 'id' ) { $this->bag['has_id_attr'] = true; } + } + else if ( $k == 'ref' ) { + $name = $v; + //printf( "found an attribute ref for ". $name ."\n"); + if ( strpos( $name, ':' ) !== FALSE ) { + $name[strpos( $name, ':' )] = '_'; + //printf( "changed : to _ for ". $name ."\n" ); + $a_list[ 'type' ] = 'xs:anyURI'; + } + } + } + //check for documentation + $e = $a->getElementsByType( 'xsAnnotation' ); + if ( count( $e ) > 0 ) + { + $d = $e[0]->getElementsByType( 'xsDocumentation' ); + if ( count( $d ) > 0 ) + { + $a_list['documentation'] = $d[0]->get(); + } + } + + $this->bag['attributes'][ $name ] = & $a_list; + + //print "adding attribute ". $name ."\n"; + } + + //For elements name is the element name, for sequence name = 0, choice = 1, group = 2, all = 3, any = 4, end = 5 + function addContentModel( $name, $minOccurs, $maxOccurs ) + { + $this->bag['content_model'][] = array( 'name' => $name, 'minOccurs' => $minOccurs, 'maxOccurs' => $maxOccurs ); + print "adding content model name: ". $name ." minO: ". $minOccurs ." maxO: ". $maxOccurs ."\n"; + } +} + +?> \ No newline at end of file diff --git a/codeGen/src/SchemaParser.php b/codeGen/src/SchemaParser.php new file mode 100644 index 0000000..baee0ee --- /dev/null +++ b/codeGen/src/SchemaParser.php @@ -0,0 +1,85 @@ +parser = xml_parser_create(); + + xml_parser_set_option( $this->parser, XML_OPTION_CASE_FOLDING, false ); + xml_set_object( $this->parser, $this ); + xml_set_element_handler( $this->parser, "startElement", "endElement" ); + xml_set_character_data_handler( $this->parser, "characterData" ); + + //xml_parser_free( $this->parser ); + } + + function startElement( $parser, $name, $attrs ) + { + if ( preg_match( "/xs\:/", $name ) ) + { + $class_name = substr( $name, 3 ); + $class_name = 'xs' . ucfirst( $class_name ); + + eval( '$e = new ' . $class_name . '();' ); + foreach( $attrs as $k => $v ) { $e->setAttribute( $k, $v ); } + + if ( count( $this->parse_stack ) > 0 ) + { + $this->parse_stack[ count( $this->parse_stack ) - 1 ]->addElement( $e ); + } else + { + $this->root_elements[] = & $e; + } + $this->parse_stack[] = & $e; + } + } + + function endElement( $parser, $name ) + { + $pop = & array_pop( $this->parse_stack ); + } + + function characterData( $parser, $data ) + { + if ( count( $this->parse_stack ) > 0 ) + { + $this->parse_stack[ count( $this->parse_stack ) - 1 ]->append( $data ); + } + } + + function parse( $file ) + { + if ( file_exists( $file ) ) + { + if ( !xml_parse( $this->parser, file_get_contents( $file ) ) ) + { + // Got parse error + } + } else + { + // Bad file + } + } + +} + +?> \ No newline at end of file diff --git a/codeGen/src/TypeMeta.php b/codeGen/src/TypeMeta.php new file mode 100644 index 0000000..2ed3125 --- /dev/null +++ b/codeGen/src/TypeMeta.php @@ -0,0 +1,113 @@ + '', + 'base' => '', + 'listType' => '', + 'enum' => array(), + 'enum_documentation' => array(), + 'restrictions' => array(), + 'isExtension' => true, + 'isComplex' => false, + 'useConstStrings' =>false, + 'documentation' => array(), + 'isArray' => false, + 'enum_value' => array(), + 'union_type' => false, + 'union_members' => '' + ); + $this->bag = & $bag; + } + + function & getMeta() + { + return $this->bag; + } + + function setType( $t ) + { + $this->bag['type'] = $t; + } + + function setBase( $b ) + { + $this->bag['base'] = $b; + } + + function setListType( $type ) + { + $this->bag['listType'] = $type; + } + + function setIsExtension( $bool ) + { + $this->bag['isExtension'] = $bool; + } + + function setIsComplex( $bool ) { + $this->bag['isComplex'] = $bool; + } + + function setRestriction( $name, $val ) + { + $this->bag['restrictions'][$name] = $val; + } + + function addEnum( $val ) + { + $this->bag['enum'][] = $val; + } + + function setAppInfo( $ap ) { + if (!strcmp( trim($ap), 'constant-strings' ) ) { + //use the xmlns attribute + $this->bag['useConstStrings'] = true; + } + } + + function setDocumentation( $doc ) + { + $this->doc = $doc; + $this->bag['documentation']['en'] = trim( $doc ); + } + + function addEnumDoc( $i, $doc ) { + $this->bag['enum_documentation'][$i] = trim($doc); + } + + function addEnumAppInfo( $i, $ai ) { + $ai = trim($ai); + //print "found app info\n"; + if ( strncmp($ai, "value=", 6) == 0 ) { + //print "its in the correct format\n"; + $val = substr($ai, 6); + //print "value is ". $val ."\n"; + $this->bag['enum_value'][$i] = trim($val); + } + } + + function setUnionMembers( $um ) { + $this->bag['union_type'] = true; + $this->bag['union_members'] = $um; + } +} + +?> \ No newline at end of file diff --git a/codeGen/tpl/template-engine.php b/codeGen/tpl/template-engine.php new file mode 100644 index 0000000..c3c47ef --- /dev/null +++ b/codeGen/tpl/template-engine.php @@ -0,0 +1,474 @@ + 'tpl/tpl-doxygen.php', + 'TYPES_HEADER_FILE' => 'tpl/tpl-types-header-file.php', + 'TYPES_HEADER' => 'tpl/tpl-types-header.php', + 'TYPES_CPP_FILE' => 'tpl/tpl-types-cpp-file.php', + 'TYPES_CPP' => 'tpl/tpl-types-cpp.php', + 'INCLUDES' => 'tpl/tpl-includes.php', + 'HEADER' => 'tpl/tpl-dot-h.php', + 'HEADER_FILE' => 'tpl/tpl-header.php', + 'INCLUDE_LIST' => 'tpl/tpl-include-list.php', + 'CPP_FILE' => 'tpl/tpl-cpp.php', + 'CPP' => 'tpl/tpl-cpp-body.php', + 'CPP_STATIC' => 'tpl/tpl-cpp-static.php', + 'CPP_METHODS' => 'tpl/tpl-cpp-methods.php', + 'CLASS' => 'tpl/tpl-class-def.php', + 'ELEMENTS_FILE' => 'tpl/tpl-elements-file.php', + 'ELEMENTS' => 'tpl/tpl-elements.php', + 'CONSTANTS_FILE' => 'tpl/tpl-constants-file.php', + 'CONSTANTS' => 'tpl/tpl-constants.php', + 'CONSTANTS_CPP_FILE' => 'tpl/tpl-constants-cpp-file.php', + 'CONSTANTS_CPP' => 'tpl/tpl-constants-cpp.php' +); + +function applyTemplate( $template, & $bag ) +{ + global $_globals; + + $_result = ''; + if ( array_key_exists( $template, $_globals['templates'] ) ) + { + ob_start(); + include( $_globals['templates'][ $template ] ); + + $_result = ob_get_contents(); + ob_end_clean(); + } + return $_result; +} + +function initGen( $file ) +{ + global $_globals; + + // A few defns + $_globals['gen_start_time'] = date( "M d Y H:i:s" ); + $_globals['file_name'] = $file; + + // Verify target dirs exist, create if not + makeGenDir( getcwd() . "/gen" ); + makeGenDir( getcwd() . "/" . $_globals['dom_dir'] ); + makeGenDir( getcwd() . "/" . $_globals['dom_dir'] . 'include/' ); + makeGenDir( getcwd() . "/" . $_globals['dom_dir'] . 'src/' ); + + // Start buffering output + ob_start(); +} + +function makeGenDir( $dir ) +{ + if ( !is_dir( $dir ) ) + { + if ( !mkdir( $dir ) ) + { + die( "Could not create directory $dir\n" ); + } + } +} + +function cleanupGen() +{ + global $_globals; + + // Get output buffer + $_result = ob_get_contents(); + ob_end_clean(); + // Assemble report + ob_start(); + print "========================================\n\n"; + print " Code Generation\n\n"; + print "----------------------------------------\n"; + print "COLLADA File: " . $_globals['file_name'] . "\n"; + print "Start time: " . $_globals['gen_start_time'] . "\n"; + print "End time: " . date( "M d Y H:i:s" ) . "\n"; + print "----------------------------------------\n\n"; + print $_result; + print "\r\n\r\nend\r\n"; + file_put_contents( $_globals['log_file'], ob_get_contents() ); + ob_end_clean(); + print "Generation complete\n"; +} + +function saveTemplate( $file, $template, & $bag ) +{ + $bytes = file_put_contents( $file, applyTemplate( $template, $bag ) ); +} + +function printAllSubChildren( & $elem, $prefix, $suffix ) { + //print "subchild test count = ". count( $elem['elements'] ) ."\n"; + //print "subchild test name = ". $elem['element_name'] ."\n"; + global $_globals; + global $meta; + for ( $i = 0; $i < count( $elem['elements'] ); $i++ ) { + if ( isset( $meta[$elem['elements'][$i]] ) ) { + if ( $meta[$elem['elements'][$i]]['isAGroup'] ) { + + printAllSubChildren( $meta[$elem['elements'][$i]], $prefix, $suffix ); + } + else if ( !$meta[$elem['elements'][$i]]['abstract'] ) { + print $prefix ."_Meta->children.append(\"". $elem['elements'][$i] ."\");". $suffix; + print ");\n"; + } + for( $c = 0; $c < count( $meta[$elem['elements'][$i]]['substitutableWith']); $c++ ) { + $subwith = $meta[$elem['elements'][$i]]['substitutableWith'][$c]; + print $prefix ."_Meta->children.append(\"". $subwith ."\");". $suffix; + print ");\n"; + } + } + else { + print $prefix . $elem['elements'][$i] . $suffix; + if ( isset($meta[$elem['element_attrs'][ $elem['elements'][$i] ]['type']]) && + $meta[$elem['element_attrs'][ $elem['elements'][$i] ]['type']]['isAComplexType'] ) { + print ", \"". $elem['element_attrs'][ $elem['elements'][$i] ]['type'] ."\""; + } + print ");\n"; + } + } +} + +function getInheritanceStatement($baseClasses) { + if (count($baseClasses) == 0) + return ""; + $statement = " : public " . $baseClasses[0]; + for ($i = 1; $i < count($baseClasses); $i++) + $statement .= ", public " . $baseClasses[$i]; + return $statement; +} + +function beginConstructorInitializer(& $initializerListStarted) { + print $initializerListStarted ? ", " : " : "; + $initializerListStarted = true; +} + +function printBaseClassInitializers($elemName, $baseClasses, & $initializerListStarted) { + $elt = strpos($elemName, "_complexType") === false ? "this" : "elt"; + for ($i = 0; $i < count($baseClasses); $i++) { + beginConstructorInitializer($initializerListStarted); + print $baseClasses[$i] . + (strpos($baseClasses[$i], "_complexType") !== false ? "(dae, " . $elt . ")" : "(dae)"); + } +} + +function printConstructors( $elemName, & $bag, $baseClasses, $indent ) { + //print the protected ctor and copy stuff + print $indent ."protected:\n"; + print $indent ."\t/**\n". $indent ."\t * Constructor\n". $indent ."\t */\n"; + print $indent ."\t". $elemName ."(DAE& dae"; + if ($bag['isAComplexType']) + print ", daeElement* elt"; + print ")"; + $initializerListStarted = false; + $eltVar = $bag['isAComplexType'] ? "*elt" : "*this"; + + printBaseClassInitializers($elemName, $baseClasses, $initializerListStarted); + + if ($bag['useXMLNS']) { + beginConstructorInitializer($initializerListStarted); + print "attrXmlns(dae, " . $eltVar . ")"; + } + + // Constructor initialization of attributes + if (count($bag['attributes']) > 0) { + foreach( $bag['attributes'] as $attr_name => & $a_list ) { + beginConstructorInitializer($initializerListStarted); + + $attr_name = ucfirst($attr_name); + $type = $a_list['type']; + print "attr" . $attr_name . "("; + if ($type == 'xs:anyURI' || $type == 'URIFragmentType') + print "dae, " . $eltVar; + else if ($type == 'xs:IDREF') + print $eltVar; + else if ($type == 'xs:IDREFS') + print "new xsIDREF(" . $eltVar . ")"; + print ")"; + } + } + + // Constructor initialization of elements + for( $i=0; $i 1); + beginConstructorInitializer($initializerListStarted); + print "elem" . ucfirst($bag['elements'][$i]) . ($maxOccurs ? "_array" : "") . "()"; + } + + if ( ($bag['content_type'] != '' || $bag['mixed']) && !$bag['abstract'] ) { + beginConstructorInitializer($initializerListStarted); + if ($bag['content_type'] == 'xs:anyURI' || $bag['content_type'] == 'URIFragmentType') + print "_value(dae, " . $eltVar . ")"; + else if ($bag['content_type'] == 'xs:IDREF') + print "_value(" . $eltVar . ")"; + else if ($bag['content_type'] == 'xs:IDREFS') + print "_value(new xsIDREF(" . $eltVar . "))"; + else + print "_value()"; + } + print " {}\n"; + + print $indent ."\t/**\n". $indent ."\t * Destructor\n". $indent ."\t */\n"; + print $indent ."\tvirtual ~". $elemName ."() {"; + if ( $bag['hasChoice'] ) { + print " daeElement::deleteCMDataArray(_CMData); "; + } + print "}\n"; + + print $indent ."\t/**\n". $indent ."\t * Overloaded assignment operator\n". $indent ."\t */\n"; + print $indent ."\tvirtual ".$elemName ." &operator=( const ".$elemName ." &cpy ) { (void)cpy; return *this; }\n"; +} + +function printAttributes( & $bag, & $typemeta, & $indent, $vaa ) { + global $_globals; + + $attrCnt = 0; + if ( $bag['useXMLNS'] ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the xmlns attribute.\n"; + print $indent ."\t * @return Returns a xsAnyURI reference of the xmlns attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\txsAnyURI &getXmlns() { return attrXmlns; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the xmlns attribute.\n"; + print $indent ."\t * @return Returns a constant xsAnyURI reference of the xmlns attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst xsAnyURI &getXmlns() const { return attrXmlns; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the xmlns attribute.\n"; + print $indent ."\t * @param xmlns The new value for the xmlns attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid setXmlns( const xsAnyURI &xmlns ) { attrXmlns = xmlns;"; + if ( $vaa ) { + print $indent ."\n\t _validAttributeArray[". $attrCnt ."] = true;"; + } + print " }\n\n"; + + $attrCnt++; + } + + foreach( $bag['attributes'] as $attr_name => & $a_list ) { + $type = $a_list['type']; + if ( preg_match( "/xs\:/", $type ) ) { + $type = substr( $type, 3 ); + $pre = "xs"; + } + else { + $pre = $_globals['prefix']; + } + if ( $type == '' ) + { + $type = "String"; + } + $baseStringTypes = "xsDateTime xsID xsNCName xsNMTOKEN xsName xsToken xsString"; + $baseType = $pre . ucfirst( $type ); + if ( isset( $typemeta[$type] ) ) { + $typeInfo = $typemeta[$type]; + while ( $typeInfo['base'] != '' && isset( $typemeta[$typeInfo['base']] ) ) { + $typeInfo = $typemeta[$typeInfo['base']]; + if ( preg_match( "/xs\:/", $typeInfo['type'] ) ) { + $baseType = "xs" . ucfirst( substr( $typeInfo['type'], 3 ) ); + } + else { + $baseType = $_globals['prefix'] . ucfirst( $typeInfo['type'] ); + } + } + } + + if ( (isset( $typemeta[$type] ) && $typemeta[$type]['isArray']) || $type == 'IDREFS' ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." array attribute.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." reference of the ". $attr_name ." array attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t" . $pre . ucfirst( $type ) . " &get" . ucfirst($attr_name) ."() { "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." array attribute.\n"; + print $indent ."\t * @return Returns a constant ". $pre . ucfirst( $type ) ." reference of the ". $attr_name ." array attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst " . $pre . ucfirst( $type ) . " &get" . ucfirst($attr_name) ."() const { "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the ". $attr_name ." array attribute.\n"; + print $indent ."\t * @param at". ucfirst($attr_name)." The new value for the ". $attr_name ." array attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid set". ucfirst( $attr_name ) ."( const ". $pre . ucfirst( $type ) ." &at"; + print ucfirst($attr_name) ." ) { attr". ucfirst($attr_name) ." = at". ucfirst($attr_name) .";"; + if ( $vaa ) { + print " _validAttributeArray[". $attrCnt ."] = true;"; + } + print " }\n\n"; + } + else if ( ucfirst($type) == 'AnyURI' || ucfirst($type) == 'URIFragmentType' ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." reference of the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t" . $pre . ucfirst( $type ) . " &get" . ucfirst($attr_name) ."() { "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @return Returns a constant ". $pre . ucfirst( $type ) ." reference of the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst " . $pre . ucfirst( $type ) . " &get" . ucfirst($attr_name) ."() const { "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @param at". ucfirst($attr_name)." The new value for the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid set". ucfirst( $attr_name ) ."( const ". $pre . ucfirst( $type ) ." &at"; + print ucfirst($attr_name) ." ) { attr". ucfirst($attr_name) ." = at". ucfirst($attr_name) .";"; + if ( $vaa ) { + print " _validAttributeArray[". $attrCnt ."] = true;"; + } + print " }\n"; + // We add a setter that takes a plain string to help with backward compatibility + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @param at". ucfirst($attr_name)." The new value for the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid set". ucfirst( $attr_name ) ."( xsString at"; + print ucfirst($attr_name) ." ) { attr". ucfirst($attr_name) ." = at" . ucfirst($attr_name) . ";"; + if ( $vaa ) { + print " _validAttributeArray[". $attrCnt ."] = true;"; + } + print " }\n\n"; + } + else if( ucfirst($type) == 'IDREF' ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." reference of the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t" . $pre . ucfirst( $type ) . " &get" . ucfirst($attr_name) ."() { "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @return Returns a constant ". $pre . ucfirst( $type ) ." reference of the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst " . $pre . ucfirst( $type ) . " &get" . ucfirst($attr_name) ."() const{ "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @param at". ucfirst($attr_name)." The new value for the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid set". ucfirst( $attr_name ) ."( const ". $pre . ucfirst( $type ) ." &at"; + print ucfirst($attr_name) ." ) { attr". ucfirst($attr_name) ." = at". ucfirst($attr_name) .";"; + if ( $vaa ) { + print " _validAttributeArray[". $attrCnt ."] = true;"; + } + print " }\n\n"; + } + else if ( strstr( $baseStringTypes, $baseType ) !== FALSE && count( $a_list['enum'] ) == 0 ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." of the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t" . $pre . ucfirst( $type ) . " get" . ucfirst($attr_name) ."() const { "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @param at". ucfirst($attr_name)." The new value for the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid set". ucfirst( $attr_name ) ."( ". $pre . ucfirst( $type ) ." at"; + print ucfirst($attr_name) ." ) { *(daeStringRef*)&attr". ucfirst($attr_name) ." = at". ucfirst($attr_name) .";"; + if ( $vaa ) { + print " _validAttributeArray[". $attrCnt ."] = true; "; + } + if ( $attr_name == "id" ) + { + print "\n". $indent ."\t\tif( _document != NULL ) _document->changeElementID( this, attrId );\n". $indent ."\t"; + } + + print "}\n\n"; + } + else { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." of the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t" . $pre . ucfirst( $type ) . " get" . ucfirst($attr_name) ."() const { "; + print "return attr". ucfirst($attr_name) ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the ". $attr_name ." attribute.\n"; + print $indent ."\t * @param at". ucfirst($attr_name)." The new value for the ". $attr_name ." attribute.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid set". ucfirst( $attr_name ) ."( ". $pre . ucfirst( $type ) ." at"; + print ucfirst($attr_name) ." ) { attr". ucfirst($attr_name) ." = at". ucfirst($attr_name) .";"; + if ( $vaa ) { + print " _validAttributeArray[". $attrCnt ."] = true;"; + } + print " }\n\n"; + } + $attrCnt++; + } +} + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-class-def.php b/codeGen/tpl/tpl-class-def.php new file mode 100644 index 0000000..81f9d8c --- /dev/null +++ b/codeGen/tpl/tpl-class-def.php @@ -0,0 +1,480 @@ + 0 ) { //only print these for the inner classes.. the main classes will have + //them defined in a seperate file to avoid circular includes. + print $indent."class " . $full_element_name . ";\n\n"; + print $indent ."typedef daeSmartRef<". $full_element_name ."> ". $full_element_name ."Ref;\n"; + print $indent ."typedef daeTArray<". $full_element_name ."Ref> ". $full_element_name ."_Array;\n\n"; + } + + // DOCUMENTATION + if ( isset( $bag['documentation'][ $_globals['language'] ] ) ) + { + print applyTemplate( 'DOXYGEN', $bag['documentation'][ $_globals['language'] ] ); + } + + // SUBSTITION GROUP/INHERITANCE + $baseClasses = array(); + if ( $bag['isAComplexType'] ) { + if ( $bag['complex_type'] ) + $baseClasses[] = $_globals['prefix'] . ucfirst( $bag['base_type'] ) . "_complexType"; + print $indent ."class ". $full_element_name ."_complexType ". + getInheritanceStatement($baseClasses) ."\n".$indent."{\n"; + } + else { + $baseClasses[] = ($bag['substitution_group'] != '' ? $_globals['prefix'] . ucfirst($bag['substitution_group']) : 'daeElement'); + if ( $bag['complex_type'] ) + $baseClasses[] = $_globals['prefix'] . ucfirst( $bag['base_type'] ) . "_complexType"; + print $indent ."class ". $full_element_name . getInheritanceStatement($baseClasses) . "\n".$indent."{\n"; + print $indent ."public:\n"; + print $indent ."\tvirtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::". strtoupper($bag['element_name']) ."; }\n"; + print $indent ."\tstatic daeInt ID() { return ". $_globals['typeID']++ ."; }\n"; + print $indent ."\tvirtual daeInt typeID() const { return ID(); }\n"; + } + + // INTERNAL CLASSES + $result = ''; + $inlines = array_keys( $bag['inline_elements'] ); + for( $i=0; $i 0 ) { print $indent ."public:\n$result\n"; } + + //ENUM + if ( $bag['simple_type'] != NULL ) { + $typeMeta = $bag['simple_type']->getMeta(); + //print $typeMeta['type']; + if ( count( $typeMeta['enum'] ) > 0 ) + { + //print "has enums"; + print $indent ."public: //ENUM\n"; + if ( !$typeMeta['useConstStrings'] ) { + //Decided to name mangle the enum constants so they are more descriptive and avoid collisions + if ( isset( $typeMeta['documentation']['en'] ) ) { + print applyTemplate( 'DOXYGEN', $typeMeta['documentation']['en'] ); + } + print "enum " . $_globals['prefix'] . ucfirst( $typeMeta['type'] ) . "_type {\n"; + //print "\t" . strtoupper( $typeMeta['type'] ) . "_" . $typeMeta['enum'][0] ." = 1"; + for( $i = 0; $i < count( $typeMeta['enum'] ); $i++ ) { + //print ","; + print "\t" . strtoupper( $typeMeta['type'] ) . "_" . $typeMeta['enum'][$i] .","; + if ( isset( $typeMeta['enum_documentation'][$i] ) ) { + print "\t\t/**< ". $typeMeta['enum_documentation'][$i] ." */"; + } + //print "\n\t" . strtoupper( $typeMeta['type'] ) . "_" . $typeMeta['enum'][$i]; + print "\n"; + } + //if ( isset( $typeMeta['enum_documentation'][count( $typeMeta['enum'] )-1] ) ) { + // print "\t\t/**< ". $typeMeta['enum_documentation'][count( $typeMeta['enum'] )-1] ." */"; + //} + print "\t". strtoupper( $typeMeta['type'] ) . "_COUNT"; + print "\n};\n\n"; + } + else { + //if ( isset( $typeMeta['documentation']['en'] ) ) { + // $_globals['constStrings'][] = applyTemplate( 'DOXYGEN', $typeMeta['documentation']['en'] ); + //} + for( $i = 0; $i < count( $typeMeta['enum'] ); $i++ ) { + //print "static const daeString ". strtoupper( $typeMeta['type'] ) . "_" . $typeMeta['enum'][$i]; + //print " = \"". $typeMeta['enum'][$i] ."\";\n"; + if ( isset( $typeMeta['enum_documentation'][$i] ) ) { + $_globals['constStrings'][] = "/**\n * ". $typeMeta['enum_documentation'][$i] ."\n */\n"; + } + $conststrnm = strtoupper( $typeMeta['type'] ) . "_" . $typeMeta['enum'][$i]; + $conststr = "\"". $typeMeta['enum'][$i] ."\";\n"; + $_globals['constStrings'][$conststrnm] = $conststr; + } + $_globals['constStrings'][] = "\n"; + } + } + } + + // ATTRIBUTES + if ( count( $bag['attributes'] ) > 0 || $bag['useXMLNS'] ) + { + print $indent ."protected: // Attribute". (count( $bag['attributes'] ) > 1 ? 's' : '') ."\n"; + + if ( $bag['useXMLNS'] ) { + print $indent ."\t/**\n". $indent ."\t * This element may specify its own xmlns.\n". $indent ."\t */\n"; + print $indent ."\txsAnyURI attrXmlns;\n"; + } + foreach( $bag['attributes'] as $attr_name => & $a_list ) + { + $type = $a_list['type']; + if ( preg_match( "/xs\:/", $type ) ) { + $type = substr( $type, 3 ); + $pre = "xs"; + } + else { + $pre = $_globals['prefix']; + } + if ( $type == '' ) + { + $type = "String"; + } + if ( isset( $a_list['documentation'] ) ) { + print applyTemplate( 'DOXYGEN', $a_list['documentation'] ); + } + print $indent ."\t" . $pre . ucfirst( $type ) . " attr" . ucfirst($attr_name) .";\n"; + } + } + + // ELEMENTS + if ( count( $bag['attributes'] > 0 ) ) { print "\n"; } + + if ( (count( $bag['elements'] ) > 0 && !$bag['isRestriction']) || $bag['has_any'] ) + { + + print $indent ."protected: // Element". (count( $bag['elements'] ) > 1 ? 's' : '') ."\n"; + $needsContents = false; + for( $i=0; $i 1); + if ( isset( $bag['element_documentation'][ $bag['elements'][$i] ] ) ) { + $bag['element_documentation'][ $bag['elements'][$i] ] .= " @see " . $_globals['prefix'] . ucfirst( $bag['elements'][$i] ); + print applyTemplate( 'DOXYGEN', $bag['element_documentation'][ $bag['elements'][$i] ] ); + } + if ( isset( $bag['element_attrs'][ $bag['elements'][$i] ]['type'] ) && + isset( $meta[$bag['element_attrs'][ $bag['elements'][$i] ]['type']] ) ){ + print $indent ."\t" . $_globals['prefix'] . ucfirst( $bag['element_attrs'][ $bag['elements'][$i] ]['type'] ) . ($maxOccurs ? "_Array" : "Ref") . " elem" . ucfirst($bag['elements'][$i]) . ($maxOccurs ? "_array" : "") . ";\n"; + } + else { + print $indent ."\t" . $_globals['prefix'] . ucfirst( $bag['elements'][$i] ) . ($maxOccurs ? "_Array" : "Ref") . " elem" . ucfirst($bag['elements'][$i]) . ($maxOccurs ? "_array" : "") . ";\n"; + } + if ( isset( $meta[$bag['elements'][$i]] ) ) { + if( count( $meta[$bag['elements'][$i]]['substitutableWith']) > 0 ) { + $needsContents = true; + } + } + } + if ( $bag['hasChoice'] || $needsContents || $bag['has_any'] ) + { + print $indent ."\t/**\n". $indent ."\t * Used to preserve order in elements that do not specify strict sequencing of sub-elements."; + print "\n". $indent ."\t */\n"; + print $indent ."\tdaeElementRefArray _contents;\n"; + print $indent ."\t/**\n". $indent ."\t * Used to preserve order in elements that have a complex content model."; + print "\n". $indent ."\t */\n"; + print $indent ."\tdaeUIntArray _contentsOrder;\n\n"; + } + if ( $bag['hasChoice'] ) + { + print $indent ."\t/**\n". $indent ."\t * Used to store information needed for some content model objects.\n"; + print $indent ."\t */\n". $indent ."\tdaeTArray< daeCharArray * > _CMData;\n\n"; + } + } + + //VALUE + // NOTE: special casing any element with 'mixed' content model to ListOfInts type _value + if ( ($bag['content_type'] != '' || $bag['mixed']) && !$bag['abstract'] ) + { + print $indent ."protected: // Value\n"; + + $content_type = $bag['content_type']; + if ( preg_match( "/xs\:/", $content_type ) ) { + $content_type = substr( $content_type, 3 ); + $pre = "xs"; + } + else { + $pre = $_globals['prefix']; + } + //if ( !strcmp( $pre . ucfirst( $content_type ), $full_element_name ) ) { + if ( $bag['parent_meta']['inline_elements'] != NULL && array_key_exists( $content_type, $bag['parent_meta']['inline_elements'] ) ) { + $pre = '::' . $pre; + } + print $indent ."\t/**\n". $indent ."\t * The " . $pre . ucfirst( $content_type ) ." value of the text data of this element. "; + print "\n". $indent ."\t */\n"; + print $indent ."\t".$pre . ucfirst( $content_type ) ." _value;\n"; + } + + if ( $bag['complex_type'] && !$bag['isAComplexType'] ) + { + $bag2 = $bag; + $bag2['attributes'] = array_merge( $meta[$bag['base_type']]['attributes'], $bag['attributes'] ); + printAttributes( $bag2, $typemeta, $indent, true ); + } + + if ( $_globals['accessorsAndMutators'] && ( $bag['useXMLNS'] || count($bag['attributes'])>0 || + count($bag['elements'])>0 ||( ($bag['content_type'] != '' || $bag['mixed']) && !$bag['abstract'] ) ) ) { + + //generate accessors and mutators for everything + print "\n". $indent ."public:\t//Accessors and Mutators\n"; + printAttributes( $bag, $typemeta, $indent, !$bag['isAComplexType'] ); + + $needsContents = false; + for( $i=0; $i 1); + $type = ''; + if ( isset( $bag['element_attrs'][ $bag['elements'][$i] ]['type'] ) && + isset( $meta[$bag['element_attrs'][ $bag['elements'][$i] ]['type']] ) ){ + + $type = $_globals['prefix'] . ucfirst( $bag['element_attrs'][ $bag['elements'][$i] ]['type'] ) . ($maxOccurs ? "_Array" : "Ref"); + } + else { + $type = $_globals['prefix'] . ucfirst( $bag['elements'][$i] ) . ($maxOccurs ? "_Array" : "Ref"); + } + $name = ucfirst($bag['elements'][$i]) . ($maxOccurs ? "_array" : ""); + if ( $maxOccurs ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $bag['elements'][$i] ." element array.\n"; + print $indent ."\t * @return Returns a reference to the array of ". $bag['elements'][$i] ." elements.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t". $type ." &get". $name ."() { return elem". $name ."; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $bag['elements'][$i] ." element array.\n"; + print $indent ."\t * @return Returns a constant reference to the array of ". $bag['elements'][$i] ." elements.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst ". $type ." &get". $name ."() const { return elem". $name ."; }\n"; + //print $indent ."\tvoid set". $name ."( ". $type ." *e". $name ." ) { elem". $name ." = *e". $name ."; }\n\n"; + } + else { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the ". $bag['elements'][$i] ." element.\n"; + print $indent ."\t * @return a daeSmartRef to the ". $bag['elements'][$i] ." element.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst ". $type ." get". $name ."() const { return elem". $name ."; }\n"; + //print $indent ."\tvoid set". $name ."( ". $type ." &e". $name ." ) { elem". $name ." = e". $name ."; }\n\n"; + } + + if ( isset( $meta[$bag['elements'][$i]] ) ) { + if( count( $meta[$bag['elements'][$i]]['substitutableWith']) > 0 ) { + $needsContents = true; + } + } + } + + if ( $bag['hasChoice'] || $needsContents || $bag['has_any'] ) + { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the _contents array.\n"; + print $indent ."\t * @return Returns a reference to the _contents element array.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tdaeElementRefArray &getContents() { return _contents; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the _contents array.\n"; + print $indent ."\t * @return Returns a constant reference to the _contents element array.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst daeElementRefArray &getContents() const { return _contents; }\n\n"; + } + + if ( ($bag['content_type'] != '' || $bag['mixed']) && !$bag['abstract'] ) + { + $type = $bag['content_type']; + if ( preg_match( "/xs\:/", $type ) ) { + $type = substr( $type, 3 ); + $pre = "xs"; + } + else { + $pre = $_globals['prefix']; + } + $baseStringTypes = "xsDateTime xsID xsNCName xsNMTOKEN xsName xsToken xsString"; + $baseType = $pre . ucfirst( $type ); + if ( isset( $typemeta[$type] ) ) { + $typeInfo = $typemeta[$type]; + while ( $typeInfo['base'] != '' && isset( $typemeta[$typeInfo['base']] ) ) { + $typeInfo = $typemeta[$typeInfo['base']]; + if ( preg_match( "/xs\:/", $typeInfo['type'] ) ) { + $baseType = "xs" . ucfirst( substr( $typeInfo['type'], 3 ) ); + } + else { + $baseType = $_globals['prefix'] . ucfirst( $typeInfo['type'] ); + } + } + } + //if ( !strcmp( $pre . ucfirst( $type ), $full_element_name ) ) { + if ( $bag['parent_meta']['inline_elements'] != NULL && array_key_exists( $type, $bag['parent_meta']['inline_elements'] ) ) { + $pre = '::' . $pre; + } + if ( (isset( $typemeta[$content_type] ) && $typemeta[$content_type]['isArray']) || $content_type == 'IDREFS' ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the _value array.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." reference of the _value array.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t".$pre . ucfirst( $type ) ." &getValue() { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the _value array.\n"; + print $indent ."\t * @return Returns a constant ". $pre . ucfirst( $type ) ." reference of the _value array.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst ".$pre . ucfirst( $type ) ." &getValue() const { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the _value array.\n"; + print $indent ."\t * @param val The new value for the _value array.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid setValue( const ". $pre . ucfirst( $type ) ." &val ) { _value = val; }\n\n"; + //print $indent ."\t _meta->getValueAttribute()->setIsValid(true); }\n\n"; + } + else if ( ucfirst($type) == 'AnyURI' ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the value of this element.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." of the value.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t".$pre . ucfirst( $type ) ." &getValue() { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the value of this element.\n"; + print $indent ."\t * @return Returns a constant ". $pre . ucfirst( $type ) ." of the value.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst ".$pre . ucfirst( $type ) ." &getValue() const { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the _value of this element.\n"; + print $indent ."\t * @param val The new value for this element.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid setValue( const ". $pre . ucfirst( $type ) ." &val ) { _value = val; }\n"; + // We add a setter that takes a plain string to help with backward compatibility + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the _value of this element.\n"; + print $indent ."\t * @param val The new value for this element.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid setValue( xsString val ) { _value = val; }\n\n"; + } + else if( ucfirst($type) == 'IDREF' ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the value of this element.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." of the value.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t".$pre . ucfirst( $type ) ." &getValue() { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the value of this element.\n"; + print $indent ."\t * @return Returns a constant ". $pre . ucfirst( $type ) ." of the value.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tconst ".$pre . ucfirst( $type ) ." &getValue() const { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the _value of this element.\n"; + print $indent ."\t * @param val The new value for this element.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid setValue( const ". $pre . ucfirst( $type ) ." &val ) { _value = val; }\n\n"; + //print $indent ."\t _meta->getValueAttribute()->setIsValid(true); }\n\n"; + } + else if ( strstr( $baseStringTypes, $baseType ) !== FALSE && count( $typemeta[$type]['enum'] ) == 0 ) { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the value of this element.\n"; + print $indent ."\t * @return Returns a ". $pre . ucfirst( $type ) ." of the value.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t".$pre . ucfirst( $type ) ." getValue() const { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the _value of this element.\n"; + print $indent ."\t * @param val The new value for this element.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid setValue( ". $pre . ucfirst( $type ) ." val ) { *(daeStringRef*)&_value = val; }\n\n"; + } + else { + //comment + print $indent ."\t/**\n". $indent ."\t * Gets the value of this element.\n"; + print $indent ."\t * @return a ". $pre . ucfirst( $type ) ." of the value.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\t".$pre . ucfirst( $type ) ." getValue() const { return _value; }\n"; + //comment + print $indent ."\t/**\n". $indent ."\t * Sets the _value of this element.\n"; + print $indent ."\t * @param val The new value for this element.\n"; + print $indent ."\t */\n"; + //code + print $indent ."\tvoid setValue( ". $pre . ucfirst( $type ) ." val ) { _value = val; }\n\n"; + //print $indent ."\t _meta->getValueAttribute()->setIsValid(true); }\n\n"; + } + } + } + + //CONSTRUCTORS + if ( !$bag['isAComplexType'] ) { + printConstructors( $full_element_name, $bag, $baseClasses, $indent ); + } + else { + printConstructors( $full_element_name ."_complexType", $bag, $baseClasses, $indent ); + + print $indent ."};\n\n"; + print $indent ."/**\n". $indent ." * An element of type ". $full_element_name ."_complexType.\n". $indent ." */\n"; + print $indent ."class ". $full_element_name ." : public daeElement, public ". $full_element_name ."_complexType\n"; + print $indent ."{\n"; + print $indent ."public:\n"; + print $indent ."\tvirtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::". strtoupper($bag['element_name']) ."; }\n"; + print $indent ."\tstatic daeInt ID() { return ". $_globals['typeID']++ ."; }\n"; + print $indent ."\tvirtual daeInt typeID() const { return ID(); }\n"; + + if ( $_globals['accessorsAndMutators'] && ( $bag['useXMLNS'] || count($bag['attributes'])>0 ) ) { + //generate accessors and mutators for everything + print "\n". $indent ."public:\t//Accessors and Mutators\n"; + printAttributes( $bag, $typemeta, $indent, true ); + } + + $dummy = array(); + printConstructors( $full_element_name, $dummy, array("daeElement", $full_element_name . "_complexType"), $indent ); + } + + print "\n".$indent ."public: // STATIC METHODS\n"; + print $indent ."\t/**\n". $indent ."\t * Creates an instance of this class and returns a daeElementRef referencing it.\n"; + print $indent ."\t * @return a daeElementRef referencing an instance of this object.\n". $indent ."\t */\n"; + print $indent ."\tstatic DLLSPEC ". $_globals['meta_prefix'] ."ElementRef create(DAE& dae);\n"; + print $indent ."\t/**\n". $indent ."\t * Creates a daeMetaElement object that describes this element in the meta object reflection framework."; + print "\n". $indent ."\t * If a daeMetaElement already exists it will return that instead of creating a new one. \n"; + print $indent ."\t * @return A daeMetaElement describing this COLLADA element.\n". $indent ."\t */\n"; + print $indent ."\tstatic DLLSPEC ". $_globals['meta_prefix'] ."MetaElement* registerElement(DAE& dae);\n"; + print $indent ."};\n\n"; diff --git a/codeGen/tpl/tpl-constants-cpp-file.php b/codeGen/tpl/tpl-constants-cpp-file.php new file mode 100644 index 0000000..433ca6b --- /dev/null +++ b/codeGen/tpl/tpl-constants-cpp-file.php @@ -0,0 +1,21 @@ + 0 ) { print "Wrote $_bytes bytes to file '$_file'\n"; } + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-constants-cpp.php b/codeGen/tpl/tpl-constants-cpp.php new file mode 100644 index 0000000..ef67f4b --- /dev/null +++ b/codeGen/tpl/tpl-constants-cpp.php @@ -0,0 +1,41 @@ + +#include + + $val ) { + if ( is_int($name) ) { + print $val; + continue; + } + print "DLLSPEC daeString ". $name ." = ". $val; + } + print "\n"; + + foreach ($_globals['elementTypes'] as $num => $val ) + { + print "DLLSPEC daeString COLLADA_TYPE_". getUniqueName($val, $_globals['elementTypes']) ." = \"". $val ."\";\n"; + } + print "\n"; + + foreach ($_globals['elementNames'] as $num => $val ) + { + print "DLLSPEC daeString COLLADA_ELEMENT_". getUniqueName($val, $_globals['elementNames']) ." = \"". $val ."\";\n"; + } +?> diff --git a/codeGen/tpl/tpl-constants-file.php b/codeGen/tpl/tpl-constants-file.php new file mode 100644 index 0000000..dd1bf44 --- /dev/null +++ b/codeGen/tpl/tpl-constants-file.php @@ -0,0 +1,21 @@ + 0 ) { print "Wrote $_bytes bytes to file '$_file'\n"; } + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-constants.php b/codeGen/tpl/tpl-constants.php new file mode 100644 index 0000000..3a85e00 --- /dev/null +++ b/codeGen/tpl/tpl-constants.php @@ -0,0 +1,47 @@ + +#ifndef __DOM_CONSTANTS_H__ +#define __DOM_CONSTANTS_H__ + +#include + + $val ) { + if ( is_int($name) ) { + print $val; + continue; + } + print "extern DLLSPEC daeString ". $name .";\n"; + } + print "\n"; + + foreach ($_globals['elementTypes'] as $num => $val ) + { + print "extern DLLSPEC daeString COLLADA_TYPE_". getUniqueName($val, $_globals['elementTypes']) .";\n"; + } + print "\n"; + + foreach ($_globals['elementNames'] as $num => $val ) + { + print "extern DLLSPEC daeString COLLADA_ELEMENT_". getUniqueName($val, $_globals['elementNames']) .";\n"; + } +?> + +#endif //__DOM_CONSTANTS_H__ + diff --git a/codeGen/tpl/tpl-cpp-body.php b/codeGen/tpl/tpl-cpp-body.php new file mode 100644 index 0000000..9524227 --- /dev/null +++ b/codeGen/tpl/tpl-cpp-body.php @@ -0,0 +1,30 @@ + +#include +#include </daeDom.h> +#include </> +#include </daeMetaCMPolicy.h> +#include </daeMetaSequence.h> +#include </daeMetaChoice.h> +#include </daeMetaGroup.h> +#include </daeMetaAny.h> +#include </daeMetaElementAttribute.h> + + + \ No newline at end of file diff --git a/codeGen/tpl/tpl-cpp-methods.php b/codeGen/tpl/tpl-cpp-methods.php new file mode 100644 index 0000000..7a533c1 --- /dev/null +++ b/codeGen/tpl/tpl-cpp-methods.php @@ -0,0 +1,467 @@ + $lm ) { + if ( !$lm['isAGroup'] && !$lm['isAComplexType'] && !$lm['abstract'] ) { + print "#include <". $_globals['prefix'] ."/". $_globals['prefix'] . ucfirst($nm).".h>\n"; + } + } + print "\n"; + }*/ + + if ( $scoped_element == "domCOLLADA" ) { + print "extern daeString COLLADA_VERSION;\n"; + print "extern daeString COLLADA_NAMESPACE;\n\n"; + } +?>ElementRef +::create(DAE& dae) +{ + Ref ref = new (dae); +attrXmlns.setContainer( (". $scoped_element ."*)ref );\n"; + } + foreach( $bag['attributes'] as $attr_name => & $a_list ) { + if ( $a_list['type'] == 'xs:anyURI' || $a_list['type'] == 'URIFragmentType' ) { + print "\tref->attr". ucfirst($attr_name) .".setContainer( (". $scoped_element ."*)ref );\n"; + } + } + if ( $bag['content_type'] == 'xs:anyURI' || $bag['content_type'] == 'URIFragmentType' ) { + print "\tref->_value.setContainer( (". $scoped_element ."*)ref );\n"; + } + if ( $scoped_element == "domCOLLADA" ) { + print "\tref->_meta = dae.getMeta(domCOLLADA::ID());\n"; + print "\tref->setAttribute(\"version\", COLLADA_VERSION );\n"; + print "\tref->setAttribute(\"xmlns\", COLLADA_NAMESPACE );\n"; + print "\tref->_meta = NULL;\n"; + } +?> + return ref; +} + + 0 ) { + //we have an addition to the content model - need to add a starting sequence + $tempArray[] = array( 'name' => 0, 'minOccurs' => 1, 'maxOccurs' => 1 ); + } + $tempArray = array_merge( $tempArray, $meta[$bag['base_type']]['content_model'] ); + array_pop( $tempArray ); //remove the last END token + $tempArray = array_merge( $tempArray, $bag['content_model'] ); + if ( count( $bag['content_model'] ) > 0 ) { + //we have an addition to the content model - need to add a starting sequence + $tempArray[] = array( 'name' => 5, 'minOccurs' => 1, 'maxOccurs' => 1 ); + } + $bag['content_model'] = $tempArray; + } + + for( $i=0; $i\n"; + } + } + } +?> + +MetaElement * +::registerElement(DAE& dae) +{ + MetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "" ); + meta->registerClass(::create); + +setIsTransparent( true );\n"; + } + if ( $bag['abstract'] ) { + print "\tmeta->setIsAbstract( true );\n"; + } + if ( isset( $bag['parent_meta'] ) ) { + print "\tmeta->setIsInnerClass( true );\n"; + } + + if ( count( $bag['elements'] ) > 0 || $bag['has_any'] ) + { + print "\tdaeMetaCMPolicy *cm = NULL;\n"; + if ( !$bag['has_any'] ) { + print "\tdaeMetaElementAttribute *mea = NULL;\n"; + } + + $needsContents = false; + $cmTree = array(); + $currentCM = NULL; + $currentOrd = 0; + $level = 0; + $choiceNum = 0; + for( $i=0; $i 0 ) { + // $needsContents = true; + //} + + // !!!steveT Horrible hack here. For some reason the wrong value gets generated for + // the third parameter + if (strcmp($scoped_element, "domCamera::domOptics::domTechnique_common::domPerspective") == 0) + print "\tcm = new daeMetaSequence( meta, cm, 0, ". $cm['minOccurs'] .", ". $cm['maxOccurs'] ." );\n\n"; + else + print "\tcm = new daeMetaSequence( meta, cm, ". $currentOrd .", ". $cm['minOccurs'] .", ". $cm['maxOccurs'] ." );\n\n"; + + $level++; + $currentCM = array( 'cm' => $currentCM['cm'], 'ord' => $currentOrd ); + array_push( $cmTree, $currentCM ); + $currentCM = array( 'cm' => $cm, 'ord' => $currentOrd ); + $currentOrd = 0; + } + else if ( $cm['name'] == 1 ) //choice + { + print "\tcm = new daeMetaChoice( meta, cm, ". $choiceNum .", ". $currentOrd .", ". $cm['minOccurs'] .", ". $cm['maxOccurs'] ." );\n\n"; + $level++; + $needsContents = true; + $currentCM = array( 'cm' => $currentCM['cm'], 'ord' => $currentOrd ); + array_push( $cmTree, $currentCM ); + $currentCM = array( 'cm' => $cm, 'ord' => $currentOrd ); + $currentOrd = 0; + $choiceNum++; + } + else if ( $cm['name'] == 2 ) //group + { + $i++; //groups actually add two parts to the content model. The first is the group the second an element + $groupName = $bag['content_model'][$i]['name']; + $arrayOrNot = $bag['element_attrs'][ $groupName ]['maxOccurs']; + if ( $arrayOrNot == 'unbounded' || $arrayOrNot > 1 ) { + $arrayOrNot = true; + } + else { + $arrayOrNot = false; + } +?> + mea = new daeMetaElementAttribute( meta, cm, , , ); + mea->setName( "" ); + mea->setOffset( daeOffsetOf(,elem) ); + mea->setElementType( ::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, , , ) ); + + $currentCM['cm'], 'ord' => $currentOrd ); + array_push( $cmTree, $currentCM ); + $currentCM = array( 'cm' => $cm, 'ord' => $currentOrd ); + $currentOrd = 0; + } + else if ( $cm['name'] == 4 ) //any + { + $level++; + print "\tcm = new daeMetaAny( meta, cm, ". $currentOrd .", ". $cm['minOccurs'] .", ". $cm['maxOccurs'] ." );\n\n"; + if ( $currentCM['cm']['name'] == 0 ) { + $currentOrd++; + } + } + else if ( $cm['name'] == 5 ) //end + { + $level--; + if ( $level > 0 ) + { +?> + cm->setMaxOrdinal( = 0)? $currentOrd-1 : 0 ?> ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + 1 ) { + $arrayOrNot = true; + } + else { + $arrayOrNot = false; + } + $typeClass = $_globals['prefix'] . ucfirst( $cm['name'] ); + + if ( !in_array( $cm['name'], $bag['ref_elements'] ) && !$bag['complex_type'] ) { + $typeClass = $scoped_element ."::". $typeClass; + } + if ( isset( $bag['element_attrs'][ $cm['name'] ]['type'] ) && + isset( $meta[$bag['element_attrs'][ $cm['name'] ]['type']] ) ){ + + $typeClass = $_globals['prefix'] . ucfirst( $bag['element_attrs'][ $cm['name'] ]['type'] ); + } +?> + mea = new daeMetaElementAttribute( meta, cm, , , ); + mea->setName( "" ); + mea->setOffset( daeOffsetOf(,elem) ); + mea->setElementType( ::registerElement(dae) ); + cm->appendChild( mea ); + + + mea = new daeMetaElementAttribute( meta, cm, , , ); + mea->setName( "" ); + mea->setOffset( daeOffsetOf(,elem) ); + mea->setElementType( ::registerElement(dae) ); + cm->appendChild( mea ); + + + cm->setMaxOrdinal( = 0)? $currentOrd-1 : 0 ?> ); + meta->setCMRoot( cm ); +setAllowsAny( true );\n"; + } + + // For elements that allow more than one type of sub-element, _contents keeps an order for those sub-elements + if ( $bag['hasChoice'] || $needsContents ) { +?> + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(,_contents)); + meta->addContentsOrder(daeOffsetOf(,_contentsOrder)); + + 0 ) + { +?> + meta->addCMDataArray(daeOffsetOf(,_CMData), );getMeta(); + + if ( count( $typeMeta['enum'] ) > 0 && !$typeMeta['useConstStrings'] ) + { +?> + // ENUM: _type + daeAtomicType *type; + type = new daeEnumType; + type->_nameBindings.append("_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + + ((daeEnumType*)type)->_strings->append(""); + ((daeEnumType*)type)->_values->append(); + + // Add attribute: _value + { + + ma->setName( "_value" ); +setType( daeAtomicType::get(\"ListOfStrings\"));\n"; + // print "#else\n\t\tma->setType( daeAtomicType::get(\"ListOfInts\"));\n#endif\n"; + //} + //else { + print "\t\tma->setType( dae.getAtomicTypes().get(\"". $pre. ucfirst($content_type) ."\"));\n"; + //} +?> + ma->setOffset( daeOffsetOf( , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: xmlns + { + daeMetaAttribute* ma = new daeMetaAttribute; + ma->setName( "xmlns" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( , attrXmlns )); + ma->setContainer( meta ); + //ma->setIsRequired( true ); + meta->appendAttribute(ma); + } + $attr_attrs ) + { + $_type = $attr_attrs['type']; + $printType; + if ( preg_match( "/xs\:/", $_type ) ) { + $_type = 'xs' . ucfirst( substr( $_type, 3 ) ); + $printType = $_type; + } + else { + $printType = ucfirst( $_type ); + } +?> + + // Add attribute: + { + + ma->setName( "" ); + ma->setType( dae.getAtomicTypes().get("")); + ma->setOffset( daeOffsetOf( , attr )); + ma->setContainer( meta ); + ma->setDefaultString( ""); + ma->setIsRequired( ); + + meta->appendAttribute(ma); + } + + + meta->setElementSize(sizeof()); + meta->validate(); + + return meta; +} + + 0 ) + { + foreach( $_keys as $_k ) + { + $inner = $bag['inline_elements'][ $_k ]; + if ( !$inner['complex_type'] || $inner['isRestriction'] || $inner['isExtension'] ) { + print applyTemplate( 'CPP_METHODS', $inner ); + } + } + } +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-cpp-static.php b/codeGen/tpl/tpl-cpp-static.php new file mode 100644 index 0000000..011a41b --- /dev/null +++ b/codeGen/tpl/tpl-cpp-static.php @@ -0,0 +1,34 @@ + + 0 ) + { + foreach( $keys as $k ) + { + $inner = $bag['inline_elements'][ $k ]; + if ( !$inner['complex_type'] || $inner['isRestriction'] || $inner['isExtension'] ) { + print applyTemplate( 'CPP_STATIC', $inner ); + } + } + } +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-cpp.php b/codeGen/tpl/tpl-cpp.php new file mode 100644 index 0000000..c9c16df --- /dev/null +++ b/codeGen/tpl/tpl-cpp.php @@ -0,0 +1,21 @@ + 0 ) { print "Wrote $_bytes bytes to file '$_file'\n"; } + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-dot-h.php b/codeGen/tpl/tpl-dot-h.php new file mode 100644 index 0000000..0380627 --- /dev/null +++ b/codeGen/tpl/tpl-dot-h.php @@ -0,0 +1,33 @@ +#ifndef ___h__ +#define ___h__ + +#include +#include <Types.h> +#include <Elements.h> + + +class DAE; + + + +#endif diff --git a/codeGen/tpl/tpl-doxygen.php b/codeGen/tpl/tpl-doxygen.php new file mode 100644 index 0000000..73bc0e5 --- /dev/null +++ b/codeGen/tpl/tpl-doxygen.php @@ -0,0 +1,43 @@ + 0 ) +{ + if ( preg_match( "/(.{0,70}[^\s]*)(\s*)/", $_local_doc, $matches ) ) + { + // Print blocks of 70 chars thru the next word + print $indent ." * " . $matches[1] . "\n"; + + // Account for any newlines + /*$n_newlines = preg_match_all( "/\n/", $matches[2], $buf ); + if ( $n_newlines > 0 ) + { + for( $i=0; $i<$n_newlines; $i++ ) { print " * \n"; } + }*/ + + // Find more lines... + $_local_doc = substr( $_local_doc, strlen( $matches[0] ) ); + } +} + +print $indent ." */\n"; +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-elements-file.php b/codeGen/tpl/tpl-elements-file.php new file mode 100644 index 0000000..2c49d39 --- /dev/null +++ b/codeGen/tpl/tpl-elements-file.php @@ -0,0 +1,21 @@ + 0 ) { print "Wrote $_bytes bytes to file '$_file'\n"; } + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-elements.php b/codeGen/tpl/tpl-elements.php new file mode 100644 index 0000000..93af327 --- /dev/null +++ b/codeGen/tpl/tpl-elements.php @@ -0,0 +1,36 @@ + +#ifndef __DOM_ELEMENTS_H__ +#define __DOM_ELEMENTS_H__ + +#include </Types.h> + + $meta ) { + $full_element_name = $_globals['prefix'] . ucfirst( $name ); + print "class " . $full_element_name . ";\n\n"; + print "typedef daeSmartRef<". $full_element_name ."> ". $full_element_name ."Ref;\n"; + print "typedef daeTArray<". $full_element_name ."Ref> ". $full_element_name ."_Array;\n\n"; +} + +?> + +#endif //__DOM_ELEMENTS_H__ + diff --git a/codeGen/tpl/tpl-header.php b/codeGen/tpl/tpl-header.php new file mode 100644 index 0000000..fb412ea --- /dev/null +++ b/codeGen/tpl/tpl-header.php @@ -0,0 +1,21 @@ + 0 ) { print "dom/" . $_globals['prefix'] . ucfirst( $bag['element_name'] ) . ".obj "; } + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-include-list.php b/codeGen/tpl/tpl-include-list.php new file mode 100644 index 0000000..a68c5ad --- /dev/null +++ b/codeGen/tpl/tpl-include-list.php @@ -0,0 +1,18 @@ +/* --- DO NOT REMOVE THIS LINE --- SNIP_SDK_COPYRIGHT_C_BEGIN + * --- DO NOT REMOVE THIS LINE --- SNIP_SDK_COPYRIGHT_C_END */ + + + diff --git a/codeGen/tpl/tpl-includes.php b/codeGen/tpl/tpl-includes.php new file mode 100644 index 0000000..c373257 --- /dev/null +++ b/codeGen/tpl/tpl-includes.php @@ -0,0 +1,37 @@ +"; + $includeList[] = $_globals['prefix'] . ucfirst( $bag['ref_elements'][$i] ); + } + } + if ( count( $inc ) ) { //only print if you have to include something + print implode( "\n", $inc ) . "\n"; + } + + $keys = array_keys( $bag['inline_elements'] ); + if ( count( $keys ) > 0 ) + { + foreach( $keys as $k ) + { + print applyTemplate( 'INCLUDES', $bag['inline_elements'][ $k ] ); + } + } +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-types-cpp-file.php b/codeGen/tpl/tpl-types-cpp-file.php new file mode 100644 index 0000000..ec4eaac --- /dev/null +++ b/codeGen/tpl/tpl-types-cpp-file.php @@ -0,0 +1,21 @@ + 0 ) { print "Wrote $_bytes bytes to file '$_file'\n"; } + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-types-cpp.php b/codeGen/tpl/tpl-types-cpp.php new file mode 100644 index 0000000..211785d --- /dev/null +++ b/codeGen/tpl/tpl-types-cpp.php @@ -0,0 +1,141 @@ + +#include +#include <Types.h> +#include +#include + + $meta ) +{ + if ( $meta['isComplex'] ) { + ?>#include <.h> + + +void registerDomTypes(DAE& dae) +{ + daeAtomicType* type = NULL; + daeAtomicTypeList& atomicTypes = dae.getAtomicTypes(); + + $meta ) +{ + if ( count( $meta['enum'] ) > 0 && !$meta['useConstStrings'] ) + {?> + // ENUM: + + type = new daeEnumType(dae); + type->_nameBindings.append(""); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + + ((daeEnumType*)type)->_strings->append(""); + + ((daeEnumType*)type)->_values->append(); + + // COMPLEX TYPE: + + type = new daeElementRefType(dae); + type->_nameBindings.append(""); + atomicTypes.append( type ); + + + // ENUM: + + type = new daeEnumType; + type->_nameBindings.append(""); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + 0 ) { + foreach( $bag[$typeName]['enum'] as $val ) + {?> + ((daeEnumType*)type)->_strings->append(""); + + ((daeEnumType*)type)->_values->append(); + 0 ? $meta['base'] : $meta['listType']; + if ( preg_match( "/xs\:/", $base ) ) { + $base = 'xs' . ucfirst( substr( $base, 3 ) ); + } + else { + $base = ucfirst( $base ); + } + ?> + // TYPEDEF: + //check if this type has an existing base + + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append(""); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append(""); + } + + +} + +daeMetaElement* registerDomElements(DAE& dae) +{ + daeMetaElement* meta = domCOLLADA::registerElement(dae); + // Enable tracking of top level object by default + meta->setIsTrackableForQueries(true); + return meta; +} + +daeInt DLLSPEC colladaTypeCount() { + return */ print ($_globals['typeID']+1); ?>; +} diff --git a/codeGen/tpl/tpl-types-header-file.php b/codeGen/tpl/tpl-types-header-file.php new file mode 100644 index 0000000..9dd8ef4 --- /dev/null +++ b/codeGen/tpl/tpl-types-header-file.php @@ -0,0 +1,21 @@ + 0 ) { print "Wrote $_bytes bytes to file '$_file'\n"; } + +?> \ No newline at end of file diff --git a/codeGen/tpl/tpl-types-header.php b/codeGen/tpl/tpl-types-header.php new file mode 100644 index 0000000..56a854c --- /dev/null +++ b/codeGen/tpl/tpl-types-header.php @@ -0,0 +1,177 @@ + +#ifndef __DOM_TYPES_H__ +#define __DOM_TYPES_H__ + +#include + + $meta ) +{ + if ( count( $meta['enum'] ) == 0 && !$meta['isComplex'] ) { + if ( strlen( $meta['base'] ) > 0 ) { //has a base type + if ( preg_match( "/xs\:/", $meta['base'] ) ) { + $base = substr( $meta['base'], 3 ); + $pre = 'xs'; + } + else { + $base = $meta['base']; + $pre = $_globals['prefix']; + } + if ( isset( $meta['documentation']['en'] ) ) { + print applyTemplate( 'DOXYGEN', $meta['documentation']['en'] ); + } + //special casing URIFragmentType to be a xsURI for automatic resolution + if ( $type == 'URIFragmentType' ) { + print "typedef xsAnyURI\t\tdomURIFragmentType;\n"; + } + else { + print "typedef " . $pre . ucfirst($base) . "\t\t" . $_globals['prefix'] . ucfirst( $type ) . ";\n"; + } + } + elseif ( strlen( $meta['listType'] ) > 0 ) { //is a list type + if ( isset( $meta['documentation']['en'] ) ) { + print applyTemplate( 'DOXYGEN', $meta['documentation']['en'] ); + } + if ( preg_match( "/xs\:/", $meta['listType'] ) ) { + $lt = substr( $meta['listType'], 3 ); + print "typedef xs" . ucfirst($lt) . "Array\t\t" . $_globals['prefix'] . ucfirst( $type ) . ";\n"; + } + else { + $lt = $meta['listType']; + print "typedef daeTArray<" . $_globals['prefix'] . ucfirst($lt) . ">\t\t" . $_globals['prefix'] . ucfirst( $type ) . ";\n"; + } + } + } +} + +print "\n"; + +//ENUMS +foreach( $bag as $type => $meta ) +{ + if ( count( $meta['enum'] ) > 0 ) + { + if ( !$meta['useConstStrings'] ) { + //Decided to name mangle the enum constants so they are more descriptive and avoid collisions + if ( isset( $meta['documentation']['en'] ) ) { + print applyTemplate( 'DOXYGEN', $meta['documentation']['en'] ); + } + print "enum " . $_globals['prefix'] . ucfirst( $type ) . " {\n"; + for( $i = 0; $i < count( $meta['enum'] ); $i++ ) { + $val = $meta['enum'][$i]; + $val = str_replace( '.', '_', $val ); + print "\t" . strtoupper( $type ) . "_" . $val; + if ( isset( $meta['enum_value'][$i] ) ) { + print " = ". $meta['enum_value'][$i]; + } + //else if ($i==0) { + // print " = 1"; + //} + print ","; + if ( isset( $meta['enum_documentation'][$i] ) ) { + print "\t\t/**< ". $meta['enum_documentation'][$i] ." */"; + } + print "\n"; + } + $cnt = count($meta['enum']); + //if ( !isset($meta['enum_value'][0]) ) { + // $cnt++; + //} + print "\t". strtoupper( $type ) . "_COUNT = ". $cnt; + print "\n};\n\n"; + } + else { + for( $i = 0; $i < count( $meta['enum'] ); $i++ ) { + if ( isset( $meta['enum_documentation'][$i] ) ) { + $_globals['constStrings'][] = "/**\n * ". $meta['enum_documentation'][$i] ."\n */\n"; + } + $conststrnm = strtoupper( $type ) . "_" . $meta['enum'][$i]; + $conststr = "\"". $meta['enum'][$i] ."\";\n"; + $_globals['constStrings'][$conststrnm] = $conststr; + } + $_globals['constStrings'][] = "\n"; + } + } +} + +//UNIONS +foreach( $bag as $type => & $meta ) +{ + if ( $meta['union_type'] ) + { + if ( isset( $meta['documentation']['en'] ) ) { + print applyTemplate( 'DOXYGEN', $meta['documentation']['en'] ); + } + print "enum " . $_globals['prefix'] . ucfirst( $type ) . " {\n"; + + //tokenize memberTypes string + $types = explode( ' ', $meta['union_members'] ); + //look up the members + $cnt = 1; + foreach ( $types as $typeName ) { + if ( isset( $bag[$typeName] ) && count($bag[$typeName]['enum']) > 0 ) { + //print all of their enum children + for( $i = 0; $i < count( $bag[$typeName]['enum'] ); $i++ ) { + $val = $bag[$typeName]['enum'][$i]; + $val = str_replace( '.', '_', $val ); + if ( in_array( $val, $meta['enum'] ) ) { + continue; + } + $meta['enum'][] = $val; + print "\t" . strtoupper( $type ) . "_" . $val; + if ( isset( $bag[$typeName]['enum_value'][$i] ) ) { + print " = ". $bag[$typeName]['enum_value'][$i]; + } + else if ($i==0) { + print " = 1"; + } + print ","; + if ( isset( $bag[$typeName]['enum_documentation'][$i] ) ) { + print "\t\t/**< ". $bag[$typeName]['enum_documentation'][$i] ." */"; + } + print "\n"; + $cnt++; + } + } + } + print "\t". strtoupper( $type ) . "_COUNT = ". $cnt; + print "\n};\n\n"; + } +} + +?> +//Element Type Enum +namespace COLLADA_TYPE +{ + const int + NO_TYPE = 0, + ANY = 1 $val ) + print ",\n\t\t". getUniqueName($val, $_globals['elementTypes']) ." = ". ($num+2); + print ";" +?> + +} + +// Returns the total number of schema types/dom* classes +daeInt DLLSPEC colladaTypeCount(); + +#endif diff --git a/external-libs/boost/boost/assert.hpp b/external-libs/boost/boost/assert.hpp new file mode 100644 index 0000000..c227f17 --- /dev/null +++ b/external-libs/boost/boost/assert.hpp @@ -0,0 +1,50 @@ +// +// boost/assert.hpp - BOOST_ASSERT(expr) +// +// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. +// Copyright (c) 2007 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// Note: There are no include guards. This is intentional. +// +// See http://www.boost.org/libs/utility/assert.html for documentation. +// + +#undef BOOST_ASSERT + +#if defined(BOOST_DISABLE_ASSERTS) + +# define BOOST_ASSERT(expr) ((void)0) + +#elif defined(BOOST_ENABLE_ASSERT_HANDLER) + +#include + +namespace boost +{ + +void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined + +} // namespace boost + +#define BOOST_ASSERT(expr) ((expr)? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) + +#else +# include // .h to support old libraries w/o - effect is the same +# define BOOST_ASSERT(expr) assert(expr) +#endif + +#undef BOOST_VERIFY + +#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) ) + +# define BOOST_VERIFY(expr) ((void)(expr)) + +#else + +# define BOOST_VERIFY(expr) BOOST_ASSERT(expr) + +#endif diff --git a/external-libs/boost/boost/cerrno.hpp b/external-libs/boost/boost/cerrno.hpp new file mode 100644 index 0000000..6f26698 --- /dev/null +++ b/external-libs/boost/boost/cerrno.hpp @@ -0,0 +1,331 @@ +// Boost cerrno.hpp header -------------------------------------------------// + +// Copyright Beman Dawes 2005. +// Use, modification, and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/system + +#ifndef BOOST_CERRNO_HPP +#define BOOST_CERRNO_HPP + +#include + +// supply errno values likely to be missing, particularly on Windows + +#ifndef EAFNOSUPPORT +#define EAFNOSUPPORT 9901 +#endif + +#ifndef EADDRINUSE +#define EADDRINUSE 9902 +#endif + +#ifndef EADDRNOTAVAIL +#define EADDRNOTAVAIL 9903 +#endif + +#ifndef EISCONN +#define EISCONN 9904 +#endif + +#ifndef EBADMSG +#define EBADMSG 9905 +#endif + +#ifndef ECONNABORTED +#define ECONNABORTED 9906 +#endif + +#ifndef EALREADY +#define EALREADY 9907 +#endif + +#ifndef ECONNREFUSED +#define ECONNREFUSED 9908 +#endif + +#ifndef ECONNRESET +#define ECONNRESET 9909 +#endif + +#ifndef EDESTADDRREQ +#define EDESTADDRREQ 9910 +#endif + +#ifndef EHOSTUNREACH +#define EHOSTUNREACH 9911 +#endif + +#ifndef EIDRM +#define EIDRM 9912 +#endif + +#ifndef EMSGSIZE +#define EMSGSIZE 9913 +#endif + +#ifndef ENETDOWN +#define ENETDOWN 9914 +#endif + +#ifndef ENETRESET +#define ENETRESET 9915 +#endif + +#ifndef ENETUNREACH +#define ENETUNREACH 9916 +#endif + +#ifndef ENOBUFS +#define ENOBUFS 9917 +#endif + +#ifndef ENOLINK +#define ENOLINK 9918 +#endif + +#ifndef ENODATA +#define ENODATA 9919 +#endif + +#ifndef ENOMSG +#define ENOMSG 9920 +#endif + +#ifndef ENOPROTOOPT +#define ENOPROTOOPT 9921 +#endif + +#ifndef ENOSR +#define ENOSR 9922 +#endif + +#ifndef ENOTSOCK +#define ENOTSOCK 9923 +#endif + +#ifndef ENOSTR +#define ENOSTR 9924 +#endif + +#ifndef ENOTCONN +#define ENOTCONN 9925 +#endif + +#ifndef ENOTSUP +#define ENOTSUP 9926 +#endif + +#ifndef ECANCELED +#define ECANCELED 9927 +#endif + +#ifndef EINPROGRESS +#define EINPROGRESS 9928 +#endif + +#ifndef EOPNOTSUPP +#define EOPNOTSUPP 9929 +#endif + +#ifndef EWOULDBLOCK +#define EWOULDBLOCK 9930 +#endif + +#ifndef EOWNERDEAD +#define EOWNERDEAD 9931 +#endif + +#ifndef EPROTO +#define EPROTO 9932 +#endif + +#ifndef EPROTONOSUPPORT +#define EPROTONOSUPPORT 9933 +#endif + +#ifndef ENOTRECOVERABLE +#define ENOTRECOVERABLE 9934 +#endif + +#ifndef ETIME +#define ETIME 9935 +#endif + +#ifndef ETXTBSY +#define ETXTBSY 9936 +#endif + +#ifndef ETIMEDOUT +#define ETIMEDOUT 9938 +#endif + +#ifndef ELOOP +#define ELOOP 9939 +#endif + +#ifndef EOVERFLOW +#define EOVERFLOW 9940 +#endif + +#ifndef EPROTOTYPE +#define EPROTOTYPE 9941 +#endif + +#ifndef ENOSYS +#define ENOSYS 9942 +#endif + +#ifndef EINVAL +#define EINVAL 9943 +#endif + +#ifndef ERANGE +#define ERANGE 9944 +#endif + +#ifndef EILSEQ +#define EILSEQ 9945 +#endif + +// Windows Mobile doesn't appear to define these: + +#ifndef E2BIG +#define E2BIG 9946 +#endif + +#ifndef EDOM +#define EDOM 9947 +#endif + +#ifndef EFAULT +#define EFAULT 9948 +#endif + +#ifndef EBADF +#define EBADF 9949 +#endif + +#ifndef EPIPE +#define EPIPE 9950 +#endif + +#ifndef EXDEV +#define EXDEV 9951 +#endif + +#ifndef EBUSY +#define EBUSY 9952 +#endif + +#ifndef ENOTEMPTY +#define ENOTEMPTY 9953 +#endif + +#ifndef ENOEXEC +#define ENOEXEC 9954 +#endif + +#ifndef EEXIST +#define EEXIST 9955 +#endif + +#ifndef EFBIG +#define EFBIG 9956 +#endif + +#ifndef ENAMETOOLONG +#define ENAMETOOLONG 9957 +#endif + +#ifndef ENOTTY +#define ENOTTY 9958 +#endif + +#ifndef EINTR +#define EINTR 9959 +#endif + +#ifndef ESPIPE +#define ESPIPE 9960 +#endif + +#ifndef EIO +#define EIO 9961 +#endif + +#ifndef EISDIR +#define EISDIR 9962 +#endif + +#ifndef ECHILD +#define ECHILD 9963 +#endif + +#ifndef ENOLCK +#define ENOLCK 9964 +#endif + +#ifndef ENOSPC +#define ENOSPC 9965 +#endif + +#ifndef ENXIO +#define ENXIO 9966 +#endif + +#ifndef ENODEV +#define ENODEV 9967 +#endif + +#ifndef ENOENT +#define ENOENT 9968 +#endif + +#ifndef ESRCH +#define ESRCH 9969 +#endif + +#ifndef ENOTDIR +#define ENOTDIR 9970 +#endif + +#ifndef ENOMEM +#define ENOMEM 9971 +#endif + +#ifndef EPERM +#define EPERM 9972 +#endif + +#ifndef EACCES +#define EACCES 9973 +#endif + +#ifndef EROFS +#define EROFS 9974 +#endif + +#ifndef EDEADLK +#define EDEADLK 9975 +#endif + +#ifndef EAGAIN +#define EAGAIN 9976 +#endif + +#ifndef ENFILE +#define ENFILE 9977 +#endif + +#ifndef EMFILE +#define EMFILE 9978 +#endif + +#ifndef EMLINK +#define EMLINK 9979 +#endif + +#endif // include guard diff --git a/external-libs/boost/boost/checked_delete.hpp b/external-libs/boost/boost/checked_delete.hpp new file mode 100644 index 0000000..9bb84e8 --- /dev/null +++ b/external-libs/boost/boost/checked_delete.hpp @@ -0,0 +1,69 @@ +#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED +#define BOOST_CHECKED_DELETE_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// boost/checked_delete.hpp +// +// Copyright (c) 2002, 2003 Peter Dimov +// Copyright (c) 2003 Daniel Frey +// Copyright (c) 2003 Howard Hinnant +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/utility/checked_delete.html for documentation. +// + +namespace boost +{ + +// verify that types are complete for increased safety + +template inline void checked_delete(T * x) +{ + // intentionally complex - simplification causes regressions + typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; + (void) sizeof(type_must_be_complete); + delete x; +} + +template inline void checked_array_delete(T * x) +{ + typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; + (void) sizeof(type_must_be_complete); + delete [] x; +} + +template struct checked_deleter +{ + typedef void result_type; + typedef T * argument_type; + + void operator()(T * x) const + { + // boost:: disables ADL + boost::checked_delete(x); + } +}; + +template struct checked_array_deleter +{ + typedef void result_type; + typedef T * argument_type; + + void operator()(T * x) const + { + boost::checked_array_delete(x); + } +}; + +} // namespace boost + +#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED diff --git a/external-libs/boost/boost/config.hpp b/external-libs/boost/boost/config.hpp new file mode 100644 index 0000000..055a278 --- /dev/null +++ b/external-libs/boost/boost/config.hpp @@ -0,0 +1,70 @@ +// Boost config.hpp configuration header file ------------------------------// + +// (C) Copyright John Maddock 2002. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for most recent version. + +// Boost config.hpp policy and rationale documentation has been moved to +// http://www.boost.org/libs/config +// +// CAUTION: This file is intended to be completely stable - +// DO NOT MODIFY THIS FILE! +// + +#ifndef BOOST_CONFIG_HPP +#define BOOST_CONFIG_HPP + +// if we don't have a user config, then use the default location: +#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG) +# define BOOST_USER_CONFIG +#endif +// include it first: +#ifdef BOOST_USER_CONFIG +# include BOOST_USER_CONFIG +#endif + +// if we don't have a compiler config set, try and find one: +#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG) +# include +#endif +// if we have a compiler config, include it now: +#ifdef BOOST_COMPILER_CONFIG +# include BOOST_COMPILER_CONFIG +#endif + +// if we don't have a std library config set, try and find one: +#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) +# include +#endif +// if we have a std library config, include it now: +#ifdef BOOST_STDLIB_CONFIG +# include BOOST_STDLIB_CONFIG +#endif + +// if we don't have a platform config set, try and find one: +#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG) +# include +#endif +// if we have a platform config, include it now: +#ifdef BOOST_PLATFORM_CONFIG +# include BOOST_PLATFORM_CONFIG +#endif + +// get config suffix code: +#include + +#endif // BOOST_CONFIG_HPP + + + + + + + + + + + diff --git a/external-libs/boost/boost/config/abi/msvc_prefix.hpp b/external-libs/boost/boost/config/abi/msvc_prefix.hpp new file mode 100644 index 0000000..3d3905c --- /dev/null +++ b/external-libs/boost/boost/config/abi/msvc_prefix.hpp @@ -0,0 +1,8 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#pragma pack(push,8) + + diff --git a/external-libs/boost/boost/config/abi/msvc_suffix.hpp b/external-libs/boost/boost/config/abi/msvc_suffix.hpp new file mode 100644 index 0000000..a64d783 --- /dev/null +++ b/external-libs/boost/boost/config/abi/msvc_suffix.hpp @@ -0,0 +1,8 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#pragma pack(pop) + + diff --git a/external-libs/boost/boost/config/abi_prefix.hpp b/external-libs/boost/boost/config/abi_prefix.hpp new file mode 100644 index 0000000..a785cff --- /dev/null +++ b/external-libs/boost/boost/config/abi_prefix.hpp @@ -0,0 +1,25 @@ +// abi_prefix header -------------------------------------------------------// + +// Copyright John Maddock 2003 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). + +#ifndef BOOST_CONFIG_ABI_PREFIX_HPP +# define BOOST_CONFIG_ABI_PREFIX_HPP +#else +# error double inclusion of header boost/config/abi_prefix.hpp is an error +#endif + +#include + +// this must occur after all other includes and before any code appears: +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +#if defined( __BORLANDC__ ) +#pragma nopushoptwarn +#endif + diff --git a/external-libs/boost/boost/config/abi_suffix.hpp b/external-libs/boost/boost/config/abi_suffix.hpp new file mode 100644 index 0000000..d49417a --- /dev/null +++ b/external-libs/boost/boost/config/abi_suffix.hpp @@ -0,0 +1,26 @@ +// abi_sufffix header -------------------------------------------------------// + +// Copyright John Maddock 2003 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). + +// This header should be #included AFTER code that was preceded by a #include +// . + +#ifndef BOOST_CONFIG_ABI_PREFIX_HPP +# error Header boost/config/abi_prefix.hpp must only be used after boost/config/abi_prefix.hpp +#else +# undef BOOST_CONFIG_ABI_PREFIX_HPP +#endif + +// the suffix header occurs after all of our code: +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#if defined( __BORLANDC__ ) +#pragma nopushoptwarn +#endif + diff --git a/external-libs/boost/boost/config/auto_link.hpp b/external-libs/boost/boost/config/auto_link.hpp new file mode 100644 index 0000000..df58d4f --- /dev/null +++ b/external-libs/boost/boost/config/auto_link.hpp @@ -0,0 +1,368 @@ +// (C) Copyright John Maddock 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + /* + * LOCATION: see http://www.boost.org for most recent version. + * FILE auto_link.hpp + * VERSION see + * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers. + */ + +/************************************************************************* + +USAGE: +~~~~~~ + +Before including this header you must define one or more of define the following macros: + +BOOST_LIB_NAME: Required: A string containing the basename of the library, + for example boost_regex. +BOOST_LIB_TOOLSET: Optional: the base name of the toolset. +BOOST_DYN_LINK: Optional: when set link to dll rather than static library. +BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name + of the library selected (useful for debugging). +BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib, + rather than a mangled-name version. + +These macros will be undef'ed at the end of the header, further this header +has no include guards - so be sure to include it only once from your library! + +Algorithm: +~~~~~~~~~~ + +Libraries for Borland and Microsoft compilers are automatically +selected here, the name of the lib is selected according to the following +formula: + +BOOST_LIB_PREFIX + + BOOST_LIB_NAME + + "_" + + BOOST_LIB_TOOLSET + + BOOST_LIB_THREAD_OPT + + BOOST_LIB_RT_OPT + "-" + + BOOST_LIB_VERSION + +These are defined as: + +BOOST_LIB_PREFIX: "lib" for static libraries otherwise "". + +BOOST_LIB_NAME: The base name of the lib ( for example boost_regex). + +BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc). + +BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. + +BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used, + contains one or more of the following letters after + a hiphen: + + s static runtime (dynamic if not present). + d debug build (release if not present). + g debug/diagnostic runtime (release if not present). + p STLPort Build. + +BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. + + +***************************************************************************/ + +#ifdef __cplusplus +# ifndef BOOST_CONFIG_HPP +# include +# endif +#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) +// +// C language compatability (no, honestly) +// +# define BOOST_MSVC _MSC_VER +# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) +# define BOOST_DO_STRINGIZE(X) #X +#endif +// +// Only include what follows for known and supported compilers: +// +#if defined(BOOST_MSVC) \ + || defined(__BORLANDC__) \ + || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ + || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) + +#ifndef BOOST_VERSION_HPP +# include +#endif + +#ifndef BOOST_LIB_NAME +# error "Macro BOOST_LIB_NAME not set (internal error)" +#endif + +// +// error check: +// +#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG) +# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors") +# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes") +# error "Incompatible build options" +#endif +// +// select toolset if not defined already: +// +#ifndef BOOST_LIB_TOOLSET +// Note: no compilers before 1200 are supported +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) + +# ifdef UNDER_CE + // vc6: +# define BOOST_LIB_TOOLSET "evc4" +# else + // vc6: +# define BOOST_LIB_TOOLSET "vc6" +# endif + +#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300) + + // vc7: +# define BOOST_LIB_TOOLSET "vc7" + +#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310) + + // vc71: +# define BOOST_LIB_TOOLSET "vc71" + +#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400) + + // vc80: +# define BOOST_LIB_TOOLSET "vc80" + +#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1500) + + // vc90: +# define BOOST_LIB_TOOLSET "vc90" + +#elif defined(__BORLANDC__) + + // CBuilder 6: +# define BOOST_LIB_TOOLSET "bcb" + +#elif defined(__ICL) + + // Intel C++, no version number: +# define BOOST_LIB_TOOLSET "iw" + +#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) + + // Metrowerks CodeWarrior 8.x +# define BOOST_LIB_TOOLSET "cw8" + +#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) + + // Metrowerks CodeWarrior 9.x +# define BOOST_LIB_TOOLSET "cw9" + +#endif +#endif // BOOST_LIB_TOOLSET + +// +// select thread opt: +// +#if defined(_MT) || defined(__MT__) +# define BOOST_LIB_THREAD_OPT "-mt" +#else +# define BOOST_LIB_THREAD_OPT +#endif + +#if defined(_MSC_VER) || defined(__MWERKS__) + +# ifdef _DLL + +# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-gdp" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-gdp" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-p" +# endif + +# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-gdpn" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-gdpn" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-pn" +# endif + +# else + +# if defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-gd" +# else +# define BOOST_LIB_RT_OPT +# endif + +# endif + +# else + +# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-sgdp" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-sgdp" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-sp" +# endif + +# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) + +# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) +# define BOOST_LIB_RT_OPT "-sgdpn" +# elif defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-sgdpn" +# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") +# error "Build options aren't compatible with pre-built libraries" +# else +# define BOOST_LIB_RT_OPT "-spn" +# endif + +# else + +# if defined(_DEBUG) +# define BOOST_LIB_RT_OPT "-sgd" +# else +# define BOOST_LIB_RT_OPT "-s" +# endif + +# endif + +# endif + +#elif defined(__BORLANDC__) + +// +// figure out whether we want the debug builds or not: +// +#if __BORLANDC__ > 0x561 +#pragma defineonoption BOOST_BORLAND_DEBUG -v +#endif +// +// sanity check: +// +#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) +#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form" +#endif + +# ifdef _RTLDLL + +# ifdef BOOST_BORLAND_DEBUG +# define BOOST_LIB_RT_OPT "-d" +# else +# define BOOST_LIB_RT_OPT +# endif + +# else + +# ifdef BOOST_BORLAND_DEBUG +# define BOOST_LIB_RT_OPT "-sd" +# else +# define BOOST_LIB_RT_OPT "-s" +# endif + +# endif + +#endif + +// +// select linkage opt: +// +#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK) +# define BOOST_LIB_PREFIX +#elif defined(BOOST_DYN_LINK) +# error "Mixing a dll boost library with a static runtime is a really bad idea..." +#else +# define BOOST_LIB_PREFIX "lib" +#endif + +// +// now include the lib: +// +#if defined(BOOST_LIB_NAME) \ + && defined(BOOST_LIB_PREFIX) \ + && defined(BOOST_LIB_TOOLSET) \ + && defined(BOOST_LIB_THREAD_OPT) \ + && defined(BOOST_LIB_RT_OPT) \ + && defined(BOOST_LIB_VERSION) + +#ifndef BOOST_AUTO_LINK_NOMANGLE +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib") +# ifdef BOOST_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib") +# endif +#else +# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +# ifdef BOOST_LIB_DIAGNOSTIC +# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +# endif +#endif + +#else +# error "some required macros where not defined (internal logic error)." +#endif + + +#endif // _MSC_VER || __BORLANDC__ + +// +// finally undef any macros we may have set: +// +#ifdef BOOST_LIB_PREFIX +# undef BOOST_LIB_PREFIX +#endif +#if defined(BOOST_LIB_NAME) +# undef BOOST_LIB_NAME +#endif +// Don't undef this one: it can be set by the user and should be the +// same for all libraries: +//#if defined(BOOST_LIB_TOOLSET) +//# undef BOOST_LIB_TOOLSET +//#endif +#if defined(BOOST_LIB_THREAD_OPT) +# undef BOOST_LIB_THREAD_OPT +#endif +#if defined(BOOST_LIB_RT_OPT) +# undef BOOST_LIB_RT_OPT +#endif +#if defined(BOOST_LIB_LINK_OPT) +# undef BOOST_LIB_LINK_OPT +#endif +#if defined(BOOST_LIB_DEBUG_OPT) +# undef BOOST_LIB_DEBUG_OPT +#endif +#if defined(BOOST_DYN_LINK) +# undef BOOST_DYN_LINK +#endif +#if defined(BOOST_AUTO_LINK_NOMANGLE) +# undef BOOST_AUTO_LINK_NOMANGLE +#endif + + + + + + + + + + + diff --git a/external-libs/boost/boost/config/compiler/gcc.hpp b/external-libs/boost/boost/config/compiler/gcc.hpp new file mode 100644 index 0000000..17895dc --- /dev/null +++ b/external-libs/boost/boost/config/compiler/gcc.hpp @@ -0,0 +1,149 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Jens Maurer 2001 - 2002. +// (C) Copyright Beman Dawes 2001 - 2003. +// (C) Copyright Douglas Gregor 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Synge Todo 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// GNU C++ compiler setup: + +#if __GNUC__ < 3 +# if __GNUC_MINOR__ == 91 + // egcs 1.1 won't parse shared_ptr.hpp without this: +# define BOOST_NO_AUTO_PTR +# endif +# if __GNUC_MINOR__ < 95 + // + // Prior to gcc 2.95 member templates only partly + // work - define BOOST_MSVC6_MEMBER_TEMPLATES + // instead since inline member templates mostly work. + // +# define BOOST_NO_MEMBER_TEMPLATES +# if __GNUC_MINOR__ >= 9 +# define BOOST_MSVC6_MEMBER_TEMPLATES +# endif +# endif + +# if __GNUC_MINOR__ < 96 +# define BOOST_NO_SFINAE +# endif + +# if __GNUC_MINOR__ <= 97 +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# define BOOST_NO_OPERATORS_IN_NAMESPACE +# endif + +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +# define BOOST_NO_IS_ABSTRACT +#elif __GNUC__ == 3 +# if defined (__PATHSCALE__) +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +# define BOOST_NO_IS_ABSTRACT +# endif + // + // gcc-3.x problems: + // + // Bug specific to gcc 3.1 and 3.2: + // +# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) +# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS +# endif +# if __GNUC_MINOR__ < 4 +# define BOOST_NO_IS_ABSTRACT +# endif +#endif +#if __GNUC__ < 4 +// +// All problems to gcc-3.x and earlier here: +// +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif + +#ifndef __EXCEPTIONS +# define BOOST_NO_EXCEPTIONS +#endif + + +// +// Threading support: Turn this on unconditionally here (except for +// those platforms where we can know for sure). It will get turned off again +// later if no threading API is detected. +// +#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) +# define BOOST_HAS_THREADS +#endif + +// +// gcc has "long long" +// +#define BOOST_HAS_LONG_LONG + +// +// gcc implements the named return value optimization since version 3.1 +// +#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 ) +#define BOOST_HAS_NRVO +#endif + +// +// C++0x features +// +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2) +// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are +// passed on the command line, which in turn defines +// __GXX_EXPERIMENTAL_CXX0X__. +# if defined(__GXX_EXPERIMENTAL_CXX0X__) +# define BOOST_HAS_STATIC_ASSERT +# define BOOST_HAS_VARIADIC_TMPL +# define BOOST_HAS_RVALUE_REFS +# define BOOST_HAS_DECLTYPE +# endif +#endif + +// +// Potential C++0x features +// + +// Variadic templates compiler: +// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html +#ifdef __VARIADIC_TEMPLATES +# define BOOST_HAS_VARIADIC_TMPL +#endif + +// ConceptGCC compiler: +// http://www.generic-programming.org/software/ConceptGCC/ +#ifdef __GXX_CONCEPTS__ +# define BOOST_HAS_CONCEPTS +# define BOOST_COMPILER "ConceptGCC version " __VERSION__ +#endif + +#ifndef BOOST_COMPILER +# define BOOST_COMPILER "GNU C++ version " __VERSION__ +#endif + +// +// versions check: +// we don't know gcc prior to version 2.90: +#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90) +# error "Compiler not configured - please reconfigure" +#endif +// +// last known and checked version is 4.3 (Pre-release): +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 3)) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# else +// we don't emit warnings here anymore since there are no defect macros defined for +// gcc post 3.4, so any failures are gcc regressions... +//# warning "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + + diff --git a/external-libs/boost/boost/config/compiler/visualc.hpp b/external-libs/boost/boost/config/compiler/visualc.hpp new file mode 100644 index 0000000..198a733 --- /dev/null +++ b/external-libs/boost/boost/config/compiler/visualc.hpp @@ -0,0 +1,191 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright Aleksey Gurtovoy 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Beman Dawes 2002 - 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// Microsoft Visual C++ compiler setup: + +#define BOOST_MSVC _MSC_VER + +// turn off the warnings before we #include anything +#pragma warning( disable : 4503 ) // warning: decorated name length exceeded + +#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4 +# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info +# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS +# define BOOST_NO_VOID_RETURNS +# define BOOST_NO_EXCEPTION_STD_NAMESPACE + // disable min/max macro defines on vc6: + // +#endif + +#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0 + +# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za +# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS +# endif + +# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS +# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION +# define BOOST_NO_PRIVATE_IN_AGGREGATE +# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +# define BOOST_NO_INTEGRAL_INT64_T +# define BOOST_NO_DEDUCED_TYPENAME +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE + +// VC++ 6/7 has member templates but they have numerous problems including +// cases of silent failure, so for safety we define: +# define BOOST_NO_MEMBER_TEMPLATES +// For VC++ experts wishing to attempt workarounds, we define: +# define BOOST_MSVC6_MEMBER_TEMPLATES + +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# define BOOST_NO_CV_VOID_SPECIALIZATIONS +# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING +# define BOOST_NO_USING_TEMPLATE +# define BOOST_NO_SWPRINTF +# define BOOST_NO_TEMPLATE_TEMPLATES +# define BOOST_NO_SFINAE +# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS +# define BOOST_NO_IS_ABSTRACT +# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS +// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)? +# if (_MSC_VER > 1200) +# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS +# endif + +#endif + +#if _MSC_VER < 1400 +// although a conforming signature for swprint exists in VC7.1 +// it appears not to actually work: +# define BOOST_NO_SWPRINTF +#endif + +#if defined(UNDER_CE) +// Windows CE does not have a conforming signature for swprintf +# define BOOST_NO_SWPRINTF +#endif + +#if _MSC_VER <= 1400 // 1400 == VC++ 8.0 +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS +#endif + +#if _MSC_VER <= 1500 // 1500 == VC++ 9.0 +# define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif + +#ifndef _NATIVE_WCHAR_T_DEFINED +# define BOOST_NO_INTRINSIC_WCHAR_T +#endif + +#if defined(_WIN32_WCE) || defined(UNDER_CE) +# define BOOST_NO_THREADEX +# define BOOST_NO_GETSYSTEMTIMEASFILETIME +# define BOOST_NO_SWPRINTF +#endif + +// +// check for exception handling support: +#ifndef _CPPUNWIND +# define BOOST_NO_EXCEPTIONS +#endif + +// +// __int64 support: +// +#if (_MSC_VER >= 1200) +# define BOOST_HAS_MS_INT64 +#endif +#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS) +# define BOOST_HAS_LONG_LONG +#endif +#if (_MSC_VER >= 1400) && !defined(_DEBUG) +# define BOOST_HAS_NRVO +#endif +// +// disable Win32 API's if compiler extentions are +// turned off: +// +#ifndef _MSC_EXTENSIONS +# define BOOST_DISABLE_WIN32 +#endif + +// +// all versions support __declspec: +// +#define BOOST_HAS_DECLSPEC +// +// prefix and suffix headers: +// +#ifndef BOOST_ABI_PREFIX +# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp" +#endif +#ifndef BOOST_ABI_SUFFIX +# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp" +#endif + +// TODO: +// these things are mostly bogus. 1200 means version 12.0 of the compiler. The +// artificial versions assigned to them only refer to the versions of some IDE +// these compilers have been shipped with, and even that is not all of it. Some +// were shipped with freely downloadable SDKs, others as crosscompilers in eVC. +// IOW, you can't use these 'versions' in any sensible way. Sorry. +# if defined(UNDER_CE) +# if _MSC_VER < 1200 + // Note: these are so far off, they are not really supported +# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202 +# define BOOST_COMPILER_VERSION evc4.0 +# elif _MSC_VER == 1400 +# define BOOST_COMPILER_VERSION evc8 +# else +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown EVC++ compiler version - please run the configure tests and report the results" +# else +# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +# endif +# endif +# else +# if _MSC_VER < 1200 + // Note: these are so far off, they are not really supported +# define BOOST_COMPILER_VERSION 5.0 +# elif _MSC_VER < 1300 +# define BOOST_COMPILER_VERSION 6.0 +# elif _MSC_VER == 1300 +# define BOOST_COMPILER_VERSION 7.0 +# elif _MSC_VER == 1310 +# define BOOST_COMPILER_VERSION 7.1 +# elif _MSC_VER == 1400 +# define BOOST_COMPILER_VERSION 8.0 +# elif _MSC_VER == 1500 +# define BOOST_COMPILER_VERSION 9.0 +# else +# define BOOST_COMPILER_VERSION _MSC_VER +# endif +# endif + +#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) + +// +// versions check: +// we don't support Visual C++ prior to version 6: +#if _MSC_VER < 1200 +#error "Compiler not supported or configured - please reconfigure" +#endif +// +// last known and checked version is 1400 (VC8): +#if (_MSC_VER > 1500) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# else +# pragma message("Unknown compiler version - please run the configure tests and report the results") +# endif +#endif diff --git a/external-libs/boost/boost/config/no_tr1/utility.hpp b/external-libs/boost/boost/config/no_tr1/utility.hpp new file mode 100644 index 0000000..dea8f11 --- /dev/null +++ b/external-libs/boost/boost/config/no_tr1/utility.hpp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2005. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// The aim of this header is just to include but to do +// so in a way that does not result in recursive inclusion of +// the Boost TR1 components if boost/tr1/tr1/utility is in the +// include search path. We have to do this to avoid circular +// dependencies: +// + +#ifndef BOOST_CONFIG_UTILITY +# define BOOST_CONFIG_UTILITY + +# ifndef BOOST_TR1_NO_RECURSION +# define BOOST_TR1_NO_RECURSION +# define BOOST_CONFIG_NO_UTILITY_RECURSION +# endif + +# include + +# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION +# undef BOOST_TR1_NO_RECURSION +# undef BOOST_CONFIG_NO_UTILITY_RECURSION +# endif + +#endif diff --git a/external-libs/boost/boost/config/platform/linux.hpp b/external-libs/boost/boost/config/platform/linux.hpp new file mode 100644 index 0000000..51ae133 --- /dev/null +++ b/external-libs/boost/boost/config/platform/linux.hpp @@ -0,0 +1,98 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// linux specific config options: + +#define BOOST_PLATFORM "linux" + +// make sure we have __GLIBC_PREREQ if available at all +#include + +// +// added to glibc 2.1.1 +// We can only test for 2.1 though: +// +#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))) + // defines int64_t unconditionally, but defines + // int64_t only if __GNUC__. Thus, assume a fully usable + // only when using GCC. +# if defined __GNUC__ +# define BOOST_HAS_STDINT_H +# endif +#endif + +#if defined(__LIBCOMO__) + // + // como on linux doesn't have std:: c functions: + // NOTE: versions of libcomo prior to beta28 have octal version numbering, + // e.g. version 25 is 21 (dec) + // +# if __LIBCOMO_VERSION__ <= 20 +# define BOOST_NO_STDC_NAMESPACE +# endif + +# if __LIBCOMO_VERSION__ <= 21 +# define BOOST_NO_SWPRINTF +# endif + +#endif + +// +// If glibc is past version 2 then we definitely have +// gettimeofday, earlier versions may or may not have it: +// +#if defined(__GLIBC__) && (__GLIBC__ >= 2) +# define BOOST_HAS_GETTIMEOFDAY +#endif + +#ifdef __USE_POSIX199309 +# define BOOST_HAS_NANOSLEEP +#endif + +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +// __GLIBC_PREREQ is available since 2.1.2 + + // swprintf is available since glibc 2.2.0 +# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98)) +# define BOOST_NO_SWPRINTF +# endif +#else +# define BOOST_NO_SWPRINTF +#endif + +// boilerplate code: +#define BOOST_HAS_UNISTD_H +#include + +#ifndef __GNUC__ +// +// if the compiler is not gcc we still need to be able to parse +// the GNU system headers, some of which (mainly ) +// use GNU specific extensions: +// +# ifndef __extension__ +# define __extension__ +# endif +# ifndef __const__ +# define __const__ const +# endif +# ifndef __volatile__ +# define __volatile__ volatile +# endif +# ifndef __signed__ +# define __signed__ signed +# endif +# ifndef __typeof__ +# define __typeof__ typeof +# endif +# ifndef __inline__ +# define __inline__ inline +# endif +#endif + + diff --git a/external-libs/boost/boost/config/platform/macos.hpp b/external-libs/boost/boost/config/platform/macos.hpp new file mode 100644 index 0000000..d6877d3 --- /dev/null +++ b/external-libs/boost/boost/config/platform/macos.hpp @@ -0,0 +1,78 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Bill Kempf 2002. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// Mac OS specific config options: + +#define BOOST_PLATFORM "Mac OS" + +#if __MACH__ && !defined(_MSL_USING_MSL_C) + +// Using the Mac OS X system BSD-style C library. + +# ifndef BOOST_HAS_UNISTD_H +# define BOOST_HAS_UNISTD_H +# endif +// +// Begin by including our boilerplate code for POSIX +// feature detection, this is safe even when using +// the MSL as Metrowerks supply their own +// to replace the platform-native BSD one. G++ users +// should also always be able to do this on MaxOS X. +// +# include +# ifndef BOOST_HAS_STDINT_H +# define BOOST_HAS_STDINT_H +# endif + +// +// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday, +// of these only pthreads are advertised in , so set the +// other options explicitly: +// +# define BOOST_HAS_SCHED_YIELD +# define BOOST_HAS_GETTIMEOFDAY +# define BOOST_HAS_SIGACTION + +# if (__GNUC__ < 3) && !defined( __APPLE_CC__) + +// GCC strange "ignore std" mode works better if you pretend everything +// is in the std namespace, for the most part. + +# define BOOST_NO_STDC_NAMESPACE +# endif + +#else + +// Using the MSL C library. + +// We will eventually support threads in non-Carbon builds, but we do +// not support this yet. +# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON ) + +# if !defined(BOOST_HAS_PTHREADS) +# define BOOST_HAS_MPTASKS +# elif ( __dest_os == __mac_os_x ) +// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the +// gettimeofday and no posix. +# define BOOST_HAS_GETTIMEOFDAY +# endif + +// The MP task implementation of Boost Threads aims to replace MP-unsafe +// parts of the MSL, so we turn on threads unconditionally. +# define BOOST_HAS_THREADS + +// The remote call manager depends on this. +# define BOOST_BIND_ENABLE_PASCAL + +# endif + +#endif + + + diff --git a/external-libs/boost/boost/config/platform/win32.hpp b/external-libs/boost/boost/config/platform/win32.hpp new file mode 100644 index 0000000..9344818 --- /dev/null +++ b/external-libs/boost/boost/config/platform/win32.hpp @@ -0,0 +1,58 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Bill Kempf 2001. +// (C) Copyright Aleksey Gurtovoy 2003. +// (C) Copyright Rene Rivera 2005. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// Win32 specific config options: + +#define BOOST_PLATFORM "Win32" + +// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION. +#if defined(__MINGW32__) +# include <_mingw.h> +#endif + +#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF) +# define BOOST_NO_SWPRINTF +#endif + +#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC) +# define BOOST_HAS_DECLSPEC +#endif + +#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) +# define BOOST_HAS_STDINT_H +# define __STDC_LIMIT_MACROS +# define BOOST_HAS_DIRENT_H +# define BOOST_HAS_UNISTD_H +#endif + +// +// Win32 will normally be using native Win32 threads, +// but there is a pthread library avaliable as an option, +// we used to disable this when BOOST_DISABLE_WIN32 was +// defined but no longer - this should allow some +// files to be compiled in strict mode - while maintaining +// a consistent setting of BOOST_HAS_THREADS across +// all translation units (needed for shared_ptr etc). +// + +#ifdef _WIN32_WCE +# define BOOST_NO_ANSI_APIS +#endif + +#ifndef BOOST_HAS_PTHREADS +# define BOOST_HAS_WINTHREADS +#endif + +#ifndef BOOST_DISABLE_WIN32 +// WEK: Added +#define BOOST_HAS_FTIME +#define BOOST_WINDOWS 1 + +#endif diff --git a/external-libs/boost/boost/config/posix_features.hpp b/external-libs/boost/boost/config/posix_features.hpp new file mode 100644 index 0000000..d129547 --- /dev/null +++ b/external-libs/boost/boost/config/posix_features.hpp @@ -0,0 +1,95 @@ +// (C) Copyright John Maddock 2001 - 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + +// See http://www.boost.org for most recent version. + +// All POSIX feature tests go in this file, +// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well +// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's +// may be present but none-functional unless _POSIX_C_SOURCE and +// _XOPEN_SOURCE have been defined to the right value (it's up +// to the user to do this *before* including any header, although +// in most cases the compiler will do this for you). + +# if defined(BOOST_HAS_UNISTD_H) +# include + + // XOpen has , but is this the correct version check? +# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3) +# define BOOST_HAS_NL_TYPES_H +# endif + + // POSIX version 6 requires +# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100) +# define BOOST_HAS_STDINT_H +# endif + + // POSIX version 2 requires +# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L) +# define BOOST_HAS_DIRENT_H +# endif + + // POSIX version 3 requires to have sigaction: +# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L) +# define BOOST_HAS_SIGACTION +# endif + // POSIX defines _POSIX_THREADS > 0 for pthread support, + // however some platforms define _POSIX_THREADS without + // a value, hence the (_POSIX_THREADS+0 >= 0) check. + // Strictly speaking this may catch platforms with a + // non-functioning stub , but such occurrences should + // occur very rarely if at all. +# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS) +# define BOOST_HAS_PTHREADS +# endif + + // BOOST_HAS_NANOSLEEP: + // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME: +# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \ + || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) +# define BOOST_HAS_NANOSLEEP +# endif + + // BOOST_HAS_CLOCK_GETTIME: + // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME + // but at least one platform - linux - defines that flag without + // defining clock_gettime): +# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) +# define BOOST_HAS_CLOCK_GETTIME +# endif + + // BOOST_HAS_SCHED_YIELD: + // This is predicated on _POSIX_PRIORITY_SCHEDULING or + // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME. +# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\ + || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\ + || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) +# define BOOST_HAS_SCHED_YIELD +# endif + + // BOOST_HAS_GETTIMEOFDAY: + // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE: + // These are predicated on _XOPEN_VERSION, and appears to be first released + // in issue 4, version 2 (_XOPEN_VERSION > 500). + // Likewise for the functions log1p and expm1. +# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500) +# define BOOST_HAS_GETTIMEOFDAY +# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500) +# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# endif +# ifndef BOOST_HAS_LOG1P +# define BOOST_HAS_LOG1P +# endif +# ifndef BOOST_HAS_EXPM1 +# define BOOST_HAS_EXPM1 +# endif +# endif + +# endif + + + + diff --git a/external-libs/boost/boost/config/select_compiler_config.hpp b/external-libs/boost/boost/config/select_compiler_config.hpp new file mode 100644 index 0000000..8d8db90 --- /dev/null +++ b/external-libs/boost/boost/config/select_compiler_config.hpp @@ -0,0 +1,115 @@ +// Boost compiler configuration selection header file + +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Martin Wille 2003. +// (C) Copyright Guillaume Melquiond 2003. +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/ for most recent version. + + +// one identification macro for each of the +// compilers we support: + +# define BOOST_CXX_GCCXML 0 +# define BOOST_CXX_COMO 0 +# define BOOST_CXX_DMC 0 +# define BOOST_CXX_INTEL 0 +# define BOOST_CXX_GNUC 0 +# define BOOST_CXX_KCC 0 +# define BOOST_CXX_SGI 0 +# define BOOST_CXX_TRU64 0 +# define BOOST_CXX_GHS 0 +# define BOOST_CXX_BORLAND 0 +# define BOOST_CXX_CW 0 +# define BOOST_CXX_SUNPRO 0 +# define BOOST_CXX_HPACC 0 +# define BOOST_CXX_MPW 0 +# define BOOST_CXX_IBMCPP 0 +# define BOOST_CXX_MSVC 0 +# define BOOST_CXX_PGI 0 + + +// locate which compiler we are using and define +// BOOST_COMPILER_CONFIG as needed: + +#if defined(__GCCXML__) +// GCC-XML emulates other compilers, it has to appear first here! +# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp" + +#elif defined __COMO__ +// Comeau C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" + +#elif defined __DMC__ +// Digital Mars C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp" + +#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) +// Intel +# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" + +# elif defined __GNUC__ +// GNU C++: +# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp" + +#elif defined __KCC +// Kai C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp" + +#elif defined __sgi +// SGI MIPSpro C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp" + +#elif defined __DECCXX +// Compaq Tru64 Unix cxx +# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp" + +#elif defined __ghs +// Greenhills C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp" + +#elif defined __BORLANDC__ +// Borland +# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp" + +#elif defined __MWERKS__ +// Metrowerks CodeWarrior +# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp" + +#elif defined __SUNPRO_CC +// Sun Workshop Compiler C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp" + +#elif defined __HP_aCC +// HP aCC +# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp" + +#elif defined(__MRC__) || defined(__SC__) +// MPW MrCpp or SCpp +# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp" + +#elif defined(__IBMCPP__) +// IBM Visual Age +# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp" + +#elif defined(__PGI) +// Portland Group Inc. +# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp" + +#elif defined _MSC_VER +// Microsoft Visual C++ +// +// Must remain the last #elif since some other vendors (Metrowerks, for +// example) also #define _MSC_VER +# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp" + +#elif defined (BOOST_ASSERT_CONFIG) +// this must come last - generate an error if we don't +// recognise the compiler: +# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)" + +#endif diff --git a/external-libs/boost/boost/config/select_platform_config.hpp b/external-libs/boost/boost/config/select_platform_config.hpp new file mode 100644 index 0000000..a4c7ad6 --- /dev/null +++ b/external-libs/boost/boost/config/select_platform_config.hpp @@ -0,0 +1,90 @@ +// Boost compiler configuration selection header file + +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Jens Maurer 2001. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed. +// Note that we define the headers to include using "header_name" not +// in order to prevent macro expansion within the header +// name (for example "linux" is a macro on linux systems). + +#if defined(linux) || defined(__linux) || defined(__linux__) +// linux: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp" + +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) +// BSD: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp" + +#elif defined(sun) || defined(__sun) +// solaris: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp" + +#elif defined(__sgi) +// SGI Irix: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp" + +#elif defined(__hpux) +// hp unix: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp" + +#elif defined(__CYGWIN__) +// cygwin is not win32: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +// win32: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" + +#elif defined(__BEOS__) +// BeOS +# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" + +#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +// MacOS +# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp" + +#elif defined(__IBMCPP__) || defined(_AIX) +// IBM +# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp" + +#elif defined(__amigaos__) +// AmigaOS +# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp" + +#elif defined(__QNXNTO__) +// QNX: +# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp" + +#else + +# if defined(unix) \ + || defined(__unix) \ + || defined(_XOPEN_SOURCE) \ + || defined(_POSIX_SOURCE) + + // generic unix platform: + +# ifndef BOOST_HAS_UNISTD_H +# define BOOST_HAS_UNISTD_H +# endif + +# include + +# endif + +# if defined (BOOST_ASSERT_CONFIG) + // this must come last - generate an error if we don't + // recognise the platform: +# error "Unknown platform - please configure and report the results to boost.org" +# endif + +#endif + + + diff --git a/external-libs/boost/boost/config/select_stdlib_config.hpp b/external-libs/boost/boost/config/select_stdlib_config.hpp new file mode 100644 index 0000000..13e5e4c --- /dev/null +++ b/external-libs/boost/boost/config/select_stdlib_config.hpp @@ -0,0 +1,68 @@ +// Boost compiler configuration selection header file + +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2002. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + +// See http://www.boost.org for most recent version. + +// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: + +// we need to include a std lib header here in order to detect which +// library is in use, use as it's about the smallest +// of the std lib headers - do not rely on this header being included - +// users can short-circuit this header if they know whose std lib +// they are using. + +#include + +#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) +// STLPort library; this _must_ come first, otherwise since +// STLport typically sits on top of some other library, we +// can end up detecting that first rather than STLport: +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp" + +#elif defined(__LIBCOMO__) +// Comeau STL: +#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp" + +#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) +// Rogue Wave library: +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" + +#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) +// GNU libstdc++ 3 +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" + +#elif defined(__STL_CONFIG_H) +// generic SGI STL +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp" + +#elif defined(__MSL_CPP__) +// MSL standard lib: +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp" + +#elif defined(__IBMCPP__) +// take the default VACPP std lib +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp" + +#elif defined(MSIPL_COMPILE_H) +// Modena C++ standard library +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp" + +#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) +// Dinkumware Library (this has to appear after any possible replacement libraries): +# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp" + +#elif defined (BOOST_ASSERT_CONFIG) +// this must come last - generate an error if we don't +// recognise the library: +# error "Unknown standard library - please configure and report the results to boost.org" + +#endif + + + diff --git a/external-libs/boost/boost/config/stdlib/dinkumware.hpp b/external-libs/boost/boost/config/stdlib/dinkumware.hpp new file mode 100644 index 0000000..01f1238 --- /dev/null +++ b/external-libs/boost/boost/config/stdlib/dinkumware.hpp @@ -0,0 +1,106 @@ +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright David Abrahams 2002. +// (C) Copyright Guillaume Melquiond 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// Dinkumware standard library config: + +#if !defined(_YVALS) && !defined(_CPPLIB_VER) +#include +#if !defined(_YVALS) && !defined(_CPPLIB_VER) +#error This is not the Dinkumware lib! +#endif +#endif + + +#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306) + // full dinkumware 3.06 and above + // fully conforming provided the compiler supports it: +# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h +# define BOOST_NO_STDC_NAMESPACE +# endif +# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC) +# define BOOST_NO_STD_ALLOCATOR +# endif +# define BOOST_HAS_PARTIAL_STD_ALLOCATOR +# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) + // if this lib version is set up for vc6 then there is no std::use_facet: +# define BOOST_NO_STD_USE_FACET +# define BOOST_HAS_TWO_ARG_USE_FACET + // C lib functions aren't in namespace std either: +# define BOOST_NO_STDC_NAMESPACE + // and nor is +# define BOOST_NO_EXCEPTION_STD_NAMESPACE +# endif +// There's no numeric_limits support unless _LONGLONG is defined: +# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310) +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# endif +// 3.06 appears to have (non-sgi versions of) & , +// and no at all +#else +# define BOOST_MSVC_STD_ITERATOR 1 +# define BOOST_NO_STD_ITERATOR +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +# define BOOST_NO_STD_ALLOCATOR +# define BOOST_NO_STDC_NAMESPACE +# define BOOST_NO_STD_USE_FACET +# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN +# define BOOST_HAS_MACRO_USE_FACET +# ifndef _CPPLIB_VER + // Updated Dinkum library defines this, and provides + // its own min and max definitions. +# define BOOST_NO_STD_MIN_MAX +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# endif +#endif + +// +// std extension namespace is stdext for vc7.1 and later, +// the same applies to other compilers that sit on top +// of vc7.1 (Intel and Comeau): +// +#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__) +# define BOOST_STD_EXTENSION_NAMESPACE stdext +#endif + + +#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306) + // if we're using a dinkum lib that's + // been configured for VC6/7 then there is + // no iterator traits (true even for icl) +# define BOOST_NO_STD_ITERATOR_TRAITS +#endif + +#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310) +// Intel C++ chokes over any non-trivial use of +// this may be an overly restrictive define, but regex fails without it: +# define BOOST_NO_STD_LOCALE +#endif + +#ifdef _CPPLIB_VER +# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER +#else +# define BOOST_DINKUMWARE_STDLIB 1 +#endif + +#ifdef _CPPLIB_VER +# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER) +#else +# define BOOST_STDLIB "Dinkumware standard library version 1.x" +#endif + + + + + + + + + diff --git a/external-libs/boost/boost/config/stdlib/libstdcpp3.hpp b/external-libs/boost/boost/config/stdlib/libstdcpp3.hpp new file mode 100644 index 0000000..7bbe604 --- /dev/null +++ b/external-libs/boost/boost/config/stdlib/libstdcpp3.hpp @@ -0,0 +1,73 @@ +// (C) Copyright John Maddock 2001. +// (C) Copyright Jens Maurer 2001. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// config for libstdc++ v3 +// not much to go in here: + +#ifdef __GLIBCXX__ +#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__) +#else +#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__) +#endif + +#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T) +# define BOOST_NO_CWCHAR +# define BOOST_NO_CWCTYPE +# define BOOST_NO_STD_WSTRING +# define BOOST_NO_STD_WSTREAMBUF +#endif + +#if defined(__osf__) && !defined(_REENTRANT) \ + && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) ) +// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header +// file is included, therefore for consistency we define it here as well. +# define _REENTRANT +#endif + +#ifdef __GLIBCXX__ // gcc 3.4 and greater: +# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ + || defined(_GLIBCXX__PTHREADS) + // + // If the std lib has thread support turned on, then turn it on in Boost + // as well. We do this because some gcc-3.4 std lib headers define _REENTANT + // while others do not... + // +# define BOOST_HAS_THREADS +# else +# define BOOST_DISABLE_THREADS +# endif +#elif defined(__GLIBCPP__) \ + && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \ + && !defined(_GLIBCPP__PTHREADS) + // disable thread support if the std lib was built single threaded: +# define BOOST_DISABLE_THREADS +#endif + +#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT) +// linux on arm apparently doesn't define _REENTRANT +// so just turn on threading support whenever the std lib is thread safe: +# define BOOST_HAS_THREADS +#endif + + +#if !defined(_GLIBCPP_USE_LONG_LONG) \ + && !defined(_GLIBCXX_USE_LONG_LONG)\ + && defined(BOOST_HAS_LONG_LONG) +// May have been set by compiler/*.hpp, but "long long" without library +// support is useless. +# undef BOOST_HAS_LONG_LONG +#endif + +#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0 +# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx +# define BOOST_HAS_SLIST +# define BOOST_HAS_HASH +# define BOOST_SLIST_HEADER +# define BOOST_HASH_SET_HEADER +# define BOOST_HASH_MAP_HEADER +#endif diff --git a/external-libs/boost/boost/config/suffix.hpp b/external-libs/boost/boost/config/suffix.hpp new file mode 100644 index 0000000..b57d3f1 --- /dev/null +++ b/external-libs/boost/boost/config/suffix.hpp @@ -0,0 +1,566 @@ +// Boost config.hpp configuration header file ------------------------------// + +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright Bill Kempf 2002. +// (C) Copyright Jens Maurer 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Gennaro Prota 2003. +// (C) Copyright Eric Friedman 2003. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org for most recent version. + +// Boost config.hpp policy and rationale documentation has been moved to +// http://www.boost.org/libs/config +// +// This file is intended to be stable, and relatively unchanging. +// It should contain boilerplate code only - no compiler specific +// code unless it is unavoidable - no changes unless unavoidable. + +#ifndef BOOST_CONFIG_SUFFIX_HPP +#define BOOST_CONFIG_SUFFIX_HPP + +// +// look for long long by looking for the appropriate macros in . +// Note that we use limits.h rather than climits for maximal portability, +// remember that since these just declare a bunch of macros, there should be +// no namespace issues from this. +// +#if !defined(BOOST_HAS_LONG_LONG) \ + && !defined(BOOST_MSVC) && !defined(__BORLANDC__) +# include +# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) +# define BOOST_HAS_LONG_LONG +# endif +#endif + +// GCC 3.x will clean up all of those nasty macro definitions that +// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine +// it under GCC 3.x. +#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS) +# undef BOOST_NO_CTYPE_FUNCTIONS +#endif + +// +// Assume any extensions are in namespace std:: unless stated otherwise: +// +# ifndef BOOST_STD_EXTENSION_NAMESPACE +# define BOOST_STD_EXTENSION_NAMESPACE std +# endif + +// +// If cv-qualified specializations are not allowed, then neither are cv-void ones: +// +# if defined(BOOST_NO_CV_SPECIALIZATIONS) \ + && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) +# define BOOST_NO_CV_VOID_SPECIALIZATIONS +# endif + +// +// If there is no numeric_limits template, then it can't have any compile time +// constants either! +// +# if defined(BOOST_NO_LIMITS) \ + && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS +# endif + +// +// if there is no long long then there is no specialisation +// for numeric_limits either: +// +#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS) +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS +#endif + +// +// if there is no __int64 then there is no specialisation +// for numeric_limits<__int64> either: +// +#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS) +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +#endif + +// +// if member templates are supported then so is the +// VC6 subset of member templates: +// +# if !defined(BOOST_NO_MEMBER_TEMPLATES) \ + && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) +# define BOOST_MSVC6_MEMBER_TEMPLATES +# endif + +// +// Without partial specialization, can't test for partial specialisation bugs: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) +# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG +# endif + +// +// Without partial specialization, we can't have array-type partial specialisations: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS +# endif + +// +// Without partial specialization, std::iterator_traits can't work: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_NO_STD_ITERATOR_TRAITS) +# define BOOST_NO_STD_ITERATOR_TRAITS +# endif + +// +// Without member template support, we can't have template constructors +// in the standard library either: +// +# if defined(BOOST_NO_MEMBER_TEMPLATES) \ + && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ + && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS +# endif + +// +// Without member template support, we can't have a conforming +// std::allocator template either: +// +# if defined(BOOST_NO_MEMBER_TEMPLATES) \ + && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ + && !defined(BOOST_NO_STD_ALLOCATOR) +# define BOOST_NO_STD_ALLOCATOR +# endif + +// +// without ADL support then using declarations will break ADL as well: +// +#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#endif + +// +// If we have a standard allocator, then we have a partial one as well: +// +#if !defined(BOOST_NO_STD_ALLOCATOR) +# define BOOST_HAS_PARTIAL_STD_ALLOCATOR +#endif + +// +// We can't have a working std::use_facet if there is no std::locale: +// +# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET) +# define BOOST_NO_STD_USE_FACET +# endif + +// +// We can't have a std::messages facet if there is no std::locale: +// +# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES) +# define BOOST_NO_STD_MESSAGES +# endif + +// +// We can't have a working std::wstreambuf if there is no std::locale: +// +# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF) +# define BOOST_NO_STD_WSTREAMBUF +# endif + +// +// We can't have a if there is no : +// +# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE) +# define BOOST_NO_CWCTYPE +# endif + +// +// We can't have a swprintf if there is no : +// +# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF) +# define BOOST_NO_SWPRINTF +# endif + +// +// If Win32 support is turned off, then we must turn off +// threading support also, unless there is some other +// thread API enabled: +// +#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \ + && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS) +# define BOOST_DISABLE_THREADS +#endif + +// +// Turn on threading support if the compiler thinks that it's in +// multithreaded mode. We put this here because there are only a +// limited number of macros that identify this (if there's any missing +// from here then add to the appropriate compiler section): +// +#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \ + || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS) +# define BOOST_HAS_THREADS +#endif + +// +// Turn threading support off if BOOST_DISABLE_THREADS is defined: +// +#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS) +# undef BOOST_HAS_THREADS +#endif + +// +// Turn threading support off if we don't recognise the threading API: +// +#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\ + && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\ + && !defined(BOOST_HAS_MPTASKS) +# undef BOOST_HAS_THREADS +#endif + +// +// Turn threading detail macros off if we don't (want to) use threading +// +#ifndef BOOST_HAS_THREADS +# undef BOOST_HAS_PTHREADS +# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# undef BOOST_HAS_WINTHREADS +# undef BOOST_HAS_BETHREADS +# undef BOOST_HAS_MPTASKS +#endif + +// +// If the compiler claims to be C99 conformant, then it had better +// have a : +// +# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) +# define BOOST_HAS_STDINT_H +# ifndef BOOST_HAS_LOG1P +# define BOOST_HAS_LOG1P +# endif +# ifndef BOOST_HAS_EXPM1 +# define BOOST_HAS_EXPM1 +# endif +# endif + +// +// Define BOOST_NO_SLIST and BOOST_NO_HASH if required. +// Note that this is for backwards compatibility only. +// +# ifndef BOOST_HAS_SLIST +# define BOOST_NO_SLIST +# endif + +# ifndef BOOST_HAS_HASH +# define BOOST_NO_HASH +# endif + +// +// Set BOOST_SLIST_HEADER if not set already: +// +#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER) +# define BOOST_SLIST_HEADER +#endif + +// +// Set BOOST_HASH_SET_HEADER if not set already: +// +#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER) +# define BOOST_HASH_SET_HEADER +#endif + +// +// Set BOOST_HASH_MAP_HEADER if not set already: +// +#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER) +# define BOOST_HASH_MAP_HEADER +#endif + +// BOOST_HAS_ABI_HEADERS +// This macro gets set if we have headers that fix the ABI, +// and prevent ODR violations when linking to external libraries: +#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS) +# define BOOST_HAS_ABI_HEADERS +#endif + +#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS) +# undef BOOST_HAS_ABI_HEADERS +#endif + +// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------// +// Because std::size_t usage is so common, even in boost headers which do not +// otherwise use the C library, the workaround is included here so +// that ugly workaround code need not appear in many other boost headers. +// NOTE WELL: This is a workaround for non-conforming compilers; +// must still be #included in the usual places so that inclusion +// works as expected with standard conforming compilers. The resulting +// double inclusion of is harmless. + +# ifdef BOOST_NO_STDC_NAMESPACE +# include + namespace std { using ::ptrdiff_t; using ::size_t; } +# endif + +// Workaround for the unfortunate min/max macros defined by some platform headers + +#define BOOST_PREVENT_MACRO_SUBSTITUTION + +#ifndef BOOST_USING_STD_MIN +# define BOOST_USING_STD_MIN() using std::min +#endif + +#ifndef BOOST_USING_STD_MAX +# define BOOST_USING_STD_MAX() using std::max +#endif + +// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------// + +# ifdef BOOST_NO_STD_MIN_MAX + +namespace std { + template + inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { + return __b < __a ? __b : __a; + } + template + inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { + return __a < __b ? __b : __a; + } +} + +# endif + +// BOOST_STATIC_CONSTANT workaround --------------------------------------- // +// On compilers which don't allow in-class initialization of static integral +// constant members, we must use enums as a workaround if we want the constants +// to be available at compile-time. This macro gives us a convenient way to +// declare such constants. + +# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION +# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment } +# else +# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment +# endif + +// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------// +// When the standard library does not have a conforming std::use_facet there +// are various workarounds available, but they differ from library to library. +// The same problem occurs with has_facet. +// These macros provide a consistent way to access a locale's facets. +// Usage: +// replace +// std::use_facet(loc); +// with +// BOOST_USE_FACET(Type, loc); +// Note do not add a std:: prefix to the front of BOOST_USE_FACET! +// Use for BOOST_HAS_FACET is analagous. + +#if defined(BOOST_NO_STD_USE_FACET) +# ifdef BOOST_HAS_TWO_ARG_USE_FACET +# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast(0)) +# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast(0)) +# elif defined(BOOST_HAS_MACRO_USE_FACET) +# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type) +# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type) +# elif defined(BOOST_HAS_STLP_USE_FACET) +# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet(loc)) +# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) +# endif +#else +# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc) +# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) +#endif + +// BOOST_NESTED_TEMPLATE workaround ------------------------------------------// +// Member templates are supported by some compilers even though they can't use +// the A::template member syntax, as a workaround replace: +// +// typedef typename A::template rebind binder; +// +// with: +// +// typedef typename A::BOOST_NESTED_TEMPLATE rebind binder; + +#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD +# define BOOST_NESTED_TEMPLATE template +#else +# define BOOST_NESTED_TEMPLATE +#endif + +// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------// +// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION +// is defined, in which case it evaluates to return x; Use when you have a return +// statement that can never be reached. + +#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION +# define BOOST_UNREACHABLE_RETURN(x) return x; +#else +# define BOOST_UNREACHABLE_RETURN(x) +#endif + +// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------// +// +// Some compilers don't support the use of `typename' for dependent +// types in deduced contexts, e.g. +// +// template void f(T, typename T::type); +// ^^^^^^^^ +// Replace these declarations with: +// +// template void f(T, BOOST_DEDUCED_TYPENAME T::type); + +#ifndef BOOST_NO_DEDUCED_TYPENAME +# define BOOST_DEDUCED_TYPENAME typename +#else +# define BOOST_DEDUCED_TYPENAME +#endif + +// long long workaround ------------------------------------------// +// On gcc (and maybe other compilers?) long long is alway supported +// but it's use may generate either warnings (with -ansi), or errors +// (with -pedantic -ansi) unless it's use is prefixed by __extension__ +// +#if defined(BOOST_HAS_LONG_LONG) +namespace boost{ +# ifdef __GNUC__ + __extension__ typedef long long long_long_type; + __extension__ typedef unsigned long long ulong_long_type; +# else + typedef long long long_long_type; + typedef unsigned long long ulong_long_type; +# endif +} +#endif + +// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// +// +// Some compilers have problems with function templates whose +// template parameters don't appear in the function parameter +// list (basically they just link one instantiation of the +// template in the final executable). These macros provide a +// uniform way to cope with the problem with no effects on the +// calling syntax. + +// Example: +// +// #include +// #include +// #include +// +// template +// void f() { std::cout << n << ' '; } +// +// template +// void g() { std::cout << typeid(T).name() << ' '; } +// +// int main() { +// f<1>(); +// f<2>(); +// +// g(); +// g(); +// } +// +// With VC++ 6.0 the output is: +// +// 2 2 double double +// +// To fix it, write +// +// template +// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... } +// +// template +// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... } +// + + +#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS + +# include "boost/type.hpp" +# include "boost/non_type.hpp" + +# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type* = 0 +# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type* +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type* = 0 +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type* + +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \ + , BOOST_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \ + , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \ + , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \ + , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + +#else + +// no workaround needed: expand to nothing + +# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + + +#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS + + +// ---------------------------------------------------------------------------// + +// +// Helper macro BOOST_STRINGIZE: +// Converts the parameter X to a string after macro replacement +// on X has been performed. +// +#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) +#define BOOST_DO_STRINGIZE(X) #X + +// +// Helper macro BOOST_JOIN: +// The following piece of macro magic joins the two +// arguments together, even when one of the arguments is +// itself a macro (see 16.3.1 in C++ standard). The key +// is that macro expansion of macro arguments does not +// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN. +// +#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y ) +#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y) +#define BOOST_DO_JOIN2( X, Y ) X##Y + +// +// Set some default values for compiler/library/platform names. +// These are for debugging config setup only: +// +# ifndef BOOST_COMPILER +# define BOOST_COMPILER "Unknown ISO C++ Compiler" +# endif +# ifndef BOOST_STDLIB +# define BOOST_STDLIB "Unknown ISO standard library" +# endif +# ifndef BOOST_PLATFORM +# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \ + || defined(_POSIX_SOURCE) +# define BOOST_PLATFORM "Generic Unix" +# else +# define BOOST_PLATFORM "Unknown" +# endif +# endif + +#endif + + diff --git a/external-libs/boost/boost/config/user.hpp b/external-libs/boost/boost/config/user.hpp new file mode 100644 index 0000000..5a4a9d4 --- /dev/null +++ b/external-libs/boost/boost/config/user.hpp @@ -0,0 +1,124 @@ +// boost/config/user.hpp ---------------------------------------------------// + +// (C) Copyright John Maddock 2001. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// Do not check in modified versions of this file, +// This file may be customized by the end user, but not by boost. + +// +// Use this file to define a site and compiler specific +// configuration policy: +// + +// define this to locate a compiler config file: +// #define BOOST_COMPILER_CONFIG + +// define this to locate a stdlib config file: +// #define BOOST_STDLIB_CONFIG + +// define this to locate a platform config file: +// #define BOOST_PLATFORM_CONFIG + +// define this to disable compiler config, +// use if your compiler config has nothing to set: +// #define BOOST_NO_COMPILER_CONFIG + +// define this to disable stdlib config, +// use if your stdlib config has nothing to set: +// #define BOOST_NO_STDLIB_CONFIG + +// define this to disable platform config, +// use if your platform config has nothing to set: +// #define BOOST_NO_PLATFORM_CONFIG + +// define this to disable all config options, +// excluding the user config. Use if your +// setup is fully ISO compliant, and has no +// useful extensions, or for autoconf generated +// setups: +// #define BOOST_NO_CONFIG + +// define this to make the config "optimistic" +// about unknown compiler versions. Normally +// unknown compiler versions are assumed to have +// all the defects of the last known version, however +// setting this flag, causes the config to assume +// that unknown compiler versions are fully conformant +// with the standard: +// #define BOOST_STRICT_CONFIG + +// define this to cause the config to halt compilation +// with an #error if it encounters anything unknown -- +// either an unknown compiler version or an unknown +// compiler/platform/library: +// #define BOOST_ASSERT_CONFIG + + +// define if you want to disable threading support, even +// when available: +// #define BOOST_DISABLE_THREADS + +// define when you want to disable Win32 specific features +// even when available: +// #define BOOST_DISABLE_WIN32 + +// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any +// prefix/suffix headers that normally control things like struct +// packing and alignment. +// #define BOOST_DISABLE_ABI_HEADERS + +// BOOST_ABI_PREFIX: A prefix header to include in place of whatever +// boost.config would normally select, any replacement should set up +// struct packing and alignment options as required. +// #define BOOST_ABI_PREFIX my-header-name + +// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever +// boost.config would normally select, any replacement should undo +// the effects of the prefix header. +// #define BOOST_ABI_SUFFIX my-header-name + +// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, +// to be linked as dll's rather than static libraries on Microsoft Windows +// (this macro is used to turn on __declspec(dllimport) modifiers, so that +// the compiler knows which symbols to look for in a dll rather than in a +// static library). Note that there may be some libraries that can only +// be statically linked (Boost.Test for example) and others which may only +// be dynamically linked (Boost.Threads for example), in these cases this +// macro has no effect. +// #define BOOST_ALL_DYN_LINK + +// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll +// rather than a static library on Microsoft Windows: replace the WHATEVER +// part of the macro name with the name of the library that you want to +// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or +// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) +// modifiers, so that the compiler knows which symbols to look for in a dll +// rather than in a static library). +// Note that there may be some libraries that can only be statically linked +// (Boost.Test for example) and others which may only be dynamically linked +// (Boost.Threads for example), in these cases this macro is unsupported. +// #define BOOST_WHATEVER_DYN_LINK + +// BOOST_ALL_NO_LIB: Tells the config system not to automatically select +// which libraries to link against. +// Normally if a compiler supports #pragma lib, then the correct library +// build variant will be automatically selected and linked against, +// simply by the act of including one of that library's headers. +// This macro turns that feature off. +// #define BOOST_ALL_NO_LIB + +// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically +// select which library to link against for library "whatever", +// replace WHATEVER in the macro name with the name of the library; +// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB. +// Normally if a compiler supports #pragma lib, then the correct library +// build variant will be automatically selected and linked against, simply +// by the act of including one of that library's headers. This macro turns +// that feature off. +// #define BOOST_WHATEVER_NO_LIB + + + diff --git a/external-libs/boost/boost/cstdint.hpp b/external-libs/boost/boost/cstdint.hpp new file mode 100644 index 0000000..31a432a --- /dev/null +++ b/external-libs/boost/boost/cstdint.hpp @@ -0,0 +1,446 @@ +// boost cstdint.hpp header file ------------------------------------------// + +// (C) Copyright Beman Dawes 1999. +// (C) Copyright Jens Mauer 2001 +// (C) Copyright John Maddock 2001 +// Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/integer for documentation. + +// Revision History +// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.) +// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer) +// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer) +// 12 Nov 00 Merged (Jens Maurer) +// 23 Sep 00 Added INTXX_C macro support (John Maddock). +// 22 Sep 00 Better 64-bit support (John Maddock) +// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost +// 8 Aug 99 Initial version (Beman Dawes) + + +#ifndef BOOST_CSTDINT_HPP +#define BOOST_CSTDINT_HPP + +#include + + +#ifdef BOOST_HAS_STDINT_H + +// The following #include is an implementation artifact; not part of interface. +# ifdef __hpux +// HP-UX has a vaguely nice in a non-standard location +# include +# ifdef __STDC_32_MODE__ + // this is triggered with GCC, because it defines __cplusplus < 199707L +# define BOOST_NO_INT64_T +# endif +# elif defined(__FreeBSD__) || defined(__IBMCPP__) +# include +# else +# include + +// There is a bug in Cygwin two _C macros +# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__) +# undef INTMAX_C +# undef UINTMAX_C +# define INTMAX_C(c) c##LL +# define UINTMAX_C(c) c##ULL +# endif + +# endif + +#ifdef __QNX__ + +// QNX (Dinkumware stdlib) defines these as non-standard names. +// Reflect to the standard names. + +typedef ::intleast8_t int_least8_t; +typedef ::intfast8_t int_fast8_t; +typedef ::uintleast8_t uint_least8_t; +typedef ::uintfast8_t uint_fast8_t; + +typedef ::intleast16_t int_least16_t; +typedef ::intfast16_t int_fast16_t; +typedef ::uintleast16_t uint_least16_t; +typedef ::uintfast16_t uint_fast16_t; + +typedef ::intleast32_t int_least32_t; +typedef ::intfast32_t int_fast32_t; +typedef ::uintleast32_t uint_least32_t; +typedef ::uintfast32_t uint_fast32_t; + +# ifndef BOOST_NO_INT64_T + +typedef ::intleast64_t int_least64_t; +typedef ::intfast64_t int_fast64_t; +typedef ::uintleast64_t uint_least64_t; +typedef ::uintfast64_t uint_fast64_t; + +# endif + +#endif + +namespace boost +{ + + using ::int8_t; + using ::int_least8_t; + using ::int_fast8_t; + using ::uint8_t; + using ::uint_least8_t; + using ::uint_fast8_t; + + using ::int16_t; + using ::int_least16_t; + using ::int_fast16_t; + using ::uint16_t; + using ::uint_least16_t; + using ::uint_fast16_t; + + using ::int32_t; + using ::int_least32_t; + using ::int_fast32_t; + using ::uint32_t; + using ::uint_least32_t; + using ::uint_fast32_t; + +# ifndef BOOST_NO_INT64_T + + using ::int64_t; + using ::int_least64_t; + using ::int_fast64_t; + using ::uint64_t; + using ::uint_least64_t; + using ::uint_fast64_t; + +# endif + + using ::intmax_t; + using ::uintmax_t; + +} // namespace boost + +#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) +// FreeBSD and Tru64 have an that contains much of what we need. +# include + +namespace boost { + + using ::int8_t; + typedef int8_t int_least8_t; + typedef int8_t int_fast8_t; + using ::uint8_t; + typedef uint8_t uint_least8_t; + typedef uint8_t uint_fast8_t; + + using ::int16_t; + typedef int16_t int_least16_t; + typedef int16_t int_fast16_t; + using ::uint16_t; + typedef uint16_t uint_least16_t; + typedef uint16_t uint_fast16_t; + + using ::int32_t; + typedef int32_t int_least32_t; + typedef int32_t int_fast32_t; + using ::uint32_t; + typedef uint32_t uint_least32_t; + typedef uint32_t uint_fast32_t; + +# ifndef BOOST_NO_INT64_T + + using ::int64_t; + typedef int64_t int_least64_t; + typedef int64_t int_fast64_t; + using ::uint64_t; + typedef uint64_t uint_least64_t; + typedef uint64_t uint_fast64_t; + + typedef int64_t intmax_t; + typedef uint64_t uintmax_t; + +# else + + typedef int32_t intmax_t; + typedef uint32_t uintmax_t; + +# endif + +} // namespace boost + +#else // BOOST_HAS_STDINT_H + +# include // implementation artifact; not part of interface +# include // needed for limits macros + + +namespace boost +{ + +// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit +// platforms. For other systems, they will have to be hand tailored. +// +// Because the fast types are assumed to be the same as the undecorated types, +// it may be possible to hand tailor a more efficient implementation. Such +// an optimization may be illusionary; on the Intel x86-family 386 on, for +// example, byte arithmetic and load/stores are as fast as "int" sized ones. + +// 8-bit types ------------------------------------------------------------// + +# if UCHAR_MAX == 0xff + typedef signed char int8_t; + typedef signed char int_least8_t; + typedef signed char int_fast8_t; + typedef unsigned char uint8_t; + typedef unsigned char uint_least8_t; + typedef unsigned char uint_fast8_t; +# else +# error defaults not correct; you must hand modify boost/cstdint.hpp +# endif + +// 16-bit types -----------------------------------------------------------// + +# if USHRT_MAX == 0xffff +# if defined(__crayx1) + // The Cray X1 has a 16-bit short, however it is not recommend + // for use in performance critical code. + typedef short int16_t; + typedef short int_least16_t; + typedef int int_fast16_t; + typedef unsigned short uint16_t; + typedef unsigned short uint_least16_t; + typedef unsigned int uint_fast16_t; +# else + typedef short int16_t; + typedef short int_least16_t; + typedef short int_fast16_t; + typedef unsigned short uint16_t; + typedef unsigned short uint_least16_t; + typedef unsigned short uint_fast16_t; +# endif +# elif (USHRT_MAX == 0xffffffff) && defined(CRAY) + // no 16-bit types on Cray: + typedef short int_least16_t; + typedef short int_fast16_t; + typedef unsigned short uint_least16_t; + typedef unsigned short uint_fast16_t; +# else +# error defaults not correct; you must hand modify boost/cstdint.hpp +# endif + +// 32-bit types -----------------------------------------------------------// + +# if ULONG_MAX == 0xffffffff + typedef long int32_t; + typedef long int_least32_t; + typedef long int_fast32_t; + typedef unsigned long uint32_t; + typedef unsigned long uint_least32_t; + typedef unsigned long uint_fast32_t; +# elif UINT_MAX == 0xffffffff + typedef int int32_t; + typedef int int_least32_t; + typedef int int_fast32_t; + typedef unsigned int uint32_t; + typedef unsigned int uint_least32_t; + typedef unsigned int uint_fast32_t; +# else +# error defaults not correct; you must hand modify boost/cstdint.hpp +# endif + +// 64-bit types + intmax_t and uintmax_t ----------------------------------// + +# if defined(BOOST_HAS_LONG_LONG) && \ + !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \ + (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \ + (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) +# if defined(__hpux) + // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions +# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) + // 2**64 - 1 +# else +# error defaults not correct; you must hand modify boost/cstdint.hpp +# endif + + typedef ::boost::long_long_type intmax_t; + typedef ::boost::ulong_long_type uintmax_t; + typedef ::boost::long_long_type int64_t; + typedef ::boost::long_long_type int_least64_t; + typedef ::boost::long_long_type int_fast64_t; + typedef ::boost::ulong_long_type uint64_t; + typedef ::boost::ulong_long_type uint_least64_t; + typedef ::boost::ulong_long_type uint_fast64_t; + +# elif ULONG_MAX != 0xffffffff + +# if ULONG_MAX == 18446744073709551615 // 2**64 - 1 + typedef long intmax_t; + typedef unsigned long uintmax_t; + typedef long int64_t; + typedef long int_least64_t; + typedef long int_fast64_t; + typedef unsigned long uint64_t; + typedef unsigned long uint_least64_t; + typedef unsigned long uint_fast64_t; +# else +# error defaults not correct; you must hand modify boost/cstdint.hpp +# endif +# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG) + __extension__ typedef long long intmax_t; + __extension__ typedef unsigned long long uintmax_t; + __extension__ typedef long long int64_t; + __extension__ typedef long long int_least64_t; + __extension__ typedef long long int_fast64_t; + __extension__ typedef unsigned long long uint64_t; + __extension__ typedef unsigned long long uint_least64_t; + __extension__ typedef unsigned long long uint_fast64_t; +# elif defined(BOOST_HAS_MS_INT64) + // + // we have Borland/Intel/Microsoft __int64: + // + typedef __int64 intmax_t; + typedef unsigned __int64 uintmax_t; + typedef __int64 int64_t; + typedef __int64 int_least64_t; + typedef __int64 int_fast64_t; + typedef unsigned __int64 uint64_t; + typedef unsigned __int64 uint_least64_t; + typedef unsigned __int64 uint_fast64_t; +# else // assume no 64-bit integers +# define BOOST_NO_INT64_T + typedef int32_t intmax_t; + typedef uint32_t uintmax_t; +# endif + +} // namespace boost + + +#endif // BOOST_HAS_STDINT_H + +#endif // BOOST_CSTDINT_HPP + + +/**************************************************** + +Macro definition section: + +Define various INTXX_C macros only if +__STDC_CONSTANT_MACROS is defined. + +Undefine the macros if __STDC_CONSTANT_MACROS is +not defined and the macros are (cf ). + +Added 23rd September 2000 (John Maddock). +Modified 11th September 2001 to be excluded when +BOOST_HAS_STDINT_H is defined (John Maddock). + +******************************************************/ + +#if defined(__STDC_CONSTANT_MACROS) && !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && !defined(BOOST_HAS_STDINT_H) +# define BOOST__STDC_CONSTANT_MACROS_DEFINED +# if defined(BOOST_HAS_MS_INT64) +// +// Borland/Intel/Microsoft compilers have width specific suffixes: +// +# define INT8_C(value) value##i8 +# define INT16_C(value) value##i16 +# define INT32_C(value) value##i32 +# define INT64_C(value) value##i64 +# ifdef __BORLANDC__ + // Borland bug: appending ui8 makes the type a signed char +# define UINT8_C(value) static_cast(value##u) +# else +# define UINT8_C(value) value##ui8 +# endif +# define UINT16_C(value) value##ui16 +# define UINT32_C(value) value##ui32 +# define UINT64_C(value) value##ui64 +# define INTMAX_C(value) value##i64 +# define UINTMAX_C(value) value##ui64 + +# else +// do it the old fashioned way: + +// 8-bit types ------------------------------------------------------------// + +# if UCHAR_MAX == 0xff +# define INT8_C(value) static_cast(value) +# define UINT8_C(value) static_cast(value##u) +# endif + +// 16-bit types -----------------------------------------------------------// + +# if USHRT_MAX == 0xffff +# define INT16_C(value) static_cast(value) +# define UINT16_C(value) static_cast(value##u) +# endif + +// 32-bit types -----------------------------------------------------------// + +# if UINT_MAX == 0xffffffff +# define INT32_C(value) value +# define UINT32_C(value) value##u +# elif ULONG_MAX == 0xffffffff +# define INT32_C(value) value##L +# define UINT32_C(value) value##uL +# endif + +// 64-bit types + intmax_t and uintmax_t ----------------------------------// + +# if defined(BOOST_HAS_LONG_LONG) && \ + (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) + +# if defined(__hpux) + // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions +# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615U) || \ + (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615U) || \ + (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615U) + +# else +# error defaults not correct; you must hand modify boost/cstdint.hpp +# endif +# define INT64_C(value) value##LL +# define UINT64_C(value) value##uLL +# elif ULONG_MAX != 0xffffffff + +# if ULONG_MAX == 18446744073709551615 // 2**64 - 1 +# define INT64_C(value) value##L +# define UINT64_C(value) value##uL +# else +# error defaults not correct; you must hand modify boost/cstdint.hpp +# endif +# endif + +# ifdef BOOST_NO_INT64_T +# define INTMAX_C(value) INT32_C(value) +# define UINTMAX_C(value) UINT32_C(value) +# else +# define INTMAX_C(value) INT64_C(value) +# define UINTMAX_C(value) UINT64_C(value) +# endif + +# endif // Borland/Microsoft specific width suffixes + + +#elif defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && !defined(__STDC_CONSTANT_MACROS) && !defined(BOOST_HAS_STDINT_H) +// +// undef all the macros: +// +# undef INT8_C +# undef INT16_C +# undef INT32_C +# undef INT64_C +# undef UINT8_C +# undef UINT16_C +# undef UINT32_C +# undef UINT64_C +# undef INTMAX_C +# undef UINTMAX_C + +#endif // __STDC_CONSTANT_MACROS_DEFINED etc. + + + + diff --git a/external-libs/boost/boost/detail/bad_weak_ptr.hpp b/external-libs/boost/boost/detail/bad_weak_ptr.hpp new file mode 100644 index 0000000..93ecec9 --- /dev/null +++ b/external-libs/boost/boost/detail/bad_weak_ptr.hpp @@ -0,0 +1,59 @@ +#ifndef BOOST_BAD_WEAK_PTR_HPP_INCLUDED +#define BOOST_BAD_WEAK_PTR_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// detail/bad_weak_ptr.hpp +// +// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#include + +#ifdef __BORLANDC__ +# pragma warn -8026 // Functions with excep. spec. are not expanded inline +#endif + +namespace boost +{ + +// The standard library that comes with Borland C++ 5.5.1, 5.6.4 +// defines std::exception and its members as having C calling +// convention (-pc). When the definition of bad_weak_ptr +// is compiled with -ps, the compiler issues an error. +// Hence, the temporary #pragma option -pc below. + +#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 +# pragma option push -pc +#endif + +class bad_weak_ptr: public std::exception +{ +public: + + virtual char const * what() const throw() + { + return "tr1::bad_weak_ptr"; + } +}; + +#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 +# pragma option pop +#endif + +} // namespace boost + +#ifdef __BORLANDC__ +# pragma warn .8026 // Functions with excep. spec. are not expanded inline +#endif + +#endif // #ifndef BOOST_BAD_WEAK_PTR_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/indirect_traits.hpp b/external-libs/boost/boost/detail/indirect_traits.hpp new file mode 100644 index 0000000..f9c0cd6 --- /dev/null +++ b/external-libs/boost/boost/detail/indirect_traits.hpp @@ -0,0 +1,487 @@ +// Copyright David Abrahams 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef INDIRECT_TRAITS_DWA2002131_HPP +# define INDIRECT_TRAITS_DWA2002131_HPP +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# include +# include + +# include +# include +# include +# include +# include +# include + +# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include +# endif + +namespace boost { namespace detail { + +namespace indirect_traits { + +# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template +struct is_reference_to_const : mpl::false_ +{ +}; + +template +struct is_reference_to_const : mpl::true_ +{ +}; + +# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround +template +struct is_reference_to_const : mpl::true_ +{ +}; +# endif + +template +struct is_reference_to_function : mpl::false_ +{ +}; + +template +struct is_reference_to_function : is_function +{ +}; + +template +struct is_pointer_to_function : mpl::false_ +{ +}; + +// There's no such thing as a pointer-to-cv-function, so we don't need +// specializations for those +template +struct is_pointer_to_function : is_function +{ +}; + +template +struct is_reference_to_member_function_pointer_impl : mpl::false_ +{ +}; + +template +struct is_reference_to_member_function_pointer_impl + : is_member_function_pointer::type> +{ +}; + + +template +struct is_reference_to_member_function_pointer + : is_reference_to_member_function_pointer_impl +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T)) +}; + +template +struct is_reference_to_function_pointer_aux + : mpl::and_< + is_reference + , is_pointer_to_function< + typename remove_cv< + typename remove_reference::type + >::type + > + > +{ + // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those +}; + +template +struct is_reference_to_function_pointer + : mpl::if_< + is_reference_to_function + , mpl::false_ + , is_reference_to_function_pointer_aux + >::type +{ +}; + +template +struct is_reference_to_non_const + : mpl::and_< + is_reference + , mpl::not_< + is_reference_to_const + > + > +{ +}; + +template +struct is_reference_to_volatile : mpl::false_ +{ +}; + +template +struct is_reference_to_volatile : mpl::true_ +{ +}; + +# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround +template +struct is_reference_to_volatile : mpl::true_ +{ +}; +# endif + + +template +struct is_reference_to_pointer : mpl::false_ +{ +}; + +template +struct is_reference_to_pointer : mpl::true_ +{ +}; + +template +struct is_reference_to_pointer : mpl::true_ +{ +}; + +template +struct is_reference_to_pointer : mpl::true_ +{ +}; + +template +struct is_reference_to_pointer : mpl::true_ +{ +}; + +template +struct is_reference_to_class + : mpl::and_< + is_reference + , is_class< + typename remove_cv< + typename remove_reference::type + >::type + > + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T)) +}; + +template +struct is_pointer_to_class + : mpl::and_< + is_pointer + , is_class< + typename remove_cv< + typename remove_pointer::type + >::type + > + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T)) +}; + +# else + +using namespace boost::detail::is_function_ref_tester_; + +typedef char (&inner_yes_type)[3]; +typedef char (&inner_no_type)[2]; +typedef char (&outer_no_type)[1]; + +template +struct is_const_help +{ + typedef typename mpl::if_< + is_const + , inner_yes_type + , inner_no_type + >::type type; +}; + +template +struct is_volatile_help +{ + typedef typename mpl::if_< + is_volatile + , inner_yes_type + , inner_no_type + >::type type; +}; + +template +struct is_pointer_help +{ + typedef typename mpl::if_< + is_pointer + , inner_yes_type + , inner_no_type + >::type type; +}; + +template +struct is_class_help +{ + typedef typename mpl::if_< + is_class + , inner_yes_type + , inner_no_type + >::type type; +}; + +template +struct is_reference_to_function_aux +{ + static T t; + BOOST_STATIC_CONSTANT( + bool, value = sizeof(detail::is_function_ref_tester(t,0)) == sizeof(::boost::type_traits::yes_type)); + typedef mpl::bool_ type; + }; + +template +struct is_reference_to_function + : mpl::if_, is_reference_to_function_aux, mpl::bool_ >::type +{ +}; + +template +struct is_pointer_to_function_aux +{ + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = sizeof(::boost::type_traits::is_function_ptr_tester(t)) == sizeof(::boost::type_traits::yes_type)); + typedef mpl::bool_ type; +}; + +template +struct is_pointer_to_function + : mpl::if_, is_pointer_to_function_aux, mpl::bool_ >::type +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T)) +}; + +struct false_helper1 +{ + template + struct apply : mpl::false_ + { + }; +}; + +template +typename is_const_help::type reference_to_const_helper(V&); +outer_no_type +reference_to_const_helper(...); + +struct true_helper1 +{ + template + struct apply + { + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = sizeof(reference_to_const_helper(t)) == sizeof(inner_yes_type)); + typedef mpl::bool_ type; + }; +}; + +template +struct is_reference_to_const_helper1 : true_helper1 +{ +}; + +template <> +struct is_reference_to_const_helper1 : false_helper1 +{ +}; + + +template +struct is_reference_to_const + : is_reference_to_const_helper1::value>::template apply +{ +}; + + +template +struct is_reference_to_non_const_helper1 +{ + template + struct apply + { + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = sizeof(reference_to_const_helper(t)) == sizeof(inner_no_type)); + + typedef mpl::bool_ type; + }; +}; + +template <> +struct is_reference_to_non_const_helper1 : false_helper1 +{ +}; + + +template +struct is_reference_to_non_const + : is_reference_to_non_const_helper1::value>::template apply +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T)) +}; + + +template +typename is_volatile_help::type reference_to_volatile_helper(V&); +outer_no_type +reference_to_volatile_helper(...); + +template +struct is_reference_to_volatile_helper1 +{ + template + struct apply + { + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = sizeof(reference_to_volatile_helper(t)) == sizeof(inner_yes_type)); + typedef mpl::bool_ type; + }; +}; + +template <> +struct is_reference_to_volatile_helper1 : false_helper1 +{ +}; + + +template +struct is_reference_to_volatile + : is_reference_to_volatile_helper1::value>::template apply +{ +}; + +template +typename is_pointer_help::type reference_to_pointer_helper(V&); +outer_no_type reference_to_pointer_helper(...); + +template +struct reference_to_pointer_impl +{ + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = (sizeof((reference_to_pointer_helper)(t)) == sizeof(inner_yes_type)) + ); + + typedef mpl::bool_ type; +}; + +template +struct is_reference_to_pointer + : mpl::eval_if, reference_to_pointer_impl, mpl::false_>::type +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_pointer,(T)) +}; + +template +struct is_reference_to_function_pointer + : mpl::eval_if, is_pointer_to_function_aux, mpl::false_>::type +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T)) +}; + + +template +struct is_member_function_pointer_help + : mpl::if_, inner_yes_type, inner_no_type> +{}; + +template +typename is_member_function_pointer_help::type member_function_pointer_helper(V&); +outer_no_type member_function_pointer_helper(...); + +template +struct is_pointer_to_member_function_aux +{ + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = sizeof((member_function_pointer_helper)(t)) == sizeof(inner_yes_type)); + typedef mpl::bool_ type; +}; + +template +struct is_reference_to_member_function_pointer + : mpl::if_< + is_reference + , is_pointer_to_member_function_aux + , mpl::bool_ + >::type +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T)) +}; + +template +typename is_class_help::type reference_to_class_helper(V const volatile&); +outer_no_type reference_to_class_helper(...); + +template +struct is_reference_to_class +{ + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = (is_reference::value + & (sizeof(reference_to_class_helper(t)) == sizeof(inner_yes_type))) + ); + typedef mpl::bool_ type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T)) +}; + +template +typename is_class_help::type pointer_to_class_helper(V const volatile*); +outer_no_type pointer_to_class_helper(...); + +template +struct is_pointer_to_class +{ + static T t; + BOOST_STATIC_CONSTANT( + bool, value + = (is_pointer::value + && sizeof(pointer_to_class_helper(t)) == sizeof(inner_yes_type)) + ); + typedef mpl::bool_ type; +}; +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} + +using namespace indirect_traits; + +}} // namespace boost::python::detail + +#endif // INDIRECT_TRAITS_DWA2002131_HPP diff --git a/external-libs/boost/boost/detail/interlocked.hpp b/external-libs/boost/boost/detail/interlocked.hpp new file mode 100644 index 0000000..258320c --- /dev/null +++ b/external-libs/boost/boost/detail/interlocked.hpp @@ -0,0 +1,130 @@ +#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED +#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// boost/detail/interlocked.hpp +// +// Copyright 2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#include + +#if defined( BOOST_USE_WINDOWS_H ) + +# include + +# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement +# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange +# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange +# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer +# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer + +#elif defined(_WIN32_WCE) + +// under Windows CE we still have old-style Interlocked* functions + +extern "C" long __cdecl InterlockedIncrement( long* ); +extern "C" long __cdecl InterlockedDecrement( long* ); +extern "C" long __cdecl InterlockedCompareExchange( long*, long, long ); +extern "C" long __cdecl InterlockedExchange( long*, long ); +extern "C" long __cdecl InterlockedExchangeAdd( long*, long ); + +# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement +# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange +# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange +# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd + +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ + ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare))) +# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ + ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange))) + +#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) + +extern "C" long __cdecl _InterlockedIncrement( long volatile * ); +extern "C" long __cdecl _InterlockedDecrement( long volatile * ); +extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long ); +extern "C" long __cdecl _InterlockedExchange( long volatile *, long); +extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long); + +# pragma intrinsic( _InterlockedIncrement ) +# pragma intrinsic( _InterlockedDecrement ) +# pragma intrinsic( _InterlockedCompareExchange ) +# pragma intrinsic( _InterlockedExchange ) +# pragma intrinsic( _InterlockedExchangeAdd ) + +# if defined(_M_IA64) || defined(_M_AMD64) + +extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* ); +extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* ); + +# pragma intrinsic( _InterlockedCompareExchangePointer ) +# pragma intrinsic( _InterlockedExchangePointer ) + +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer +# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer + +# else + +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ + ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) +# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ + ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) + +# endif + +# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement +# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange +# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange +# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd + +#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) + +namespace boost +{ + +namespace detail +{ + +extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * ); +extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * ); +extern "C" __declspec(dllimport) long __stdcall InterlockedCompareExchange( long volatile *, long, long ); +extern "C" __declspec(dllimport) long __stdcall InterlockedExchange( long volatile *, long ); +extern "C" __declspec(dllimport) long __stdcall InterlockedExchangeAdd( long volatile *, long ); + +} // namespace detail + +} // namespace boost + +# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement +# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange +# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange +# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd + +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ + ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) +# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ + ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) + +#else + +# error "Interlocked intrinsics not available" + +#endif + +#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/iterator.hpp b/external-libs/boost/boost/detail/iterator.hpp new file mode 100644 index 0000000..5bb9c62 --- /dev/null +++ b/external-libs/boost/boost/detail/iterator.hpp @@ -0,0 +1,494 @@ +// (C) Copyright David Abrahams 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// Boost versions of +// +// std::iterator_traits<>::iterator_category +// std::iterator_traits<>::difference_type +// std::distance() +// +// ...for all compilers and iterators +// +// Additionally, if X is a pointer +// std::iterator_traits::pointer + +// Otherwise, if partial specialization is supported or X is not a pointer +// std::iterator_traits::value_type +// std::iterator_traits::pointer +// std::iterator_traits::reference +// +// See http://www.boost.org for most recent version including documentation. + +// Revision History +// 04 Mar 2001 - More attempted fixes for Intel C++ (David Abrahams) +// 03 Mar 2001 - Put all implementation into namespace +// boost::detail::iterator_traits_. Some progress made on fixes +// for Intel compiler. (David Abrahams) +// 02 Mar 2001 - Changed BOOST_MSVC to BOOST_MSVC_STD_ITERATOR in a few +// places. (Jeremy Siek) +// 19 Feb 2001 - Improved workarounds for stock MSVC6; use yes_type and +// no_type from type_traits.hpp; stopped trying to remove_cv +// before detecting is_pointer, in honor of the new type_traits +// semantics. (David Abrahams) +// 13 Feb 2001 - Make it work with nearly all standard-conforming iterators +// under raw VC6. The one category remaining which will fail is +// that of iterators derived from std::iterator but not +// boost::iterator and which redefine difference_type. +// 11 Feb 2001 - Clean away code which can never be used (David Abrahams) +// 09 Feb 2001 - Always have a definition for each traits member, even if it +// can't be properly deduced. These will be incomplete types in +// some cases (undefined), but it helps suppress MSVC errors +// elsewhere (David Abrahams) +// 07 Feb 2001 - Support for more of the traits members where possible, making +// this useful as a replacement for std::iterator_traits when +// used as a default template parameter. +// 06 Feb 2001 - Removed useless #includes of standard library headers +// (David Abrahams) + +#ifndef ITERATOR_DWA122600_HPP_ +# define ITERATOR_DWA122600_HPP_ + +# include +# include + +// STLPort 4.0 and betas have a bug when debugging is enabled and there is no +// partial specialization: instead of an iterator_category typedef, the standard +// container iterators have _Iterator_category. +// +// Also, whether debugging is enabled or not, there is a broken specialization +// of std::iterator which has no +// typedefs but iterator_category. +# if defined(__SGI_STL_PORT) + +# if (__SGI_STL_PORT <= 0x410) && !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && defined(__STL_DEBUG) +# define BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF +# endif + +# define BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION + +# endif // STLPort <= 4.1b4 && no partial specialization + +# if !defined(BOOST_NO_STD_ITERATOR_TRAITS) \ + && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_MSVC_STD_ITERATOR) + +namespace boost { namespace detail { + +// Define a new template so it can be specialized +template +struct iterator_traits + : std::iterator_traits +{}; +using std::distance; + +}} // namespace boost::detail + +# else + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_MSVC_STD_ITERATOR) + +// This is the case where everything conforms except BOOST_NO_STD_ITERATOR_TRAITS + +namespace boost { namespace detail { + +// Rogue Wave Standard Library fools itself into thinking partial +// specialization is missing on some platforms (e.g. Sun), so fails to +// supply iterator_traits! +template +struct iterator_traits +{ + typedef typename Iterator::value_type value_type; + typedef typename Iterator::reference reference; + typedef typename Iterator::pointer pointer; + typedef typename Iterator::difference_type difference_type; + typedef typename Iterator::iterator_category iterator_category; +}; + +template +struct iterator_traits +{ + typedef T value_type; + typedef T& reference; + typedef T* pointer; + typedef std::ptrdiff_t difference_type; + typedef std::random_access_iterator_tag iterator_category; +}; + +template +struct iterator_traits +{ + typedef T value_type; + typedef T const& reference; + typedef T const* pointer; + typedef std::ptrdiff_t difference_type; + typedef std::random_access_iterator_tag iterator_category; +}; + +}} // namespace boost::detail + +# else + +# include +# include +# include + +# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include +# include +# endif +# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION +# include +# endif + +# include +# include +# include + +// should be the last #include +# include "boost/type_traits/detail/bool_trait_def.hpp" + +namespace boost { namespace detail { + +BOOST_MPL_HAS_XXX_TRAIT_DEF(value_type) +BOOST_MPL_HAS_XXX_TRAIT_DEF(reference) +BOOST_MPL_HAS_XXX_TRAIT_DEF(pointer) +BOOST_MPL_HAS_XXX_TRAIT_DEF(difference_type) +BOOST_MPL_HAS_XXX_TRAIT_DEF(iterator_category) + +// is_mutable_iterator -- +// +// A metafunction returning true iff T is a mutable iterator type +// with a nested value_type. Will only work portably with iterators +// whose operator* returns a reference, but that seems to be OK for +// the iterators supplied by Dinkumware. Some input iterators may +// compile-time if they arrive here, and if the compiler is strict +// about not taking the address of an rvalue. + +// This one detects ordinary mutable iterators - the result of +// operator* is convertible to the value_type. +template +type_traits::yes_type is_mutable_iterator_helper(T const*, BOOST_DEDUCED_TYPENAME T::value_type*); + +// Since you can't take the address of an rvalue, the guts of +// is_mutable_iterator_impl will fail if we use &*t directly. This +// makes sure we can still work with non-lvalue iterators. +template T* mutable_iterator_lvalue_helper(T& x); +int mutable_iterator_lvalue_helper(...); + + +// This one detects output iterators such as ostream_iterator which +// return references to themselves. +template +type_traits::yes_type is_mutable_iterator_helper(T const*, T const*); + +type_traits::no_type is_mutable_iterator_helper(...); + +template +struct is_mutable_iterator_impl +{ + static T t; + + BOOST_STATIC_CONSTANT( + bool, value = sizeof( + detail::is_mutable_iterator_helper( + (T*)0 + , mutable_iterator_lvalue_helper(*t) // like &*t + )) + == sizeof(type_traits::yes_type) + ); +}; + +BOOST_TT_AUX_BOOL_TRAIT_DEF1( + is_mutable_iterator,T,::boost::detail::is_mutable_iterator_impl::value) + + +// is_full_iterator_traits -- +// +// A metafunction returning true iff T has all the requisite nested +// types to satisfy the requirements for a fully-conforming +// iterator_traits implementation. +template +struct is_full_iterator_traits_impl +{ + enum { value = + has_value_type::value + & has_reference::value + & has_pointer::value + & has_difference_type::value + & has_iterator_category::value + }; +}; + +BOOST_TT_AUX_BOOL_TRAIT_DEF1( + is_full_iterator_traits,T,::boost::detail::is_full_iterator_traits_impl::value) + + +# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF +BOOST_MPL_HAS_XXX_TRAIT_DEF(_Iterator_category) + +// is_stlport_40_debug_iterator -- +// +// A metafunction returning true iff T has all the requisite nested +// types to satisfy the requirements of an STLPort 4.0 debug iterator +// iterator_traits implementation. +template +struct is_stlport_40_debug_iterator_impl +{ + enum { value = + has_value_type::value + & has_reference::value + & has_pointer::value + & has_difference_type::value + & has__Iterator_category::value + }; +}; + +BOOST_TT_AUX_BOOL_TRAIT_DEF1( + is_stlport_40_debug_iterator,T,::boost::detail::is_stlport_40_debug_iterator_impl::value) + +template +struct stlport_40_debug_iterator_traits +{ + typedef typename T::value_type value_type; + typedef typename T::reference reference; + typedef typename T::pointer pointer; + typedef typename T::difference_type difference_type; + typedef typename T::_Iterator_category iterator_category; +}; +# endif // BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF + +template struct pointer_iterator_traits; + +# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template +struct pointer_iterator_traits +{ + typedef typename remove_const::type value_type; + typedef T* pointer; + typedef T& reference; + typedef std::random_access_iterator_tag iterator_category; + typedef std::ptrdiff_t difference_type; +}; +# else + +// In case of no template partial specialization, and if T is a +// pointer, iterator_traits::value_type can still be computed. For +// some basic types, remove_pointer is manually defined in +// type_traits/broken_compiler_spec.hpp. For others, do it yourself. + +template class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee; + +template +struct pointer_value_type + : mpl::if_< + is_same::type> + , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee

+ , typename remove_const< + typename remove_pointer

::type + >::type + > +{ +}; + + +template +struct pointer_reference + : mpl::if_< + is_same::type> + , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee

+ , typename remove_pointer

::type& + > +{ +}; + +template +struct pointer_iterator_traits +{ + typedef T pointer; + typedef std::random_access_iterator_tag iterator_category; + typedef std::ptrdiff_t difference_type; + + typedef typename pointer_value_type::type value_type; + typedef typename pointer_reference::type reference; +}; + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +// We'll sort iterator types into one of these classifications, from which we +// can determine the difference_type, pointer, reference, and value_type +template +struct standard_iterator_traits +{ + typedef typename Iterator::difference_type difference_type; + typedef typename Iterator::value_type value_type; + typedef typename Iterator::pointer pointer; + typedef typename Iterator::reference reference; + typedef typename Iterator::iterator_category iterator_category; +}; + +template +struct msvc_stdlib_mutable_traits + : std::iterator_traits +{ + typedef typename std::iterator_traits::distance_type difference_type; + typedef typename std::iterator_traits::value_type* pointer; + typedef typename std::iterator_traits::value_type& reference; +}; + +template +struct msvc_stdlib_const_traits + : std::iterator_traits +{ + typedef typename std::iterator_traits::distance_type difference_type; + typedef const typename std::iterator_traits::value_type* pointer; + typedef const typename std::iterator_traits::value_type& reference; +}; + +# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION +template +struct is_bad_output_iterator + : is_base_and_derived< + std::iterator + , Iterator> +{ +}; + +struct bad_output_iterator_traits +{ + typedef void value_type; + typedef void difference_type; + typedef std::output_iterator_tag iterator_category; + typedef void pointer; + typedef void reference; +}; +# endif + +// If we're looking at an MSVC6 (old Dinkumware) ``standard'' +// iterator, this will generate an appropriate traits class. +template +struct msvc_stdlib_iterator_traits + : mpl::if_< + is_mutable_iterator + , msvc_stdlib_mutable_traits + , msvc_stdlib_const_traits + >::type +{}; + +template +struct non_pointer_iterator_traits + : mpl::if_< + // if the iterator contains all the right nested types... + is_full_iterator_traits + // Use a standard iterator_traits implementation + , standard_iterator_traits +# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF + // Check for STLPort 4.0 broken _Iterator_category type + , mpl::if_< + is_stlport_40_debug_iterator + , stlport_40_debug_iterator_traits +# endif + // Otherwise, assume it's a Dinkum iterator + , msvc_stdlib_iterator_traits +# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF + >::type +# endif + >::type +{ +}; + +template +struct iterator_traits_aux + : mpl::if_< + is_pointer + , pointer_iterator_traits + , non_pointer_iterator_traits + >::type +{ +}; + +template +struct iterator_traits +{ + // Explicit forwarding from base class needed to keep MSVC6 happy + // under some circumstances. + private: +# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION + typedef + typename mpl::if_< + is_bad_output_iterator + , bad_output_iterator_traits + , iterator_traits_aux + >::type base; +# else + typedef iterator_traits_aux base; +# endif + public: + typedef typename base::value_type value_type; + typedef typename base::pointer pointer; + typedef typename base::reference reference; + typedef typename base::difference_type difference_type; + typedef typename base::iterator_category iterator_category; +}; + +// This specialization cuts off ETI (Early Template Instantiation) for MSVC. +template <> struct iterator_traits +{ + typedef int value_type; + typedef int pointer; + typedef int reference; + typedef int difference_type; + typedef int iterator_category; +}; + +}} // namespace boost::detail + +# endif // workarounds + +namespace boost { namespace detail { + +namespace iterator_traits_ +{ + template + struct distance_select + { + static Difference execute(Iterator i1, const Iterator i2, ...) + { + Difference result = 0; + while (i1 != i2) + { + ++i1; + ++result; + } + return result; + } + + static Difference execute(Iterator i1, const Iterator i2, std::random_access_iterator_tag*) + { + return i2 - i1; + } + }; +} // namespace boost::detail::iterator_traits_ + +template +inline typename iterator_traits::difference_type +distance(Iterator first, Iterator last) +{ + typedef typename iterator_traits::difference_type diff_t; + typedef typename ::boost::detail::iterator_traits::iterator_category iterator_category; + + return iterator_traits_::distance_select::execute( + first, last, (iterator_category*)0); +} + +}} + +# endif + + +# undef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF +# undef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION + +#endif // ITERATOR_DWA122600_HPP_ diff --git a/external-libs/boost/boost/detail/shared_count.hpp b/external-libs/boost/boost/detail/shared_count.hpp new file mode 100644 index 0000000..085b12f --- /dev/null +++ b/external-libs/boost/boost/detail/shared_count.hpp @@ -0,0 +1,375 @@ +#ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED +#define BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// detail/shared_count.hpp +// +// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// Copyright 2004-2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#ifdef __BORLANDC__ +# pragma warn -8027 // Functions containing try are not expanded inline +#endif + +#include +#include +#include +#include +#include +#include + +#include // std::auto_ptr +#include // std::less +#include // std::bad_alloc + +namespace boost +{ + +namespace detail +{ + +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + +int const shared_count_id = 0x2C35F101; +int const weak_count_id = 0x298C38A4; + +#endif + +class weak_count; + +class shared_count +{ +private: + + sp_counted_base * pi_; + +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + int id_; +#endif + + friend class weak_count; + +public: + + shared_count(): pi_(0) // nothrow +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { + } + + template explicit shared_count( Y * p ): pi_( 0 ) +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { +#ifndef BOOST_NO_EXCEPTIONS + + try + { + pi_ = new sp_counted_impl_p( p ); + } + catch(...) + { + boost::checked_delete( p ); + throw; + } + +#else + + pi_ = new sp_counted_impl_p( p ); + + if( pi_ == 0 ) + { + boost::checked_delete( p ); + boost::throw_exception( std::bad_alloc() ); + } + +#endif + } + + template shared_count(P p, D d): pi_(0) +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { +#ifndef BOOST_NO_EXCEPTIONS + + try + { + pi_ = new sp_counted_impl_pd(p, d); + } + catch(...) + { + d(p); // delete p + throw; + } + +#else + + pi_ = new sp_counted_impl_pd(p, d); + + if(pi_ == 0) + { + d(p); // delete p + boost::throw_exception(std::bad_alloc()); + } + +#endif + } + + template shared_count( P p, D d, A a ): pi_( 0 ) +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { + typedef sp_counted_impl_pda impl_type; + typedef typename A::template rebind< impl_type >::other A2; + + A2 a2( a ); + +#ifndef BOOST_NO_EXCEPTIONS + + try + { + pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); + new( static_cast< void* >( pi_ ) ) impl_type( p, d, a ); + } + catch(...) + { + d( p ); + + if( pi_ != 0 ) + { + a2.deallocate( static_cast< impl_type* >( pi_ ), 1 ); + } + + throw; + } + +#else + + pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); + + if( pi_ != 0 ) + { + new( static_cast< void* >( pi_ ) ) impl_type( p, d, a ); + } + else + { + d( p ); + boost::throw_exception( std::bad_alloc() ); + } + +#endif + } + +#ifndef BOOST_NO_AUTO_PTR + + // auto_ptr is special cased to provide the strong guarantee + + template + explicit shared_count( std::auto_ptr & r ): pi_( new sp_counted_impl_p( r.get() ) ) +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { +#ifdef BOOST_NO_EXCEPTIONS + + if( pi_ == 0 ) + { + boost::throw_exception(std::bad_alloc()); + } + +#endif + + r.release(); + } + +#endif + + ~shared_count() // nothrow + { + if( pi_ != 0 ) pi_->release(); +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + id_ = 0; +#endif + } + + shared_count(shared_count const & r): pi_(r.pi_) // nothrow +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { + if( pi_ != 0 ) pi_->add_ref_copy(); + } + + explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0 + + shared_count & operator= (shared_count const & r) // nothrow + { + sp_counted_base * tmp = r.pi_; + + if( tmp != pi_ ) + { + if( tmp != 0 ) tmp->add_ref_copy(); + if( pi_ != 0 ) pi_->release(); + pi_ = tmp; + } + + return *this; + } + + void swap(shared_count & r) // nothrow + { + sp_counted_base * tmp = r.pi_; + r.pi_ = pi_; + pi_ = tmp; + } + + long use_count() const // nothrow + { + return pi_ != 0? pi_->use_count(): 0; + } + + bool unique() const // nothrow + { + return use_count() == 1; + } + + friend inline bool operator==(shared_count const & a, shared_count const & b) + { + return a.pi_ == b.pi_; + } + + friend inline bool operator<(shared_count const & a, shared_count const & b) + { + return std::less()( a.pi_, b.pi_ ); + } + + void * get_deleter( sp_typeinfo const & ti ) const + { + return pi_? pi_->get_deleter( ti ): 0; + } +}; + + +class weak_count +{ +private: + + sp_counted_base * pi_; + +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + int id_; +#endif + + friend class shared_count; + +public: + + weak_count(): pi_(0) // nothrow +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(weak_count_id) +#endif + { + } + + weak_count(shared_count const & r): pi_(r.pi_) // nothrow +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { + if(pi_ != 0) pi_->weak_add_ref(); + } + + weak_count(weak_count const & r): pi_(r.pi_) // nothrow +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { + if(pi_ != 0) pi_->weak_add_ref(); + } + + ~weak_count() // nothrow + { + if(pi_ != 0) pi_->weak_release(); +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + id_ = 0; +#endif + } + + weak_count & operator= (shared_count const & r) // nothrow + { + sp_counted_base * tmp = r.pi_; + if(tmp != 0) tmp->weak_add_ref(); + if(pi_ != 0) pi_->weak_release(); + pi_ = tmp; + + return *this; + } + + weak_count & operator= (weak_count const & r) // nothrow + { + sp_counted_base * tmp = r.pi_; + if(tmp != 0) tmp->weak_add_ref(); + if(pi_ != 0) pi_->weak_release(); + pi_ = tmp; + + return *this; + } + + void swap(weak_count & r) // nothrow + { + sp_counted_base * tmp = r.pi_; + r.pi_ = pi_; + pi_ = tmp; + } + + long use_count() const // nothrow + { + return pi_ != 0? pi_->use_count(): 0; + } + + friend inline bool operator==(weak_count const & a, weak_count const & b) + { + return a.pi_ == b.pi_; + } + + friend inline bool operator<(weak_count const & a, weak_count const & b) + { + return std::less()(a.pi_, b.pi_); + } +}; + +inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ ) +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif +{ + if( pi_ == 0 || !pi_->add_ref_lock() ) + { + boost::throw_exception( boost::bad_weak_ptr() ); + } +} + +} // namespace detail + +} // namespace boost + +#ifdef __BORLANDC__ +# pragma warn .8027 // Functions containing try are not expanded inline +#endif + +#endif // #ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/sp_counted_base.hpp b/external-libs/boost/boost/detail/sp_counted_base.hpp new file mode 100644 index 0000000..f925a5d --- /dev/null +++ b/external-libs/boost/boost/detail/sp_counted_base.hpp @@ -0,0 +1,81 @@ +#ifndef BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED +#define BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// detail/sp_counted_base.hpp +// +// Copyright 2005, 2006 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#include + +#if defined( BOOST_SP_DISABLE_THREADS ) + +# include + +#elif defined( BOOST_SP_USE_PTHREADS ) + +# include + +#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) + +# include + +//~ #elif defined( __MWERKS__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) + +//~ # include + +#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) + +# include + +#elif defined(__HP_aCC) && defined(__ia64) + +# include + +#elif defined( __MWERKS__ ) && defined( __POWERPC__ ) + +# include + +#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) + +# include + +#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) + +# include + +#elif defined(__GNUC__) && ( defined( __sparcv8 ) || defined( __sparcv9 ) ) + +# include + +#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) + +# include + +#elif !defined( BOOST_HAS_THREADS ) + +# include + +#elif defined( BOOST_HAS_PTHREADS ) + +# include + +#else + +// Use #define BOOST_DISABLE_THREADS to avoid the error +# error Unrecognized threading platform + +#endif + +#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/sp_counted_base_gcc_ppc.hpp b/external-libs/boost/boost/detail/sp_counted_base_gcc_ppc.hpp new file mode 100644 index 0000000..5a488f5 --- /dev/null +++ b/external-libs/boost/boost/detail/sp_counted_base_gcc_ppc.hpp @@ -0,0 +1,181 @@ +#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED +#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC +// +// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// Copyright 2004-2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// Lock-free algorithm by Alexander Terekhov +// +// Thanks to Ben Hitchings for the #weak + (#shared != 0) +// formulation +// + +#include "sp_typeinfo.hpp" + +namespace boost +{ + +namespace detail +{ + +inline void atomic_increment( int * pw ) +{ + // ++*pw; + + int tmp; + + __asm__ + ( + "0:\n\t" + "lwarx %1, 0, %2\n\t" + "addi %1, %1, 1\n\t" + "stwcx. %1, 0, %2\n\t" + "bne- 0b": + + "=m"( *pw ), "=&b"( tmp ): + "r"( pw ), "m"( *pw ): + "cc" + ); +} + +inline int atomic_decrement( int * pw ) +{ + // return --*pw; + + int rv; + + __asm__ __volatile__ + ( + "sync\n\t" + "0:\n\t" + "lwarx %1, 0, %2\n\t" + "addi %1, %1, -1\n\t" + "stwcx. %1, 0, %2\n\t" + "bne- 0b\n\t" + "isync": + + "=m"( *pw ), "=&b"( rv ): + "r"( pw ), "m"( *pw ): + "memory", "cc" + ); + + return rv; +} + +inline int atomic_conditional_increment( int * pw ) +{ + // if( *pw != 0 ) ++*pw; + // return *pw; + + int rv; + + __asm__ + ( + "0:\n\t" + "lwarx %1, 0, %2\n\t" + "cmpwi %1, 0\n\t" + "beq 1f\n\t" + "addi %1, %1, 1\n\t" + "1:\n\t" + "stwcx. %1, 0, %2\n\t" + "bne- 0b": + + "=m"( *pw ), "=&b"( rv ): + "r"( pw ), "m"( *pw ): + "cc" + ); + + return rv; +} + +class sp_counted_base +{ +private: + + sp_counted_base( sp_counted_base const & ); + sp_counted_base & operator= ( sp_counted_base const & ); + + int use_count_; // #shared + int weak_count_; // #weak + (#shared != 0) + +public: + + sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) + { + } + + virtual ~sp_counted_base() // nothrow + { + } + + // dispose() is called when use_count_ drops to zero, to release + // the resources managed by *this. + + virtual void dispose() = 0; // nothrow + + // destroy() is called when weak_count_ drops to zero. + + virtual void destroy() // nothrow + { + delete this; + } + + virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + + void add_ref_copy() + { + atomic_increment( &use_count_ ); + } + + bool add_ref_lock() // true on success + { + return atomic_conditional_increment( &use_count_ ) != 0; + } + + void release() // nothrow + { + if( atomic_decrement( &use_count_ ) == 0 ) + { + dispose(); + weak_release(); + } + } + + void weak_add_ref() // nothrow + { + atomic_increment( &weak_count_ ); + } + + void weak_release() // nothrow + { + if( atomic_decrement( &weak_count_ ) == 0 ) + { + destroy(); + } + } + + long use_count() const // nothrow + { + return static_cast( use_count_ ); + } +}; + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/sp_counted_base_gcc_x86.hpp b/external-libs/boost/boost/detail/sp_counted_base_gcc_x86.hpp new file mode 100644 index 0000000..7d243de --- /dev/null +++ b/external-libs/boost/boost/detail/sp_counted_base_gcc_x86.hpp @@ -0,0 +1,173 @@ +#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED +#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64 +// +// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// Copyright 2004-2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// Lock-free algorithm by Alexander Terekhov +// +// Thanks to Ben Hitchings for the #weak + (#shared != 0) +// formulation +// + +#include "sp_typeinfo.hpp" + +namespace boost +{ + +namespace detail +{ + +inline int atomic_exchange_and_add( int * pw, int dv ) +{ + // int r = *pw; + // *pw += dv; + // return r; + + int r; + + __asm__ __volatile__ + ( + "lock\n\t" + "xadd %1, %0": + "=m"( *pw ), "=r"( r ): // outputs (%0, %1) + "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1) + "memory", "cc" // clobbers + ); + + return r; +} + +inline void atomic_increment( int * pw ) +{ + //atomic_exchange_and_add( pw, 1 ); + + __asm__ + ( + "lock\n\t" + "incl %0": + "=m"( *pw ): // output (%0) + "m"( *pw ): // input (%1) + "cc" // clobbers + ); +} + +inline int atomic_conditional_increment( int * pw ) +{ + // int rv = *pw; + // if( rv != 0 ) ++*pw; + // return rv; + + int rv, tmp; + + __asm__ + ( + "movl %0, %%eax\n\t" + "0:\n\t" + "test %%eax, %%eax\n\t" + "je 1f\n\t" + "movl %%eax, %2\n\t" + "incl %2\n\t" + "lock\n\t" + "cmpxchgl %2, %0\n\t" + "jne 0b\n\t" + "1:": + "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2) + "m"( *pw ): // input (%3) + "cc" // clobbers + ); + + return rv; +} + +class sp_counted_base +{ +private: + + sp_counted_base( sp_counted_base const & ); + sp_counted_base & operator= ( sp_counted_base const & ); + + int use_count_; // #shared + int weak_count_; // #weak + (#shared != 0) + +public: + + sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) + { + } + + virtual ~sp_counted_base() // nothrow + { + } + + // dispose() is called when use_count_ drops to zero, to release + // the resources managed by *this. + + virtual void dispose() = 0; // nothrow + + // destroy() is called when weak_count_ drops to zero. + + virtual void destroy() // nothrow + { + delete this; + } + + virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + + void add_ref_copy() + { + atomic_increment( &use_count_ ); + } + + bool add_ref_lock() // true on success + { + return atomic_conditional_increment( &use_count_ ) != 0; + } + + void release() // nothrow + { + if( atomic_exchange_and_add( &use_count_, -1 ) == 1 ) + { + dispose(); + weak_release(); + } + } + + void weak_add_ref() // nothrow + { + atomic_increment( &weak_count_ ); + } + + void weak_release() // nothrow + { + if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 ) + { + destroy(); + } + } + + long use_count() const // nothrow + { + return static_cast( use_count_ ); + } +}; + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/sp_counted_base_w32.hpp b/external-libs/boost/boost/detail/sp_counted_base_w32.hpp new file mode 100644 index 0000000..4328962 --- /dev/null +++ b/external-libs/boost/boost/detail/sp_counted_base_w32.hpp @@ -0,0 +1,130 @@ +#ifndef BOOST_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED +#define BOOST_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// detail/sp_counted_base_w32.hpp +// +// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// Copyright 2004-2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// Lock-free algorithm by Alexander Terekhov +// +// Thanks to Ben Hitchings for the #weak + (#shared != 0) +// formulation +// + +#include +#include +#include "sp_typeinfo.hpp" + +namespace boost +{ + +namespace detail +{ + +class sp_counted_base +{ +private: + + sp_counted_base( sp_counted_base const & ); + sp_counted_base & operator= ( sp_counted_base const & ); + + long use_count_; // #shared + long weak_count_; // #weak + (#shared != 0) + +public: + + sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) + { + } + + virtual ~sp_counted_base() // nothrow + { + } + + // dispose() is called when use_count_ drops to zero, to release + // the resources managed by *this. + + virtual void dispose() = 0; // nothrow + + // destroy() is called when weak_count_ drops to zero. + + virtual void destroy() // nothrow + { + delete this; + } + + virtual void * get_deleter( sp_typeinfo const & ti ) = 0; + + void add_ref_copy() + { + BOOST_INTERLOCKED_INCREMENT( &use_count_ ); + } + + bool add_ref_lock() // true on success + { + for( ;; ) + { + long tmp = static_cast< long const volatile& >( use_count_ ); + if( tmp == 0 ) return false; + +#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 ) + + // work around a code generation bug + + long tmp2 = tmp + 1; + if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true; + +#else + + if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true; + +#endif + } + } + + void release() // nothrow + { + if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 ) + { + dispose(); + weak_release(); + } + } + + void weak_add_ref() // nothrow + { + BOOST_INTERLOCKED_INCREMENT( &weak_count_ ); + } + + void weak_release() // nothrow + { + if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 ) + { + destroy(); + } + } + + long use_count() const // nothrow + { + return static_cast( use_count_ ); + } +}; + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/sp_counted_impl.hpp b/external-libs/boost/boost/detail/sp_counted_impl.hpp new file mode 100644 index 0000000..81f92da --- /dev/null +++ b/external-libs/boost/boost/detail/sp_counted_impl.hpp @@ -0,0 +1,231 @@ +#ifndef BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED +#define BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// detail/sp_counted_impl.hpp +// +// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// Copyright 2004-2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +#include + +#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR) +# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible. +#endif + +#include +#include + +#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) +#include +#endif + +#if defined(BOOST_SP_USE_STD_ALLOCATOR) +#include // std::allocator +#endif + +#include // std::size_t + +namespace boost +{ + +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + +void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn ); +void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn ); + +#endif + +namespace detail +{ + +template class sp_counted_impl_p: public sp_counted_base +{ +private: + + X * px_; + + sp_counted_impl_p( sp_counted_impl_p const & ); + sp_counted_impl_p & operator= ( sp_counted_impl_p const & ); + + typedef sp_counted_impl_p this_type; + +public: + + explicit sp_counted_impl_p( X * px ): px_( px ) + { +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + boost::sp_scalar_constructor_hook( px, sizeof(X), this ); +#endif + } + + virtual void dispose() // nothrow + { +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + boost::sp_scalar_destructor_hook( px_, sizeof(X), this ); +#endif + boost::checked_delete( px_ ); + } + + virtual void * get_deleter( detail::sp_typeinfo const & ) + { + return 0; + } + +#if defined(BOOST_SP_USE_STD_ALLOCATOR) + + void * operator new( std::size_t ) + { + return std::allocator().allocate( 1, static_cast(0) ); + } + + void operator delete( void * p ) + { + std::allocator().deallocate( static_cast(p), 1 ); + } + +#endif + +#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) + + void * operator new( std::size_t ) + { + return quick_allocator::alloc(); + } + + void operator delete( void * p ) + { + quick_allocator::dealloc( p ); + } + +#endif +}; + +// +// Borland's Codeguard trips up over the -Vx- option here: +// +#ifdef __CODEGUARD__ +# pragma option push -Vx- +#endif + +template class sp_counted_impl_pd: public sp_counted_base +{ +private: + + P ptr; // copy constructor must not throw + D del; // copy constructor must not throw + + sp_counted_impl_pd( sp_counted_impl_pd const & ); + sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & ); + + typedef sp_counted_impl_pd this_type; + +public: + + // pre: d(p) must not throw + + sp_counted_impl_pd( P p, D d ): ptr(p), del(d) + { + } + + virtual void dispose() // nothrow + { + del( ptr ); + } + + virtual void * get_deleter( detail::sp_typeinfo const & ti ) + { + return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast( del ): 0; + } + +#if defined(BOOST_SP_USE_STD_ALLOCATOR) + + void * operator new( std::size_t ) + { + return std::allocator().allocate( 1, static_cast(0) ); + } + + void operator delete( void * p ) + { + std::allocator().deallocate( static_cast(p), 1 ); + } + +#endif + +#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) + + void * operator new( std::size_t ) + { + return quick_allocator::alloc(); + } + + void operator delete( void * p ) + { + quick_allocator::dealloc( p ); + } + +#endif +}; + +template class sp_counted_impl_pda: public sp_counted_base +{ +private: + + P p_; // copy constructor must not throw + D d_; // copy constructor must not throw + A a_; // copy constructor must not throw + + sp_counted_impl_pda( sp_counted_impl_pda const & ); + sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & ); + + typedef sp_counted_impl_pda this_type; + +public: + + // pre: d( p ) must not throw + + sp_counted_impl_pda( P p, D d, A a ): p_( p ), d_( d ), a_( a ) + { + } + + virtual void dispose() // nothrow + { + d_( p_ ); + } + + virtual void destroy() // nothrow + { + typedef typename A::template rebind< this_type >::other A2; + + A2 a2( a_ ); + + this->~this_type(); + a2.deallocate( this, 1 ); + } + + virtual void * get_deleter( detail::sp_typeinfo const & ti ) + { + return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast( d_ ): 0; + } +}; + +#ifdef __CODEGUARD__ +# pragma option pop +#endif + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/sp_typeinfo.hpp b/external-libs/boost/boost/detail/sp_typeinfo.hpp new file mode 100644 index 0000000..e78c943 --- /dev/null +++ b/external-libs/boost/boost/detail/sp_typeinfo.hpp @@ -0,0 +1,83 @@ +#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED +#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// detail/sp_typeinfo.hpp +// +// Copyright 2007 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#include + +#if defined( BOOST_NO_TYPEID ) + +namespace boost +{ + +namespace detail +{ + +typedef void* sp_typeinfo; + +template struct sp_typeid_ +{ + static char v_; +}; + +template char sp_typeid_< T >::v_; + +template struct sp_typeid_< T const >: sp_typeid_< T > +{ +}; + +template struct sp_typeid_< T volatile >: sp_typeid_< T > +{ +}; + +template struct sp_typeid_< T const volatile >: sp_typeid_< T > +{ +}; + +} // namespace detail + +} // namespace boost + +#define BOOST_SP_TYPEID(T) (&boost::detail::sp_typeid_::v_) + +#else + +#include + +namespace boost +{ + +namespace detail +{ + +#if defined( BOOST_NO_STD_TYPEINFO ) + +typedef ::type_info sp_typeinfo; + +#else + +typedef std::type_info sp_typeinfo; + +#endif + +} // namespace detail + +} // namespace boost + +#define BOOST_SP_TYPEID(T) typeid(T) + +#endif + +#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/external-libs/boost/boost/detail/workaround.hpp b/external-libs/boost/boost/detail/workaround.hpp new file mode 100644 index 0000000..4933a53 --- /dev/null +++ b/external-libs/boost/boost/detail/workaround.hpp @@ -0,0 +1,202 @@ +// Copyright David Abrahams 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef WORKAROUND_DWA2002126_HPP +# define WORKAROUND_DWA2002126_HPP + +// Compiler/library version workaround macro +// +// Usage: +// +// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +// // workaround for eVC4 and VC6 +// ... // workaround code here +// #endif +// +// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the +// first argument must be undefined or expand to a numeric +// value. The above expands to: +// +// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300 +// +// When used for workarounds that apply to the latest known version +// and all earlier versions of a compiler, the following convention +// should be observed: +// +// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301)) +// +// The version number in this case corresponds to the last version in +// which the workaround was known to have been required. When +// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro +// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates +// the workaround for any version of the compiler. When +// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or +// error will be issued if the compiler version exceeds the argument +// to BOOST_TESTED_AT(). This can be used to locate workarounds which +// may be obsoleted by newer versions. + +# ifndef BOOST_STRICT_CONFIG + +#include + +#ifndef __BORLANDC__ +#define __BORLANDC___WORKAROUND_GUARD 1 +#else +#define __BORLANDC___WORKAROUND_GUARD 0 +#endif +#ifndef __MSC_VER +#define __MSC_VER_WORKAROUND_GUARD 1 +#else +#define __MSC_VER_WORKAROUND_GUARD 0 +#endif +#ifndef _MSC_FULL_VER +#define _MSC_FULL_VER_WORKAROUND_GUARD 1 +#else +#define _MSC_FULL_VER_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_MSVC +#define BOOST_MSVC_WORKAROUND_GUARD 1 +#else +#define BOOST_MSVC_WORKAROUND_GUARD 0 +#endif +#ifndef __GNUC__ +#define __GNUC___WORKAROUND_GUARD 1 +#else +#define __GNUC___WORKAROUND_GUARD 0 +#endif +#ifndef __GNUC_MINOR__ +#define __GNUC_MINOR___WORKAROUND_GUARD 1 +#else +#define __GNUC_MINOR___WORKAROUND_GUARD 0 +#endif +#ifndef __GNUC_PATCHLEVEL__ +#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1 +#else +#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0 +#endif +#ifndef __IBMCPP__ +#define __IBMCPP___WORKAROUND_GUARD 1 +#else +#define __IBMCPP___WORKAROUND_GUARD 0 +#endif +#ifndef __SUNPRO_CC +#define __SUNPRO_CC_WORKAROUND_GUARD 1 +#else +#define __SUNPRO_CC_WORKAROUND_GUARD 0 +#endif +#ifndef __DECCXX_VER +#define __DECCXX_VER_WORKAROUND_GUARD 1 +#else +#define __DECCXX_VER_WORKAROUND_GUARD 0 +#endif +#ifndef __MWERKS__ +#define __MWERKS___WORKAROUND_GUARD 1 +#else +#define __MWERKS___WORKAROUND_GUARD 0 +#endif +#ifndef __EDG_VERSION__ +#define __EDG_VERSION___WORKAROUND_GUARD 1 +#else +#define __EDG_VERSION___WORKAROUND_GUARD 0 +#endif +#ifndef __HP_aCC +#define __HP_aCC_WORKAROUND_GUARD 1 +#else +#define __HP_aCC_WORKAROUND_GUARD 0 +#endif +#ifndef _CRAYC +#define _CRAYC_WORKAROUND_GUARD 1 +#else +#define _CRAYC_WORKAROUND_GUARD 0 +#endif +#ifndef __DMC__ +#define __DMC___WORKAROUND_GUARD 1 +#else +#define __DMC___WORKAROUND_GUARD 0 +#endif +#ifndef MPW_CPLUS +#define MPW_CPLUS_WORKAROUND_GUARD 1 +#else +#define MPW_CPLUS_WORKAROUND_GUARD 0 +#endif + +#ifndef _RWSTD_VER +#define _RWSTD_VER_WORKAROUND_GUARD 1 +#else +#define _RWSTD_VER_WORKAROUND_GUARD 0 +#endif +#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC +#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1 +#else +#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0 +#endif +#ifndef __SGI_STL_PORT +#define __SGI_STL_PORT_WORKAROUND_GUARD 1 +#else +#define __SGI_STL_PORT_WORKAROUND_GUARD 0 +#endif +#ifndef _STLPORT_VERSION +#define _STLPORT_VERSION_WORKAROUND_GUARD 1 +#else +#define _STLPORT_VERSION_WORKAROUND_GUARD 0 +#endif + +#ifndef BOOST_INTEL_CXX_VERSION +#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1 +#else +#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_INTEL_WIN +#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1 +#else +#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_DINKUMWARE_STDLIB +#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1 +#else +#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_INTEL +#define BOOST_INTEL_WORKAROUND_GUARD 1 +#else +#define BOOST_INTEL_WORKAROUND_GUARD 0 +#endif +// Always define to zero, if it's used it'll be defined my MPL: +#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0 + +# define BOOST_WORKAROUND(symbol, test) \ + ((symbol ## _WORKAROUND_GUARD + 0 == 0) && \ + (symbol != 0) && (1 % (( (symbol test) ) + 1))) +// ^ ^ ^ ^ +// The extra level of parenthesis nesting above, along with the +// BOOST_OPEN_PAREN indirection below, is required to satisfy the +// broken preprocessor in MWCW 8.3 and earlier. +// +// The basic mechanism works as follows: +// (symbol test) + 1 => if (symbol test) then 2 else 1 +// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0 +// +// The complication with % is for cooperation with BOOST_TESTED_AT(). +// When "test" is BOOST_TESTED_AT(x) and +// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined, +// +// symbol test => if (symbol <= x) then 1 else -1 +// (symbol test) + 1 => if (symbol <= x) then 2 else 0 +// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero +// + +# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS +# define BOOST_OPEN_PAREN ( +# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1 +# else +# define BOOST_TESTED_AT(value) != ((value)-(value)) +# endif + +# else + +# define BOOST_WORKAROUND(symbol, test) 0 + +# endif + +#endif // WORKAROUND_DWA2002126_HPP diff --git a/external-libs/boost/boost/filesystem/config.hpp b/external-libs/boost/boost/filesystem/config.hpp new file mode 100644 index 0000000..223b7cc --- /dev/null +++ b/external-libs/boost/boost/filesystem/config.hpp @@ -0,0 +1,113 @@ +// boost/filesystem/config.hpp ---------------------------------------------// + +// Copyright Beman Dawes 2003 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/filesystem + +//----------------------------------------------------------------------------// + +#ifndef BOOST_FILESYSTEM_CONFIG_HPP +#define BOOST_FILESYSTEM_CONFIG_HPP + +#define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions + +// ability to change namespace aids path_table.cpp ------------------------// +#ifndef BOOST_FILESYSTEM_NAMESPACE +# define BOOST_FILESYSTEM_NAMESPACE filesystem +#endif + +// This header implements separate compilation features as described in +// http://www.boost.org/more/separate_compilation.html + +#include +#include + +// determine platform ------------------------------------------------------// + +// BOOST_CYGWIN_PATH implies BOOST_WINDOWS_PATH and BOOST_POSIX_API + +# if defined(BOOST_CYGWIN_PATH) +# if defined(BOOST_POSIX_PATH) +# error BOOST_POSIX_PATH is invalid when BOOST_CYGWIN_PATH is defined +# endif +# if defined(BOOST_WINDOWS_API) +# error BOOST_WINDOWS_API is invalid when BOOST_CYGWIN_PATH is defined +# endif +# define BOOST_WINDOWS_PATH +# define BOOST_POSIX_API +# endif + +// BOOST_POSIX_API or BOOST_WINDOWS_API specify which API to use + +# if defined( BOOST_WINDOWS_API ) && defined( BOOST_POSIX_API ) +# error both BOOST_WINDOWS_API and BOOST_POSIX_API are defined +# elif !defined( BOOST_WINDOWS_API ) && !defined( BOOST_POSIX_API ) +# if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__) +# define BOOST_WINDOWS_API +# else +# define BOOST_POSIX_API +# endif +# endif + +// BOOST_WINDOWS_PATH enables Windows path syntax recognition + +# if !defined(BOOST_POSIX_PATH) && (defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__)) +# define BOOST_WINDOWS_PATH +# endif + +// narrow support only for badly broken compilers or libraries -------------// + +# if defined(BOOST_NO_STD_WSTRING) || defined(BOOST_NO_SFINAE) || defined(BOOST_NO_STD_LOCALE) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) +# define BOOST_FILESYSTEM_NARROW_ONLY +# endif + +// enable dynamic linking on Windows ---------------------------------------// + +# if (defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK)) && defined(__BORLANDC__) && defined(__WIN32__) +# error Dynamic linking Boost.Filesystem does not work for Borland; use static linking instead +# endif + +#ifdef BOOST_HAS_DECLSPEC // defined in config system +// we need to import/export our code only if the user has specifically +// asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost +// libraries to be dynamically linked, or BOOST_FILESYSTEM_DYN_LINK +// if they want just this one to be dynamically liked: +#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) +// export if this is our own source, otherwise import: +#ifdef BOOST_FILESYSTEM_SOURCE +# define BOOST_FILESYSTEM_DECL __declspec(dllexport) +#else +# define BOOST_FILESYSTEM_DECL __declspec(dllimport) +#endif // BOOST_FILESYSTEM_SOURCE +#endif // DYN_LINK +#endif // BOOST_HAS_DECLSPEC +// +// if BOOST_FILESYSTEM_DECL isn't defined yet define it now: +#ifndef BOOST_FILESYSTEM_DECL +#define BOOST_FILESYSTEM_DECL +#endif + +// enable automatic library variant selection ------------------------------// + +#if !defined(BOOST_FILESYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_FILESYSTEM_NO_LIB) +// +// Set the name of our library, this will get undef'ed by auto_link.hpp +// once it's done with it: +// +#define BOOST_LIB_NAME boost_filesystem +// +// If we're importing code from a dll, then tell auto_link.hpp about it: +// +#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) +# define BOOST_DYN_LINK +#endif +// +// And include the header that does the work: +// +#include +#endif // auto-linking disabled + +#endif // BOOST_FILESYSTEM_CONFIG_HPP diff --git a/external-libs/boost/boost/filesystem/convenience.hpp b/external-libs/boost/boost/filesystem/convenience.hpp new file mode 100644 index 0000000..09796bf --- /dev/null +++ b/external-libs/boost/boost/filesystem/convenience.hpp @@ -0,0 +1,286 @@ +// boost/filesystem/convenience.hpp ----------------------------------------// + +// Copyright Beman Dawes, 2002-2005 +// Copyright Vladimir Prus, 2002 +// Use, modification, and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/filesystem + +//----------------------------------------------------------------------------// + +#ifndef BOOST_FILESYSTEM_CONVENIENCE_HPP +#define BOOST_FILESYSTEM_CONVENIENCE_HPP + +#include +#include +#include +#include + +#include // must be the last #include + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY +# define BOOST_FS_FUNC(BOOST_FS_TYPE) \ + template typename boost::enable_if, \ + BOOST_FS_TYPE>::type +# define BOOST_FS_FUNC_STRING BOOST_FS_FUNC(typename Path::string_type) +# define BOOST_FS_TYPENAME typename +# else +# define BOOST_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE + typedef boost::filesystem::path Path; +# define BOOST_FS_FUNC_STRING inline std::string +# define BOOST_FS_TYPENAME +# endif + +namespace boost +{ + namespace filesystem + { + + BOOST_FS_FUNC(bool) create_directories(const Path& ph) + { + if (ph.empty() || exists(ph)) + { + if ( !ph.empty() && !is_directory(ph) ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::create_directories", ph, + make_error_code( boost::system::posix::file_exists ) ) ); + return false; + } + + // First create branch, by calling ourself recursively + create_directories(ph.branch_path()); + // Now that parent's path exists, create the directory + create_directory(ph); + return true; + } + + BOOST_FS_FUNC_STRING extension(const Path& ph) + { + typedef BOOST_FS_TYPENAME Path::string_type string_type; + string_type leaf = ph.leaf(); + + BOOST_FS_TYPENAME string_type::size_type n = leaf.rfind('.'); + if (n != string_type::npos) + return leaf.substr(n); + else + return string_type(); + } + + BOOST_FS_FUNC_STRING basename(const Path& ph) + { + typedef BOOST_FS_TYPENAME Path::string_type string_type; + string_type leaf = ph.leaf(); + BOOST_FS_TYPENAME string_type::size_type n = leaf.rfind('.'); + return leaf.substr(0, n); + } + + BOOST_FS_FUNC(Path) change_extension( const Path & ph, + const BOOST_FS_TYPENAME Path::string_type & new_extension ) + { return ph.branch_path() / (basename(ph) + new_extension); } + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + + // "do-the-right-thing" overloads ---------------------------------------// + + inline bool create_directories(const path& ph) + { return create_directories(ph); } + inline bool create_directories(const wpath& ph) + { return create_directories(ph); } + + inline std::string extension(const path& ph) + { return extension(ph); } + inline std::wstring extension(const wpath& ph) + { return extension(ph); } + + inline std::string basename(const path& ph) + { return basename( ph ); } + inline std::wstring basename(const wpath& ph) + { return basename( ph ); } + + inline path change_extension( const path & ph, const std::string& new_ex ) + { return change_extension( ph, new_ex ); } + inline wpath change_extension( const wpath & ph, const std::wstring& new_ex ) + { return change_extension( ph, new_ex ); } + +# endif + + + // basic_recursive_directory_iterator helpers --------------------------// + + namespace detail + { + template< class Path > + struct recur_dir_itr_imp + { + typedef basic_directory_iterator< Path > element_type; + std::stack< element_type, std::vector< element_type > > m_stack; + int m_level; + bool m_no_push; + bool m_no_throw; + + recur_dir_itr_imp() : m_level(0), m_no_push(false), m_no_throw(false) {} + }; + + } // namespace detail + + // basic_recursive_directory_iterator ----------------------------------// + + template< class Path > + class basic_recursive_directory_iterator + : public boost::iterator_facade< + basic_recursive_directory_iterator, + basic_directory_entry, + boost::single_pass_traversal_tag > + { + public: + typedef Path path_type; + + basic_recursive_directory_iterator(){} // creates the "end" iterator + + explicit basic_recursive_directory_iterator( const Path & dir_path ); + basic_recursive_directory_iterator( const Path & dir_path, + system::error_code & ec ); + + int level() const { return m_imp->m_level; } + + void pop(); + void no_push() + { + BOOST_ASSERT( m_imp.get() && "attempt to no_push() on end iterator" ); + m_imp->m_no_push = true; + } + + file_status status() const + { + BOOST_ASSERT( m_imp.get() + && "attempt to call status() on end recursive_iterator" ); + return m_imp->m_stack.top()->status(); + } + + file_status symlink_status() const + { + BOOST_ASSERT( m_imp.get() + && "attempt to call symlink_status() on end recursive_iterator" ); + return m_imp->m_stack.top()->symlink_status(); + } + + private: + + // shared_ptr provides shallow-copy semantics required for InputIterators. + // m_imp.get()==0 indicates the end iterator. + boost::shared_ptr< detail::recur_dir_itr_imp< Path > > m_imp; + + friend class boost::iterator_core_access; + + typename boost::iterator_facade< + basic_recursive_directory_iterator, + basic_directory_entry, + boost::single_pass_traversal_tag >::reference + dereference() const + { + BOOST_ASSERT( m_imp.get() && "attempt to dereference end iterator" ); + return *m_imp->m_stack.top(); + } + + void increment(); + + bool equal( const basic_recursive_directory_iterator & rhs ) const + { return m_imp == rhs.m_imp; } + + }; + + typedef basic_recursive_directory_iterator recursive_directory_iterator; +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + typedef basic_recursive_directory_iterator wrecursive_directory_iterator; +# endif + + // basic_recursive_directory_iterator implementation -------------------// + + // constructors + template + basic_recursive_directory_iterator:: + basic_recursive_directory_iterator( const Path & dir_path ) + : m_imp( new detail::recur_dir_itr_imp ) + { + m_imp->m_stack.push( basic_directory_iterator( dir_path ) ); + if ( m_imp->m_stack.top () == basic_directory_iterator() ) + { m_imp.reset (); } + } + + template + basic_recursive_directory_iterator:: + basic_recursive_directory_iterator( const Path & dir_path, + system::error_code & ec ) + : m_imp( new detail::recur_dir_itr_imp ) + { + m_imp->m_no_throw = true; + m_imp->m_stack.push( basic_directory_iterator( dir_path, ec ) ); + if ( m_imp->m_stack.top () == basic_directory_iterator() ) + { m_imp.reset (); } + } + + // increment + template + void basic_recursive_directory_iterator::increment() + { + BOOST_ASSERT( m_imp.get() && "increment on end iterator" ); + + static const basic_directory_iterator end_itr; + + if ( m_imp->m_no_push ) + { m_imp->m_no_push = false; } + else if ( is_directory( m_imp->m_stack.top()->status() ) ) + { + system::error_code ec; + m_imp->m_stack.push( + m_imp->m_no_throw + ? basic_directory_iterator( *m_imp->m_stack.top(), ec ) + : basic_directory_iterator( *m_imp->m_stack.top() ) ); + if ( m_imp->m_stack.top() != end_itr ) + { + ++m_imp->m_level; + return; + } + m_imp->m_stack.pop(); + } + + while ( !m_imp->m_stack.empty() + && ++m_imp->m_stack.top() == end_itr ) + { + m_imp->m_stack.pop(); + --m_imp->m_level; + } + + if ( m_imp->m_stack.empty() ) m_imp.reset(); // done, so make end iterator + } + + // pop + template + void basic_recursive_directory_iterator::pop() + { + BOOST_ASSERT( m_imp.get() && "pop on end iterator" ); + BOOST_ASSERT( m_imp->m_level > 0 && "pop with level < 1" ); + + static const basic_directory_iterator end_itr; + + do + { + m_imp->m_stack.pop(); + --m_imp->m_level; + } + while ( !m_imp->m_stack.empty() + && ++m_imp->m_stack.top() == end_itr ); + + if ( m_imp->m_stack.empty() ) m_imp.reset(); // done, so make end iterator + } + + } // namespace filesystem +} // namespace boost + +#undef BOOST_FS_FUNC_STRING +#undef BOOST_FS_FUNC + +#include // pops abi_prefix.hpp pragmas +#endif // BOOST_FILESYSTEM_CONVENIENCE_HPP diff --git a/external-libs/boost/boost/filesystem/operations.hpp b/external-libs/boost/boost/filesystem/operations.hpp new file mode 100644 index 0000000..04f6542 --- /dev/null +++ b/external-libs/boost/boost/filesystem/operations.hpp @@ -0,0 +1,1119 @@ +// boost/filesystem/operations.hpp -----------------------------------------// + +// Copyright 2002-2005 Beman Dawes +// Copyright 2002 Jan Langer +// Copyright 2001 Dietmar Kuehl +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/filesystem + +//----------------------------------------------------------------------------// + +#ifndef BOOST_FILESYSTEM_OPERATIONS_HPP +#define BOOST_FILESYSTEM_OPERATIONS_HPP + +#include + +#include +#include +#include +#include +#include +#include + +#include +#include // for pair +#include + +#ifdef BOOST_WINDOWS_API +# include +# if !defined(_WIN32_WINNT) || _WIN32_WINNT >= 0x0500 +# define BOOST_FS_HARD_LINK // Default for Windows 2K or later +# endif +#endif + +#include // must be the last #include + +# ifdef BOOST_NO_STDC_NAMESPACE + namespace std { using ::time_t; } +# endif + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY +# define BOOST_FS_FUNC(BOOST_FS_TYPE) \ + template typename boost::enable_if, \ + BOOST_FS_TYPE>::type +# define BOOST_INLINE_FS_FUNC(BOOST_FS_TYPE) \ + template inline typename boost::enable_if, \ + BOOST_FS_TYPE>::type +# define BOOST_FS_TYPENAME typename +# else +# define BOOST_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE +# define BOOST_INLINE_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE + typedef boost::filesystem::path Path; +# define BOOST_FS_TYPENAME +# endif + +//----------------------------------------------------------------------------// + +namespace boost +{ + namespace filesystem + { + template class basic_directory_iterator; + + // BOOST_FILESYSTEM_NARROW_ONLY needs this: + typedef basic_directory_iterator directory_iterator; + + template class basic_directory_entry; + + enum file_type + { + status_unknown, + file_not_found, + regular_file, + directory_file, + // the following will never be reported by some operating or file systems + symlink_file, + block_file, + character_file, + fifo_file, + socket_file, + type_unknown // file does exist, but isn't one of the above types or + // we don't have strong enough permission to find its type + }; + + class file_status + { + public: + explicit file_status( file_type v = status_unknown ) : m_value(v) {} + + void type( file_type v ) { m_value = v; } + file_type type() const { return m_value; } + + private: + // the internal representation is unspecified so that additional state + // information such as permissions can be added in the future; this + // implementation just uses status_type as the internal representation + + file_type m_value; + }; + + inline bool status_known( file_status f ) { return f.type() != status_unknown; } + inline bool exists( file_status f ) { return f.type() != status_unknown && f.type() != file_not_found; } + inline bool is_regular( file_status f ) { return f.type() == regular_file; } + inline bool is_directory( file_status f ) { return f.type() == directory_file; } + inline bool is_symlink( file_status f ) { return f.type() == symlink_file; } + inline bool is_other( file_status f ) { return exists(f) && !is_regular(f) && !is_directory(f) && !is_symlink(f); } + + struct space_info + { + // all values are byte counts + boost::uintmax_t capacity; + boost::uintmax_t free; // <= capacity + boost::uintmax_t available; // <= free + }; + + namespace detail + { + typedef std::pair< system::error_code, bool > + query_pair; + + typedef std::pair< system::error_code, boost::uintmax_t > + uintmax_pair; + + typedef std::pair< system::error_code, std::time_t > + time_pair; + + typedef std::pair< system::error_code, space_info > + space_pair; + + template< class Path > + struct directory_pair + { + typedef std::pair< system::error_code, + typename Path::external_string_type > type; + }; + +# ifndef BOOST_FILESYSTEM_NO_DEPRECATED + BOOST_FILESYSTEM_DECL bool + symbolic_link_exists_api( const std::string & ); // deprecated +# endif + + BOOST_FILESYSTEM_DECL file_status + status_api( const std::string & ph, system::error_code & ec ); +# ifndef BOOST_WINDOWS_API + BOOST_FILESYSTEM_DECL file_status + symlink_status_api( const std::string & ph, system::error_code & ec ); +# endif + BOOST_FILESYSTEM_DECL query_pair + is_empty_api( const std::string & ph ); + BOOST_FILESYSTEM_DECL query_pair + equivalent_api( const std::string & ph1, const std::string & ph2 ); + BOOST_FILESYSTEM_DECL uintmax_pair + file_size_api( const std::string & ph ); + BOOST_FILESYSTEM_DECL space_pair + space_api( const std::string & ph ); + BOOST_FILESYSTEM_DECL time_pair + last_write_time_api( const std::string & ph ); + BOOST_FILESYSTEM_DECL system::error_code + last_write_time_api( const std::string & ph, std::time_t new_value ); + BOOST_FILESYSTEM_DECL system::error_code + get_current_path_api( std::string & ph ); + BOOST_FILESYSTEM_DECL system::error_code + set_current_path_api( const std::string & ph ); + BOOST_FILESYSTEM_DECL query_pair + create_directory_api( const std::string & ph ); + BOOST_FILESYSTEM_DECL system::error_code + create_hard_link_api( const std::string & to_ph, + const std::string & from_ph ); + BOOST_FILESYSTEM_DECL system::error_code + create_symlink_api( const std::string & to_ph, + const std::string & from_ph ); + BOOST_FILESYSTEM_DECL system::error_code + remove_api( const std::string & ph ); + BOOST_FILESYSTEM_DECL system::error_code + rename_api( const std::string & from, const std::string & to ); + BOOST_FILESYSTEM_DECL system::error_code + copy_file_api( const std::string & from, const std::string & to ); + +# if defined(BOOST_WINDOWS_API) + + BOOST_FILESYSTEM_DECL system::error_code + get_full_path_name_api( const std::string & ph, std::string & target ); + +# if !defined(BOOST_FILESYSTEM_NARROW_ONLY) + + BOOST_FILESYSTEM_DECL boost::filesystem::file_status + status_api( const std::wstring & ph, system::error_code & ec ); + BOOST_FILESYSTEM_DECL query_pair + is_empty_api( const std::wstring & ph ); + BOOST_FILESYSTEM_DECL query_pair + equivalent_api( const std::wstring & ph1, const std::wstring & ph2 ); + BOOST_FILESYSTEM_DECL uintmax_pair + file_size_api( const std::wstring & ph ); + BOOST_FILESYSTEM_DECL space_pair + space_api( const std::wstring & ph ); + BOOST_FILESYSTEM_DECL system::error_code + get_full_path_name_api( const std::wstring & ph, std::wstring & target ); + BOOST_FILESYSTEM_DECL time_pair + last_write_time_api( const std::wstring & ph ); + BOOST_FILESYSTEM_DECL system::error_code + last_write_time_api( const std::wstring & ph, std::time_t new_value ); + BOOST_FILESYSTEM_DECL system::error_code + get_current_path_api( std::wstring & ph ); + BOOST_FILESYSTEM_DECL system::error_code + set_current_path_api( const std::wstring & ph ); + BOOST_FILESYSTEM_DECL query_pair + create_directory_api( const std::wstring & ph ); +# ifdef BOOST_FS_HARD_LINK + BOOST_FILESYSTEM_DECL system::error_code + create_hard_link_api( const std::wstring & existing_ph, + const std::wstring & new_ph ); +# endif + BOOST_FILESYSTEM_DECL system::error_code + create_symlink_api( const std::wstring & to_ph, + const std::wstring & from_ph ); + BOOST_FILESYSTEM_DECL system::error_code + remove_api( const std::wstring & ph ); + BOOST_FILESYSTEM_DECL system::error_code + rename_api( const std::wstring & from, const std::wstring & to ); + BOOST_FILESYSTEM_DECL system::error_code + copy_file_api( const std::wstring & from, const std::wstring & to ); + +# endif +# endif + + template + unsigned long remove_all_aux( const Path & ph ); + + } // namespace detail + +// operations functions ----------------------------------------------------// + + // The non-template overloads enable automatic conversion from std and + // C-style strings. See basic_path constructors. The enable_if for the + // templates implements the famous "do-the-right-thing" rule. + +// query functions ---------------------------------------------------------// + + BOOST_INLINE_FS_FUNC(file_status) + status( const Path & ph, system::error_code & ec ) + { return detail::status_api( ph.external_file_string(), ec ); } + + BOOST_FS_FUNC(file_status) + status( const Path & ph ) + { + system::error_code ec; + file_status result( detail::status_api( ph.external_file_string(), ec ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::status", ph, ec ) ); + return result; + } + + BOOST_INLINE_FS_FUNC(file_status) + symlink_status( const Path & ph, system::error_code & ec ) +# ifdef BOOST_WINDOWS_API + { return detail::status_api( ph.external_file_string(), ec ); } +# else + { return detail::symlink_status_api( ph.external_file_string(), ec ); } +# endif + + BOOST_FS_FUNC(file_status) + symlink_status( const Path & ph ) + { + system::error_code ec; + file_status result( symlink_status( ph, ec ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::symlink_status", ph, ec ) ); + return result; + } + +# ifndef BOOST_FILESYSTEM_NO_DEPRECATED + inline bool symbolic_link_exists( const path & ph ) + { return is_symlink( symlink_status(ph) ); } +#endif + + BOOST_FS_FUNC(bool) exists( const Path & ph ) + { + system::error_code ec; + file_status result( detail::status_api( ph.external_file_string(), ec ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::exists", ph, ec ) ); + return exists( result ); + } + + BOOST_FS_FUNC(bool) is_directory( const Path & ph ) + { + system::error_code ec; + file_status result( detail::status_api( ph.external_file_string(), ec ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::is_directory", ph, ec ) ); + return is_directory( result ); + } + + BOOST_FS_FUNC(bool) is_regular( const Path & ph ) + { + system::error_code ec; + file_status result( detail::status_api( ph.external_file_string(), ec ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::is_regular", ph, ec ) ); + return is_regular( result ); + } + + BOOST_FS_FUNC(bool) is_other( const Path & ph ) + { + system::error_code ec; + file_status result( detail::status_api( ph.external_file_string(), ec ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::is_other", ph, ec ) ); + return is_other( result ); + } + + BOOST_FS_FUNC(bool) is_symlink( +# ifdef BOOST_WINDOWS_API + const Path & ) + { + return false; +# else + const Path & ph) + { + system::error_code ec; + file_status result( detail::symlink_status_api( ph.external_file_string(), ec ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::is_symlink", ph, ec ) ); + return is_symlink( result ); +# endif + } + + // VC++ 7.0 and earlier has a serious namespace bug that causes a clash + // between boost::filesystem::is_empty and the unrelated type trait + // boost::is_empty. + +# if !defined( BOOST_MSVC ) || BOOST_MSVC > 1300 + BOOST_FS_FUNC(bool) is_empty( const Path & ph ) +# else + BOOST_FS_FUNC(bool) _is_empty( const Path & ph ) +# endif + { + detail::query_pair result( + detail::is_empty_api( ph.external_file_string() ) ); + if ( result.first ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::is_empty", ph, result.first ) ); + return result.second; + } + + BOOST_FS_FUNC(bool) equivalent( const Path & ph1, const Path & ph2 ) + { + detail::query_pair result( detail::equivalent_api( + ph1.external_file_string(), ph2.external_file_string() ) ); + if ( result.first ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::equivalent", ph1, ph2, result.first ) ); + return result.second; + } + + BOOST_FS_FUNC(boost::uintmax_t) file_size( const Path & ph ) + { + detail::uintmax_pair result + ( detail::file_size_api( ph.external_file_string() ) ); + if ( result.first ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::file_size", ph, result.first ) ); + return result.second; + } + + BOOST_FS_FUNC(space_info) space( const Path & ph ) + { + detail::space_pair result + ( detail::space_api( ph.external_file_string() ) ); + if ( result.first ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::space", ph, result.first ) ); + return result.second; + } + + BOOST_FS_FUNC(std::time_t) last_write_time( const Path & ph ) + { + detail::time_pair result + ( detail::last_write_time_api( ph.external_file_string() ) ); + if ( result.first ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::last_write_time", ph, result.first ) ); + return result.second; + } + + +// operations --------------------------------------------------------------// + + BOOST_FS_FUNC(bool) create_directory( const Path & dir_ph ) + { + detail::query_pair result( + detail::create_directory_api( dir_ph.external_directory_string() ) ); + if ( result.first ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::create_directory", + dir_ph, result.first ) ); + return result.second; + } + +#if !defined(BOOST_WINDOWS_API) || defined(BOOST_FS_HARD_LINK) + BOOST_FS_FUNC(void) + create_hard_link( const Path & to_ph, const Path & from_ph ) + { + system::error_code ec( + detail::create_hard_link_api( + to_ph.external_file_string(), + from_ph.external_file_string() ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::create_hard_link", + to_ph, from_ph, ec ) ); + } + + BOOST_FS_FUNC(system::error_code) + create_hard_link( const Path & to_ph, const Path & from_ph, + system::error_code & ec ) + { + ec = detail::create_hard_link_api( + to_ph.external_file_string(), + from_ph.external_file_string() ); + return ec; + } +#endif + + BOOST_FS_FUNC(void) + create_symlink( const Path & to_ph, const Path & from_ph ) + { + system::error_code ec( + detail::create_symlink_api( + to_ph.external_file_string(), + from_ph.external_file_string() ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::create_symlink", + to_ph, from_ph, ec ) ); + } + + BOOST_FS_FUNC(system::error_code) + create_symlink( const Path & to_ph, const Path & from_ph, + system::error_code & ec ) + { + ec = detail::create_symlink_api( + to_ph.external_file_string(), + from_ph.external_file_string() ); + return ec; + } + + BOOST_FS_FUNC(bool) remove( const Path & ph ) + { + if ( exists( ph ) + || is_symlink( ph ) ) // handle dangling symbolic links + // note that the POSIX behavior for symbolic links is what we want; + // the link rather than what it points to is deleted. Windows behavior + // doesn't matter; is_symlink() is always false on Windows. + { + system::error_code ec( detail::remove_api( ph.external_file_string() ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::remove", ph, ec ) ); + return true; + } + return false; + } + + BOOST_FS_FUNC(unsigned long) remove_all( const Path & ph ) + { + return exists( ph )|| is_symlink( ph ) + ? detail::remove_all_aux( ph ) : 0; + } + + BOOST_FS_FUNC(void) rename( const Path & from_path, const Path & to_path ) + { + system::error_code ec( detail::rename_api( + from_path.external_directory_string(), + to_path.external_directory_string() ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::rename", + from_path, to_path, ec ) ); + } + + BOOST_FS_FUNC(void) copy_file( const Path & from_path, const Path & to_path ) + { + system::error_code ec( detail::copy_file_api( + from_path.external_directory_string(), + to_path.external_directory_string() ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::copy_file", + from_path, to_path, ec ) ); + } + + template< class Path > + Path current_path() + { + typename Path::external_string_type ph; + system::error_code ec( detail::get_current_path_api( ph ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::current_path", ec ) ); + return Path( Path::traits_type::to_internal( ph ) ); + } + + BOOST_FS_FUNC(void) current_path( const Path & ph ) + { + system::error_code ec( detail::set_current_path_api( + ph.external_directory_string() ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::current_path", ph, ec ) ); + } + + template< class Path > + const Path & initial_path() + { + static Path init_path; + if ( init_path.empty() ) init_path = current_path(); + return init_path; + } + +# ifndef BOOST_FILESYSTEM_NO_DEPRECATED + // legacy support + inline path current_path() // overload supports pre-i18n apps + { return current_path(); } + inline const path & initial_path() // overload supports pre-i18n apps + { return initial_path(); } +# endif + + BOOST_FS_FUNC(Path) system_complete( const Path & ph ) + { +# ifdef BOOST_WINDOWS_API + if ( ph.empty() ) return ph; + BOOST_FS_TYPENAME Path::external_string_type sys_ph; + system::error_code ec( detail::get_full_path_name_api( ph.external_file_string(), + sys_ph ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::system_complete", ph, ec ) ); + return Path( Path::traits_type::to_internal( sys_ph ) ); +# else + return (ph.empty() || ph.is_complete()) + ? ph : current_path() / ph; +# endif + } + + BOOST_FS_FUNC(Path) + complete( const Path & ph, + const Path & base/* = initial_path() */) + { + BOOST_ASSERT( base.is_complete() + && (ph.is_complete() || !ph.has_root_name()) + && "boost::filesystem::complete() precondition not met" ); +# ifdef BOOST_WINDOWS_PATH + if (ph.empty() || ph.is_complete()) return ph; + if ( !ph.has_root_name() ) + return ph.has_root_directory() + ? Path( base.root_name() ) / ph + : base / ph; + return base / ph; +# else + return (ph.empty() || ph.is_complete()) ? ph : base / ph; +# endif + } + + // VC++ 7.1 had trouble with default arguments, so separate one argument + // signatures are provided as workarounds; the effect is the same. + BOOST_FS_FUNC(Path) complete( const Path & ph ) + { return complete( ph, initial_path() ); } + + BOOST_FS_FUNC(void) + last_write_time( const Path & ph, const std::time_t new_time ) + { + system::error_code ec( detail::last_write_time_api( ph.external_file_string(), + new_time ) ); + if ( ec ) + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::last_write_time", ph, ec ) ); + } + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + + // "do-the-right-thing" overloads ---------------------------------------// + + inline file_status status( const path & ph ) + { return status( ph ); } + inline file_status status( const wpath & ph ) + { return status( ph ); } + + inline file_status status( const path & ph, system::error_code & ec ) + { return status( ph, ec ); } + inline file_status status( const wpath & ph, system::error_code & ec ) + { return status( ph, ec ); } + + inline file_status symlink_status( const path & ph ) + { return symlink_status( ph ); } + inline file_status symlink_status( const wpath & ph ) + { return symlink_status( ph ); } + + inline file_status symlink_status( const path & ph, system::error_code & ec ) + { return symlink_status( ph, ec ); } + inline file_status symlink_status( const wpath & ph, system::error_code & ec ) + { return symlink_status( ph, ec ); } + + inline bool exists( const path & ph ) { return exists( ph ); } + inline bool exists( const wpath & ph ) { return exists( ph ); } + + inline bool is_directory( const path & ph ) + { return is_directory( ph ); } + inline bool is_directory( const wpath & ph ) + { return is_directory( ph ); } + + inline bool is_regular( const path & ph ) + { return is_regular( ph ); } + inline bool is_regular( const wpath & ph ) + { return is_regular( ph ); } + + inline bool is_other( const path & ph ) + { return is_other( ph ); } + inline bool is_other( const wpath & ph ) + { return is_other( ph ); } + + inline bool is_symlink( const path & ph ) + { return is_symlink( ph ); } + inline bool is_symlink( const wpath & ph ) + { return is_symlink( ph ); } + + inline bool is_empty( const path & ph ) + { return is_empty( ph ); } + inline bool is_empty( const wpath & ph ) + { return is_empty( ph ); } + + inline bool equivalent( const path & ph1, const path & ph2 ) + { return equivalent( ph1, ph2 ); } + inline bool equivalent( const wpath & ph1, const wpath & ph2 ) + { return equivalent( ph1, ph2 ); } + + inline boost::uintmax_t file_size( const path & ph ) + { return file_size( ph ); } + inline boost::uintmax_t file_size( const wpath & ph ) + { return file_size( ph ); } + + inline space_info space( const path & ph ) + { return space( ph ); } + inline space_info space( const wpath & ph ) + { return space( ph ); } + + inline std::time_t last_write_time( const path & ph ) + { return last_write_time( ph ); } + inline std::time_t last_write_time( const wpath & ph ) + { return last_write_time( ph ); } + + inline bool create_directory( const path & dir_ph ) + { return create_directory( dir_ph ); } + inline bool create_directory( const wpath & dir_ph ) + { return create_directory( dir_ph ); } + +#if !defined(BOOST_WINDOWS_API) || defined(BOOST_FS_HARD_LINK) + inline void create_hard_link( const path & to_ph, + const path & from_ph ) + { return create_hard_link( to_ph, from_ph ); } + inline void create_hard_link( const wpath & to_ph, + const wpath & from_ph ) + { return create_hard_link( to_ph, from_ph ); } + + inline system::error_code create_hard_link( const path & to_ph, + const path & from_ph, system::error_code & ec ) + { return create_hard_link( to_ph, from_ph, ec ); } + inline system::error_code create_hard_link( const wpath & to_ph, + const wpath & from_ph, system::error_code & ec ) + { return create_hard_link( to_ph, from_ph, ec ); } +#endif + + inline void create_symlink( const path & to_ph, + const path & from_ph ) + { return create_symlink( to_ph, from_ph ); } + inline void create_symlink( const wpath & to_ph, + const wpath & from_ph ) + { return create_symlink( to_ph, from_ph ); } + + inline system::error_code create_symlink( const path & to_ph, + const path & from_ph, system::error_code & ec ) + { return create_symlink( to_ph, from_ph, ec ); } + inline system::error_code create_symlink( const wpath & to_ph, + const wpath & from_ph, system::error_code & ec ) + { return create_symlink( to_ph, from_ph, ec ); } + + inline bool remove( const path & ph ) + { return remove( ph ); } + inline bool remove( const wpath & ph ) + { return remove( ph ); } + + inline unsigned long remove_all( const path & ph ) + { return remove_all( ph ); } + inline unsigned long remove_all( const wpath & ph ) + { return remove_all( ph ); } + + inline void rename( const path & from_path, const path & to_path ) + { return rename( from_path, to_path ); } + inline void rename( const wpath & from_path, const wpath & to_path ) + { return rename( from_path, to_path ); } + + inline void copy_file( const path & from_path, const path & to_path ) + { return copy_file( from_path, to_path ); } + inline void copy_file( const wpath & from_path, const wpath & to_path ) + { return copy_file( from_path, to_path ); } + + inline path system_complete( const path & ph ) + { return system_complete( ph ); } + inline wpath system_complete( const wpath & ph ) + { return system_complete( ph ); } + + inline path complete( const path & ph, + const path & base/* = initial_path()*/ ) + { return complete( ph, base ); } + inline wpath complete( const wpath & ph, + const wpath & base/* = initial_path()*/ ) + { return complete( ph, base ); } + + inline path complete( const path & ph ) + { return complete( ph, initial_path() ); } + inline wpath complete( const wpath & ph ) + { return complete( ph, initial_path() ); } + + inline void last_write_time( const path & ph, const std::time_t new_time ) + { last_write_time( ph, new_time ); } + inline void last_write_time( const wpath & ph, const std::time_t new_time ) + { last_write_time( ph, new_time ); } + + inline void current_path( const path & ph ) + { current_path( ph ); } + inline void current_path( const wpath & ph ) + { current_path( ph ); } + +# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY + + namespace detail + { + template + unsigned long remove_all_aux( const Path & ph ) + { + static const boost::filesystem::basic_directory_iterator end_itr; + unsigned long count = 1; + if ( !boost::filesystem::is_symlink( ph ) // don't recurse symbolic links + && boost::filesystem::is_directory( ph ) ) + { + for ( boost::filesystem::basic_directory_iterator itr( ph ); + itr != end_itr; ++itr ) + { + count += remove_all_aux( itr->path() ); + } + } + boost::filesystem::remove( ph ); + return count; + } + +// test helper -------------------------------------------------------------// + + // not part of the documented interface because false positives are possible; + // there is no law that says that an OS that has large stat.st_size + // actually supports large file sizes. + BOOST_FILESYSTEM_DECL bool possible_large_file_size_support(); + +// directory_iterator helpers ----------------------------------------------// + +// forwarding functions avoid need for BOOST_FILESYSTEM_DECL for class +// basic_directory_iterator, and so avoid iterator_facade DLL template +// problems. They also overload to the proper external path character type. + + BOOST_FILESYSTEM_DECL system::error_code + dir_itr_first( void *& handle, +#if defined(BOOST_POSIX_API) + void *& buffer, +#endif + const std::string & dir_path, + std::string & target, file_status & fs, file_status & symlink_fs ); + // eof: return==0 && handle==0 + + BOOST_FILESYSTEM_DECL system::error_code + dir_itr_increment( void *& handle, +#if defined(BOOST_POSIX_API) + void *& buffer, +#endif + std::string & target, file_status & fs, file_status & symlink_fs ); + // eof: return==0 && handle==0 + + BOOST_FILESYSTEM_DECL system::error_code + dir_itr_close( void *& handle +#if defined(BOOST_POSIX_API) + , void *& buffer +#endif + ); + // Effects: none if handle==0, otherwise close handle, set handle=0 + +# if defined(BOOST_WINDOWS_API) && !defined(BOOST_FILESYSTEM_NARROW_ONLY) + BOOST_FILESYSTEM_DECL system::error_code + dir_itr_first( void *& handle, const std::wstring & ph, + std::wstring & target, file_status & fs, file_status & symlink_fs ); + BOOST_FILESYSTEM_DECL system::error_code + dir_itr_increment( void *& handle, std::wstring & target, + file_status & fs, file_status & symlink_fs ); +# endif + + template< class Path > + class dir_itr_imp + { + public: + basic_directory_entry m_directory_entry; + void * m_handle; +# ifdef BOOST_POSIX_API + void * m_buffer; // see dir_itr_increment implementation +# endif + dir_itr_imp() : m_handle(0) +# ifdef BOOST_POSIX_API + , m_buffer(0) +# endif + {} + + ~dir_itr_imp() { dir_itr_close( m_handle +#if defined(BOOST_POSIX_API) + , m_buffer +#endif + ); } + }; + + BOOST_FILESYSTEM_DECL system::error_code not_found_error(); + + } // namespace detail + +// basic_directory_iterator ------------------------------------------------// + + template< class Path > + class basic_directory_iterator + : public boost::iterator_facade< + basic_directory_iterator, + basic_directory_entry, + boost::single_pass_traversal_tag > + { + public: + typedef Path path_type; + + basic_directory_iterator(){} // creates the "end" iterator + + explicit basic_directory_iterator( const Path & dir_path ); + basic_directory_iterator( const Path & dir_path, system::error_code & ec ); + + private: + + // shared_ptr provides shallow-copy semantics required for InputIterators. + // m_imp.get()==0 indicates the end iterator. + boost::shared_ptr< detail::dir_itr_imp< Path > > m_imp; + + friend class boost::iterator_core_access; + + typename boost::iterator_facade< + basic_directory_iterator, + basic_directory_entry, + boost::single_pass_traversal_tag >::reference dereference() const + { + BOOST_ASSERT( m_imp.get() && "attempt to dereference end iterator" ); + return m_imp->m_directory_entry; + } + + void increment(); + + bool equal( const basic_directory_iterator & rhs ) const + { return m_imp == rhs.m_imp; } + + system::error_code m_init( const Path & dir_path ); + }; + + typedef basic_directory_iterator< path > directory_iterator; +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + typedef basic_directory_iterator< wpath > wdirectory_iterator; +# endif + + // basic_directory_iterator implementation ---------------------------// + + template + system::error_code basic_directory_iterator::m_init( + const Path & dir_path ) + { + if ( dir_path.empty() ) + { + m_imp.reset(); + return detail::not_found_error(); + } + typename Path::external_string_type name; + file_status fs, symlink_fs; + system::error_code ec( detail::dir_itr_first( m_imp->m_handle, +#if defined(BOOST_POSIX_API) + m_imp->m_buffer, +#endif + dir_path.external_directory_string(), + name, fs, symlink_fs ) ); + + if ( ec ) + { + m_imp.reset(); + return ec; + } + + if ( m_imp->m_handle == 0 ) m_imp.reset(); // eof, so make end iterator + else // not eof + { + m_imp->m_directory_entry.assign( dir_path + / Path::traits_type::to_internal( name ), fs, symlink_fs ); + if ( name[0] == dot::value // dot or dot-dot + && (name.size() == 1 + || (name[1] == dot::value + && name.size() == 2)) ) + { increment(); } + } + return boost::system::error_code(); + } + + template + basic_directory_iterator::basic_directory_iterator( + const Path & dir_path ) + : m_imp( new detail::dir_itr_imp ) + { + system::error_code ec( m_init(dir_path) ); + if ( ec ) + { + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::basic_directory_iterator constructor", + dir_path, ec ) ); + } + } + + template + basic_directory_iterator::basic_directory_iterator( + const Path & dir_path, system::error_code & ec ) + : m_imp( new detail::dir_itr_imp ) + { + ec = m_init(dir_path); + } + + template + void basic_directory_iterator::increment() + { + BOOST_ASSERT( m_imp.get() && "attempt to increment end iterator" ); + BOOST_ASSERT( m_imp->m_handle != 0 && "internal program error" ); + + typename Path::external_string_type name; + file_status fs, symlink_fs; + system::error_code ec; + + for (;;) + { + ec = detail::dir_itr_increment( m_imp->m_handle, +#if defined(BOOST_POSIX_API) + m_imp->m_buffer, +#endif + name, fs, symlink_fs ); + if ( ec ) + { + boost::throw_exception( basic_filesystem_error( + "boost::filesystem::basic_directory_iterator increment", + m_imp->m_directory_entry.path().branch_path(), ec ) ); + } + if ( m_imp->m_handle == 0 ) { m_imp.reset(); return; } // eof, make end + if ( !(name[0] == dot::value // !(dot or dot-dot) + && (name.size() == 1 + || (name[1] == dot::value + && name.size() == 2))) ) + { + m_imp->m_directory_entry.replace_leaf( + Path::traits_type::to_internal( name ), fs, symlink_fs ); + return; + } + } + } + + // basic_directory_entry -----------------------------------------------// + + template + class basic_directory_entry + { + public: + typedef Path path_type; + typedef typename Path::string_type string_type; + + // compiler generated copy-ctor, copy assignment, and destructor apply + + basic_directory_entry() {} + explicit basic_directory_entry( const path_type & p, + file_status st = file_status(), file_status symlink_st=file_status() ) + : m_path(p), m_status(st), m_symlink_status(symlink_st) + {} + + void assign( const path_type & p, + file_status st, file_status symlink_st ) + { m_path = p; m_status = st; m_symlink_status = symlink_st; } + + void replace_leaf( const string_type & s, + file_status st, file_status symlink_st ) + { + m_path.remove_leaf(); + m_path /= s; + m_status = st; + m_symlink_status = symlink_st; + } + + const Path & path() const { return m_path; } + file_status status() const; + file_status status( system::error_code & ec ) const; + file_status symlink_status() const; + file_status symlink_status( system::error_code & ec ) const; + + // conversion simplifies the most common use of basic_directory_entry + operator const path_type &() const { return m_path; } + +# ifndef BOOST_FILESYSTEM_NO_DEPRECATED + // deprecated functions preserve common use cases in legacy code + typename Path::string_type leaf() const + { + return path().leaf(); + } + typename Path::string_type string() const + { + return path().string(); + } +# endif + + private: + path_type m_path; + mutable file_status m_status; // stat()-like + mutable file_status m_symlink_status; // lstat()-like + // note: m_symlink_status is not used by Windows implementation + + }; // basic_directory_status + + typedef basic_directory_entry directory_entry; +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + typedef basic_directory_entry wdirectory_entry; +# endif + + // basic_directory_entry implementation --------------------------------// + + template + file_status + basic_directory_entry::status() const + { + if ( !status_known( m_status ) ) + { +# ifndef BOOST_WINDOWS_API + if ( status_known( m_symlink_status ) + && !is_symlink( m_symlink_status ) ) + { m_status = m_symlink_status; } + else { m_status = boost::filesystem::status( m_path ); } +# else + m_status = boost::filesystem::status( m_path ); +# endif + } + return m_status; + } + + template + file_status + basic_directory_entry::status( system::error_code & ec ) const + { + if ( !status_known( m_status ) ) + { +# ifndef BOOST_WINDOWS_API + if ( status_known( m_symlink_status ) + && !is_symlink( m_symlink_status ) ) + { ec = boost::system::error_code();; m_status = m_symlink_status; } + else { m_status = boost::filesystem::status( m_path, ec ); } +# else + m_status = boost::filesystem::status( m_path, ec ); +# endif + } + else ec = boost::system::error_code();; + return m_status; + } + + template + file_status + basic_directory_entry::symlink_status() const + { +# ifndef BOOST_WINDOWS_API + if ( !status_known( m_symlink_status ) ) + { m_symlink_status = boost::filesystem::symlink_status( m_path ); } + return m_symlink_status; +# else + return status(); +# endif + } + + template + file_status + basic_directory_entry::symlink_status( system::error_code & ec ) const + { +# ifndef BOOST_WINDOWS_API + if ( !status_known( m_symlink_status ) ) + { m_symlink_status = boost::filesystem::symlink_status( m_path, ec ); } + else ec = boost::system::error_code();; + return m_symlink_status; +# else + return status( ec ); +# endif + } + } // namespace filesystem +} // namespace boost + +#undef BOOST_FS_FUNC + + +#include // pops abi_prefix.hpp pragmas +#endif // BOOST_FILESYSTEM_OPERATIONS_HPP diff --git a/external-libs/boost/boost/filesystem/path.hpp b/external-libs/boost/boost/filesystem/path.hpp new file mode 100644 index 0000000..70d9e39 --- /dev/null +++ b/external-libs/boost/boost/filesystem/path.hpp @@ -0,0 +1,1432 @@ +// boost/filesystem/path.hpp -----------------------------------------------// + +// Copyright Beman Dawes 2002-2005 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/filesystem + +//----------------------------------------------------------------------------// + +#ifndef BOOST_FILESYSTEM_PATH_HPP +#define BOOST_FILESYSTEM_PATH_HPP + +#include +#include +#include +#include +#include +#include +#include + +#include +#include // for lexicographical_compare +#include // needed by basic_path inserter and extractor +#include +#include + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY +# include +# endif + +#include // must be the last #include + +//----------------------------------------------------------------------------// + +namespace boost +{ + namespace BOOST_FILESYSTEM_NAMESPACE + { + template class basic_path; + + struct path_traits; + typedef basic_path< std::string, path_traits > path; + + struct path_traits + { + typedef std::string internal_string_type; + typedef std::string external_string_type; + static external_string_type to_external( const path &, + const internal_string_type & src ) { return src; } + static internal_string_type to_internal( + const external_string_type & src ) { return src; } + }; + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + + struct BOOST_FILESYSTEM_DECL wpath_traits; + + typedef basic_path< std::wstring, wpath_traits > wpath; + + struct BOOST_FILESYSTEM_DECL wpath_traits + { + typedef std::wstring internal_string_type; +# ifdef BOOST_WINDOWS_API + typedef std::wstring external_string_type; + static external_string_type to_external( const wpath &, + const internal_string_type & src ) { return src; } + static internal_string_type to_internal( + const external_string_type & src ) { return src; } +# else + typedef std::string external_string_type; + static external_string_type to_external( const wpath & ph, + const internal_string_type & src ); + static internal_string_type to_internal( + const external_string_type & src ); +# endif + static void imbue( const std::locale & loc ); + static bool imbue( const std::locale & loc, const std::nothrow_t & ); + }; + +# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY + + // path traits ---------------------------------------------------------// + + template struct is_basic_path + { BOOST_STATIC_CONSTANT( bool, value = false ); }; + template<> struct is_basic_path + { BOOST_STATIC_CONSTANT( bool, value = true ); }; +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + template<> struct is_basic_path + { BOOST_STATIC_CONSTANT( bool, value = true ); }; +# endif + + // these only have to be specialized if Path::string_type::value_type + // is not convertible from char + template struct slash + { BOOST_STATIC_CONSTANT( char, value = '/' ); }; + + template struct dot + { BOOST_STATIC_CONSTANT( char, value = '.' ); }; + + template struct colon + { BOOST_STATIC_CONSTANT( char, value = ':' ); }; + +# ifdef BOOST_WINDOWS_PATH + template struct path_alt_separator + { BOOST_STATIC_CONSTANT( char, value = '\\' ); }; +# endif + + // workaround for VC++ 7.0 and earlier issues with nested classes + namespace detail + { + template + class iterator_helper + { + public: + typedef typename Path::iterator iterator; + static void do_increment( iterator & ph ); + static void do_decrement( iterator & ph ); + }; + } + + // basic_path ----------------------------------------------------------// + + template + class basic_path + { + // invariant: m_path valid according to the portable generic path grammar + + // validate template arguments +// TODO: get these working +// BOOST_STATIC_ASSERT( ::boost::is_same::value ); +// BOOST_STATIC_ASSERT( ::boost::is_same::value || ::boost::is_same::value ); + + public: + // compiler generates copy constructor and copy assignment + + typedef basic_path path_type; + typedef String string_type; + typedef typename String::value_type value_type; + typedef Traits traits_type; + typedef typename Traits::external_string_type external_string_type; + + // constructors/destructor + basic_path() {} + basic_path( const string_type & s ) { operator/=( s ); } + basic_path( const value_type * s ) { operator/=( s ); } +# ifndef BOOST_NO_MEMBER_TEMPLATES + template + basic_path( InputIterator first, InputIterator last ) + { append( first, last ); } +# endif + ~basic_path() {} + + // assignments + basic_path & operator=( const string_type & s ) + { +# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, >= 310) + m_path.clear(); +# else + m_path.erase( m_path.begin(), m_path.end() ); +# endif + operator/=( s ); + return *this; + } + basic_path & operator=( const value_type * s ) + { +# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, >= 310) + m_path.clear(); +# else + m_path.erase( m_path.begin(), m_path.end() ); +# endif + operator/=( s ); + return *this; + } +# ifndef BOOST_NO_MEMBER_TEMPLATES + template + basic_path & assign( InputIterator first, InputIterator last ) + { m_path.clear(); append( first, last ); return *this; } +# endif + + // modifiers + basic_path & operator/=( const basic_path & rhs ) { return operator /=( rhs.string().c_str() ); } + basic_path & operator/=( const string_type & rhs ) { return operator /=( rhs.c_str() ); } + basic_path & operator/=( const value_type * s ); +# ifndef BOOST_NO_MEMBER_TEMPLATES + template + basic_path & append( InputIterator first, InputIterator last ); +# endif + + void swap( basic_path & rhs ) + { + m_path.swap( rhs.m_path ); +# ifdef BOOST_CYGWIN_PATH + std::swap( m_cygwin_root, rhs.m_cygwin_root ); +# endif + } + + basic_path & remove_leaf(); + + // observers + const string_type & string() const { return m_path; } + const string_type file_string() const; + const string_type directory_string() const { return file_string(); } + + const external_string_type external_file_string() const { return Traits::to_external( *this, file_string() ); } + const external_string_type external_directory_string() const { return Traits::to_external( *this, directory_string() ); } + + basic_path root_path() const; + string_type root_name() const; + string_type root_directory() const; + basic_path relative_path() const; + string_type leaf() const; + basic_path branch_path() const; + + bool empty() const { return m_path.empty(); } // name consistent with std containers + bool is_complete() const; + bool has_root_path() const; + bool has_root_name() const; + bool has_root_directory() const; + bool has_relative_path() const { return !relative_path().empty(); } + bool has_leaf() const { return !m_path.empty(); } + bool has_branch_path() const { return !branch_path().empty(); } + + // iterators + class iterator : public boost::iterator_facade< + iterator, + string_type const, + boost::bidirectional_traversal_tag > + { + private: + friend class boost::iterator_core_access; + friend class boost::BOOST_FILESYSTEM_NAMESPACE::basic_path; + + const string_type & dereference() const + { return m_name; } + bool equal( const iterator & rhs ) const + { return m_path_ptr == rhs.m_path_ptr && m_pos == rhs.m_pos; } + + friend class boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper; + + void increment() + { + boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper::do_increment( + *this ); + } + void decrement() + { + boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper::do_decrement( + *this ); + } + + string_type m_name; // current element + const basic_path * m_path_ptr; // path being iterated over + typename string_type::size_type m_pos; // position of name in + // path_ptr->string(). The + // end() iterator is indicated by + // pos == path_ptr->m_path.size() + }; // iterator + + typedef iterator const_iterator; + + iterator begin() const; + iterator end() const; + + private: + // Note: This is an implementation for POSIX and Windows, where there + // are only minor differences between generic and native path grammars. + // Private members might be quite different in other implementations, + // particularly where there were wide differences between portable and + // native path formats, or between file_string() and + // directory_string() formats, or simply that the implementation + // was willing expend additional memory to achieve greater speed for + // some operations at the expense of other operations. + + string_type m_path; // invariant: portable path grammar + // on Windows, backslashes converted to slashes + +# ifdef BOOST_CYGWIN_PATH + bool m_cygwin_root; // if present, m_path[0] was slash. note: initialization + // done by append +# endif + + void m_append_separator_if_needed(); + void m_append( value_type value ); // converts Windows alt_separator + + // Was qualified; como433beta8 reports: + // warning #427-D: qualified name is not allowed in member declaration + friend class iterator; + friend class boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper; + + // Deprecated features ease transition for existing code. Don't use these + // in new code. +# ifndef BOOST_FILESYSTEM_NO_DEPRECATED + public: + typedef bool (*name_check)( const std::string & name ); + basic_path( const string_type & str, name_check ) { operator/=( str ); } + basic_path( const typename string_type::value_type * s, name_check ) + { operator/=( s );} + string_type native_file_string() const { return file_string(); } + string_type native_directory_string() const { return directory_string(); } + static bool default_name_check_writable() { return false; } + static void default_name_check( name_check ) {} + static name_check default_name_check() { return 0; } + basic_path & canonize(); + basic_path & normalize(); +# endif + }; + + // basic_path non-member functions ---------------------------------------// + + template< class String, class Traits > + inline void swap( basic_path & lhs, + basic_path & rhs ) { lhs.swap( rhs ); } + + template< class String, class Traits > + bool operator<( const basic_path & lhs, const basic_path & rhs ) + { + return std::lexicographical_compare( + lhs.begin(), lhs.end(), rhs.begin(), rhs.end() ); + } + + template< class String, class Traits > + bool operator<( const typename basic_path::string_type::value_type * lhs, + const basic_path & rhs ) + { + basic_path tmp( lhs ); + return std::lexicographical_compare( + tmp.begin(), tmp.end(), rhs.begin(), rhs.end() ); + } + + template< class String, class Traits > + bool operator<( const typename basic_path::string_type & lhs, + const basic_path & rhs ) + { + basic_path tmp( lhs ); + return std::lexicographical_compare( + tmp.begin(), tmp.end(), rhs.begin(), rhs.end() ); + } + + template< class String, class Traits > + bool operator<( const basic_path & lhs, + const typename basic_path::string_type::value_type * rhs ) + { + basic_path tmp( rhs ); + return std::lexicographical_compare( + lhs.begin(), lhs.end(), tmp.begin(), tmp.end() ); + } + + template< class String, class Traits > + bool operator<( const basic_path & lhs, + const typename basic_path::string_type & rhs ) + { + basic_path tmp( rhs ); + return std::lexicographical_compare( + lhs.begin(), lhs.end(), tmp.begin(), tmp.end() ); + } + + template< class String, class Traits > + inline bool operator==( const basic_path & lhs, const basic_path & rhs ) + { + return !(lhs < rhs) && !(rhs < lhs); + } + + template< class String, class Traits > + inline bool operator==( const typename basic_path::string_type::value_type * lhs, + const basic_path & rhs ) + { + basic_path tmp( lhs ); + return !(tmp < rhs) && !(rhs < tmp); + } + + template< class String, class Traits > + inline bool operator==( const typename basic_path::string_type & lhs, + const basic_path & rhs ) + { + basic_path tmp( lhs ); + return !(tmp < rhs) && !(rhs < tmp); + } + + template< class String, class Traits > + inline bool operator==( const basic_path & lhs, + const typename basic_path::string_type::value_type * rhs ) + { + basic_path tmp( rhs ); + return !(lhs < tmp) && !(tmp < lhs); + } + + template< class String, class Traits > + inline bool operator==( const basic_path & lhs, + const typename basic_path::string_type & rhs ) + { + basic_path tmp( rhs ); + return !(lhs < tmp) && !(tmp < lhs); + } + + template< class String, class Traits > + inline bool operator!=( const basic_path & lhs, const basic_path & rhs ) { return !(lhs == rhs); } + + template< class String, class Traits > + inline bool operator!=( const typename basic_path::string_type::value_type * lhs, + const basic_path & rhs ) { return !(basic_path(lhs) == rhs); } + + template< class String, class Traits > + inline bool operator!=( const typename basic_path::string_type & lhs, + const basic_path & rhs ) { return !(basic_path(lhs) == rhs); } + + template< class String, class Traits > + inline bool operator!=( const basic_path & lhs, + const typename basic_path::string_type::value_type * rhs ) + { return !(lhs == basic_path(rhs)); } + + template< class String, class Traits > + inline bool operator!=( const basic_path & lhs, + const typename basic_path::string_type & rhs ) + { return !(lhs == basic_path(rhs)); } + + template< class String, class Traits > + inline bool operator>( const basic_path & lhs, const basic_path & rhs ) { return rhs < lhs; } + + template< class String, class Traits > + inline bool operator>( const typename basic_path::string_type::value_type * lhs, + const basic_path & rhs ) { return rhs < basic_path(lhs); } + + template< class String, class Traits > + inline bool operator>( const typename basic_path::string_type & lhs, + const basic_path & rhs ) { return rhs < basic_path(lhs); } + + template< class String, class Traits > + inline bool operator>( const basic_path & lhs, + const typename basic_path::string_type::value_type * rhs ) + { return basic_path(rhs) < lhs; } + + template< class String, class Traits > + inline bool operator>( const basic_path & lhs, + const typename basic_path::string_type & rhs ) + { return basic_path(rhs) < lhs; } + + template< class String, class Traits > + inline bool operator<=( const basic_path & lhs, const basic_path & rhs ) { return !(rhs < lhs); } + + template< class String, class Traits > + inline bool operator<=( const typename basic_path::string_type::value_type * lhs, + const basic_path & rhs ) { return !(rhs < basic_path(lhs)); } + + template< class String, class Traits > + inline bool operator<=( const typename basic_path::string_type & lhs, + const basic_path & rhs ) { return !(rhs < basic_path(lhs)); } + + template< class String, class Traits > + inline bool operator<=( const basic_path & lhs, + const typename basic_path::string_type::value_type * rhs ) + { return !(basic_path(rhs) < lhs); } + + template< class String, class Traits > + inline bool operator<=( const basic_path & lhs, + const typename basic_path::string_type & rhs ) + { return !(basic_path(rhs) < lhs); } + + template< class String, class Traits > + inline bool operator>=( const basic_path & lhs, const basic_path & rhs ) { return !(lhs < rhs); } + + template< class String, class Traits > + inline bool operator>=( const typename basic_path::string_type::value_type * lhs, + const basic_path & rhs ) { return !(lhs < basic_path(rhs)); } + + template< class String, class Traits > + inline bool operator>=( const typename basic_path::string_type & lhs, + const basic_path & rhs ) { return !(lhs < basic_path(rhs)); } + + template< class String, class Traits > + inline bool operator>=( const basic_path & lhs, + const typename basic_path::string_type::value_type * rhs ) + { return !(basic_path(lhs) < rhs); } + + template< class String, class Traits > + inline bool operator>=( const basic_path & lhs, + const typename basic_path::string_type & rhs ) + { return !(basic_path(lhs) < rhs); } + + // operator / + + template< class String, class Traits > + inline basic_path operator/( + const basic_path & lhs, + const basic_path & rhs ) + { return basic_path( lhs ) /= rhs; } + + template< class String, class Traits > + inline basic_path operator/( + const basic_path & lhs, + const typename String::value_type * rhs ) + { return basic_path( lhs ) /= + basic_path( rhs ); } + + template< class String, class Traits > + inline basic_path operator/( + const basic_path & lhs, const String & rhs ) + { return basic_path( lhs ) /= + basic_path( rhs ); } + + template< class String, class Traits > + inline basic_path operator/( + const typename String::value_type * lhs, + const basic_path & rhs ) + { return basic_path( lhs ) /= rhs; } + + template< class String, class Traits > + inline basic_path operator/( + const String & lhs, const basic_path & rhs ) + { return basic_path( lhs ) /= rhs; } + + // inserters and extractors --------------------------------------------// + +// bypass VC++ 7.0 and earlier, and broken Borland compilers +# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + template< class Path > + std::basic_ostream< typename Path::string_type::value_type, + typename Path::string_type::traits_type > & + operator<< + ( std::basic_ostream< typename Path::string_type::value_type, + typename Path::string_type::traits_type >& os, const Path & ph ) + { + os << ph.string(); + return os; + } + + template< class Path > + std::basic_istream< typename Path::string_type::value_type, + typename Path::string_type::traits_type > & + operator>> + ( std::basic_istream< typename Path::string_type::value_type, + typename Path::string_type::traits_type >& is, Path & ph ) + { + typename Path::string_type str; + is >> str; + ph = str; + return is; + } +# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + template< class String, class Traits > + std::basic_ostream< BOOST_DEDUCED_TYPENAME String::value_type, + BOOST_DEDUCED_TYPENAME String::traits_type > & + operator<< + ( std::basic_ostream< BOOST_DEDUCED_TYPENAME String::value_type, + BOOST_DEDUCED_TYPENAME String::traits_type >& os, + const basic_path< String, Traits > & ph ) + { + os << ph.string(); + return os; + } + + template< class String, class Traits > + std::basic_istream< BOOST_DEDUCED_TYPENAME String::value_type, + BOOST_DEDUCED_TYPENAME String::traits_type > & + operator>> + ( std::basic_istream< BOOST_DEDUCED_TYPENAME String::value_type, + BOOST_DEDUCED_TYPENAME String::traits_type> & is, + basic_path< String, Traits > & ph ) + { + String str; + is >> str; + ph = str; + return is; + } +# endif + + // basic_filesystem_error helpers --------------------------------------// + + // Originally choice of implementation was done via specialization of + // basic_filesystem_error::what(). Several compilers (GCC, aCC, etc.) + // couldn't handle that, so the choice is now accomplished by overloading. + + namespace detail + { + // BOOST_FILESYSTEM_DECL version works for VC++ but not GCC. Go figure! + inline + const char * what( const char * sys_err_what, + const path & path1, const path & path2, std::string & target ) + { + try + { + if ( target.empty() ) + { + target = sys_err_what; + if ( !path1.empty() ) + { + target += ": \""; + target += path1.file_string(); + target += "\""; + } + if ( !path2.empty() ) + { + target += ", \""; + target += path2.file_string(); + target += "\""; + } + } + return target.c_str(); + } + catch (...) + { + return sys_err_what; + } + } + + template + const char * what( const char * sys_err_what, + const Path & /*path1*/, const Path & /*path2*/, std::string & /*target*/ ) + { + return sys_err_what; + } + } + + // basic_filesystem_error ----------------------------------------------// + + template + class basic_filesystem_error : public system::system_error + { + // see http://www.boost.org/more/error_handling.html for design rationale + public: + // compiler generates copy constructor and copy assignment + + typedef Path path_type; + + basic_filesystem_error( const std::string & what, + system::error_code ec ); + + basic_filesystem_error( const std::string & what, + const path_type & path1, system::error_code ec ); + + basic_filesystem_error( const std::string & what, const path_type & path1, + const path_type & path2, system::error_code ec ); + + ~basic_filesystem_error() throw() {} + + const path_type & path1() const + { + static const path_type empty_path; + return m_imp_ptr.get() ? m_imp_ptr->m_path1 : empty_path ; + } + const path_type & path2() const + { + static const path_type empty_path; + return m_imp_ptr.get() ? m_imp_ptr->m_path2 : empty_path ; + } + + const char * what() const throw() + { + if ( !m_imp_ptr.get() ) + return system::system_error::what(); + return detail::what( system::system_error::what(), m_imp_ptr->m_path1, + m_imp_ptr->m_path2, m_imp_ptr->m_what ); + } + + private: + struct m_imp + { + path_type m_path1; // may be empty() + path_type m_path2; // may be empty() + std::string m_what; // not built until needed + }; + boost::shared_ptr m_imp_ptr; + }; + + typedef basic_filesystem_error filesystem_error; + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + typedef basic_filesystem_error wfilesystem_error; +# endif + + // path::name_checks -----------------------------------------------------// + + BOOST_FILESYSTEM_DECL bool portable_posix_name( const std::string & name ); + BOOST_FILESYSTEM_DECL bool windows_name( const std::string & name ); + BOOST_FILESYSTEM_DECL bool portable_name( const std::string & name ); + BOOST_FILESYSTEM_DECL bool portable_directory_name( const std::string & name ); + BOOST_FILESYSTEM_DECL bool portable_file_name( const std::string & name ); + BOOST_FILESYSTEM_DECL bool native( const std::string & name ); + inline bool no_check( const std::string & ) + { return true; } + +// implementation -----------------------------------------------------------// + + namespace detail + { + + // is_separator helper ------------------------------------------------// + + template + inline bool is_separator( typename Path::string_type::value_type c ) + { + return c == slash::value +# ifdef BOOST_WINDOWS_PATH + || c == path_alt_separator::value +# endif + ; + } + + // leaf_pos helper ----------------------------------------------------// + + template + typename String::size_type leaf_pos( + const String & str, // precondition: portable generic path grammar + typename String::size_type end_pos ) // end_pos is past-the-end position + // return 0 if str itself is leaf (or empty) + { + typedef typename + boost::BOOST_FILESYSTEM_NAMESPACE::basic_path path_type; + + // case: "//" + if ( end_pos == 2 + && str[0] == slash::value + && str[1] == slash::value ) return 0; + + // case: ends in "/" + if ( end_pos && str[end_pos-1] == slash::value ) + return end_pos-1; + + // set pos to start of last element + typename String::size_type pos( + str.find_last_of( slash::value, end_pos-1 ) ); +# ifdef BOOST_WINDOWS_PATH + if ( pos == String::npos ) + pos = str.find_last_of( path_alt_separator::value, end_pos-1 ); + if ( pos == String::npos ) + pos = str.find_last_of( colon::value, end_pos-2 ); +# endif + + return ( pos == String::npos // path itself must be a leaf (or empty) + || (pos == 1 && str[0] == slash::value) ) // or net + ? 0 // so leaf is entire string + : pos + 1; // or starts after delimiter + } + + // first_element helper -----------------------------------------------// + // sets pos and len of first element, excluding extra separators + // if src.empty(), sets pos,len, to 0,0. + + template + void first_element( + const String & src, // precondition: portable generic path grammar + typename String::size_type & element_pos, + typename String::size_type & element_size, +# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1310 ) // VC++ 7.1 + typename String::size_type size = String::npos +# else + typename String::size_type size = -1 +# endif + ) + { + if ( size == String::npos ) size = src.size(); + element_pos = 0; + element_size = 0; + if ( src.empty() ) return; + + typedef typename boost::BOOST_FILESYSTEM_NAMESPACE::basic_path path_type; + + typename String::size_type cur(0); + + // deal with // [network] + if ( size >= 2 && src[0] == slash::value + && src[1] == slash::value + && (size == 2 + || src[2] != slash::value) ) + { + cur += 2; + element_size += 2; + } + + // leading (not non-network) separator + else if ( src[0] == slash::value ) + { + ++element_size; + // bypass extra leading separators + while ( cur+1 < size + && src[cur+1] == slash::value ) + { + ++cur; + ++element_pos; + } + return; + } + + // at this point, we have either a plain name, a network name, + // or (on Windows only) a device name + + // find the end + while ( cur < size +# ifdef BOOST_WINDOWS_PATH + && src[cur] != colon::value +# endif + && src[cur] != slash::value ) + { + ++cur; + ++element_size; + } + +# ifdef BOOST_WINDOWS_PATH + if ( cur == size ) return; + // include device delimiter + if ( src[cur] == colon::value ) + { ++element_size; } +# endif + + return; + } + + // root_directory_start helper ----------------------------------------// + + template + typename String::size_type root_directory_start( + const String & s, // precondition: portable generic path grammar + typename String::size_type size ) + // return npos if no root_directory found + { + typedef typename boost::BOOST_FILESYSTEM_NAMESPACE::basic_path path_type; + +# ifdef BOOST_WINDOWS_PATH + // case "c:/" + if ( size > 2 + && s[1] == colon::value + && s[2] == slash::value ) return 2; +# endif + + // case "//" + if ( size == 2 + && s[0] == slash::value + && s[1] == slash::value ) return String::npos; + + // case "//net {/}" + if ( size > 3 + && s[0] == slash::value + && s[1] == slash::value + && s[2] != slash::value ) + { + typename String::size_type pos( + s.find( slash::value, 2 ) ); + return pos < size ? pos : String::npos; + } + + // case "/" + if ( size > 0 && s[0] == slash::value ) return 0; + + return String::npos; + } + + // is_non_root_slash helper -------------------------------------------// + + template + bool is_non_root_slash( const String & str, + typename String::size_type pos ) // pos is position of the slash + { + typedef typename + boost::BOOST_FILESYSTEM_NAMESPACE::basic_path + path_type; + + assert( !str.empty() && str[pos] == slash::value + && "precondition violation" ); + + // subsequent logic expects pos to be for leftmost slash of a set + while ( pos > 0 && str[pos-1] == slash::value ) + --pos; + + return pos != 0 + && (pos <= 2 || str[1] != slash::value + || str.find( slash::value, 2 ) != pos) +# ifdef BOOST_WINDOWS_PATH + && (pos !=2 || str[1] != colon::value) +# endif + ; + } + } // namespace detail + + // decomposition functions ----------------------------------------------// + + template + String basic_path::leaf() const + { + typename String::size_type end_pos( + detail::leaf_pos( m_path, m_path.size() ) ); + return (m_path.size() + && end_pos + && m_path[end_pos] == slash::value + && detail::is_non_root_slash< String, Traits >(m_path, end_pos)) + ? String( 1, dot::value ) + : m_path.substr( end_pos ); + } + + template + basic_path basic_path::branch_path() const + { + typename String::size_type end_pos( + detail::leaf_pos( m_path, m_path.size() ) ); + + bool leaf_was_separator( m_path.size() + && m_path[end_pos] == slash::value ); + + // skip separators unless root directory + typename string_type::size_type root_dir_pos( detail::root_directory_start + ( m_path, end_pos ) ); + for ( ; + end_pos > 0 + && (end_pos-1) != root_dir_pos + && m_path[end_pos-1] == slash::value + ; + --end_pos ) {} + + return (end_pos == 1 && root_dir_pos == 0 && leaf_was_separator) + ? path_type() + : path_type( m_path.substr( 0, end_pos ) ); + } + + template + basic_path basic_path::relative_path() const + { + iterator itr( begin() ); + for ( ; itr.m_pos != m_path.size() + && (itr.m_name[0] == slash::value +# ifdef BOOST_WINDOWS_PATH + || itr.m_name[itr.m_name.size()-1] + == colon::value +# endif + ); ++itr ) {} + + return basic_path( m_path.substr( itr.m_pos ) ); + } + + template + String basic_path::root_name() const + { + iterator itr( begin() ); + + return ( itr.m_pos != m_path.size() + && ( + ( itr.m_name.size() > 1 + && itr.m_name[0] == slash::value + && itr.m_name[1] == slash::value + ) +# ifdef BOOST_WINDOWS_PATH + || itr.m_name[itr.m_name.size()-1] + == colon::value +# endif + ) ) + ? *itr + : String(); + } + + template + String basic_path::root_directory() const + { + typename string_type::size_type start( + detail::root_directory_start( m_path, m_path.size() ) ); + + return start == string_type::npos + ? string_type() + : m_path.substr( start, 1 ); + } + + template + basic_path basic_path::root_path() const + { + // even on POSIX, root_name() is non-empty() on network paths + return basic_path( root_name() ) /= root_directory(); + } + + // path query functions -------------------------------------------------// + + template + inline bool basic_path::is_complete() const + { +# ifdef BOOST_WINDOWS_PATH + return has_root_name() && has_root_directory(); +# else + return has_root_directory(); +# endif + } + + template + inline bool basic_path::has_root_path() const + { + return !root_path().empty(); + } + + template + inline bool basic_path::has_root_name() const + { + return !root_name().empty(); + } + + template + inline bool basic_path::has_root_directory() const + { + return !root_directory().empty(); + } + + // append ---------------------------------------------------------------// + + template + void basic_path::m_append_separator_if_needed() + // requires: !empty() + { + if ( +# ifdef BOOST_WINDOWS_PATH + *(m_path.end()-1) != colon::value && +# endif + *(m_path.end()-1) != slash::value ) + { + m_path += slash::value; + } + } + + template + void basic_path::m_append( value_type value ) + { +# ifdef BOOST_CYGWIN_PATH + if ( m_path.empty() ) m_cygwin_root = (value == slash::value); +# endif + +# ifdef BOOST_WINDOWS_PATH + // for BOOST_WINDOWS_PATH, convert alt_separator ('\') to separator ('/') + m_path += ( value == path_alt_separator::value + ? slash::value + : value ); +# else + m_path += value; +# endif + } + + // except that it wouldn't work for BOOST_NO_MEMBER_TEMPLATES compilers, + // the append() member template could replace this code. + template + basic_path & basic_path::operator /= + ( const value_type * next_p ) + { + // ignore escape sequence on POSIX or Windows + if ( *next_p == slash::value + && *(next_p+1) == slash::value + && *(next_p+2) == colon::value ) next_p += 3; + + // append slash::value if needed + if ( !empty() && *next_p != 0 + && !detail::is_separator( *next_p ) ) + { m_append_separator_if_needed(); } + + for ( ; *next_p != 0; ++next_p ) m_append( *next_p ); + return *this; + } + +# ifndef BOOST_NO_MEMBER_TEMPLATES + template template + basic_path & basic_path::append( + InputIterator first, InputIterator last ) + { + // append slash::value if needed + if ( !empty() && first != last + && !detail::is_separator( *first ) ) + { m_append_separator_if_needed(); } + + // song-and-dance to avoid violating InputIterator requirements + // (which prohibit lookahead) in detecting a possible escape sequence + // (escape sequences are simply ignored on POSIX and Windows) + bool was_escape_sequence(true); + std::size_t append_count(0); + typename String::size_type initial_pos( m_path.size() ); + + for ( ; first != last && *first; ++first ) + { + if ( append_count == 0 && *first != slash::value ) + was_escape_sequence = false; + if ( append_count == 1 && *first != slash::value ) + was_escape_sequence = false; + if ( append_count == 2 && *first != colon::value ) + was_escape_sequence = false; + m_append( *first ); + ++append_count; + } + + // erase escape sequence if any + if ( was_escape_sequence && append_count >= 3 ) + m_path.erase( initial_pos, 3 ); + + return *this; + } +# endif + +# ifndef BOOST_FILESYSTEM_NO_DEPRECATED + + // canonize ------------------------------------------------------------// + + template + basic_path & basic_path::canonize() + { + static const typename string_type::value_type dot_str[] + = { dot::value, 0 }; + + if ( m_path.empty() ) return *this; + + path_type temp; + + for ( iterator itr( begin() ); itr != end(); ++itr ) + { + temp /= *itr; + }; + + if ( temp.empty() ) temp /= dot_str; + m_path = temp.m_path; + return *this; + } + + // normalize ------------------------------------------------------------// + + template + basic_path & basic_path::normalize() + { + static const typename string_type::value_type dot_str[] + = { dot::value, 0 }; + + if ( m_path.empty() ) return *this; + + path_type temp; + iterator start( begin() ); + iterator last( end() ); + iterator stop( last-- ); + for ( iterator itr( start ); itr != stop; ++itr ) + { + // ignore "." except at start and last + if ( itr->size() == 1 + && (*itr)[0] == dot::value + && itr != start + && itr != last ) continue; + + // ignore a name and following ".." + if ( !temp.empty() + && itr->size() == 2 + && (*itr)[0] == dot::value + && (*itr)[1] == dot::value ) // dot dot + { + string_type lf( temp.leaf() ); + if ( lf.size() > 0 + && (lf.size() != 1 + || (lf[0] != dot::value + && lf[0] != slash::value)) + && (lf.size() != 2 + || (lf[0] != dot::value + && lf[1] != dot::value +# ifdef BOOST_WINDOWS_PATH + && lf[1] != colon::value +# endif + ) + ) + ) + { + temp.remove_leaf(); + // if not root directory, must also remove "/" if any + if ( temp.m_path.size() > 0 + && temp.m_path[temp.m_path.size()-1] + == slash::value ) + { + typename string_type::size_type rds( + detail::root_directory_start( temp.m_path, + temp.m_path.size() ) ); + if ( rds == string_type::npos + || rds != temp.m_path.size()-1 ) + { temp.m_path.erase( temp.m_path.size()-1 ); } + } + + iterator next( itr ); + if ( temp.empty() && ++next != stop + && next == last && *last == dot_str ) temp /= dot_str; + continue; + } + } + + temp /= *itr; + }; + + if ( temp.empty() ) temp /= dot_str; + m_path = temp.m_path; + return *this; + } + +# endif + + // remove_leaf ----------------------------------------------------------// + + template + basic_path & basic_path::remove_leaf() + { + m_path.erase( + detail::leaf_pos( m_path, m_path.size() ) ); + return *this; + } + + // path conversion functions --------------------------------------------// + + template + const String + basic_path::file_string() const + { +# ifdef BOOST_WINDOWS_PATH + // for Windows, use the alternate separator, and bypass extra + // root separators + + typename string_type::size_type root_dir_start( + detail::root_directory_start( m_path, m_path.size() ) ); + bool in_root( root_dir_start != string_type::npos ); + String s; + for ( typename string_type::size_type pos( 0 ); + pos != m_path.size(); ++pos ) + { + // special case // [net] + if ( pos == 0 && m_path.size() > 1 + && m_path[0] == slash::value + && m_path[1] == slash::value + && ( m_path.size() == 2 + || !detail::is_separator( m_path[2] ) + ) ) + { + ++pos; + s += path_alt_separator::value; + s += path_alt_separator::value; + continue; + } + + // bypass extra root separators + if ( in_root ) + { + if ( s.size() > 0 + && s[s.size()-1] == path_alt_separator::value + && m_path[pos] == slash::value + ) continue; + } + + if ( m_path[pos] == slash::value ) + s += path_alt_separator::value; + else + s += m_path[pos]; + + if ( pos > root_dir_start + && m_path[pos] == slash::value ) + { in_root = false; } + } +# ifdef BOOST_CYGWIN_PATH + if ( m_cygwin_root ) s[0] = slash::value; +# endif + return s; +# else + return m_path; +# endif + } + + // iterator functions ---------------------------------------------------// + + template + typename basic_path::iterator basic_path::begin() const + { + iterator itr; + itr.m_path_ptr = this; + typename string_type::size_type element_size; + detail::first_element( m_path, itr.m_pos, element_size ); + itr.m_name = m_path.substr( itr.m_pos, element_size ); + return itr; + } + + template + typename basic_path::iterator basic_path::end() const + { + iterator itr; + itr.m_path_ptr = this; + itr.m_pos = m_path.size(); + return itr; + } + + namespace detail + { + // do_increment ------------------------------------------------------// + + template + void iterator_helper::do_increment( iterator & itr ) + { + typedef typename Path::string_type string_type; + typedef typename Path::traits_type traits_type; + + assert( itr.m_pos < itr.m_path_ptr->m_path.size() && "basic_path::iterator increment past end()" ); + + bool was_net( itr.m_name.size() > 2 + && itr.m_name[0] == slash::value + && itr.m_name[1] == slash::value + && itr.m_name[2] != slash::value ); + + // increment to position past current element + itr.m_pos += itr.m_name.size(); + + // if end reached, create end iterator + if ( itr.m_pos == itr.m_path_ptr->m_path.size() ) + { + itr.m_name.erase( itr.m_name.begin(), itr.m_name.end() ); // VC++ 6.0 lib didn't supply clear() + return; + } + + // process separator (Windows drive spec is only case not a separator) + if ( itr.m_path_ptr->m_path[itr.m_pos] == slash::value ) + { + // detect root directory + if ( was_net + # ifdef BOOST_WINDOWS_PATH + // case "c:/" + || itr.m_name[itr.m_name.size()-1] == colon::value + # endif + ) + { + itr.m_name = slash::value; + return; + } + + // bypass separators + while ( itr.m_pos != itr.m_path_ptr->m_path.size() + && itr.m_path_ptr->m_path[itr.m_pos] == slash::value ) + { ++itr.m_pos; } + + // detect trailing separator, and treat it as ".", per POSIX spec + if ( itr.m_pos == itr.m_path_ptr->m_path.size() + && detail::is_non_root_slash< string_type, traits_type >( + itr.m_path_ptr->m_path, itr.m_pos-1 ) ) + { + --itr.m_pos; + itr.m_name = dot::value; + return; + } + } + + // get next element + typename string_type::size_type end_pos( + itr.m_path_ptr->m_path.find( slash::value, itr.m_pos ) ); + itr.m_name = itr.m_path_ptr->m_path.substr( itr.m_pos, end_pos - itr.m_pos ); + } + + // do_decrement ------------------------------------------------------// + + template + void iterator_helper::do_decrement( iterator & itr ) + { + assert( itr.m_pos && "basic_path::iterator decrement past begin()" ); + + typedef typename Path::string_type string_type; + typedef typename Path::traits_type traits_type; + + typename string_type::size_type end_pos( itr.m_pos ); + + typename string_type::size_type root_dir_pos( + detail::root_directory_start( + itr.m_path_ptr->m_path, end_pos ) ); + + // if at end and there was a trailing non-root '/', return "." + if ( itr.m_pos == itr.m_path_ptr->m_path.size() + && itr.m_path_ptr->m_path.size() > 1 + && itr.m_path_ptr->m_path[itr.m_pos-1] == slash::value + && detail::is_non_root_slash< string_type, traits_type >( + itr.m_path_ptr->m_path, itr.m_pos-1 ) + ) + { + --itr.m_pos; + itr.m_name = dot::value; + return; + } + + // skip separators unless root directory + for ( + ; + end_pos > 0 + && (end_pos-1) != root_dir_pos + && itr.m_path_ptr->m_path[end_pos-1] == slash::value + ; + --end_pos ) {} + + itr.m_pos = detail::leaf_pos + ( itr.m_path_ptr->m_path, end_pos ); + itr.m_name = itr.m_path_ptr->m_path.substr( itr.m_pos, end_pos - itr.m_pos ); + } + } // namespace detail + + // basic_filesystem_error implementation --------------------------------// + + template + basic_filesystem_error::basic_filesystem_error( + const std::string & what, system::error_code ec ) + : system::system_error(ec, what) + { + try + { + m_imp_ptr.reset( new m_imp ); + } + catch (...) { m_imp_ptr.reset(); } + } + + template + basic_filesystem_error::basic_filesystem_error( + const std::string & what, const path_type & path1, + system::error_code ec ) + : system::system_error(ec, what) + { + try + { + m_imp_ptr.reset( new m_imp ); + m_imp_ptr->m_path1 = path1; + } + catch (...) { m_imp_ptr.reset(); } + } + + template + basic_filesystem_error::basic_filesystem_error( + const std::string & what, const path_type & path1, + const path_type & path2, system::error_code ec ) + : system::system_error(ec, what) + { + try + { + m_imp_ptr.reset( new m_imp ); + m_imp_ptr->m_path1 = path1; + m_imp_ptr->m_path2 = path2; + } + catch (...) { m_imp_ptr.reset(); } + } + + } // namespace BOOST_FILESYSTEM_NAMESPACE +} // namespace boost + +#include // pops abi_prefix.hpp pragmas + +#endif // BOOST_FILESYSTEM_PATH_HPP diff --git a/external-libs/boost/boost/implicit_cast.hpp b/external-libs/boost/boost/implicit_cast.hpp new file mode 100644 index 0000000..5b1cd92 --- /dev/null +++ b/external-libs/boost/boost/implicit_cast.hpp @@ -0,0 +1,29 @@ +// Copyright David Abrahams 2003. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef IMPLICIT_CAST_DWA200356_HPP +# define IMPLICIT_CAST_DWA200356_HPP + +# include + +namespace boost { + +// implementation originally suggested by C. Green in +// http://lists.boost.org/MailArchives/boost/msg00886.php + +// The use of identity creates a non-deduced form, so that the +// explicit template argument must be supplied +template +inline T implicit_cast (typename mpl::identity::type x) { + return x; +} + +// incomplete return type now is here +//template +//void implicit_cast (...); + +} // namespace boost + + +#endif // IMPLICIT_CAST_DWA200356_HPP diff --git a/external-libs/boost/boost/iterator.hpp b/external-libs/boost/boost/iterator.hpp new file mode 100644 index 0000000..a43cfe1 --- /dev/null +++ b/external-libs/boost/boost/iterator.hpp @@ -0,0 +1,59 @@ +// interator.hpp workarounds for non-conforming standard libraries ---------// + +// (C) Copyright Beman Dawes 2000. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/utility for documentation. + +// Revision History +// 12 Jan 01 added for std::ptrdiff_t (Jens Maurer) +// 28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams) +// 26 Jun 00 Initial version (Jeremy Siek) + +#ifndef BOOST_ITERATOR_HPP +#define BOOST_ITERATOR_HPP + +#include +#include // std::ptrdiff_t +#include + +namespace boost +{ +# if defined(BOOST_NO_STD_ITERATOR) && !defined(BOOST_MSVC_STD_ITERATOR) + template + struct iterator + { + typedef T value_type; + typedef Distance difference_type; + typedef Pointer pointer; + typedef Reference reference; + typedef Category iterator_category; + }; +# else + + // declare iterator_base in namespace detail to work around MSVC bugs which + // prevent derivation from an identically-named class in a different namespace. + namespace detail { + template +# if !defined(BOOST_MSVC_STD_ITERATOR) + struct iterator_base : std::iterator {}; +# else + struct iterator_base : std::iterator + { + typedef Reference reference; + typedef Pointer pointer; + typedef Distance difference_type; + }; +# endif + } + + template + struct iterator : boost::detail::iterator_base {}; +# endif +} // namespace boost + +#endif // BOOST_ITERATOR_HPP diff --git a/external-libs/boost/boost/iterator/detail/config_def.hpp b/external-libs/boost/boost/iterator/detail/config_def.hpp new file mode 100644 index 0000000..3aba895 --- /dev/null +++ b/external-libs/boost/boost/iterator/detail/config_def.hpp @@ -0,0 +1,135 @@ +// (C) Copyright David Abrahams 2002. +// (C) Copyright Jeremy Siek 2002. +// (C) Copyright Thomas Witt 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// no include guard multiple inclusion intended + +// +// This is a temporary workaround until the bulk of this is +// available in boost config. +// 23/02/03 thw +// + +#include // for prior +#include + +#ifdef BOOST_ITERATOR_CONFIG_DEF +# error you have nested config_def #inclusion. +#else +# define BOOST_ITERATOR_CONFIG_DEF +#endif + +// We enable this always now. Otherwise, the simple case in +// libs/iterator/test/constant_iterator_arrow.cpp fails to compile +// because the operator-> return is improperly deduced as a non-const +// pointer. +#if 1 || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531)) + +// Recall that in general, compilers without partial specialization +// can't strip constness. Consider counting_iterator, which normally +// passes a const Value to iterator_facade. As a result, any code +// which makes a std::vector of the iterator's value_type will fail +// when its allocator declares functions overloaded on reference and +// const_reference (the same type). +// +// Furthermore, Borland 5.5.1 drops constness in enough ways that we +// end up using a proxy for operator[] when we otherwise shouldn't. +// Using reference constness gives it an extra hint that it can +// return the value_type from operator[] directly, but is not +// strictly necessary. Not sure how best to resolve this one. + +# define BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1 + +#endif + +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531)) \ + || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \ + || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) +# define BOOST_NO_LVALUE_RETURN_DETECTION + +# if 0 // test code + struct v {}; + + typedef char (&no)[3]; + + template + no foo(T const&, ...); + + template + char foo(T&, int); + + + struct value_iterator + { + v operator*() const; + }; + + template + struct lvalue_deref_helper + { + static T& x; + enum { value = (sizeof(foo(*x,0)) == 1) }; + }; + + int z2[(lvalue_deref_helper::value == 1) ? 1 : -1]; + int z[(lvalue_deref_helper::value) == 1 ? -1 : 1 ]; +# endif + +#endif + +#if BOOST_WORKAROUND(__MWERKS__, <=0x2407) +# define BOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types" +#endif + +#if BOOST_WORKAROUND(__GNUC__, == 2) \ + || BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) +# define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile: + +# if 0 // test code + #include + template + struct foo + { + foo(T); + + template + foo(foo const& other) : p(other.p) { } + + T p; + }; + + bool x = boost::is_convertible, foo >::value; +# endif + +#endif + + +#if !defined(BOOST_MSVC) && (defined(BOOST_NO_SFINAE) || defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_IS_CONVERTIBLE_TEMPLATE)) +# define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY +#endif + +# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) +# define BOOST_ARG_DEPENDENT_TYPENAME typename +# else +# define BOOST_ARG_DEPENDENT_TYPENAME +# endif + +# if BOOST_WORKAROUND(__GNUC__, == 2) && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(95)) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) + +// GCC-2.95 eagerly instantiates templated constructors and conversion +// operators in convertibility checks, causing premature errors. +// +// Borland's problems are harder to diagnose due to lack of an +// instantiation stack backtrace. They may be due in part to the fact +// that it drops cv-qualification willy-nilly in templates. +# define BOOST_NO_ONE_WAY_ITERATOR_INTEROP +# endif + +// no include guard; multiple inclusion intended diff --git a/external-libs/boost/boost/iterator/detail/config_undef.hpp b/external-libs/boost/boost/iterator/detail/config_undef.hpp new file mode 100644 index 0000000..9dcd1d5 --- /dev/null +++ b/external-libs/boost/boost/iterator/detail/config_undef.hpp @@ -0,0 +1,25 @@ +// (C) Copyright Thomas Witt 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// no include guard multiple inclusion intended + +// +// This is a temporary workaround until the bulk of this is +// available in boost config. +// 23/02/03 thw +// + +#undef BOOST_NO_IS_CONVERTIBLE +#undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE +#undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY +#undef BOOST_ARG_DEPENDENT_TYPENAME +#undef BOOST_NO_LVALUE_RETURN_DETECTION +#undef BOOST_NO_ONE_WAY_ITERATOR_INTEROP + +#ifdef BOOST_ITERATOR_CONFIG_DEF +# undef BOOST_ITERATOR_CONFIG_DEF +#else +# error missing or nested #include config_def +#endif diff --git a/external-libs/boost/boost/iterator/detail/enable_if.hpp b/external-libs/boost/boost/iterator/detail/enable_if.hpp new file mode 100644 index 0000000..0fd36fc --- /dev/null +++ b/external-libs/boost/boost/iterator/detail/enable_if.hpp @@ -0,0 +1,86 @@ +// (C) Copyright David Abrahams 2002. +// (C) Copyright Jeremy Siek 2002. +// (C) Copyright Thomas Witt 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_ENABLE_IF_23022003THW_HPP +#define BOOST_ENABLE_IF_23022003THW_HPP + +#include +#include + +#include + +// +// Boost iterators uses its own enable_if cause we need +// special semantics for deficient compilers. +// 23/02/03 thw +// + +namespace boost +{ + + namespace iterators + { + // + // Base machinery for all kinds of enable if + // + template + struct enabled + { + template + struct base + { + typedef T type; + }; + }; + + // + // For compilers that don't support "Substitution Failure Is Not An Error" + // enable_if falls back to always enabled. See comments + // on operator implementation for consequences. + // + template<> + struct enabled + { + template + struct base + { +#ifdef BOOST_NO_SFINAE + + typedef T type; + + // This way to do it would give a nice error message containing + // invalid overload, but has the big disadvantage that + // there is no reference to user code in the error message. + // + // struct invalid_overload; + // typedef invalid_overload type; + // +#endif + }; + }; + + + template + struct enable_if +# if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_IS_CONVERTIBLE) + : enabled<(Cond::value)>::template base +# else + : mpl::identity +# endif + { +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + typedef Return type; +# endif + }; + + } // namespace iterators + +} // namespace boost + +#include + +#endif // BOOST_ENABLE_IF_23022003THW_HPP diff --git a/external-libs/boost/boost/iterator/detail/facade_iterator_category.hpp b/external-libs/boost/boost/iterator/detail/facade_iterator_category.hpp new file mode 100644 index 0000000..2c4771d --- /dev/null +++ b/external-libs/boost/boost/iterator/detail/facade_iterator_category.hpp @@ -0,0 +1,200 @@ +// Copyright David Abrahams 2003. Use, modification and distribution is +// subject to the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef FACADE_ITERATOR_CATEGORY_DWA20031118_HPP +# define FACADE_ITERATOR_CATEGORY_DWA20031118_HPP + +# include + +# include // used in iterator_tag inheritance logic +# include +# include +# include +# include +# include + +# include +# include +# include +# include + +# include + +# include // try to keep this last + +# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY +# include +# endif + +// +// iterator_category deduction for iterator_facade +// + +// forward declaration +namespace boost { struct use_default; } + +namespace boost { namespace detail { + +struct input_output_iterator_tag + : std::input_iterator_tag +{ + // Using inheritance for only input_iterator_tag helps to avoid + // ambiguities when a stdlib implementation dispatches on a + // function which is overloaded on both input_iterator_tag and + // output_iterator_tag, as STLPort does, in its __valid_range + // function. I claim it's better to avoid the ambiguity in these + // cases. + operator std::output_iterator_tag() const + { + return std::output_iterator_tag(); + } +}; + +// +// True iff the user has explicitly disabled writability of this +// iterator. Pass the iterator_facade's Value parameter and its +// nested ::reference type. +// +template +struct iterator_writability_disabled +# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic? + : mpl::or_< + is_const + , boost::detail::indirect_traits::is_reference_to_const + , is_const + > +# else + : is_const +# endif +{}; + + +// +// Convert an iterator_facade's traversal category, Value parameter, +// and ::reference type to an appropriate old-style category. +// +// If writability has been disabled per the above metafunction, the +// result will not be convertible to output_iterator_tag. +// +// Otherwise, if Traversal == single_pass_traversal_tag, the following +// conditions will result in a tag that is convertible both to +// input_iterator_tag and output_iterator_tag: +// +// 1. Reference is a reference to non-const +// 2. Reference is not a reference and is convertible to Value +// +template +struct iterator_facade_default_category + : mpl::eval_if< + mpl::and_< + is_reference + , is_convertible + > + , mpl::eval_if< + is_convertible + , mpl::identity + , mpl::if_< + is_convertible + , std::bidirectional_iterator_tag + , std::forward_iterator_tag + > + > + , typename mpl::eval_if< + mpl::and_< + is_convertible + + // check for readability + , is_convertible + > + , mpl::identity + , mpl::identity + > + > +{ +}; + +// True iff T is convertible to an old-style iterator category. +template +struct is_iterator_category + : mpl::or_< + is_convertible + , is_convertible + > +{ +}; + +template +struct is_iterator_traversal + : is_convertible +{}; + +// +// A composite iterator_category tag convertible to Category (a pure +// old-style category) and Traversal (a pure traversal tag). +// Traversal must be a strict increase of the traversal power given by +// Category. +// +template +struct iterator_category_with_traversal + : Category, Traversal +{ +# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + // Make sure this isn't used to build any categories where + // convertibility to Traversal is redundant. Should just use the + // Category element in that case. + BOOST_MPL_ASSERT_NOT(( + is_convertible< + typename iterator_category_to_traversal::type + , Traversal + >)); + + BOOST_MPL_ASSERT((is_iterator_category)); + BOOST_MPL_ASSERT_NOT((is_iterator_category)); + BOOST_MPL_ASSERT_NOT((is_iterator_traversal)); +# if !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310)) + BOOST_MPL_ASSERT((is_iterator_traversal)); +# endif +# endif +}; + +// Computes an iterator_category tag whose traversal is Traversal and +// which is appropriate for an iterator +template +struct facade_iterator_category_impl +{ +# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + BOOST_MPL_ASSERT_NOT((is_iterator_category)); +# endif + + typedef typename iterator_facade_default_category< + Traversal,ValueParam,Reference + >::type category; + + typedef typename mpl::if_< + is_same< + Traversal + , typename iterator_category_to_traversal::type + > + , category + , iterator_category_with_traversal + >::type type; +}; + +// +// Compute an iterator_category for iterator_facade +// +template +struct facade_iterator_category + : mpl::eval_if< + is_iterator_category + , mpl::identity // old-style categories are fine as-is + , facade_iterator_category_impl + > +{ +}; + +}} // namespace boost::detail + +# include + +#endif // FACADE_ITERATOR_CATEGORY_DWA20031118_HPP diff --git a/external-libs/boost/boost/iterator/interoperable.hpp b/external-libs/boost/boost/iterator/interoperable.hpp new file mode 100644 index 0000000..c13dd9b --- /dev/null +++ b/external-libs/boost/boost/iterator/interoperable.hpp @@ -0,0 +1,50 @@ +// (C) Copyright David Abrahams 2002. +// (C) Copyright Jeremy Siek 2002. +// (C) Copyright Thomas Witt 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_INTEROPERABLE_23022003THW_HPP +# define BOOST_INTEROPERABLE_23022003THW_HPP + +# include +# include + +# include + +# include // must appear last + +namespace boost +{ + + // + // Meta function that determines whether two + // iterator types are considered interoperable. + // + // Two iterator types A,B are considered interoperable if either + // A is convertible to B or vice versa. + // This interoperability definition is in sync with the + // standards requirements on constant/mutable container + // iterators (23.1 [lib.container.requirements]). + // + // For compilers that don't support is_convertible + // is_interoperable gives false positives. See comments + // on operator implementation for consequences. + // + template + struct is_interoperable +# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY + : mpl::true_ +# else + : mpl::or_< + is_convertible< A, B > + , is_convertible< B, A > > +# endif + { + }; + +} // namespace boost + +# include + +#endif // BOOST_INTEROPERABLE_23022003THW_HPP diff --git a/external-libs/boost/boost/iterator/iterator_categories.hpp b/external-libs/boost/boost/iterator/iterator_categories.hpp new file mode 100644 index 0000000..1740d98 --- /dev/null +++ b/external-libs/boost/boost/iterator/iterator_categories.hpp @@ -0,0 +1,188 @@ +// (C) Copyright Jeremy Siek 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_ITERATOR_CATEGORIES_HPP +# define BOOST_ITERATOR_CATEGORIES_HPP + +# include +# include +# include + +# include + +# include +# include +# include +# include + +# include + +# include + +namespace boost { + +// +// Traversal Categories +// + +struct no_traversal_tag {}; + +struct incrementable_traversal_tag + : no_traversal_tag +{ +// incrementable_traversal_tag() {} +// incrementable_traversal_tag(std::output_iterator_tag const&) {}; +}; + +struct single_pass_traversal_tag + : incrementable_traversal_tag +{ +// single_pass_traversal_tag() {} +// single_pass_traversal_tag(std::input_iterator_tag const&) {}; +}; + +struct forward_traversal_tag + : single_pass_traversal_tag +{ +// forward_traversal_tag() {} +// forward_traversal_tag(std::forward_iterator_tag const&) {}; +}; + +struct bidirectional_traversal_tag + : forward_traversal_tag +{ +// bidirectional_traversal_tag() {}; +// bidirectional_traversal_tag(std::bidirectional_iterator_tag const&) {}; +}; + +struct random_access_traversal_tag + : bidirectional_traversal_tag +{ +// random_access_traversal_tag() {}; +// random_access_traversal_tag(std::random_access_iterator_tag const&) {}; +}; + +namespace detail +{ + // + // Convert a "strictly old-style" iterator category to a traversal + // tag. This is broken out into a separate metafunction to reduce + // the cost of instantiating iterator_category_to_traversal, below, + // for new-style types. + // + template + struct old_category_to_traversal + : mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , void + > + > + > + > + > + {}; + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + template <> + struct old_category_to_traversal + { + typedef int type; + }; +# endif + + template + struct pure_traversal_tag + : mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , mpl::eval_if< + is_convertible + , mpl::identity + , void + > + > + > + > + > + { + }; + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + template <> + struct pure_traversal_tag + { + typedef int type; + }; +# endif + +} // namespace detail + + +// +// Convert an iterator category into a traversal tag +// +template +struct iterator_category_to_traversal + : mpl::eval_if< // if already convertible to a traversal tag, we're done. + is_convertible + , mpl::identity + , boost::detail::old_category_to_traversal + > +{}; + +// Trait to get an iterator's traversal category +template +struct iterator_traversal + : iterator_category_to_traversal< + typename boost::detail::iterator_traits::iterator_category + > +{}; + +# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT +// Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work +// out well. Instantiating the nested apply template also +// requires instantiating iterator_traits on the +// placeholder. Instead we just specialize it as a metafunction +// class. +template <> +struct iterator_traversal +{ + template + struct apply : iterator_traversal + {}; +}; +template <> +struct iterator_traversal + : iterator_traversal +{}; +# endif + +} // namespace boost + +#include + +#endif // BOOST_ITERATOR_CATEGORIES_HPP diff --git a/external-libs/boost/boost/iterator/iterator_facade.hpp b/external-libs/boost/boost/iterator/iterator_facade.hpp new file mode 100644 index 0000000..042f978 --- /dev/null +++ b/external-libs/boost/boost/iterator/iterator_facade.hpp @@ -0,0 +1,879 @@ +// (C) Copyright David Abrahams 2002. +// (C) Copyright Jeremy Siek 2002. +// (C) Copyright Thomas Witt 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_ITERATOR_FACADE_23022003THW_HPP +#define BOOST_ITERATOR_FACADE_23022003THW_HPP + +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include // this goes last + +namespace boost +{ + // This forward declaration is required for the friend declaration + // in iterator_core_access + template class iterator_facade; + + namespace detail + { + // A binary metafunction class that always returns bool. VC6 + // ICEs on mpl::always, probably because of the default + // parameters. + struct always_bool2 + { + template + struct apply + { + typedef bool type; + }; + }; + + // + // enable if for use in operator implementation. + // + template < + class Facade1 + , class Facade2 + , class Return + > + struct enable_if_interoperable +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + { + typedef typename mpl::if_< + mpl::or_< + is_convertible + , is_convertible + > + , Return + , int[3] + >::type type; + }; +#else + : ::boost::iterators::enable_if< + mpl::or_< + is_convertible + , is_convertible + > + , Return + > + {}; +#endif + + // + // Generates associated types for an iterator_facade with the + // given parameters. + // + template < + class ValueParam + , class CategoryOrTraversal + , class Reference + , class Difference + > + struct iterator_facade_types + { + typedef typename facade_iterator_category< + CategoryOrTraversal, ValueParam, Reference + >::type iterator_category; + + typedef typename remove_const::type value_type; + + typedef typename mpl::eval_if< + boost::detail::iterator_writability_disabled + , add_pointer + , add_pointer + >::type pointer; + +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && (BOOST_WORKAROUND(_STLPORT_VERSION, BOOST_TESTED_AT(0x452)) \ + || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, BOOST_TESTED_AT(310))) \ + || BOOST_WORKAROUND(BOOST_RWSTD_VER, BOOST_TESTED_AT(0x20101)) \ + || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, <= 310) + + // To interoperate with some broken library/compiler + // combinations, user-defined iterators must be derived from + // std::iterator. It is possible to implement a standard + // library for broken compilers without this limitation. +# define BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1 + + typedef + iterator + base; +# endif + }; + + // iterators whose dereference operators reference the same value + // for all iterators into the same sequence (like many input + // iterators) need help with their postfix ++: the referenced + // value must be read and stored away before the increment occurs + // so that *a++ yields the originally referenced element and not + // the next one. + template + class postfix_increment_proxy + { + typedef typename iterator_value::type value_type; + public: + explicit postfix_increment_proxy(Iterator const& x) + : stored_value(*x) + {} + + // Returning a mutable reference allows nonsense like + // (*r++).mutate(), but it imposes fewer assumptions about the + // behavior of the value_type. In particular, recall taht + // (*r).mutate() is legal if operator* returns by value. + value_type& + operator*() const + { + return this->stored_value; + } + private: + mutable value_type stored_value; + }; + + // + // In general, we can't determine that such an iterator isn't + // writable -- we also need to store a copy of the old iterator so + // that it can be written into. + template + class writable_postfix_increment_proxy + { + typedef typename iterator_value::type value_type; + public: + explicit writable_postfix_increment_proxy(Iterator const& x) + : stored_value(*x) + , stored_iterator(x) + {} + + // Dereferencing must return a proxy so that both *r++ = o and + // value_type(*r++) can work. In this case, *r is the same as + // *r++, and the conversion operator below is used to ensure + // readability. + writable_postfix_increment_proxy const& + operator*() const + { + return *this; + } + + // Provides readability of *r++ + operator value_type&() const + { + return stored_value; + } + + // Provides writability of *r++ + template + T const& operator=(T const& x) const + { + *this->stored_iterator = x; + return x; + } + + // This overload just in case only non-const objects are writable + template + T& operator=(T& x) const + { + *this->stored_iterator = x; + return x; + } + + // Provides X(r++) + operator Iterator const&() const + { + return stored_iterator; + } + + private: + mutable value_type stored_value; + Iterator stored_iterator; + }; + +# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + + template + struct is_non_proxy_reference_impl + { + static Reference r; + + template + static typename mpl::if_< + is_convertible< + R const volatile* + , Value const volatile* + > + , char[1] + , char[2] + >::type& helper(R const&); + + BOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1); + }; + + template + struct is_non_proxy_reference + : mpl::bool_< + is_non_proxy_reference_impl::value + > + {}; +# else + template + struct is_non_proxy_reference + : is_convertible< + typename remove_reference::type + const volatile* + , Value const volatile* + > + {}; +# endif + + // A metafunction to choose the result type of postfix ++ + // + // Because the C++98 input iterator requirements say that *r++ has + // type T (value_type), implementations of some standard + // algorithms like lexicographical_compare may use constructions + // like: + // + // *r++ < *s++ + // + // If *r++ returns a proxy (as required if r is writable but not + // multipass), this sort of expression will fail unless the proxy + // supports the operator<. Since there are any number of such + // operations, we're not going to try to support them. Therefore, + // even if r++ returns a proxy, *r++ will only return a proxy if + // *r also returns a proxy. + template + struct postfix_increment_result + : mpl::eval_if< + mpl::and_< + // A proxy is only needed for readable iterators + is_convertible + + // No multipass iterator can have values that disappear + // before positions can be re-visited + , mpl::not_< + is_convertible< + typename iterator_category_to_traversal::type + , forward_traversal_tag + > + > + > + , mpl::if_< + is_non_proxy_reference + , postfix_increment_proxy + , writable_postfix_increment_proxy + > + , mpl::identity + > + {}; + + // operator->() needs special support for input iterators to strictly meet the + // standard's requirements. If *i is not a reference type, we must still + // produce a lvalue to which a pointer can be formed. We do that by + // returning an instantiation of this special proxy class template. + template + struct operator_arrow_proxy + { + operator_arrow_proxy(T const* px) : m_value(*px) {} + T* operator->() const { return &m_value; } + // This function is needed for MWCW and BCC, which won't call operator-> + // again automatically per 13.3.1.2 para 8 + operator T*() const { return &m_value; } + mutable T m_value; + }; + + // A metafunction that gets the result type for operator->. Also + // has a static function make() which builds the result from a + // Reference + template + struct operator_arrow_result + { + // CWPro8.3 won't accept "operator_arrow_result::type", and we + // need that type below, so metafunction forwarding would be a + // losing proposition here. + typedef typename mpl::if_< + is_reference + , Pointer + , operator_arrow_proxy + >::type type; + + static type make(Reference x) + { + return implicit_cast(&x); + } + }; + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + // Deal with ETI + template<> + struct operator_arrow_result + { + typedef int type; + }; +# endif + + // A proxy return type for operator[], needed to deal with + // iterators that may invalidate referents upon destruction. + // Consider the temporary iterator in *(a + n) + template + class operator_brackets_proxy + { + // Iterator is actually an iterator_facade, so we do not have to + // go through iterator_traits to access the traits. + typedef typename Iterator::reference reference; + typedef typename Iterator::value_type value_type; + + public: + operator_brackets_proxy(Iterator const& iter) + : m_iter(iter) + {} + + operator reference() const + { + return *m_iter; + } + + operator_brackets_proxy& operator=(value_type const& val) + { + *m_iter = val; + return *this; + } + + private: + Iterator m_iter; + }; + + // A metafunction that determines whether operator[] must return a + // proxy, or whether it can simply return a copy of the value_type. + template + struct use_operator_brackets_proxy + : mpl::not_< + mpl::and_< + // Really we want an is_copy_constructible trait here, + // but is_POD will have to suffice in the meantime. + boost::is_POD + , iterator_writability_disabled + > + > + {}; + + template + struct operator_brackets_result + { + typedef typename mpl::if_< + use_operator_brackets_proxy + , operator_brackets_proxy + , Value + >::type type; + }; + + template + operator_brackets_proxy make_operator_brackets_result(Iterator const& iter, mpl::true_) + { + return operator_brackets_proxy(iter); + } + + template + typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_) + { + return *iter; + } + + struct choose_difference_type + { + template + struct apply + : +# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP + iterator_difference +# elif BOOST_WORKAROUND(BOOST_MSVC, < 1300) + mpl::if_< + is_convertible + , typename I1::difference_type + , typename I2::difference_type + > +# else + mpl::eval_if< + is_convertible + , iterator_difference + , iterator_difference + > +# endif + {}; + + }; + } // namespace detail + + + // Macros which describe the declarations of binary operators +# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY +# define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type) \ + template < \ + class Derived1, class V1, class TC1, class Reference1, class Difference1 \ + , class Derived2, class V2, class TC2, class Reference2, class Difference2 \ + > \ + prefix typename mpl::apply2::type \ + operator op( \ + iterator_facade const& lhs \ + , iterator_facade const& rhs) +# else +# define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type) \ + template < \ + class Derived1, class V1, class TC1, class Reference1, class Difference1 \ + , class Derived2, class V2, class TC2, class Reference2, class Difference2 \ + > \ + prefix typename boost::detail::enable_if_interoperable< \ + Derived1, Derived2 \ + , typename mpl::apply2::type \ + >::type \ + operator op( \ + iterator_facade const& lhs \ + , iterator_facade const& rhs) +# endif + +# define BOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args) \ + template \ + prefix Derived operator+ args + + // + // Helper class for granting access to the iterator core interface. + // + // The simple core interface is used by iterator_facade. The core + // interface of a user/library defined iterator type should not be made public + // so that it does not clutter the public interface. Instead iterator_core_access + // should be made friend so that iterator_facade can access the core + // interface through iterator_core_access. + // + class iterator_core_access + { +# if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) + // Tasteless as this may seem, making all members public allows member templates + // to work in the absence of member template friends. + public: +# else + + template friend class iterator_facade; + +# define BOOST_ITERATOR_FACADE_RELATION(op) \ + BOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, boost::detail::always_bool2); + + BOOST_ITERATOR_FACADE_RELATION(==) + BOOST_ITERATOR_FACADE_RELATION(!=) + + BOOST_ITERATOR_FACADE_RELATION(<) + BOOST_ITERATOR_FACADE_RELATION(>) + BOOST_ITERATOR_FACADE_RELATION(<=) + BOOST_ITERATOR_FACADE_RELATION(>=) +# undef BOOST_ITERATOR_FACADE_RELATION + + BOOST_ITERATOR_FACADE_INTEROP_HEAD( + friend, -, boost::detail::choose_difference_type) + ; + + BOOST_ITERATOR_FACADE_PLUS_HEAD( + friend inline + , (iterator_facade const& + , typename Derived::difference_type) + ) + ; + + BOOST_ITERATOR_FACADE_PLUS_HEAD( + friend inline + , (typename Derived::difference_type + , iterator_facade const&) + ) + ; + +# endif + + template + static typename Facade::reference dereference(Facade const& f) + { + return f.dereference(); + } + + template + static void increment(Facade& f) + { + f.increment(); + } + + template + static void decrement(Facade& f) + { + f.decrement(); + } + + template + static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_) + { + return f1.equal(f2); + } + + template + static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_) + { + return f2.equal(f1); + } + + template + static void advance(Facade& f, typename Facade::difference_type n) + { + f.advance(n); + } + + template + static typename Facade1::difference_type distance_from( + Facade1 const& f1, Facade2 const& f2, mpl::true_) + { + return -f1.distance_to(f2); + } + + template + static typename Facade2::difference_type distance_from( + Facade1 const& f1, Facade2 const& f2, mpl::false_) + { + return f2.distance_to(f1); + } + + // + // Curiously Recurring Template interface. + // + template + static I& derived(iterator_facade& facade) + { + return *static_cast(&facade); + } + + template + static I const& derived(iterator_facade const& facade) + { + return *static_cast(&facade); + } + + private: + // objects of this class are useless + iterator_core_access(); //undefined + }; + + // + // iterator_facade - use as a public base class for defining new + // standard-conforming iterators. + // + template < + class Derived // The derived iterator type being constructed + , class Value + , class CategoryOrTraversal + , class Reference = Value& + , class Difference = std::ptrdiff_t + > + class iterator_facade +# ifdef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE + : public boost::detail::iterator_facade_types< + Value, CategoryOrTraversal, Reference, Difference + >::base +# undef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE +# endif + { + private: + // + // Curiously Recurring Template interface. + // + Derived& derived() + { + return *static_cast(this); + } + + Derived const& derived() const + { + return *static_cast(this); + } + + typedef boost::detail::iterator_facade_types< + Value, CategoryOrTraversal, Reference, Difference + > associated_types; + + protected: + // For use by derived classes + typedef iterator_facade iterator_facade_; + + public: + + typedef typename associated_types::value_type value_type; + typedef Reference reference; + typedef Difference difference_type; + typedef typename associated_types::pointer pointer; + typedef typename associated_types::iterator_category iterator_category; + + reference operator*() const + { + return iterator_core_access::dereference(this->derived()); + } + + typename boost::detail::operator_arrow_result< + value_type + , reference + , pointer + >::type + operator->() const + { + return boost::detail::operator_arrow_result< + value_type + , reference + , pointer + >::make(*this->derived()); + } + + typename boost::detail::operator_brackets_result::type + operator[](difference_type n) const + { + typedef boost::detail::use_operator_brackets_proxy use_proxy; + + return boost::detail::make_operator_brackets_result( + this->derived() + n + , use_proxy() + ); + } + + Derived& operator++() + { + iterator_core_access::increment(this->derived()); + return this->derived(); + } + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + typename boost::detail::postfix_increment_result::type + operator++(int) + { + typename boost::detail::postfix_increment_result::type + tmp(this->derived()); + ++*this; + return tmp; + } +# endif + + Derived& operator--() + { + iterator_core_access::decrement(this->derived()); + return this->derived(); + } + + Derived operator--(int) + { + Derived tmp(this->derived()); + --*this; + return tmp; + } + + Derived& operator+=(difference_type n) + { + iterator_core_access::advance(this->derived(), n); + return this->derived(); + } + + Derived& operator-=(difference_type n) + { + iterator_core_access::advance(this->derived(), -n); + return this->derived(); + } + + Derived operator-(difference_type x) const + { + Derived result(this->derived()); + return result -= x; + } + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + // There appears to be a bug which trashes the data of classes + // derived from iterator_facade when they are assigned unless we + // define this assignment operator. This bug is only revealed + // (so far) in STLPort debug mode, but it's clearly a codegen + // problem so we apply the workaround for all MSVC6. + iterator_facade& operator=(iterator_facade const&) + { + return *this; + } +# endif + }; + +# if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + template + inline typename boost::detail::postfix_increment_result::type + operator++( + iterator_facade& i + , int + ) + { + typename boost::detail::postfix_increment_result::type + tmp(*static_cast(&i)); + + ++i; + + return tmp; + } +# endif + + + // + // Comparison operator implementation. The library supplied operators + // enables the user to provide fully interoperable constant/mutable + // iterator types. I.e. the library provides all operators + // for all mutable/constant iterator combinations. + // + // Note though that this kind of interoperability for constant/mutable + // iterators is not required by the standard for container iterators. + // All the standard asks for is a conversion mutable -> constant. + // Most standard library implementations nowadays provide fully interoperable + // iterator implementations, but there are still heavily used implementations + // that do not provide them. (Actually it's even worse, they do not provide + // them for only a few iterators.) + // + // ?? Maybe a BOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should + // enable the user to turn off mixed type operators + // + // The library takes care to provide only the right operator overloads. + // I.e. + // + // bool operator==(Iterator, Iterator); + // bool operator==(ConstIterator, Iterator); + // bool operator==(Iterator, ConstIterator); + // bool operator==(ConstIterator, ConstIterator); + // + // ... + // + // In order to do so it uses c++ idioms that are not yet widely supported + // by current compiler releases. The library is designed to degrade gracefully + // in the face of compiler deficiencies. In general compiler + // deficiencies result in less strict error checking and more obscure + // error messages, functionality is not affected. + // + // For full operation compiler support for "Substitution Failure Is Not An Error" + // (aka. enable_if) and boost::is_convertible is required. + // + // The following problems occur if support is lacking. + // + // Pseudo code + // + // --------------- + // AdaptorA a1; + // AdaptorA a2; + // + // // This will result in a no such overload error in full operation + // // If enable_if or is_convertible is not supported + // // The instantiation will fail with an error hopefully indicating that + // // there is no operator== for Iterator1, Iterator2 + // // The same will happen if no enable_if is used to remove + // // false overloads from the templated conversion constructor + // // of AdaptorA. + // + // a1 == a2; + // ---------------- + // + // AdaptorA a; + // AdaptorB b; + // + // // This will result in a no such overload error in full operation + // // If enable_if is not supported the static assert used + // // in the operator implementation will fail. + // // This will accidently work if is_convertible is not supported. + // + // a == b; + // ---------------- + // + +# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP +# define BOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_() +# else +# define BOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible() +# endif + +# define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \ + BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type) \ + { \ + /* For those compilers that do not support enable_if */ \ + BOOST_STATIC_ASSERT(( \ + is_interoperable< Derived1, Derived2 >::value \ + )); \ + return_prefix iterator_core_access::base_op( \ + *static_cast(&lhs) \ + , *static_cast(&rhs) \ + , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \ + ); \ + } + +# define BOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \ + BOOST_ITERATOR_FACADE_INTEROP( \ + op \ + , boost::detail::always_bool2 \ + , return_prefix \ + , base_op \ + ) + + BOOST_ITERATOR_FACADE_RELATION(==, return, equal) + BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal) + + BOOST_ITERATOR_FACADE_RELATION(<, return 0 >, distance_from) + BOOST_ITERATOR_FACADE_RELATION(>, return 0 <, distance_from) + BOOST_ITERATOR_FACADE_RELATION(<=, return 0 >=, distance_from) + BOOST_ITERATOR_FACADE_RELATION(>=, return 0 <=, distance_from) +# undef BOOST_ITERATOR_FACADE_RELATION + + // operator- requires an additional part in the static assertion + BOOST_ITERATOR_FACADE_INTEROP( + - + , boost::detail::choose_difference_type + , return + , distance_from + ) +# undef BOOST_ITERATOR_FACADE_INTEROP +# undef BOOST_ITERATOR_FACADE_INTEROP_HEAD + +# define BOOST_ITERATOR_FACADE_PLUS(args) \ + BOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args) \ + { \ + Derived tmp(static_cast(i)); \ + return tmp += n; \ + } + +BOOST_ITERATOR_FACADE_PLUS(( + iterator_facade const& i + , typename Derived::difference_type n +)) + +BOOST_ITERATOR_FACADE_PLUS(( + typename Derived::difference_type n + , iterator_facade const& i +)) +# undef BOOST_ITERATOR_FACADE_PLUS +# undef BOOST_ITERATOR_FACADE_PLUS_HEAD + +} // namespace boost + +#include + +#endif // BOOST_ITERATOR_FACADE_23022003THW_HPP diff --git a/external-libs/boost/boost/iterator/iterator_traits.hpp b/external-libs/boost/boost/iterator/iterator_traits.hpp new file mode 100644 index 0000000..960970e --- /dev/null +++ b/external-libs/boost/boost/iterator/iterator_traits.hpp @@ -0,0 +1,92 @@ +// Copyright David Abrahams 2003. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef ITERATOR_TRAITS_DWA200347_HPP +# define ITERATOR_TRAITS_DWA200347_HPP + +# include +# include + +namespace boost { + +// Unfortunately, g++ 2.95.x chokes when we define a class template +// iterator_category which has the same name as its +// std::iterator_category() function, probably due in part to the +// "std:: is visible globally" hack it uses. Use +// BOOST_ITERATOR_CATEGORY to write code that's portable to older +// GCCs. + +# if BOOST_WORKAROUND(__GNUC__, <= 2) +# define BOOST_ITERATOR_CATEGORY iterator_category_ +# else +# define BOOST_ITERATOR_CATEGORY iterator_category +# endif + + +template +struct iterator_value +{ + typedef typename boost::detail::iterator_traits::value_type type; +}; + +template +struct iterator_reference +{ + typedef typename boost::detail::iterator_traits::reference type; +}; + + +template +struct iterator_pointer +{ + typedef typename boost::detail::iterator_traits::pointer type; +}; + +template +struct iterator_difference +{ + typedef typename boost::detail::iterator_traits::difference_type type; +}; + +template +struct BOOST_ITERATOR_CATEGORY +{ + typedef typename boost::detail::iterator_traits::iterator_category type; +}; + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +template <> +struct iterator_value +{ + typedef void type; +}; + +template <> +struct iterator_reference +{ + typedef void type; +}; + +template <> +struct iterator_pointer +{ + typedef void type; +}; + +template <> +struct iterator_difference +{ + typedef void type; +}; + +template <> +struct BOOST_ITERATOR_CATEGORY +{ + typedef void type; +}; +# endif + +} // namespace boost::iterator + +#endif // ITERATOR_TRAITS_DWA200347_HPP diff --git a/external-libs/boost/boost/limits.hpp b/external-libs/boost/boost/limits.hpp new file mode 100644 index 0000000..6d01daa --- /dev/null +++ b/external-libs/boost/boost/limits.hpp @@ -0,0 +1,146 @@ + +// (C) Copyright John maddock 1999. +// (C) David Abrahams 2002. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// use this header as a workaround for missing + +// See http://www.boost.org/libs/utility/limits.html for documentation. + +#ifndef BOOST_LIMITS +#define BOOST_LIMITS + +#include + +#ifdef BOOST_NO_LIMITS +# include +#else +# include +#endif + +#if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \ + || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)) +// Add missing specializations for numeric_limits: +#ifdef BOOST_HAS_MS_INT64 +# define BOOST_LLT __int64 +# define BOOST_ULLT unsigned __int64 +#else +# define BOOST_LLT ::boost::long_long_type +# define BOOST_ULLT ::boost::ulong_long_type +#endif + +#include // for CHAR_BIT + +namespace std +{ + template<> + class numeric_limits + { + public: + + BOOST_STATIC_CONSTANT(bool, is_specialized = true); +#ifdef BOOST_HAS_MS_INT64 + static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; } + static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; } +#elif defined(LLONG_MAX) + static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; } + static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; } +#elif defined(LONGLONG_MAX) + static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; } + static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; } +#else + static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); } + static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); } +#endif + BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1); + BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000); + BOOST_STATIC_CONSTANT(bool, is_signed = true); + BOOST_STATIC_CONSTANT(bool, is_integer = true); + BOOST_STATIC_CONSTANT(bool, is_exact = true); + BOOST_STATIC_CONSTANT(int, radix = 2); + static BOOST_LLT epsilon() throw() { return 0; }; + static BOOST_LLT round_error() throw() { return 0; }; + + BOOST_STATIC_CONSTANT(int, min_exponent = 0); + BOOST_STATIC_CONSTANT(int, min_exponent10 = 0); + BOOST_STATIC_CONSTANT(int, max_exponent = 0); + BOOST_STATIC_CONSTANT(int, max_exponent10 = 0); + + BOOST_STATIC_CONSTANT(bool, has_infinity = false); + BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false); + BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false); + BOOST_STATIC_CONSTANT(bool, has_denorm = false); + BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false); + static BOOST_LLT infinity() throw() { return 0; }; + static BOOST_LLT quiet_NaN() throw() { return 0; }; + static BOOST_LLT signaling_NaN() throw() { return 0; }; + static BOOST_LLT denorm_min() throw() { return 0; }; + + BOOST_STATIC_CONSTANT(bool, is_iec559 = false); + BOOST_STATIC_CONSTANT(bool, is_bounded = true); + BOOST_STATIC_CONSTANT(bool, is_modulo = true); + + BOOST_STATIC_CONSTANT(bool, traps = false); + BOOST_STATIC_CONSTANT(bool, tinyness_before = false); + BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero); + + }; + + template<> + class numeric_limits + { + public: + + BOOST_STATIC_CONSTANT(bool, is_specialized = true); +#ifdef BOOST_HAS_MS_INT64 + static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; } + static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; } +#elif defined(ULLONG_MAX) && defined(ULLONG_MIN) + static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; } + static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; } +#elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN) + static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; } + static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; } +#else + static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; } + static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; } +#endif + BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT); + BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000); + BOOST_STATIC_CONSTANT(bool, is_signed = false); + BOOST_STATIC_CONSTANT(bool, is_integer = true); + BOOST_STATIC_CONSTANT(bool, is_exact = true); + BOOST_STATIC_CONSTANT(int, radix = 2); + static BOOST_ULLT epsilon() throw() { return 0; }; + static BOOST_ULLT round_error() throw() { return 0; }; + + BOOST_STATIC_CONSTANT(int, min_exponent = 0); + BOOST_STATIC_CONSTANT(int, min_exponent10 = 0); + BOOST_STATIC_CONSTANT(int, max_exponent = 0); + BOOST_STATIC_CONSTANT(int, max_exponent10 = 0); + + BOOST_STATIC_CONSTANT(bool, has_infinity = false); + BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false); + BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false); + BOOST_STATIC_CONSTANT(bool, has_denorm = false); + BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false); + static BOOST_ULLT infinity() throw() { return 0; }; + static BOOST_ULLT quiet_NaN() throw() { return 0; }; + static BOOST_ULLT signaling_NaN() throw() { return 0; }; + static BOOST_ULLT denorm_min() throw() { return 0; }; + + BOOST_STATIC_CONSTANT(bool, is_iec559 = false); + BOOST_STATIC_CONSTANT(bool, is_bounded = true); + BOOST_STATIC_CONSTANT(bool, is_modulo = true); + + BOOST_STATIC_CONSTANT(bool, traps = false); + BOOST_STATIC_CONSTANT(bool, tinyness_before = false); + BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero); + + }; +} +#endif + +#endif + diff --git a/external-libs/boost/boost/mpl/always.hpp b/external-libs/boost/boost/mpl/always.hpp new file mode 100644 index 0000000..8a22bdf --- /dev/null +++ b/external-libs/boost/boost/mpl/always.hpp @@ -0,0 +1,39 @@ + +#ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED +#define BOOST_MPL_ALWAYS_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include +#include + +namespace boost { namespace mpl { + +template< typename Value > struct always +{ + template< + typename T + BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(1, typename T, na) + > + struct apply + { + typedef Value type; + }; +}; + +BOOST_MPL_AUX_ARITY_SPEC(1, always) + +}} + +#endif // BOOST_MPL_ALWAYS_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/and.hpp b/external-libs/boost/boost/mpl/and.hpp new file mode 100644 index 0000000..04157bc --- /dev/null +++ b/external-libs/boost/boost/mpl/and.hpp @@ -0,0 +1,60 @@ + +#ifndef BOOST_MPL_AND_HPP_INCLUDED +#define BOOST_MPL_AND_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# include +# include +# include +# include + +// agurt, 19/may/04: workaround a conflict with header's +// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)' +// has to be checked in a separate condition, otherwise GCC complains +// about 'and' being an alternative token +#if defined(_MSC_VER) +#ifndef __GCCXML__ +#if defined(and) +# pragma push_macro("and") +# undef and +# define and(x) +#endif +#endif +#endif + +# define BOOST_MPL_PREPROCESSED_HEADER and.hpp +# include + +#if defined(_MSC_VER) +#ifndef __GCCXML__ +#if defined(and) +# pragma pop_macro("and") +#endif +#endif +#endif + +#else + +# define AUX778076_OP_NAME and_ +# define AUX778076_OP_VALUE1 false +# define AUX778076_OP_VALUE2 true +# include + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AND_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/apply.hpp b/external-libs/boost/boost/mpl/apply.hpp new file mode 100644 index 0000000..c7d22d8 --- /dev/null +++ b/external-libs/boost/boost/mpl/apply.hpp @@ -0,0 +1,225 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_APPLY_HPP_INCLUDED +#define BOOST_MPL_APPLY_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +# include +# include +# include +# include +#endif + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER apply.hpp +# include + +#else + +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# include +# include +# include +# include + +namespace boost { namespace mpl { + +// local macros, #undef-ined at the end of the header +# define AUX778076_APPLY_PARAMS(param) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + ) \ + /**/ + +# define AUX778076_APPLY_DEF_PARAMS(param, value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + , value \ + ) \ + /**/ + +# define AUX778076_APPLY_N_PARAMS(n, param) \ + BOOST_MPL_PP_PARAMS(n, param) \ + /**/ + +# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_MPL_PP_PARAMS(n, param) \ + /**/ + +# define AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(n, param, def) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ + /**/ + +# define AUX778076_APPLY_N_SPEC_PARAMS(n, param) \ + BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ + /**/ + + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + +# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) +// real C++ version is already taken care of +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +namespace aux { +// apply_count_args +#define AUX778076_COUNT_ARGS_PREFIX apply +#define AUX778076_COUNT_ARGS_DEFAULT na +#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY +#include +} + + +template< + typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) + > +struct apply + : aux::apply_chooser< + aux::apply_count_args< AUX778076_APPLY_PARAMS(T) >::value + >::template result_< F, AUX778076_APPLY_PARAMS(T) >::type +{ +}; + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE + +# undef AUX778076_APPLY_N_SPEC_PARAMS +# undef AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS +# undef AUX778076_APPLY_N_COMMA_PARAMS +# undef AUX778076_APPLY_N_PARAMS +# undef AUX778076_APPLY_DEF_PARAMS +# undef AUX778076_APPLY_PARAMS + +}} + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_APPLY_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 + +# define i_ BOOST_PP_FRAME_ITERATION(1) + +template< + typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(apply,i_) +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + : BOOST_PP_CAT(apply_wrap,i_)< + typename lambda::type + AUX778076_APPLY_N_COMMA_PARAMS(i_, T) + > +{ +#else +{ + typedef typename BOOST_PP_CAT(apply_wrap,i_)< + typename lambda::type + AUX778076_APPLY_N_COMMA_PARAMS(i_, T) + >::type type; +#endif + BOOST_MPL_AUX_LAMBDA_SUPPORT( + BOOST_PP_INC(i_) + , BOOST_PP_CAT(apply,i_) + , (F AUX778076_APPLY_N_COMMA_PARAMS(i_,T)) + ) +}; + + +#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) +/// workaround for ETI bug +template<> +struct BOOST_PP_CAT(apply,i_) +{ + typedef int type; +}; +#endif + +# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY +/// primary template (not a specialization!) +template< + typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) + > +struct apply + : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) > +{ +}; +#else +template< + typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) + > +struct apply< F AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(i_, T, na) > + : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) > +{ +}; +#endif + +# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) +namespace aux { + +template<> +struct apply_chooser +{ + template< + typename F, AUX778076_APPLY_PARAMS(typename T) + > + struct result_ + { + typedef BOOST_PP_CAT(apply,i_)< + F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) + > type; + }; +}; + +} // namespace aux +#endif + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE + +# undef i_ + +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/apply_fwd.hpp b/external-libs/boost/boost/mpl/apply_fwd.hpp new file mode 100644 index 0000000..5d371d4 --- /dev/null +++ b/external-libs/boost/boost/mpl/apply_fwd.hpp @@ -0,0 +1,107 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED +#define BOOST_MPL_APPLY_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2005-08-25 12:27:28 -0400 (Thu, 25 Aug 2005) $ +// $Revision: 30670 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +#endif + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp +# include + +#else + +# include +# include +# include +# include +# include + +# include +# include +# include + +// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC +// (for known reasons) +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +# define BOOST_MPL_CFG_NO_APPLY_TEMPLATE +#endif + +namespace boost { namespace mpl { + +// local macro, #undef-ined at the end of the header +# define AUX778076_APPLY_DEF_PARAMS(param, value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + , value \ + ) \ + /**/ + +# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_MPL_PP_PARAMS(n, param) \ + /**/ + +# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// forward declaration +template< + typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) + > +struct apply; +#else +namespace aux { +template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser; +} +#endif + +# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + + +# undef AUX778076_APPLY_N_COMMA_PARAMS +# undef AUX778076_APPLY_DEF_PARAMS + +}} + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +template< + typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(apply,i_); + +#undef i_ +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/apply_wrap.hpp b/external-libs/boost/boost/mpl/apply_wrap.hpp new file mode 100644 index 0000000..4cb0fdc --- /dev/null +++ b/external-libs/boost/boost/mpl/apply_wrap.hpp @@ -0,0 +1,200 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED +#define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-03 11:56:59 -0400 (Fri, 03 Sep 2004) $ +// $Revision: 24892 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +# include +# include +#endif + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp +# include + +#else + +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# include +# include +# include +# include + + +namespace boost { namespace mpl { + +// local macros, #undef-ined at the end of the header +# define AUX778076_APPLY_WRAP_PARAMS(n, param) \ + BOOST_MPL_PP_PARAMS(n, param) \ + /**/ + +# define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \ + BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ + /**/ + + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + + +# undef AUX778076_APPLY_WRAP_SPEC_PARAMS +# undef AUX778076_APPLY_WRAP_PARAMS + +}} + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_APPLY_WRAP_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 + +# define i_ BOOST_PP_FRAME_ITERATION(1) + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +// MSVC version + +#define AUX778076_MSVC_DTW_NAME BOOST_PP_CAT(msvc_apply,i_) +#define AUX778076_MSVC_DTW_ORIGINAL_NAME apply +#define AUX778076_MSVC_DTW_ARITY i_ +#include + +template< + typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(apply_wrap,i_) +{ + // Metafunction forwarding confuses vc6 + typedef typename BOOST_PP_CAT(msvc_apply,i_)::template result_< + AUX778076_APPLY_WRAP_PARAMS(i_, T) + >::type type; +}; + +# elif defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +// MWCW/Borland version + +template< + int N, typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(apply_wrap_impl,i_); + +#define BOOST_PP_ITERATION_PARAMS_2 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, )) +#include BOOST_PP_ITERATE() + +template< + typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(apply_wrap,i_) + : BOOST_PP_CAT(apply_wrap_impl,i_)< + ::boost::mpl::aux::arity::value + , F + BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) + >::type +{ +}; + +# else +// ISO98 C++, with minor concession to vc7 + +template< + typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) +#if i_ == 0 + , typename has_apply_ = typename aux::has_apply::type +#endif + > +struct BOOST_PP_CAT(apply_wrap,i_) +// metafunction forwarding confuses MSVC 7.0 +#if !BOOST_WORKAROUND(BOOST_MSVC, == 1300) + : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) > +{ +#else +{ + typedef typename F::template apply< + AUX778076_APPLY_WRAP_PARAMS(i_, T) + >::type type; +#endif +}; + +#if i_ == 0 && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +template< typename F > +struct BOOST_PP_CAT(apply_wrap,i_) + : F::apply +{ +}; +#endif + +# endif // workarounds + +#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) +/// workaround for ETI bug +template<> +struct BOOST_PP_CAT(apply_wrap,i_) +{ + typedef int type; +}; +#endif + +# undef i_ + +///// iteration, depth == 2 + +#elif BOOST_PP_ITERATION_DEPTH() == 2 + +# define j_ BOOST_PP_FRAME_ITERATION(2) + +template< + typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(apply_wrap_impl,i_)< + BOOST_MPL_PP_ADD(i_, j_) + , F + BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) + > +{ + typedef typename F::template apply< + AUX778076_APPLY_WRAP_PARAMS(i_, T) +#if i_ == 0 && j_ == 0 +/// since the defaults are "lost", we have to pass *something* even for nullary +/// metafunction classes + na +#else + BOOST_PP_COMMA_IF(BOOST_PP_AND(i_, j_)) BOOST_MPL_PP_ENUM(j_, na) +#endif + > type; +}; + +# undef j_ + +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/arg.hpp b/external-libs/boost/boost/mpl/arg.hpp new file mode 100644 index 0000000..075cfbc --- /dev/null +++ b/external-libs/boost/boost/mpl/arg.hpp @@ -0,0 +1,131 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_ARG_HPP_INCLUDED +#define BOOST_MPL_ARG_HPP_INCLUDED + +// Copyright Peter Dimov 2001-2002 +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-21 09:48:10 -0400 (Tue, 21 Sep 2004) $ +// $Revision: 25308 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +# include +# include +# include +#endif + +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER arg.hpp +# include + +#else + +# include +# include +# include +# include +# include +# include + +# include +# include +# include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +// local macro, #undef-ined at the end of the header +#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + , value \ + ) \ + /**/ +#else +# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + ) \ + /**/ +#endif + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + + +# undef AUX778076_ARG_N_DEFAULT_PARAMS + +BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg) + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_ARG_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +#if i_ > 0 + +template<> struct arg +{ + BOOST_STATIC_CONSTANT(int, value = i_); + typedef arg next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na) + > + struct apply + { + typedef BOOST_PP_CAT(U,i_) type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +#else + +template<> struct arg<-1> +{ + BOOST_STATIC_CONSTANT(int, value = -1); + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na) + > + struct apply + { + typedef U1 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +#endif // i_ > 0 + +#undef i_ +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/arg_fwd.hpp b/external-libs/boost/boost/mpl/arg_fwd.hpp new file mode 100644 index 0000000..76853cd --- /dev/null +++ b/external-libs/boost/boost/mpl/arg_fwd.hpp @@ -0,0 +1,28 @@ + +#ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED +#define BOOST_MPL_ARG_FWD_HPP_INCLUDED + +// Copyright Peter Dimov 2001-2002 +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-28 09:56:59 -0400 (Tue, 28 Sep 2004) $ +// $Revision: 25453 $ + +#include +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(arg) + +#endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/assert.hpp b/external-libs/boost/boost/mpl/assert.hpp new file mode 100644 index 0000000..143552b --- /dev/null +++ b/external-libs/boost/boost/mpl/assert.hpp @@ -0,0 +1,370 @@ + +#ifndef BOOST_MPL_ASSERT_HPP_INCLUDED +#define BOOST_MPL_ASSERT_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2006 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include // make sure 'size_t' is placed into 'std' +#include + + +#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || (BOOST_MPL_CFG_GCC != 0) \ + || BOOST_WORKAROUND(__IBMCPP__, <= 600) +# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES +#endif + +#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \ + || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ + || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +# define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER +#endif + +// agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants) +// and GCC (which issues "unused variable" warnings when static constants are used +// at a function scope) +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || (BOOST_MPL_CFG_GCC != 0) +# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr } +#else +# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) BOOST_STATIC_CONSTANT(T, expr) +#endif + + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +struct failed {}; + +// agurt, 24/aug/04: MSVC 7.1 workaround here and below: return/accept +// 'assert' by reference; can't apply it unconditionally -- apparently it +// degrades the quality of GCC diagnostics +#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) +# define AUX778076_ASSERT_ARG(x) x& +#else +# define AUX778076_ASSERT_ARG(x) x +#endif + +template< bool C > struct assert { typedef void* type; }; +template<> struct assert { typedef AUX778076_ASSERT_ARG(assert) type; }; + +template< bool C > +int assertion_failed( typename assert::type ); + +template< bool C > +struct assertion +{ + static int failed( assert ); +}; + +template<> +struct assertion +{ + static int failed( void* ); +}; + +struct assert_ +{ +#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) + template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {}; +#endif + static assert_ const arg; + enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal }; +}; + + +#if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) + +bool operator==( failed, failed ); +bool operator!=( failed, failed ); +bool operator>( failed, failed ); +bool operator>=( failed, failed ); +bool operator<( failed, failed ); +bool operator<=( failed, failed ); + +#if defined(__EDG_VERSION__) +template< bool (*)(failed, failed), long x, long y > struct assert_relation {}; +# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation +#else +template< BOOST_MPL_AUX_NTTP_DECL(long, x), BOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) > +struct assert_relation {}; +# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation +#endif + +#else // BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES + +boost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ ); +boost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ ); +boost::mpl::aux::weighted_tag<3>::type operator>( assert_, assert_ ); +boost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ ); +boost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ ); +boost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ ); + +template< assert_::relations r, long x, long y > struct assert_relation {}; + +#endif + + +#if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) + +template< bool > struct assert_arg_pred_impl { typedef int type; }; +template<> struct assert_arg_pred_impl { typedef void* type; }; + +template< typename P > struct assert_arg_pred +{ + typedef typename P::type p_type; + typedef typename assert_arg_pred_impl< p_type::value >::type type; +}; + +template< typename P > struct assert_arg_pred_not +{ + typedef typename P::type p_type; + BOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value ); + typedef typename assert_arg_pred_impl

::type type; +}; + +template< typename Pred > +failed ************ (Pred::************ + assert_arg( void (*)(Pred), typename assert_arg_pred::type ) + ); + +template< typename Pred > +failed ************ (boost::mpl::not_::************ + assert_not_arg( void (*)(Pred), typename assert_arg_pred_not::type ) + ); + +template< typename Pred > +AUX778076_ASSERT_ARG(assert) +assert_arg( void (*)(Pred), typename assert_arg_pred_not::type ); + +template< typename Pred > +AUX778076_ASSERT_ARG(assert) +assert_not_arg( void (*)(Pred), typename assert_arg_pred::type ); + + +#else // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER + +template< bool c, typename Pred > struct assert_arg_type_impl +{ + typedef failed ************ Pred::* mwcw83_wknd; + typedef mwcw83_wknd ************* type; +}; + +template< typename Pred > struct assert_arg_type_impl +{ + typedef AUX778076_ASSERT_ARG(assert) type; +}; + +template< typename Pred > struct assert_arg_type + : assert_arg_type_impl< BOOST_MPL_AUX_VALUE_WKND(BOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred > +{ +}; + +template< typename Pred > +typename assert_arg_type::type +assert_arg(void (*)(Pred), int); + +template< typename Pred > +typename assert_arg_type< boost::mpl::not_ >::type +assert_not_arg(void (*)(Pred), int); + +# if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) +template< long x, long y, bool (*r)(failed, failed) > +typename assert_arg_type_impl< false,BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) >::type +assert_rel_arg( BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) ); +# else +template< assert_::relations r, long x, long y > +typename assert_arg_type_impl< false,assert_relation >::type +assert_rel_arg( assert_relation ); +# endif + +#endif // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER + +#undef AUX778076_ASSERT_ARG + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + + +// BOOST_MPL_ASSERT((pred)) + +#define BOOST_MPL_ASSERT(pred) \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ + boost::mpl::assertion_failed( \ + boost::mpl::assert_arg( (void (*) pred)0, 1 ) \ + ) \ + ) \ + ) \ +/**/ + +// BOOST_MPL_ASSERT_NOT((pred)) + +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) +# define BOOST_MPL_ASSERT_NOT(pred) \ +enum { \ + BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ + boost::mpl::assertion::failed( \ + boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \ + ) \ + ) \ +}\ +/**/ +#else +# define BOOST_MPL_ASSERT_NOT(pred) \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ + boost::mpl::assertion_failed( \ + boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \ + ) \ + ) \ + ) \ +/**/ +#endif + +// BOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y) + +#if defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) + +# if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) +// agurt, 9/nov/06: 'enum' below is a workaround for gcc 4.0.4/4.1.1 bugs #29522 and #29518 +# define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y) \ +enum { BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) }; \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ + boost::mpl::assertion_failed( \ + (boost::mpl::failed ************ ( boost::mpl::assert_relation< \ + boost::mpl::assert_::relations( sizeof( \ + boost::mpl::assert_::arg rel boost::mpl::assert_::arg \ + ) ) \ + , x \ + , y \ + >::************)) 0 ) \ + ) \ + ) \ +/**/ +# else +# define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y) \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assert_rel,counter) = sizeof( \ + boost::mpl::assert_::arg rel boost::mpl::assert_::arg \ + ) \ + ); \ +BOOST_MPL_AUX_ASSERT_CONSTANT( bool, BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) ); \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ + boost::mpl::assertion_failed( \ + boost::mpl::assert_rel_arg( boost::mpl::assert_relation< \ + boost::mpl::assert_::relations(BOOST_PP_CAT(mpl_assert_rel,counter)) \ + , x \ + , y \ + >() ) \ + ) \ + ) \ + ) \ +/**/ +# endif + +# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ +BOOST_MPL_ASSERT_RELATION_IMPL(BOOST_MPL_AUX_PP_COUNTER(), x, rel, y) \ +/**/ + +#else // !BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES + +# if defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) +# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ + boost::mpl::assertion_failed<(x rel y)>( boost::mpl::assert_rel_arg( \ + boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))() \ + ) ) \ + ) \ + ) \ +/**/ +# else +# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ + boost::mpl::assertion_failed<(x rel y)>( (boost::mpl::failed ************ ( \ + boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))::************))0 ) \ + ) \ + ) \ +/**/ +# endif + +#endif + + +// BOOST_MPL_ASSERT_MSG( (pred::value), USER_PROVIDED_MESSAGE, (types) ) + +#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) +# define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \ +struct msg; \ +typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \ +{ \ + using boost::mpl::assert_::types; \ + static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \ + { return 0; } \ +} BOOST_PP_CAT(mpl_assert_arg,counter); \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ + boost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \ + ) \ + ) \ +/**/ +#else +# define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \ +struct msg; \ +typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \ +{ \ + static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \ + { return 0; } \ +} BOOST_PP_CAT(mpl_assert_arg,counter); \ +BOOST_MPL_AUX_ASSERT_CONSTANT( \ + std::size_t \ + , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ + boost::mpl::assertion_failed<(c)>( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \ + ) \ + ) \ +/**/ +#endif + +#define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \ +BOOST_MPL_ASSERT_MSG_IMPL( BOOST_MPL_AUX_PP_COUNTER(), c, msg, types_ ) \ +/**/ + +#endif // BOOST_MPL_ASSERT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/adl_barrier.hpp b/external-libs/boost/boost/mpl/aux_/adl_barrier.hpp new file mode 100644 index 0000000..db033c2 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/adl_barrier.hpp @@ -0,0 +1,48 @@ + +#ifndef BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED +#define BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-28 09:56:59 -0400 (Tue, 28 Sep 2004) $ +// $Revision: 25453 $ + +#include +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) + +# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_ +# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ { +# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE } +# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) \ + namespace boost { namespace mpl { \ + using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \ + } } \ +/**/ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} } +namespace boost { namespace mpl { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE; +namespace aux { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; } +}} +#endif + +#else // BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE + +# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE boost::mpl +# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace boost { namespace mpl { +# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }} +# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/ + +#endif + +#endif // BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/arg_typedef.hpp b/external-libs/boost/boost/mpl/aux_/arg_typedef.hpp new file mode 100644 index 0000000..9502c8f --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/arg_typedef.hpp @@ -0,0 +1,31 @@ + +#ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED +#define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ + || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) + +# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name; + +#else + +# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/ + +#endif + +#endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/arity.hpp b/external-libs/boost/boost/mpl/aux_/arity.hpp new file mode 100644 index 0000000..3df45cb --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/arity.hpp @@ -0,0 +1,39 @@ + +#ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED +#define BOOST_MPL_AUX_ARITY_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) + +# include +# include + +namespace boost { namespace mpl { namespace aux { + +// agurt, 15/mar/02: it's possible to implement the template so that it will +// "just work" and do not require any specialization, but not on the compilers +// that require the arity workaround in the first place +template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) > +struct arity +{ + BOOST_STATIC_CONSTANT(int, value = N); +}; + +}}} + +#endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES + +#endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/arity_spec.hpp b/external-libs/boost/boost/mpl/aux_/arity_spec.hpp new file mode 100644 index 0000000..ec4e269 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/arity_spec.hpp @@ -0,0 +1,67 @@ + +#ifndef BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED +#define BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-11-27 21:04:02 -0500 (Sat, 27 Nov 2004) $ +// $Revision: 26326 $ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \ +namespace aux { \ +template< BOOST_MPL_AUX_NTTP_DECL(int, N), BOOST_MPL_PP_PARAMS(i,type T) > \ +struct arity< \ + name< BOOST_MPL_PP_PARAMS(i,T) > \ + , N \ + > \ +{ \ + BOOST_STATIC_CONSTANT(int \ + , value = BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + ); \ +}; \ +} \ +/**/ +#else +# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/ +#endif + +# define BOOST_MPL_AUX_ARITY_SPEC(i,name) \ + BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \ +/**/ + + +#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ + && !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) +# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \ +namespace aux { \ +template< BOOST_MPL_PP_PARAMS(i,typename T) > \ +struct template_arity< name > \ + : int_ \ +{ \ +}; \ +} \ +/**/ +#else +# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ +#endif + + +#endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/common_name_wknd.hpp b/external-libs/boost/boost/mpl/aux_/common_name_wknd.hpp new file mode 100644 index 0000000..67d47b5 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/common_name_wknd.hpp @@ -0,0 +1,34 @@ + +#ifndef BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED +#define BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#if BOOST_WORKAROUND(__BORLANDC__, < 0x561) +// agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class +// and function named 'xxx'" diagnostic +# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \ +namespace name_##wknd { \ +template< typename > void name(); \ +} \ +/**/ + +#else + +# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/ + +#endif // __BORLANDC__ + +#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/adl.hpp b/external-libs/boost/boost/mpl/aux_/config/adl.hpp new file mode 100644 index 0000000..d0f192b --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/adl.hpp @@ -0,0 +1,40 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-16 10:09:12 -0400 (Thu, 16 Sep 2004) $ +// $Revision: 25148 $ + +#include +#include +#include +#include + +// agurt, 25/apr/04: technically, the ADL workaround is only needed for GCC, +// but putting everything expect public, user-specializable metafunctions into +// a separate global namespace has a nice side effect of reducing the length +// of template instantiation symbols, so we apply the workaround on all +// platforms that can handle it + +#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \ + && ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ + || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ + || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ + || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \ + ) + +# define BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/arrays.hpp b/external-libs/boost/boost/mpl/aux_/config/arrays.hpp new file mode 100644 index 0000000..0c32b0c --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/arrays.hpp @@ -0,0 +1,30 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2003-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-03 11:56:59 -0400 (Fri, 03 Sep 2004) $ +// $Revision: 24892 $ + +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ + ) + +# define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/bind.hpp b/external-libs/boost/boost/mpl/aux_/config/bind.hpp new file mode 100644 index 0000000..d3843b1 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/bind.hpp @@ -0,0 +1,33 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED + +// Copyright David Abrahams 2002 +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ + || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + ) + +# define BOOST_MPL_CFG_NO_BIND_TEMPLATE + +#endif + +//#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT + +#endif // BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/compiler.hpp b/external-libs/boost/boost/mpl/aux_/config/compiler.hpp new file mode 100644 index 0000000..e081e17 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/compiler.hpp @@ -0,0 +1,64 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#if !defined(BOOST_MPL_CFG_COMPILER_DIR) + +# include +# include +# include +# include +# include +# include + +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +# define BOOST_MPL_CFG_COMPILER_DIR msvc60 + +# elif BOOST_WORKAROUND(BOOST_MSVC, == 1300) +# define BOOST_MPL_CFG_COMPILER_DIR msvc70 + +# elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) +# define BOOST_MPL_CFG_COMPILER_DIR gcc + +# elif BOOST_WORKAROUND(__BORLANDC__, < 0x600) +# if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +# define BOOST_MPL_CFG_COMPILER_DIR bcc551 +# else +# define BOOST_MPL_CFG_COMPILER_DIR bcc +# endif + +# elif BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +# define BOOST_MPL_CFG_COMPILER_DIR dmc + +# elif defined(__MWERKS__) +# if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +# define BOOST_MPL_CFG_COMPILER_DIR mwcw +# else +# define BOOST_MPL_CFG_COMPILER_DIR plain +# endif + +# elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +# define BOOST_MPL_CFG_COMPILER_DIR no_ctps + +# elif defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) +# define BOOST_MPL_CFG_COMPILER_DIR no_ttp + +# else +# define BOOST_MPL_CFG_COMPILER_DIR plain +# endif + +#endif // BOOST_MPL_CFG_COMPILER_DIR + +#endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/ctps.hpp b/external-libs/boost/boost/mpl/aux_/config/ctps.hpp new file mode 100644 index 0000000..2db2130 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/ctps.hpp @@ -0,0 +1,30 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(__BORLANDC__, < 0x582) + +# define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC + +#endif + +// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in + +#endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/dtp.hpp b/external-libs/boost/boost/mpl/aux_/config/dtp.hpp new file mode 100644 index 0000000..89d5e76 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/dtp.hpp @@ -0,0 +1,46 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +// MWCW 7.x-8.0 "losts" default template parameters of nested class +// templates when their owner classes are passed as arguments to other +// templates; Borland 5.5.1 "forgets" them from the very beginning (if +// the owner class is a class template), and Borland 5.6 isn't even +// able to compile a definition of nested class template with DTP + +#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \ + && BOOST_WORKAROUND(__BORLANDC__, < 0x600) + +# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES + +#endif + + +#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \ + || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ + ) + +# define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/eti.hpp b/external-libs/boost/boost/mpl/aux_/config/eti.hpp new file mode 100644 index 0000000..f624dea --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/eti.hpp @@ -0,0 +1,47 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +// flags for MSVC 6.5's so-called "early template instantiation bug" +#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(BOOST_MSVC, < 1300) + +# define BOOST_MPL_CFG_MSVC_60_ETI_BUG + +#endif + +#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(BOOST_MSVC, == 1300) + +# define BOOST_MPL_CFG_MSVC_70_ETI_BUG + +#endif + +#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ + || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ + ) + +# define BOOST_MPL_CFG_MSVC_ETI_BUG + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/gcc.hpp b/external-libs/boost/boost/mpl/aux_/config/gcc.hpp new file mode 100644 index 0000000..18bc4b8 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/gcc.hpp @@ -0,0 +1,23 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#if defined(__GNUC__) && !defined(__EDG_VERSION__) +# define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__) +#else +# define BOOST_MPL_CFG_GCC 0 +#endif + +#endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/has_apply.hpp b/external-libs/boost/boost/mpl/aux_/config/has_apply.hpp new file mode 100644 index 0000000..dc6859b --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/has_apply.hpp @@ -0,0 +1,32 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-13 02:10:10 -0400 (Mon, 13 Sep 2004) $ +// $Revision: 25029 $ + +#include +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) \ + && ( defined(BOOST_MPL_CFG_NO_HAS_XXX) \ + || BOOST_WORKAROUND(__EDG_VERSION__, < 300) \ + || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ + || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ + ) + +# define BOOST_MPL_CFG_NO_HAS_APPLY + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/has_xxx.hpp b/external-libs/boost/boost/mpl/aux_/config/has_xxx.hpp new file mode 100644 index 0000000..486d511 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/has_xxx.hpp @@ -0,0 +1,33 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// Copyright David Abrahams 2002-2003 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-03 11:56:59 -0400 (Fri, 03 Sep 2004) $ +// $Revision: 24892 $ + +#include +#include + +// agurt, 11/jan/03: signals a stub-only 'has_xxx' implementation + +#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) \ + && ( defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ + || BOOST_WORKAROUND(__GNUC__, <= 2) \ + || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ + ) + +# define BOOST_MPL_CFG_NO_HAS_XXX + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/integral.hpp b/external-libs/boost/boost/mpl/aux_/config/integral.hpp new file mode 100644 index 0000000..ce0203d --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/integral.hpp @@ -0,0 +1,38 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-07 04:53:22 -0400 (Tue, 07 Sep 2004) $ +// $Revision: 24947 $ + +#include +#include + +#if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(__BORLANDC__, < 0x600) + +# define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS + +#endif + +#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ + || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ + ) + +# define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/intel.hpp b/external-libs/boost/boost/mpl/aux_/config/intel.hpp new file mode 100644 index 0000000..2deef01 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/intel.hpp @@ -0,0 +1,21 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + + +// BOOST_INTEL_CXX_VERSION is defined here: +#include + +#endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/lambda.hpp b/external-libs/boost/boost/mpl/aux_/config/lambda.hpp new file mode 100644 index 0000000..85c7f25 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/lambda.hpp @@ -0,0 +1,32 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +// agurt, 15/jan/02: full-fledged implementation requires both +// template template parameters _and_ partial specialization + +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ + && ( defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ + || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + ) + +# define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/msvc.hpp b/external-libs/boost/boost/mpl/aux_/config/msvc.hpp new file mode 100644 index 0000000..4e742a7 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/msvc.hpp @@ -0,0 +1,21 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + + +// BOOST_MSVC is defined here: +#include + +#endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/msvc_typename.hpp b/external-libs/boost/boost/mpl/aux_/config/msvc_typename.hpp new file mode 100644 index 0000000..308ef36 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/msvc_typename.hpp @@ -0,0 +1,26 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) +# define BOOST_MSVC_TYPENAME +#else +# define BOOST_MSVC_TYPENAME typename +#endif + +#endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/nttp.hpp b/external-libs/boost/boost/mpl/aux_/config/nttp.hpp new file mode 100644 index 0000000..3c826a7 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/nttp.hpp @@ -0,0 +1,41 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +// MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp" +// for a workaround): +// +// namespace std { +// template< typename Char > struct string; +// } +// +// void foo(std::string); +// +// namespace boost { namespace mpl { +// template< int > struct arg; +// }} + +#if !defined(BOOST_MPL_CFG_NTTP_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(BOOST_MSVC, < 1300) + +# define BOOST_MPL_CFG_NTTP_BUG + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/overload_resolution.hpp b/external-libs/boost/boost/mpl/aux_/config/overload_resolution.hpp new file mode 100644 index 0000000..e8c570c --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/overload_resolution.hpp @@ -0,0 +1,29 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#include + +#if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(__BORLANDC__, < 0x590) \ + || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ + ) + +# define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/pp_counter.hpp b/external-libs/boost/boost/mpl/aux_/config/pp_counter.hpp new file mode 100644 index 0000000..b2a1644 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/pp_counter.hpp @@ -0,0 +1,26 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2006 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#if !defined(BOOST_MPL_AUX_PP_COUNTER) +# include +# if BOOST_WORKAROUND(BOOST_MSVC, >= 1300) +# define BOOST_MPL_AUX_PP_COUNTER() __COUNTER__ +# else +# define BOOST_MPL_AUX_PP_COUNTER() __LINE__ +# endif +#endif + +#endif // BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/preprocessor.hpp b/external-libs/boost/boost/mpl/aux_/config/preprocessor.hpp new file mode 100644 index 0000000..9f7ed98 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/preprocessor.hpp @@ -0,0 +1,39 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \ + && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ + || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ + ) + +# define BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION + +#endif + +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) +# define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES +#endif + +#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \ + && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +# define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING +#endif + + +#endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/static_constant.hpp b/external-libs/boost/boost/mpl/aux_/config/static_constant.hpp new file mode 100644 index 0000000..b911d26 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/static_constant.hpp @@ -0,0 +1,25 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-07 04:53:22 -0400 (Tue, 07 Sep 2004) $ +// $Revision: 24947 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +// BOOST_STATIC_CONSTANT is defined here: +# include +#else +// undef the macro for the preprocessing mode +# undef BOOST_STATIC_CONSTANT +#endif + +#endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/ttp.hpp b/external-libs/boost/boost/mpl/aux_/config/ttp.hpp new file mode 100644 index 0000000..f4c8beb --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/ttp.hpp @@ -0,0 +1,41 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#include +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ + && ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \ + || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \ + ) + +# define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS + +#endif + + +#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ + || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + ) + +# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING + +#endif + +#endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/use_preprocessed.hpp b/external-libs/boost/boost/mpl/aux_/config/use_preprocessed.hpp new file mode 100644 index 0000000..116d557 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/use_preprocessed.hpp @@ -0,0 +1,19 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/config/workaround.hpp b/external-libs/boost/boost/mpl/aux_/config/workaround.hpp new file mode 100644 index 0000000..71d5b58 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/config/workaround.hpp @@ -0,0 +1,19 @@ + +#ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/full_lambda.hpp b/external-libs/boost/boost/mpl/aux_/full_lambda.hpp new file mode 100644 index 0000000..7d31a3c --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/full_lambda.hpp @@ -0,0 +1,350 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED +#define BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-03 21:10:23 -0400 (Fri, 03 Sep 2004) $ +// $Revision: 24896 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# include +# endif +#endif + +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp +# include + +#else + +# include +# include +# include +# include +# include +# include + +# include +# include +# include +# include + +namespace boost { namespace mpl { + +// local macros, #undef-ined at the end of the header +# define AUX778076_LAMBDA_PARAMS(i_, param) \ + BOOST_MPL_PP_PARAMS(i_, param) \ + /**/ + +# define AUX778076_BIND_PARAMS(param) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + ) \ + /**/ + +# define AUX778076_BIND_N_PARAMS(i_, param) \ + BOOST_PP_COMMA_IF(i_) \ + BOOST_MPL_PP_PARAMS(i_, param) \ + /**/ + +# define AUX778076_ARITY_PARAM(param) \ + BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \ + /**/ + + +#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY +namespace aux { + +template< + BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false) + > +struct lambda_or + : true_ +{ +}; + +template<> +struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) > + : false_ +{ +}; + +} // namespace aux +#undef n_ + +template< + typename T + , typename Tag + AUX778076_ARITY_PARAM(typename Arity) + > +struct lambda +{ + typedef false_ is_le; + typedef T result_; + typedef T type; +}; + +template< + typename T + > +struct is_lambda_expression + : lambda::is_le +{ +}; + + +template< int N, typename Tag > +struct lambda< arg,Tag AUX778076_ARITY_PARAM(int_<-1>) > +{ + typedef true_ is_le; + typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 + typedef mpl::protect type; +}; + + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + +/// special case for 'protect' +template< typename T, typename Tag > +struct lambda< mpl::protect,Tag AUX778076_ARITY_PARAM(int_<1>) > +{ + typedef false_ is_le; + typedef mpl::protect result_; + typedef result_ type; +}; + +/// specializations for the main 'bind' form +template< + typename F, AUX778076_BIND_PARAMS(typename T) + , typename Tag + > +struct lambda< + bind + , Tag + AUX778076_ARITY_PARAM(int_) + > +{ + typedef false_ is_le; + typedef bind result_; + typedef result_ type; +}; + + +#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) + +template< + typename F + , typename Tag1 + , typename Tag2 + , typename Arity + > +struct lambda< + lambda + , Tag2 + , int_<3> + > +{ + typedef lambda< F,Tag2 > l1; + typedef lambda< Tag1,Tag2 > l2; + + typedef typename l1::is_le is_le; + typedef bind1< quote1, typename l1::result_ > arity_; + typedef lambda< typename if_::type,Tag2 > l3; + + typedef aux::le_result3 le_result_; + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +#elif !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) + +/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars +template< + typename F, typename Tag1, typename Tag2 + > +struct lambda< + lambda< F,Tag1 > + , Tag2 + > +{ + typedef lambda< F,Tag2 > l1; + typedef lambda< Tag1,Tag2 > l2; + + typedef typename l1::is_le is_le; + typedef aux::le_result2 le_result_; + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +#endif + +# undef AUX778076_ARITY_PARAM +# undef AUX778076_BIND_N_PARAMS +# undef AUX778076_BIND_PARAMS +# undef AUX778076_LAMBDA_PARAMS + +#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +BOOST_MPL_AUX_NA_SPEC(2, lambda) +#else +BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) +#endif + +}} + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 +#define i_ BOOST_PP_FRAME_ITERATION(1) + +#if i_ > 0 + +namespace aux { + +# define AUX778076_RESULT(unused, i_, T) \ + BOOST_PP_COMMA_IF(i_) \ + typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::result_ \ + /**/ + +# define AUX778076_TYPE(unused, i_, T) \ + BOOST_PP_COMMA_IF(i_) \ + typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::type \ + /**/ + +template< + typename IsLE, typename Tag + , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F + , AUX778076_LAMBDA_PARAMS(i_, typename L) + > +struct BOOST_PP_CAT(le_result,i_) +{ + typedef F< + BOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L) + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F + , AUX778076_LAMBDA_PARAMS(i_, typename L) + > +struct BOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, L) > +{ + typedef BOOST_PP_CAT(bind,i_)< + BOOST_PP_CAT(quote,i_) + , BOOST_MPL_PP_REPEAT(i_, AUX778076_RESULT, L) + > result_; + + typedef mpl::protect type; +}; + +# undef AUX778076_TYPE +# undef AUX778076_RESULT + +} // namespace aux + + +# define AUX778076_LAMBDA_TYPEDEF(unused, i_, T) \ + typedef lambda< BOOST_PP_CAT(T, BOOST_PP_INC(i_)), Tag > \ + BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \ +/**/ + +# define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \ + typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \ + BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \ +/**/ + +# define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \ + BOOST_PP_COMMA_IF(i_) \ + BOOST_PP_CAT(is_le,BOOST_PP_INC(i_))::value \ +/**/ + +template< + template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F + , AUX778076_LAMBDA_PARAMS(i_, typename T) + , typename Tag + > +struct lambda< + F + , Tag + AUX778076_ARITY_PARAM(int_) + > +{ + BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T) + BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused) + + typedef typename aux::lambda_or< + BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused) + >::type is_le; + + typedef aux::BOOST_PP_CAT(le_result,i_)< + is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l) + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + + +# undef AUX778076_IS_LAMBDA_EXPR +# undef AUX778076_IS_LE_TYPEDEF +# undef AUX778076_LAMBDA_TYPEDEF + +#endif // i_ > 0 + +template< + typename F AUX778076_BIND_N_PARAMS(i_, typename T) + , typename Tag + > +struct lambda< + BOOST_PP_CAT(bind,i_) + , Tag + AUX778076_ARITY_PARAM(int_) + > +{ + typedef false_ is_le; + typedef BOOST_PP_CAT(bind,i_)< + F + AUX778076_BIND_N_PARAMS(i_, T) + > result_; + + typedef result_ type; +}; + +#undef i_ +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/aux_/has_apply.hpp b/external-libs/boost/boost/mpl/aux_/has_apply.hpp new file mode 100644 index 0000000..a23f0e9 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/has_apply.hpp @@ -0,0 +1,32 @@ + +#ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED +#define BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-03 11:56:59 -0400 (Fri, 03 Sep 2004) $ +// $Revision: 24892 $ + +#include +#include + +namespace boost { namespace mpl { namespace aux { +#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false) +#else +template< typename T, typename fallback_ = false_ > +struct has_apply + : fallback_ +{ +}; +#endif +}}} + +#endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/has_type.hpp b/external-libs/boost/boost/mpl/aux_/has_type.hpp new file mode 100644 index 0000000..207d86c --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/has_type.hpp @@ -0,0 +1,23 @@ + +#ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED +#define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +namespace boost { namespace mpl { namespace aux { +BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true) +}}} + +#endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/include_preprocessed.hpp b/external-libs/boost/boost/mpl/aux_/include_preprocessed.hpp new file mode 100644 index 0000000..63abae6 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/include_preprocessed.hpp @@ -0,0 +1,42 @@ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2000-2006 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2006-11-08 19:46:57 -0500 (Wed, 08 Nov 2006) $ +// $Revision: 35931 $ + +#include +#include +#include +#include +#include + +#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) +# define AUX778076_PREPROCESSED_HEADER \ + BOOST_MPL_CFG_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \ +/**/ +#else +# define AUX778076_PREPROCESSED_HEADER \ + BOOST_PP_CAT(BOOST_MPL_CFG_COMPILER_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \ +/**/ +#endif + +#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700)) +# define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER) +# include AUX778076_INCLUDE_STRING +# undef AUX778076_INCLUDE_STRING +#else +# include BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER) +#endif + +# undef AUX778076_PREPROCESSED_HEADER + +#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/external-libs/boost/boost/mpl/aux_/integral_wrapper.hpp b/external-libs/boost/boost/mpl/aux_/integral_wrapper.hpp new file mode 100644 index 0000000..f32f70f --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/integral_wrapper.hpp @@ -0,0 +1,93 @@ + +// Copyright Aleksey Gurtovoy 2000-2006 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! + +#include +#include +#include +#include +#include + +#include + +#if !defined(AUX_WRAPPER_NAME) +# define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_) +#endif + +#if !defined(AUX_WRAPPER_PARAMS) +# define AUX_WRAPPER_PARAMS(N) BOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N) +#endif + +#if !defined(AUX_WRAPPER_INST) +# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) +# define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value > +# else +# define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value > +# endif +#endif + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +template< AUX_WRAPPER_PARAMS(N) > +struct AUX_WRAPPER_NAME +{ + BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N); +// agurt, 08/mar/03: SGI MIPSpro C++ workaround, have to #ifdef because some +// other compilers (e.g. MSVC) are not particulary happy about it +#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + typedef struct AUX_WRAPPER_NAME type; +#else + typedef AUX_WRAPPER_NAME type; +#endif + typedef AUX_WRAPPER_VALUE_TYPE value_type; + typedef integral_c_tag tag; + +// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), +// while some other don't like 'value + 1' (Borland), and some don't like +// either +#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) + private: + BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); + BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1))); + public: + typedef AUX_WRAPPER_INST(next_value) next; + typedef AUX_WRAPPER_INST(prior_value) prior; +#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ + || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ + || (BOOST_WORKAROUND(__HP_aCC, <= 53800) && (BOOST_WORKAROUND(__hpxstd98, != 1))) + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next; + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior; +#else + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next; + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; +#endif + + // enables uniform function call syntax for families of overloaded + // functions that return objects of both arithmetic ('int', 'long', + // 'double', etc.) and wrapped integral types (for an example, see + // "mpl/example/power.cpp") + operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast(this->value); } +}; + +#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) +template< AUX_WRAPPER_PARAMS(N) > +AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value; +#endif + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +#undef AUX_WRAPPER_NAME +#undef AUX_WRAPPER_PARAMS +#undef AUX_WRAPPER_INST +#undef AUX_WRAPPER_VALUE_TYPE diff --git a/external-libs/boost/boost/mpl/aux_/lambda_arity_param.hpp b/external-libs/boost/boost/mpl/aux_/lambda_arity_param.hpp new file mode 100644 index 0000000..15b2350 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/lambda_arity_param.hpp @@ -0,0 +1,25 @@ + +#ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED +#define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) +#else +# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param +#endif + +#endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/lambda_support.hpp b/external-libs/boost/boost/mpl/aux_/lambda_support.hpp new file mode 100644 index 0000000..9409d80 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/lambda_support.hpp @@ -0,0 +1,169 @@ + +#ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED +#define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2005-08-25 12:27:28 -0400 (Thu, 25 Aug 2005) $ +// $Revision: 30670 $ + +#include + +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/ +# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/ + +#else + +# include +# include +# include +# include +# include +# include +# include + +# include +# include +# include +# include + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \ + typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \ + /**/ + +// agurt, 07/mar/03: restore an old revision for the sake of SGI MIPSpro C++ +#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ + typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ + BOOST_PP_LIST_FOR_EACH_I_R( \ + 1 \ + , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ + , typedef \ + , BOOST_PP_TUPLE_TO_LIST(i,params) \ + ) \ + struct rebind \ + { \ + template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ + : name< BOOST_MPL_PP_PARAMS(i,U) > \ + { \ + }; \ + }; \ + /**/ + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ + /**/ + +#elif BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION) +// agurt, 18/jan/03: old EDG-based compilers actually enforce 11.4 para 9 +// (in strict mode), so we have to provide an alternative to the +// MSVC-optimized implementation + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ + typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ + BOOST_PP_LIST_FOR_EACH_I_R( \ + 1 \ + , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ + , typedef \ + , BOOST_PP_TUPLE_TO_LIST(i,params) \ + ) \ + struct rebind; \ +/**/ + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ +}; \ +template< BOOST_MPL_PP_PARAMS(i,typename T) > \ +struct name::rebind \ +{ \ + template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ + : name< BOOST_MPL_PP_PARAMS(i,U) > \ + { \ + }; \ +/**/ + +#else // __EDG_VERSION__ + +namespace boost { namespace mpl { namespace aux { +template< typename T > struct has_rebind_tag; +}}} + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ + typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ + BOOST_PP_LIST_FOR_EACH_I_R( \ + 1 \ + , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ + , typedef \ + , BOOST_PP_TUPLE_TO_LIST(i,params) \ + ) \ + friend class BOOST_PP_CAT(name,_rebind); \ + typedef BOOST_PP_CAT(name,_rebind) rebind; \ +/**/ + +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ +template< BOOST_MPL_PP_PARAMS(i,typename T) > \ +::boost::mpl::aux::yes_tag operator|( \ + ::boost::mpl::aux::has_rebind_tag \ + , name* \ + ); \ +::boost::mpl::aux::no_tag operator|( \ + ::boost::mpl::aux::has_rebind_tag \ + , name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \ + ); \ +/**/ +#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300) +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ +template< BOOST_MPL_PP_PARAMS(i,typename T) > \ +::boost::mpl::aux::yes_tag operator|( \ + ::boost::mpl::aux::has_rebind_tag \ + , ::boost::mpl::aux::has_rebind_tag< name >* \ + ); \ +/**/ +#else +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/ +#endif + +# if !defined(__BORLANDC__) +# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ +}; \ +BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ +class BOOST_PP_CAT(name,_rebind) \ +{ \ + public: \ + template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ + : name< BOOST_MPL_PP_PARAMS(i,U) > \ + { \ + }; \ +/**/ +# else +# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ +}; \ +BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ +class BOOST_PP_CAT(name,_rebind) \ +{ \ + public: \ + template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ + { \ + typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \ + }; \ +/**/ +# endif // __BORLANDC__ + +#endif // __EDG_VERSION__ + +#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT + +#endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/msvc_never_true.hpp b/external-libs/boost/boost/mpl/aux_/msvc_never_true.hpp new file mode 100644 index 0000000..43a7953 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/msvc_never_true.hpp @@ -0,0 +1,34 @@ + +#ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED +#define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + +namespace boost { namespace mpl { namespace aux { + +template< typename T > +struct msvc_never_true +{ + enum { value = false }; +}; + +}}} + +#endif // BOOST_MSVC + +#endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/na.hpp b/external-libs/boost/boost/mpl/aux_/na.hpp new file mode 100644 index 0000000..9cc7e9f --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/na.hpp @@ -0,0 +1,95 @@ + +#ifndef BOOST_MPL_AUX_NA_HPP_INCLUDED +#define BOOST_MPL_AUX_NA_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-11-27 20:39:23 -0500 (Sat, 27 Nov 2004) $ +// $Revision: 26324 $ + +#include +#include +#include +#include + +namespace boost { namespace mpl { + +template< typename T > +struct is_na + : false_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using false_::value; +#endif +}; + +template<> +struct is_na + : true_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using true_::value; +#endif +}; + +template< typename T > +struct is_not_na + : true_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using true_::value; +#endif +}; + +template<> +struct is_not_na + : false_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using false_::value; +#endif +}; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +template< typename T, typename U > struct if_na +{ + typedef T type; +}; + +template< typename U > struct if_na +{ + typedef U type; +}; +#else +template< typename T > struct if_na_impl +{ + template< typename U > struct apply + { + typedef T type; + }; +}; + +template<> struct if_na_impl +{ + template< typename U > struct apply + { + typedef U type; + }; +}; + +template< typename T, typename U > struct if_na + : if_na_impl::template apply +{ +}; +#endif + +}} + +#endif // BOOST_MPL_AUX_NA_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/na_assert.hpp b/external-libs/boost/boost/mpl/aux_/na_assert.hpp new file mode 100644 index 0000000..417ac96 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/na_assert.hpp @@ -0,0 +1,34 @@ + +#ifndef BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED +#define BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2005-07-13 09:13:38 -0400 (Wed, 13 Jul 2005) $ +// $Revision: 30043 $ + +#include +#include +#include + +#if !BOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) +# include +# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \ + BOOST_MPL_ASSERT_NOT((boost::mpl::is_na)) \ +/**/ +#else +# include +# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \ + BOOST_STATIC_ASSERT(!boost::mpl::is_na::value) \ +/**/ +#endif + +#endif // BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/na_fwd.hpp b/external-libs/boost/boost/mpl/aux_/na_fwd.hpp new file mode 100644 index 0000000..7eb8cba --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/na_fwd.hpp @@ -0,0 +1,31 @@ + +#ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED +#define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-11-27 20:39:23 -0500 (Sat, 27 Nov 2004) $ +// $Revision: 26324 $ + +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +// n.a. == not available +struct na +{ + typedef na type; + enum { value = 0 }; +}; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(na) + +#endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/na_spec.hpp b/external-libs/boost/boost/mpl/aux_/na_spec.hpp new file mode 100644 index 0000000..152e770 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/na_spec.hpp @@ -0,0 +1,175 @@ + +#ifndef BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED +#define BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-11-27 20:39:23 -0500 (Sat, 27 Nov 2004) $ +// $Revision: 26324 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +# include +# include +# include +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define BOOST_MPL_AUX_NA_PARAMS(i) \ + BOOST_MPL_PP_ENUM(i, na) \ +/**/ + +#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ +namespace aux { \ +template< BOOST_MPL_AUX_NTTP_DECL(int, N) > \ +struct arity< \ + name< BOOST_MPL_AUX_NA_PARAMS(i) > \ + , N \ + > \ + : int_< BOOST_MPL_LIMIT_METAFUNCTION_ARITY > \ +{ \ +}; \ +} \ +/**/ +#else +# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/ +#endif + +#define BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ +template<> \ +struct name< BOOST_MPL_AUX_NA_PARAMS(i) > \ +{ \ + template< \ + BOOST_MPL_PP_PARAMS(i, typename T) \ + BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \ + > \ + struct apply \ + : name< BOOST_MPL_PP_PARAMS(i, T) > \ + { \ + }; \ +}; \ +/**/ + +#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) +# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ +template<> \ +struct lambda< \ + name< BOOST_MPL_AUX_NA_PARAMS(i) > \ + , void_ \ + , true_ \ + > \ +{ \ + typedef false_ is_le; \ + typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ +}; \ +template<> \ +struct lambda< \ + name< BOOST_MPL_AUX_NA_PARAMS(i) > \ + , void_ \ + , false_ \ + > \ +{ \ + typedef false_ is_le; \ + typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ +}; \ +/**/ +#else +# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ +template< typename Tag > \ +struct lambda< \ + name< BOOST_MPL_AUX_NA_PARAMS(i) > \ + , Tag \ + BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \ + > \ +{ \ + typedef false_ is_le; \ + typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > result_; \ + typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ +}; \ +/**/ +#endif + +#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ + || defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ + && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) +# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \ +namespace aux { \ +template< BOOST_MPL_PP_PARAMS(j, typename T) > \ +struct template_arity< \ + name< BOOST_MPL_PP_PARAMS(j, T) > \ + > \ + : int_ \ +{ \ +}; \ +\ +template<> \ +struct template_arity< \ + name< BOOST_MPL_PP_ENUM(i, na) > \ + > \ + : int_<-1> \ +{ \ +}; \ +} \ +/**/ +#else +# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/ +#endif + +#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) +# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ +template<> \ +struct name< BOOST_MPL_PP_ENUM(i, int) > \ +{ \ + typedef int type; \ + enum { value = 0 }; \ +}; \ +/**/ +#else +# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/ +#endif + +#define BOOST_MPL_AUX_NA_PARAM(param) param = na + +#define BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \ +BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ +BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ +BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ +BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, i, name) \ +/**/ + +#define BOOST_MPL_AUX_NA_SPEC(i, name) \ +BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \ +BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ +/**/ + +#define BOOST_MPL_AUX_NA_SPEC2(i, j, name) \ +BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ +BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ +BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ +BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ +BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \ +/**/ + + +#endif // BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/nested_type_wknd.hpp b/external-libs/boost/boost/mpl/aux_/nested_type_wknd.hpp new file mode 100644 index 0000000..a6ce884 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/nested_type_wknd.hpp @@ -0,0 +1,48 @@ + +#ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED +#define BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-28 09:56:59 -0400 (Tue, 28 Sep 2004) $ +// $Revision: 25453 $ + +#include +#include + +#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ + || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \ + || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) + +namespace boost { namespace mpl { namespace aux { +template< typename T > struct nested_type_wknd + : T::type +{ +}; +}}} + +#if BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \ + aux::nested_type_wknd \ +/**/ +#else +# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \ + ::boost::mpl::aux::nested_type_wknd \ +/**/ +#endif + +#else // !BOOST_MPL_CFG_GCC et al. + +# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type + +#endif + +#endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/nttp_decl.hpp b/external-libs/boost/boost/mpl/aux_/nttp_decl.hpp new file mode 100644 index 0000000..2d181c8 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/nttp_decl.hpp @@ -0,0 +1,35 @@ + +#ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED +#define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-12-16 17:43:05 -0500 (Thu, 16 Dec 2004) $ +// $Revision: 26536 $ + +#include + +#if defined(BOOST_MPL_CFG_NTTP_BUG) + +typedef bool _mpl_nttp_bool; +typedef int _mpl_nttp_int; +typedef unsigned _mpl_nttp_unsigned; +typedef long _mpl_nttp_long; + +# include +# define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/ + +#else + +# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ + +#endif + +#endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/and.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/and.hpp new file mode 100644 index 0000000..010ad1f --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/and.hpp @@ -0,0 +1,69 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/and.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< bool C_, typename T1, typename T2, typename T3, typename T4 > +struct and_impl + : false_ +{ +}; + +template< typename T1, typename T2, typename T3, typename T4 > +struct and_impl< true,T1,T2,T3,T4 > + : and_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4 + , true_ + > +{ +}; + +template<> +struct and_impl< + true + , true_, true_, true_, true_ + > + : true_ +{ +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) + , typename T3 = true_, typename T4 = true_, typename T5 = true_ + > +struct and_ + + : aux::and_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4, T5 + > + +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 5 + , and_ + , ( T1, T2, T3, T4, T5) + ) +}; + +BOOST_MPL_AUX_NA_SPEC2( + 2 + , 5 + , and_ + ) + +}} diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp new file mode 100644 index 0000000..e08eacc --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp @@ -0,0 +1,169 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/apply.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F + > +struct apply0 + + : apply_wrap0< + typename lambda::type + + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 1 + , apply0 + , (F ) + ) +}; + +template< + typename F + > +struct apply< F,na,na,na,na,na > + : apply0 +{ +}; + +template< + typename F, typename T1 + > +struct apply1 + + : apply_wrap1< + typename lambda::type + , T1 + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 2 + , apply1 + , (F, T1) + ) +}; + +template< + typename F, typename T1 + > +struct apply< F,T1,na,na,na,na > + : apply1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply2 + + : apply_wrap2< + typename lambda::type + , T1, T2 + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 3 + , apply2 + , (F, T1, T2) + ) +}; + +template< + typename F, typename T1, typename T2 + > +struct apply< F,T1,T2,na,na,na > + : apply2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + + : apply_wrap3< + typename lambda::type + , T1, T2, T3 + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 4 + , apply3 + , (F, T1, T2, T3) + ) +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply< F,T1,T2,T3,na,na > + : apply3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + + : apply_wrap4< + typename lambda::type + , T1, T2, T3, T4 + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 5 + , apply4 + , (F, T1, T2, T3, T4) + ) +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply< F,T1,T2,T3,T4,na > + : apply4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + + : apply_wrap5< + typename lambda::type + , T1, T2, T3, T4, T5 + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 6 + , apply5 + , (F, T1, T2, T3, T4, T5) + ) +}; + +/// primary template (not a specialization!) + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply + : apply5< F,T1,T2,T3,T4,T5 > +{ +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp new file mode 100644 index 0000000..b2ed5d5 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp @@ -0,0 +1,52 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/apply_fwd.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F, typename T1 = na, typename T2 = na, typename T3 = na + , typename T4 = na, typename T5 = na + > +struct apply; + +template< + typename F + > +struct apply0; + +template< + typename F, typename T1 + > +struct apply1; + +template< + typename F, typename T1, typename T2 + > +struct apply2; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp new file mode 100644 index 0000000..34d51a1 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp @@ -0,0 +1,84 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/apply_wrap.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F + + , typename has_apply_ = typename aux::has_apply::type + + > +struct apply_wrap0 + + : F::template apply< > +{ +}; + +template< typename F > +struct apply_wrap0< F,true_ > + : F::apply +{ +}; + +template< + typename F, typename T1 + + > +struct apply_wrap1 + + : F::template apply +{ +}; + +template< + typename F, typename T1, typename T2 + + > +struct apply_wrap2 + + : F::template apply< T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + + > +struct apply_wrap3 + + : F::template apply< T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + + > +struct apply_wrap4 + + : F::template apply< T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + + > +struct apply_wrap5 + + : F::template apply< T1,T2,T3,T4,T5 > +{ +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp new file mode 100644 index 0000000..6f2f8a8 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp @@ -0,0 +1,123 @@ + +// Copyright Peter Dimov 2001-2002 +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/arg.hpp" header +// -- DO NOT modify by hand! + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +template<> struct arg< -1 > +{ + BOOST_STATIC_CONSTANT(int, value = -1); + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U1 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<1> +{ + BOOST_STATIC_CONSTANT(int, value = 1); + typedef arg<2> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U1 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<2> +{ + BOOST_STATIC_CONSTANT(int, value = 2); + typedef arg<3> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U2 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<3> +{ + BOOST_STATIC_CONSTANT(int, value = 3); + typedef arg<4> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U3 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<4> +{ + BOOST_STATIC_CONSTANT(int, value = 4); + typedef arg<5> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U4 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<5> +{ + BOOST_STATIC_CONSTANT(int, value = 5); + typedef arg<6> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U5 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp new file mode 100644 index 0000000..0e9513a --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp @@ -0,0 +1,561 @@ + +// Copyright Peter Dimov 2001 +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/bind.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg< -1 >, Arg > +{ + typedef typename Arg::next next; + typedef Arg type; +}; + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > +{ + typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + public: + typedef typename apply_wrap0< + f_ + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0, U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) + +template< + typename F + > +struct bind< F,na,na,na,na,na > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + public: + typedef typename apply_wrap1< + f_ + , typename t1::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >, U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) + +template< + typename F, typename T1 + > +struct bind< F,T1,na,na,na,na > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + public: + typedef typename apply_wrap2< + f_ + , typename t1::type, typename t2::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >, U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,na,na,na > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + public: + typedef typename apply_wrap3< + f_ + , typename t1::type, typename t2::type, typename t3::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,na,na > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next n5; + typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; + /// + public: + typedef typename apply_wrap4< + f_ + , typename t1::type, typename t2::type, typename t3::type + , typename t4::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,na > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next n5; + typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; + /// + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next n6; + typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; + /// + public: + typedef typename apply_wrap5< + f_ + , typename t1::type, typename t2::type, typename t3::type + , typename t4::type, typename t5::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) + +/// primary template (not a specialization!) + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +/// if_/eval_if specializations +template< template< typename T1, typename T2, typename T3 > class F, typename Tag > +struct quote3; + +template< typename T1, typename T2, typename T3 > struct if_; + +template< + typename Tag, typename T1, typename T2, typename T3 + > +struct bind3< + quote3< if_,Tag > + , T1, T2, T3 + > +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef mpl::arg<1> n1; + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef typename if_< + typename t1::type + , t2, t3 + >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +template< + template< typename T1, typename T2, typename T3 > class F, typename Tag + > +struct quote3; + +template< typename T1, typename T2, typename T3 > struct eval_if; + +template< + typename Tag, typename T1, typename T2, typename T3 + > +struct bind3< + quote3< eval_if,Tag > + , T1, T2, T3 + > +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef mpl::arg<1> n1; + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef typename eval_if< + typename t1::type + , t2, t3 + >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp new file mode 100644 index 0000000..c4a5060 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp @@ -0,0 +1,52 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/bind_fwd.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F, typename T1 = na, typename T2 = na, typename T3 = na + , typename T4 = na, typename T5 = na + > +struct bind; + +template< + typename F + > +struct bind0; + +template< + typename F, typename T1 + > +struct bind1; + +template< + typename F, typename T1, typename T2 + > +struct bind2; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp new file mode 100644 index 0000000..e3eef71 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp @@ -0,0 +1,558 @@ + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_ +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_ +{ +}; + +} // namespace aux + +template< + typename T + , typename Tag + , typename Arity + > +struct lambda +{ + typedef false_ is_le; + typedef T result_; + typedef T type; +}; + +template< + typename T + > +struct is_lambda_expression + : lambda::is_le +{ +}; + +template< int N, typename Tag > +struct lambda< arg,Tag, int_< -1 > > +{ + typedef true_ is_le; + typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 + typedef mpl::protect type; +}; + +template< + typename F + , typename Tag + > +struct lambda< + bind0 + , Tag + , int_<1> + > +{ + typedef false_ is_le; + typedef bind0< + F + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1 > class F + , typename L1 + > +struct le_result1< true_,Tag,F,L1 > +{ + typedef bind1< + quote1< F,Tag > + , typename L1::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + , typename Tag + > +struct lambda< + F + , Tag + , int_<1> + > +{ + typedef lambda< T1,Tag > l1; + typedef typename l1::is_le is_le1; + typedef typename aux::lambda_or< + is_le1::value + >::type is_le; + + typedef aux::le_result1< + is_le, Tag, F, l1 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1 + , typename Tag + > +struct lambda< + bind1< F,T1 > + , Tag + , int_<2> + > +{ + typedef false_ is_le; + typedef bind1< + F + , T1 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true_,Tag,F,L1,L2 > +{ + typedef bind2< + quote2< F,Tag > + , typename L1::result_, typename L2::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , typename Tag + > +struct lambda< + F< T1,T2 > + , Tag + , int_<2> + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value + >::type is_le; + + typedef aux::le_result2< + is_le, Tag, F, l1, l2 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2 + , typename Tag + > +struct lambda< + bind2< F,T1,T2 > + , Tag + , int_<3> + > +{ + typedef false_ is_le; + typedef bind2< + F + , T1, T2 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true_,Tag,F,L1,L2,L3 > +{ + typedef bind3< + quote3< F,Tag > + , typename L1::result_, typename L2::result_, typename L3::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , typename Tag + > +struct lambda< + F< T1,T2,T3 > + , Tag + , int_<3> + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + typedef lambda< T3,Tag > l3; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + typedef typename l3::is_le is_le3; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value, is_le3::value + >::type is_le; + + typedef aux::le_result3< + is_le, Tag, F, l1, l2, l3 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , typename Tag + > +struct lambda< + bind3< F,T1,T2,T3 > + , Tag + , int_<4> + > +{ + typedef false_ is_le; + typedef bind3< + F + , T1, T2, T3 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true_,Tag,F,L1,L2,L3,L4 > +{ + typedef bind4< + quote4< F,Tag > + , typename L1::result_, typename L2::result_, typename L3::result_ + , typename L4::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , typename Tag + > +struct lambda< + F< T1,T2,T3,T4 > + , Tag + , int_<4> + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + typedef lambda< T3,Tag > l3; + typedef lambda< T4,Tag > l4; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + typedef typename l3::is_le is_le3; + typedef typename l4::is_le is_le4; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value, is_le3::value, is_le4::value + >::type is_le; + + typedef aux::le_result4< + is_le, Tag, F, l1, l2, l3, l4 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename Tag + > +struct lambda< + bind4< F,T1,T2,T3,T4 > + , Tag + , int_<5> + > +{ + typedef false_ is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + quote5< F,Tag > + , typename L1::result_, typename L2::result_, typename L3::result_ + , typename L4::result_, typename L5::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , typename Tag + > +struct lambda< + F< T1,T2,T3,T4,T5 > + , Tag + , int_<5> + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + typedef lambda< T3,Tag > l3; + typedef lambda< T4,Tag > l4; + typedef lambda< T5,Tag > l5; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + typedef typename l3::is_le is_le3; + typedef typename l4::is_le is_le4; + typedef typename l5::is_le is_le5; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value, is_le3::value, is_le4::value + , is_le5::value + >::type is_le; + + typedef aux::le_result5< + is_le, Tag, F, l1, l2, l3, l4, l5 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , typename Tag + > +struct lambda< + bind5< F,T1,T2,T3,T4,T5 > + , Tag + , int_<6> + > +{ + typedef false_ is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > result_; + + typedef result_ type; +}; + +/// special case for 'protect' +template< typename T, typename Tag > +struct lambda< mpl::protect,Tag, int_<1> > +{ + typedef false_ is_le; + typedef mpl::protect result_; + typedef result_ type; +}; + +/// specializations for the main 'bind' form + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , typename Tag + > +struct lambda< + bind< F,T1,T2,T3,T4,T5 > + , Tag + , int_<6> + > +{ + typedef false_ is_le; + typedef bind< F,T1,T2,T3,T4,T5 > result_; + typedef result_ type; +}; + +template< + typename F + , typename Tag1 + , typename Tag2 + , typename Arity + > +struct lambda< + lambda< F,Tag1,Arity > + , Tag2 + , int_<3> + > +{ + typedef lambda< F,Tag2 > l1; + typedef lambda< Tag1,Tag2 > l2; + typedef typename l1::is_le is_le; + typedef bind1< quote1, typename l1::result_ > arity_; + typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; + typedef aux::le_result3 le_result_; + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/or.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/or.hpp new file mode 100644 index 0000000..31e1aaa --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/or.hpp @@ -0,0 +1,69 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/or.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< bool C_, typename T1, typename T2, typename T3, typename T4 > +struct or_impl + : true_ +{ +}; + +template< typename T1, typename T2, typename T3, typename T4 > +struct or_impl< false,T1,T2,T3,T4 > + : or_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4 + , false_ + > +{ +}; + +template<> +struct or_impl< + false + , false_, false_, false_, false_ + > + : false_ +{ +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) + , typename T3 = false_, typename T4 = false_, typename T5 = false_ + > +struct or_ + + : aux::or_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4, T5 + > + +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 5 + , or_ + , ( T1, T2, T3, T4, T5) + ) +}; + +BOOST_MPL_AUX_NA_SPEC2( + 2 + , 5 + , or_ + ) + +}} diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp new file mode 100644 index 0000000..ff97364 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp @@ -0,0 +1,105 @@ + +// Copyright Aleksey Gurtovoy 2001-2004 +// Copyright Peter Dimov 2001-2003 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/placeholders.hpp" header +// -- DO NOT modify by hand! + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg< -1 > _; +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; +} + +}} + +/// agurt, 17/mar/02: one more placeholder for the last 'apply#' +/// specialization +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<1> _1; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<2> _2; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<3> _3; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<4> _4; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<5> _5; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<6> _6; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; +} + +}} diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp new file mode 100644 index 0000000..020f093 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp @@ -0,0 +1,123 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/quote.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< typename T, bool has_type_ > +struct quote_impl +{ + typedef typename T::type type; +}; + +template< typename T > +struct quote_impl< T,false > +{ + typedef T type; +}; + +template< + template< typename P1 > class F + , typename Tag = void_ + > +struct quote1 +{ + template< typename U1 > struct apply + + : quote_impl< + F + , aux::has_type< F >::value + > + + { + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename Tag = void_ + > +struct quote2 +{ + template< typename U1, typename U2 > struct apply + + : quote_impl< + F< U1,U2 > + , aux::has_type< F< U1,U2 > >::value + > + + { + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename Tag = void_ + > +struct quote3 +{ + template< typename U1, typename U2, typename U3 > struct apply + + : quote_impl< + F< U1,U2,U3 > + , aux::has_type< F< U1,U2,U3 > >::value + > + + { + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename Tag = void_ + > +struct quote4 +{ + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + + : quote_impl< + F< U1,U2,U3,U4 > + , aux::has_type< F< U1,U2,U3,U4 > >::value + > + + { + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename Tag = void_ + > +struct quote5 +{ + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + + : quote_impl< + F< U1,U2,U3,U4,U5 > + , aux::has_type< F< U1,U2,U3,U4,U5 > >::value + > + + { + }; +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp new file mode 100644 index 0000000..3e7bfba --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp @@ -0,0 +1,101 @@ + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { namespace aux { + +template< int N > struct arity_tag +{ + typedef char (&type)[N + 1]; +}; + +template< + int C1, int C2, int C3, int C4, int C5, int C6 + > +struct max_arity +{ + BOOST_STATIC_CONSTANT(int, value = + ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) ) + + ); +}; + +arity_tag<0>::type arity_helper(...); + +template< + template< typename P1 > class F + , typename T1 + > +typename arity_tag<1>::type +arity_helper(type_wrapper< F >, arity_tag<1>); + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +typename arity_tag<2>::type +arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>); + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +typename arity_tag<3>::type +arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>); + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +typename arity_tag<4>::type +arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>); + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +typename arity_tag<5>::type +arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>); + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5, typename P6 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , typename T6 + > +typename arity_tag<6>::type +arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>); +template< typename F, int N > +struct template_arity_impl +{ + BOOST_STATIC_CONSTANT(int, value = + sizeof(arity_helper(type_wrapper(), arity_tag())) - 1 + ); +}; + +template< typename F > +struct template_arity +{ + BOOST_STATIC_CONSTANT(int, value = ( + max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value + + )); + + typedef mpl::int_ type; +}; + +}}} diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/and.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/and.hpp new file mode 100644 index 0000000..163913f --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/and.hpp @@ -0,0 +1,64 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/and.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< bool C_, typename T1, typename T2, typename T3, typename T4 > +struct and_impl + : false_ +{ +}; + +template< typename T1, typename T2, typename T3, typename T4 > +struct and_impl< true,T1,T2,T3,T4 > + : and_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4 + , true_ + > +{ +}; + +template<> +struct and_impl< + true + , true_, true_, true_, true_ + > + : true_ +{ +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) + , typename T3 = true_, typename T4 = true_, typename T5 = true_ + > +struct and_ + + : aux::and_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4, T5 + > + +{ +}; + +BOOST_MPL_AUX_NA_SPEC2( + 2 + , 5 + , and_ + ) + +}} diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply.hpp new file mode 100644 index 0000000..89d9e4b --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply.hpp @@ -0,0 +1,139 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/apply.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F + > +struct apply0 + + : apply_wrap0< + typename lambda::type + + > +{ +}; + +template< + typename F + > +struct apply< F,na,na,na,na,na > + : apply0 +{ +}; + +template< + typename F, typename T1 + > +struct apply1 + + : apply_wrap1< + typename lambda::type + , T1 + > +{ +}; + +template< + typename F, typename T1 + > +struct apply< F,T1,na,na,na,na > + : apply1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply2 + + : apply_wrap2< + typename lambda::type + , T1, T2 + > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply< F,T1,T2,na,na,na > + : apply2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + + : apply_wrap3< + typename lambda::type + , T1, T2, T3 + > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply< F,T1,T2,T3,na,na > + : apply3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + + : apply_wrap4< + typename lambda::type + , T1, T2, T3, T4 + > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply< F,T1,T2,T3,T4,na > + : apply4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + + : apply_wrap5< + typename lambda::type + , T1, T2, T3, T4, T5 + > +{ +}; + +/// primary template (not a specialization!) + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply + : apply5< F,T1,T2,T3,T4,T5 > +{ +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp new file mode 100644 index 0000000..b2ed5d5 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp @@ -0,0 +1,52 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/apply_fwd.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F, typename T1 = na, typename T2 = na, typename T3 = na + , typename T4 = na, typename T5 = na + > +struct apply; + +template< + typename F + > +struct apply0; + +template< + typename F, typename T1 + > +struct apply1; + +template< + typename F, typename T1, typename T2 + > +struct apply2; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp new file mode 100644 index 0000000..34d51a1 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp @@ -0,0 +1,84 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/apply_wrap.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F + + , typename has_apply_ = typename aux::has_apply::type + + > +struct apply_wrap0 + + : F::template apply< > +{ +}; + +template< typename F > +struct apply_wrap0< F,true_ > + : F::apply +{ +}; + +template< + typename F, typename T1 + + > +struct apply_wrap1 + + : F::template apply +{ +}; + +template< + typename F, typename T1, typename T2 + + > +struct apply_wrap2 + + : F::template apply< T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + + > +struct apply_wrap3 + + : F::template apply< T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + + > +struct apply_wrap4 + + : F::template apply< T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + + > +struct apply_wrap5 + + : F::template apply< T1,T2,T3,T4,T5 > +{ +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/arg.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/arg.hpp new file mode 100644 index 0000000..6f2f8a8 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/arg.hpp @@ -0,0 +1,123 @@ + +// Copyright Peter Dimov 2001-2002 +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/arg.hpp" header +// -- DO NOT modify by hand! + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +template<> struct arg< -1 > +{ + BOOST_STATIC_CONSTANT(int, value = -1); + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U1 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<1> +{ + BOOST_STATIC_CONSTANT(int, value = 1); + typedef arg<2> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U1 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<2> +{ + BOOST_STATIC_CONSTANT(int, value = 2); + typedef arg<3> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U2 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<3> +{ + BOOST_STATIC_CONSTANT(int, value = 3); + typedef arg<4> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U3 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<4> +{ + BOOST_STATIC_CONSTANT(int, value = 4); + typedef arg<5> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U4 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +template<> struct arg<5> +{ + BOOST_STATIC_CONSTANT(int, value = 5); + typedef arg<6> next; + BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) + BOOST_MPL_AUX_ARG_TYPEDEF(na, type) + + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + typedef U5 type; + BOOST_MPL_AUX_ASSERT_NOT_NA(type); + }; +}; + +BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/bind.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/bind.hpp new file mode 100644 index 0000000..0e9513a --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/bind.hpp @@ -0,0 +1,561 @@ + +// Copyright Peter Dimov 2001 +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/bind.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg< -1 >, Arg > +{ + typedef typename Arg::next next; + typedef Arg type; +}; + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > +{ + typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + public: + typedef typename apply_wrap0< + f_ + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0, U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) + +template< + typename F + > +struct bind< F,na,na,na,na,na > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + public: + typedef typename apply_wrap1< + f_ + , typename t1::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >, U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) + +template< + typename F, typename T1 + > +struct bind< F,T1,na,na,na,na > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + public: + typedef typename apply_wrap2< + f_ + , typename t1::type, typename t2::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >, U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,na,na,na > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + public: + typedef typename apply_wrap3< + f_ + , typename t1::type, typename t2::type, typename t3::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,na,na > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next n5; + typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; + /// + public: + typedef typename apply_wrap4< + f_ + , typename t1::type, typename t2::type, typename t3::type + , typename t4::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,na > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + /// + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next n5; + typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; + /// + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next n6; + typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; + /// + public: + typedef typename apply_wrap5< + f_ + , typename t1::type, typename t2::type, typename t3::type + , typename t4::type, typename t5::type + >::type type; + + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) + +/// primary template (not a specialization!) + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +/// if_/eval_if specializations +template< template< typename T1, typename T2, typename T3 > class F, typename Tag > +struct quote3; + +template< typename T1, typename T2, typename T3 > struct if_; + +template< + typename Tag, typename T1, typename T2, typename T3 + > +struct bind3< + quote3< if_,Tag > + , T1, T2, T3 + > +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef mpl::arg<1> n1; + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef typename if_< + typename t1::type + , t2, t3 + >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +template< + template< typename T1, typename T2, typename T3 > class F, typename Tag + > +struct quote3; + +template< typename T1, typename T2, typename T3 > struct eval_if; + +template< + typename Tag, typename T1, typename T2, typename T3 + > +struct bind3< + quote3< eval_if,Tag > + , T1, T2, T3 + > +{ + template< + typename U1 = na, typename U2 = na, typename U3 = na + , typename U4 = na, typename U5 = na + > + struct apply + { + private: + typedef mpl::arg<1> n1; + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next n2; + typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; + /// + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next n3; + typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; + /// + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next n4; + typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; + /// + typedef typename eval_if< + typename t1::type + , t2, t3 + >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp new file mode 100644 index 0000000..c4a5060 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp @@ -0,0 +1,52 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/bind_fwd.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename F, typename T1 = na, typename T2 = na, typename T3 = na + , typename T4 = na, typename T5 = na + > +struct bind; + +template< + typename F + > +struct bind0; + +template< + typename F, typename T1 + > +struct bind1; + +template< + typename F, typename T1, typename T2 + > +struct bind2; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp new file mode 100644 index 0000000..bf81873 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp @@ -0,0 +1,554 @@ + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_ +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_ +{ +}; + +} // namespace aux + +template< + typename T + , typename Tag + + > +struct lambda +{ + typedef false_ is_le; + typedef T result_; + typedef T type; +}; + +template< + typename T + > +struct is_lambda_expression + : lambda::is_le +{ +}; + +template< int N, typename Tag > +struct lambda< arg, Tag > +{ + typedef true_ is_le; + typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 + typedef mpl::protect type; +}; + +template< + typename F + , typename Tag + > +struct lambda< + bind0 + , Tag + + > +{ + typedef false_ is_le; + typedef bind0< + F + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1 > class F + , typename L1 + > +struct le_result1< true_,Tag,F,L1 > +{ + typedef bind1< + quote1< F,Tag > + , typename L1::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + , typename Tag + > +struct lambda< + F + , Tag + + > +{ + typedef lambda< T1,Tag > l1; + typedef typename l1::is_le is_le1; + typedef typename aux::lambda_or< + is_le1::value + >::type is_le; + + typedef aux::le_result1< + is_le, Tag, F, l1 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1 + , typename Tag + > +struct lambda< + bind1< F,T1 > + , Tag + + > +{ + typedef false_ is_le; + typedef bind1< + F + , T1 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true_,Tag,F,L1,L2 > +{ + typedef bind2< + quote2< F,Tag > + , typename L1::result_, typename L2::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , typename Tag + > +struct lambda< + F< T1,T2 > + , Tag + + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value + >::type is_le; + + typedef aux::le_result2< + is_le, Tag, F, l1, l2 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2 + , typename Tag + > +struct lambda< + bind2< F,T1,T2 > + , Tag + + > +{ + typedef false_ is_le; + typedef bind2< + F + , T1, T2 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true_,Tag,F,L1,L2,L3 > +{ + typedef bind3< + quote3< F,Tag > + , typename L1::result_, typename L2::result_, typename L3::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , typename Tag + > +struct lambda< + F< T1,T2,T3 > + , Tag + + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + typedef lambda< T3,Tag > l3; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + typedef typename l3::is_le is_le3; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value, is_le3::value + >::type is_le; + + typedef aux::le_result3< + is_le, Tag, F, l1, l2, l3 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , typename Tag + > +struct lambda< + bind3< F,T1,T2,T3 > + , Tag + + > +{ + typedef false_ is_le; + typedef bind3< + F + , T1, T2, T3 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true_,Tag,F,L1,L2,L3,L4 > +{ + typedef bind4< + quote4< F,Tag > + , typename L1::result_, typename L2::result_, typename L3::result_ + , typename L4::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , typename Tag + > +struct lambda< + F< T1,T2,T3,T4 > + , Tag + + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + typedef lambda< T3,Tag > l3; + typedef lambda< T4,Tag > l4; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + typedef typename l3::is_le is_le3; + typedef typename l4::is_le is_le4; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value, is_le3::value, is_le4::value + >::type is_le; + + typedef aux::le_result4< + is_le, Tag, F, l1, l2, l3, l4 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename Tag + > +struct lambda< + bind4< F,T1,T2,T3,T4 > + , Tag + + > +{ + typedef false_ is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > result_; + + typedef result_ type; +}; + +namespace aux { + +template< + typename IsLE, typename Tag + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > result_; + + typedef result_ type; +}; + +template< + typename Tag + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + quote5< F,Tag > + , typename L1::result_, typename L2::result_, typename L3::result_ + , typename L4::result_, typename L5::result_ + > result_; + + typedef mpl::protect type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , typename Tag + > +struct lambda< + F< T1,T2,T3,T4,T5 > + , Tag + + > +{ + typedef lambda< T1,Tag > l1; + typedef lambda< T2,Tag > l2; + typedef lambda< T3,Tag > l3; + typedef lambda< T4,Tag > l4; + typedef lambda< T5,Tag > l5; + + typedef typename l1::is_le is_le1; + typedef typename l2::is_le is_le2; + typedef typename l3::is_le is_le3; + typedef typename l4::is_le is_le4; + typedef typename l5::is_le is_le5; + + + typedef typename aux::lambda_or< + is_le1::value, is_le2::value, is_le3::value, is_le4::value + , is_le5::value + >::type is_le; + + typedef aux::le_result5< + is_le, Tag, F, l1, l2, l3, l4, l5 + > le_result_; + + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , typename Tag + > +struct lambda< + bind5< F,T1,T2,T3,T4,T5 > + , Tag + + > +{ + typedef false_ is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > result_; + + typedef result_ type; +}; + +/// special case for 'protect' +template< typename T, typename Tag > +struct lambda< mpl::protect, Tag > +{ + typedef false_ is_le; + typedef mpl::protect result_; + typedef result_ type; +}; + +/// specializations for the main 'bind' form + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , typename Tag + > +struct lambda< + bind< F,T1,T2,T3,T4,T5 > + , Tag + + > +{ + typedef false_ is_le; + typedef bind< F,T1,T2,T3,T4,T5 > result_; + typedef result_ type; +}; + +/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars + +template< + typename F, typename Tag1, typename Tag2 + > +struct lambda< + lambda< F,Tag1 > + , Tag2 + > +{ + typedef lambda< F,Tag2 > l1; + typedef lambda< Tag1,Tag2 > l2; + typedef typename l1::is_le is_le; + typedef aux::le_result2 le_result_; + typedef typename le_result_::result_ result_; + typedef typename le_result_::type type; +}; + +BOOST_MPL_AUX_NA_SPEC(2, lambda) + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/or.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/or.hpp new file mode 100644 index 0000000..986b2e0 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/or.hpp @@ -0,0 +1,64 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/or.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +namespace aux { + +template< bool C_, typename T1, typename T2, typename T3, typename T4 > +struct or_impl + : true_ +{ +}; + +template< typename T1, typename T2, typename T3, typename T4 > +struct or_impl< false,T1,T2,T3,T4 > + : or_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4 + , false_ + > +{ +}; + +template<> +struct or_impl< + false + , false_, false_, false_, false_ + > + : false_ +{ +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) + , typename T3 = false_, typename T4 = false_, typename T5 = false_ + > +struct or_ + + : aux::or_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value + , T2, T3, T4, T5 + > + +{ +}; + +BOOST_MPL_AUX_NA_SPEC2( + 2 + , 5 + , or_ + ) + +}} diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/placeholders.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/placeholders.hpp new file mode 100644 index 0000000..ff97364 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/placeholders.hpp @@ -0,0 +1,105 @@ + +// Copyright Aleksey Gurtovoy 2001-2004 +// Copyright Peter Dimov 2001-2003 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/placeholders.hpp" header +// -- DO NOT modify by hand! + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg< -1 > _; +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; +} + +}} + +/// agurt, 17/mar/02: one more placeholder for the last 'apply#' +/// specialization +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<1> _1; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<2> _2; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<3> _3; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<4> _4; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<5> _5; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; +} + +}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<6> _6; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; +} + +}} diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/quote.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/quote.hpp new file mode 100644 index 0000000..d7d0420 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/quote.hpp @@ -0,0 +1,123 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/quote.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< typename T, bool has_type_ > +struct quote_impl + : T +{ +}; + +template< typename T > +struct quote_impl< T,false > +{ + typedef T type; +}; + +template< + template< typename P1 > class F + , typename Tag = void_ + > +struct quote1 +{ + template< typename U1 > struct apply + + : quote_impl< + F + , aux::has_type< F >::value + > + + { + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename Tag = void_ + > +struct quote2 +{ + template< typename U1, typename U2 > struct apply + + : quote_impl< + F< U1,U2 > + , aux::has_type< F< U1,U2 > >::value + > + + { + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename Tag = void_ + > +struct quote3 +{ + template< typename U1, typename U2, typename U3 > struct apply + + : quote_impl< + F< U1,U2,U3 > + , aux::has_type< F< U1,U2,U3 > >::value + > + + { + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename Tag = void_ + > +struct quote4 +{ + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + + : quote_impl< + F< U1,U2,U3,U4 > + , aux::has_type< F< U1,U2,U3,U4 > >::value + > + + { + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename Tag = void_ + > +struct quote5 +{ + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + + : quote_impl< + F< U1,U2,U3,U4,U5 > + , aux::has_type< F< U1,U2,U3,U4,U5 > >::value + > + + { + }; +}; + +}} + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessed/plain/template_arity.hpp b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/template_arity.hpp new file mode 100644 index 0000000..a23fc23 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessed/plain/template_arity.hpp @@ -0,0 +1,11 @@ + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// + +// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header +// -- DO NOT modify by hand! + diff --git a/external-libs/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp b/external-libs/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp new file mode 100644 index 0000000..5134622 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp @@ -0,0 +1,105 @@ + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include +#include + +#include +#include +#include +#include + +// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T,value): , T1 = value, .., Tn = value +// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T,value): , T2 = value, .., Tn = value +// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T,value): + +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) + +# include +# include + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \ + i \ + , BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \ + , param \ + , value_func \ + ) \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1(i, n, param, value_func) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,param,value_func) \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i, n, param, value_func) \ + BOOST_PP_COMMA_IF(BOOST_PP_AND(i,n)) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_##i(n,param,value_func) \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_0(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1 v(),p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v()) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_1(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_2(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_3(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_4(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_5(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_6(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_7(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6,p7) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_8(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9 v(),p1,p2,p3,p4,p5,p6,p7,p8) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_9(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p1,p2,p3,p4,p5,p6,p7,p8,p9) + +#else + +# include +# include +# include +# include +# include +# include + +# define BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(unused, i, op) \ + , BOOST_PP_CAT( \ + BOOST_PP_TUPLE_ELEM(3, 1, op) \ + , BOOST_PP_ADD_D(1, i, BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 0, op))) \ + ) BOOST_PP_TUPLE_ELEM(3, 2, op)() \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \ + BOOST_PP_REPEAT( \ + BOOST_PP_SUB_D(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, i) \ + , BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \ + , (i, param, value_func) \ + ) \ + /**/ + + +#endif // BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES + +#define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \ + /**/ + +#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +# define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \ + /**/ +#else +# define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_EMPTY) \ + /**/ +#endif + +#endif // BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/preprocessor/enum.hpp b/external-libs/boost/boost/mpl/aux_/preprocessor/enum.hpp new file mode 100644 index 0000000..2139d51 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessor/enum.hpp @@ -0,0 +1,62 @@ + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +// BOOST_MPL_PP_ENUM(0,int): +// BOOST_MPL_PP_ENUM(1,int): int +// BOOST_MPL_PP_ENUM(2,int): int, int +// BOOST_MPL_PP_ENUM(n,int): int, int, .., int + +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) + +# include + +# define BOOST_MPL_PP_ENUM(n, param) \ + BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \ + /**/ + +# define BOOST_MPL_PP_ENUM_0(p) +# define BOOST_MPL_PP_ENUM_1(p) p +# define BOOST_MPL_PP_ENUM_2(p) p,p +# define BOOST_MPL_PP_ENUM_3(p) p,p,p +# define BOOST_MPL_PP_ENUM_4(p) p,p,p,p +# define BOOST_MPL_PP_ENUM_5(p) p,p,p,p,p +# define BOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p +# define BOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p +# define BOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p +# define BOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p + +#else + +# include +# include + +# define BOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \ + BOOST_PP_COMMA_IF(i) param \ + /**/ + +# define BOOST_MPL_PP_ENUM(n, param) \ + BOOST_PP_REPEAT( \ + n \ + , BOOST_MPL_PP_AUX_ENUM_FUNC \ + , param \ + ) \ + /**/ + +#endif + +#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/preprocessor/params.hpp b/external-libs/boost/boost/mpl/aux_/preprocessor/params.hpp new file mode 100644 index 0000000..62e4c10 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/preprocessor/params.hpp @@ -0,0 +1,65 @@ + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +// BOOST_MPL_PP_PARAMS(0,T): +// BOOST_MPL_PP_PARAMS(1,T): T1 +// BOOST_MPL_PP_PARAMS(2,T): T1, T2 +// BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn + +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) + +# include + +# define BOOST_MPL_PP_PARAMS(n,p) \ + BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \ + /**/ + +# define BOOST_MPL_PP_PARAMS_0(p) +# define BOOST_MPL_PP_PARAMS_1(p) p##1 +# define BOOST_MPL_PP_PARAMS_2(p) p##1,p##2 +# define BOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3 +# define BOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4 +# define BOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5 +# define BOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6 +# define BOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7 +# define BOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8 +# define BOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9 + +#else + +# include +# include +# include +# include + +# define BOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \ + BOOST_PP_COMMA_IF(i) \ + BOOST_PP_CAT(param, BOOST_PP_INC(i)) \ + /**/ + +# define BOOST_MPL_PP_PARAMS(n, param) \ + BOOST_PP_REPEAT( \ + n \ + , BOOST_MPL_PP_AUX_PARAM_FUNC \ + , param \ + ) \ + /**/ + +#endif + +#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/static_cast.hpp b/external-libs/boost/boost/mpl/aux_/static_cast.hpp new file mode 100644 index 0000000..67db11e --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/static_cast.hpp @@ -0,0 +1,27 @@ + +#ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED +#define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ + || BOOST_WORKAROUND(__GNUC__, < 3) \ + || BOOST_WORKAROUND(__MWERKS__, <= 0x3001) +# define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr) +#else +# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast(expr) +#endif + +#endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/template_arity.hpp b/external-libs/boost/boost/mpl/aux_/template_arity.hpp new file mode 100644 index 0000000..aa38d2b --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/template_arity.hpp @@ -0,0 +1,189 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED +#define BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-07 08:24:50 -0400 (Tue, 07 Sep 2004) $ +// $Revision: 24957 $ + +#include +#include + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +# if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) +# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# include +# endif +# else +# include +# endif +#endif + +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER template_arity.hpp +# include + +#else + +# if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) +# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) + +# include +# include +# include +# include +# include + +# include +# include +# include +# include +# include + +# define AUX778076_ARITY BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) + +namespace boost { namespace mpl { namespace aux { + +template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag +{ + typedef char (&type)[N + 1]; +}; + +# define AUX778076_MAX_ARITY_OP(unused, state, i_) \ + ( BOOST_PP_CAT(C,i_) > 0 ? BOOST_PP_CAT(C,i_) : state ) \ +/**/ + +template< + BOOST_MPL_PP_PARAMS(AUX778076_ARITY, BOOST_MPL_AUX_NTTP_DECL(int, C)) + > +struct max_arity +{ + BOOST_STATIC_CONSTANT(int, value = + BOOST_PP_SEQ_FOLD_LEFT( + AUX778076_MAX_ARITY_OP + , -1 + , BOOST_MPL_PP_RANGE(1, AUX778076_ARITY) + ) + ); +}; + +# undef AUX778076_MAX_ARITY_OP + +arity_tag<0>::type arity_helper(...); + +# define BOOST_PP_ITERATION_LIMITS (1, AUX778076_ARITY) +# define BOOST_PP_FILENAME_1 +# include BOOST_PP_ITERATE() + +template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) > +struct template_arity_impl +{ + BOOST_STATIC_CONSTANT(int, value = + sizeof(arity_helper(type_wrapper(),arity_tag())) - 1 + ); +}; + +# define AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION(unused, i_, F) \ + BOOST_PP_COMMA_IF(i_) template_arity_impl::value \ +/**/ + +template< typename F > +struct template_arity +{ + BOOST_STATIC_CONSTANT(int, value = ( + max_arity< BOOST_MPL_PP_REPEAT( + AUX778076_ARITY + , AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION + , F + ) >::value + )); + + typedef mpl::int_ type; +}; + +# undef AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION + +# undef AUX778076_ARITY + +}}} + +# endif // BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING +# else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT + +# include + +namespace boost { namespace mpl { namespace aux { + +template< bool > +struct template_arity_impl +{ + template< typename F > struct result_ + : mpl::int_<-1> + { + }; +}; + +template<> +struct template_arity_impl +{ + template< typename F > struct result_ + : F::arity + { + }; +}; + +template< typename F > +struct template_arity + : template_arity_impl< ::boost::mpl::aux::has_rebind::value > + ::template result_ +{ +}; + +#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) +template<> +struct template_arity + : mpl::int_<-1> +{ +}; +#endif + +}}} + +# endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +template< + template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F + , BOOST_MPL_PP_PARAMS(i_, typename T) + > +typename arity_tag::type +arity_helper(type_wrapper< F >, arity_tag); + +#undef i_ +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/aux_/template_arity_fwd.hpp b/external-libs/boost/boost/mpl/aux_/template_arity_fwd.hpp new file mode 100644 index 0000000..03c5461 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/template_arity_fwd.hpp @@ -0,0 +1,23 @@ + +#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED +#define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +namespace boost { namespace mpl { namespace aux { + +template< typename F > struct template_arity; + +}}} + +#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/type_wrapper.hpp b/external-libs/boost/boost/mpl/aux_/type_wrapper.hpp new file mode 100644 index 0000000..e3bcef7 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/type_wrapper.hpp @@ -0,0 +1,47 @@ + +#ifndef BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED +#define BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// Copyright Peter Dimov 2000-2003 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-28 09:56:59 -0400 (Tue, 28 Sep 2004) $ +// $Revision: 25453 $ + +#include + +namespace boost { namespace mpl { namespace aux { + +template< typename T > struct type_wrapper +{ + typedef T type; +}; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// agurt 08/may/03: a complicated way to extract the wrapped type; need it +// mostly for the sake of GCC (3.2.x), which ICEs if you try to extract the +// nested 'type' from 'type_wrapper' when the latter was the result of a +// 'typeof' expression +template< typename T > struct wrapped_type; + +template< typename T > struct wrapped_type< type_wrapper > +{ + typedef T type; +}; +#else +template< typename W > struct wrapped_type +{ + typedef typename W::type type; +}; +#endif + +}}} + +#endif // BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/value_wknd.hpp b/external-libs/boost/boost/mpl/aux_/value_wknd.hpp new file mode 100644 index 0000000..a9f1784 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/value_wknd.hpp @@ -0,0 +1,89 @@ + +#ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED +#define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-12-20 12:52:43 -0500 (Mon, 20 Dec 2004) $ +// $Revision: 26558 $ + +#include +#include +#include +#include + +#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ + || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) + +# include + +namespace boost { namespace mpl { namespace aux { +template< typename C_ > struct value_wknd + : C_ +{ +}; + +#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) +template<> struct value_wknd + : int_<1> +{ + using int_<1>::value; +}; +#endif +}}} + + +#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) +# define BOOST_MPL_AUX_VALUE_WKND(C) \ + ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \ +/**/ +# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C) +#else +# define BOOST_MPL_AUX_VALUE_WKND(C) C +# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) \ + ::boost::mpl::aux::value_wknd< C > \ +/**/ +#endif + +#else // BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS + +# define BOOST_MPL_AUX_VALUE_WKND(C) C +# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C + +#endif + +#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) +# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ + BOOST_MPL_AUX_STATIC_CAST(T, C::value) \ +/**/ +#else +# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ + BOOST_MPL_AUX_VALUE_WKND(C)::value \ +/**/ +#endif + + +namespace boost { namespace mpl { namespace aux { + +template< typename T > struct value_type_wknd +{ + typedef typename T::value_type type; +}; + +#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) +template<> struct value_type_wknd +{ + typedef int type; +}; +#endif + +}}} + +#endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/aux_/yes_no.hpp b/external-libs/boost/boost/mpl/aux_/yes_no.hpp new file mode 100644 index 0000000..4d00f90 --- /dev/null +++ b/external-libs/boost/boost/mpl/aux_/yes_no.hpp @@ -0,0 +1,58 @@ + +#ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED +#define BOOST_MPL_AUX_YES_NO_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2005-08-25 12:27:28 -0400 (Thu, 25 Aug 2005) $ +// $Revision: 30670 $ + +#include +#include +#include +#include + + +namespace boost { namespace mpl { namespace aux { + +typedef char (&no_tag)[1]; +typedef char (&yes_tag)[2]; + +template< bool C_ > struct yes_no_tag +{ + typedef no_tag type; +}; + +template<> struct yes_no_tag +{ + typedef yes_tag type; +}; + + +template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag +{ +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) + typedef char (&type)[n]; +#else + char buf[n]; + typedef weighted_tag type; +#endif +}; + +#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) +template<> struct weighted_tag<0> +{ + typedef char (&type)[1]; +}; +#endif + +}}} + +#endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/bind.hpp b/external-libs/boost/boost/mpl/bind.hpp new file mode 100644 index 0000000..6aa8d69 --- /dev/null +++ b/external-libs/boost/boost/mpl/bind.hpp @@ -0,0 +1,547 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_BIND_HPP_INCLUDED +#define BOOST_MPL_BIND_HPP_INCLUDED + +// Copyright Peter Dimov 2001 +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-10-26 10:51:08 -0400 (Tue, 26 Oct 2004) $ +// $Revision: 25875 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +# include +# endif +#endif + +#include +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) +# define BOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER bind.hpp +# endif +# include + +#else + +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# include +# include +# include +# include + +namespace boost { namespace mpl { + +// local macros, #undef-ined at the end of the header +# define AUX778076_APPLY \ + BOOST_PP_CAT(apply_wrap,BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \ + /**/ + +# if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) +# define AUX778076_DMC_PARAM() , int dummy_ +# else +# define AUX778076_DMC_PARAM() +# endif + +# define AUX778076_BIND_PARAMS(param) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + ) \ + /**/ + +# define AUX778076_BIND_DEFAULT_PARAMS(param, value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + , value \ + ) \ + /**/ + +# define AUX778076_BIND_N_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \ + /**/ + +# define AUX778076_BIND_N_SPEC_PARAMS(n, param, def) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ + /**/ + +#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \ + AUX778076_BIND_DEFAULT_PARAMS(param, value) \ + /**/ +#else +# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \ + AUX778076_BIND_PARAMS(param) \ + /**/ +#endif + +namespace aux { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + typename T, AUX778076_BIND_PARAMS(typename U) + > +struct resolve_bind_arg +{ + typedef T type; +}; + +# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg<-1>,Arg > +{ + typedef typename Arg::next next; + typedef Arg type; +}; + +# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT + +template< + BOOST_MPL_AUX_NTTP_DECL(int, N), AUX778076_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< arg,AUX778076_BIND_PARAMS(U) > +{ + typedef typename AUX778076_APPLY, AUX778076_BIND_PARAMS(U)>::type type; +}; + +#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) +template< + typename F, AUX778076_BIND_PARAMS(typename T), AUX778076_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< bind,AUX778076_BIND_PARAMS(U) > +{ + typedef bind f_; + typedef typename AUX778076_APPLY::type type; +}; +#endif + +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +// agurt, 15/jan/02: it's not a intended to be used as a function class, and +// MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't +// work), so I went with the 'result_' here, and in all other similar cases +template< bool > +struct resolve_arg_impl +{ + template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_ + { + typedef typename AUX778076_APPLY< + T + , AUX778076_BIND_PARAMS(U) + >::type type; + }; +}; + +// for 'resolve_bind_arg' +template< typename T > struct is_bind_template; + +template< + typename T, AUX778076_BIND_PARAMS(typename U) + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,AUX778076_BIND_PARAMS(U) > +{ +}; + +# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) + +template< typename T > +struct replace_unnamed_arg_impl +{ + template< typename Arg > struct result_ + { + typedef Arg next; + typedef T type; + }; +}; + +template<> +struct replace_unnamed_arg_impl< arg<-1> > +{ + template< typename Arg > struct result_ + { + typedef typename next::type next; + typedef Arg type; + }; +}; + +template< typename T, typename Arg > +struct replace_unnamed_arg + : replace_unnamed_arg_impl::template result_ +{ +}; + +# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT + +// agurt, 10/mar/02: the forward declaration has to appear before any of +// 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it +template< BOOST_MPL_AUX_NTTP_DECL(int, arity_) > struct bind_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +// overload for "main" form +// agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload +// in case if we use 'aux::type_wrapper< bind<...> >' here, and all +// 'bind' instantiations form a complete type anyway +#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) +template< + typename F, AUX778076_BIND_PARAMS(typename T) + > +aux::yes_tag is_bind_helper(bind*); +#endif + +template< BOOST_MPL_AUX_NTTP_DECL(int, N) > +aux::yes_tag is_bind_helper(arg*); + +template< bool is_ref_ = true > +struct is_bind_template_impl +{ + template< typename T > struct result_ + { + BOOST_STATIC_CONSTANT(bool, value = false); + }; +}; + +template<> +struct is_bind_template_impl +{ + template< typename T > struct result_ + { + BOOST_STATIC_CONSTANT(bool, value = + sizeof(aux::is_bind_helper(static_cast(0))) + == sizeof(aux::yes_tag) + ); + }; +}; + +template< typename T > struct is_bind_template + : is_bind_template_impl< ::boost::detail::is_reference_impl::value > + ::template result_ +{ +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace aux + + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) +/// if_/eval_if specializations +# define AUX778076_SPEC_NAME if_ +# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, )) +# include BOOST_PP_ITERATE() + +#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) +# define AUX778076_SPEC_NAME eval_if +# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, )) +# include BOOST_PP_ITERATE() +#endif +#endif + +// real C++ version is already taken care of +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) + +namespace aux { +// apply_count_args +#define AUX778076_COUNT_ARGS_PREFIX bind +#define AUX778076_COUNT_ARGS_DEFAULT na +#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY +#include +} + +// bind +template< + typename F, AUX778076_BIND_PARAMS(typename T) AUX778076_DMC_PARAM() + > +struct bind + : aux::bind_chooser< + aux::bind_count_args::value + >::template result_< F,AUX778076_BIND_PARAMS(T) >::type +{ +}; + +BOOST_MPL_AUX_ARITY_SPEC( + BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) + , bind + ) + +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( + BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) + , bind + ) + + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +# undef AUX778076_BIND_NESTED_DEFAULT_PARAMS +# undef AUX778076_BIND_N_SPEC_PARAMS +# undef AUX778076_BIND_N_PARAMS +# undef AUX778076_BIND_DEFAULT_PARAMS +# undef AUX778076_BIND_PARAMS +# undef AUX778076_DMC_PARAM +# undef AUX778076_APPLY + +}} + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_BIND_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 + +# define i_ BOOST_PP_FRAME_ITERATION(1) + +#if defined(AUX778076_SPEC_NAME) + +// lazy metafunction specialization +template< template< BOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag > +struct BOOST_PP_CAT(quote,i_); + +template< BOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME; + +template< + typename Tag AUX778076_BIND_N_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(bind,i_)< + BOOST_PP_CAT(quote,i_) + AUX778076_BIND_N_PARAMS(i_,T) + > +{ + template< + AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na) + > + struct apply + { + private: + typedef mpl::arg<1> n1; +# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, )) +# include BOOST_PP_ITERATE() + + typedef typename AUX778076_SPEC_NAME< + typename t1::type + , BOOST_MPL_PP_EXT_PARAMS(2, BOOST_PP_INC(i_), t) + >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +#undef AUX778076_SPEC_NAME + +#else // AUX778076_SPEC_NAME + +template< + typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() + > +struct BOOST_PP_CAT(bind,i_) +{ + template< + AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na) + > + struct apply + { + private: +# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) + + typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next n1; + typedef typename aux::resolve_bind_arg::type f_; + /// +# else + typedef typename aux::resolve_bind_arg::type f_; + +# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT + +# if i_ > 0 +# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, )) +# include BOOST_PP_ITERATE() +# endif + + public: + +# define AUX778076_ARG(unused, i_, t) \ + BOOST_PP_COMMA_IF(i_) \ + typename BOOST_PP_CAT(t,BOOST_PP_INC(i_))::type \ +/**/ + + typedef typename BOOST_PP_CAT(apply_wrap,i_)< + f_ + BOOST_PP_COMMA_IF(i_) BOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t) + >::type type; + +# undef AUX778076_ARG + }; +}; + +namespace aux { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + typename F AUX778076_BIND_N_PARAMS(i_, typename T), AUX778076_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< + BOOST_PP_CAT(bind,i_),AUX778076_BIND_PARAMS(U) + > +{ + typedef BOOST_PP_CAT(bind,i_) f_; + typedef typename AUX778076_APPLY::type type; +}; + +#else + +template< + typename F AUX778076_BIND_N_PARAMS(i_, typename T) + > +aux::yes_tag +is_bind_helper(BOOST_PP_CAT(bind,i_)*); + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace aux + +BOOST_MPL_AUX_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) + +# if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY +/// primary template (not a specialization!) +template< + typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() + > +struct bind + : BOOST_PP_CAT(bind,i_) +{ +}; +#else +template< + typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() + > +struct bind< F AUX778076_BIND_N_SPEC_PARAMS(i_, T, na) > + : BOOST_PP_CAT(bind,i_) +{ +}; +#endif + +# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +namespace aux { + +template<> +struct bind_chooser +{ + template< + typename F, AUX778076_BIND_PARAMS(typename T) + > + struct result_ + { + typedef BOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type; + }; +}; + +} // namespace aux + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# endif // BOOST_MPL_CFG_NO_BIND_TEMPLATE + +#endif // AUX778076_SPEC_NAME + +# undef i_ + +///// iteration, depth == 2 + +#elif BOOST_PP_ITERATION_DEPTH() == 2 + +# define j_ BOOST_PP_FRAME_ITERATION(2) +# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) + + typedef aux::replace_unnamed_arg< BOOST_PP_CAT(T,j_),BOOST_PP_CAT(n,j_) > BOOST_PP_CAT(r,j_); + typedef typename BOOST_PP_CAT(r,j_)::type BOOST_PP_CAT(a,j_); + typedef typename BOOST_PP_CAT(r,j_)::next BOOST_PP_CAT(n,BOOST_PP_INC(j_)); + typedef aux::resolve_bind_arg BOOST_PP_CAT(t,j_); + /// +# else + typedef aux::resolve_bind_arg< BOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_); + +# endif +# undef j_ + +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/bind_fwd.hpp b/external-libs/boost/boost/mpl/bind_fwd.hpp new file mode 100644 index 0000000..3ecf6e3 --- /dev/null +++ b/external-libs/boost/boost/mpl/bind_fwd.hpp @@ -0,0 +1,99 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED +#define BOOST_MPL_BIND_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +#endif + +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp +# include + +#else + +# include +# include +# include +# include + +# include +# include +# include + +namespace boost { namespace mpl { + +// local macros, #undef-ined at the end of the header + +# if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) +# define AUX778076_DMC_PARAM() , int dummy_ = 0 +# else +# define AUX778076_DMC_PARAM() +# endif + +# define AUX778076_BIND_DEFAULT_PARAMS(param, value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + , value \ + ) \ + AUX778076_DMC_PARAM() \ + /**/ + +# define AUX778076_BIND_N_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \ + AUX778076_DMC_PARAM() \ + /**/ + +#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) +template< + typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na) + > +struct bind; +#endif + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + +# undef AUX778076_BIND_N_PARAMS +# undef AUX778076_BIND_DEFAULT_PARAMS +# undef AUX778076_DMC_PARAM +}} + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_BIND_FWD_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +template< + typename F AUX778076_BIND_N_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(bind,i_); + +#undef i_ +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/bool.hpp b/external-libs/boost/boost/mpl/bool.hpp new file mode 100644 index 0000000..dbe6a1e --- /dev/null +++ b/external-libs/boost/boost/mpl/bool.hpp @@ -0,0 +1,39 @@ + +#ifndef BOOST_MPL_BOOL_HPP_INCLUDED +#define BOOST_MPL_BOOL_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-26 05:54:25 -0400 (Sun, 26 Sep 2004) $ +// $Revision: 25411 $ + +#include +#include +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +template< bool C_ > struct bool_ +{ + BOOST_STATIC_CONSTANT(bool, value = C_); + typedef integral_c_tag tag; + typedef bool_ type; + typedef bool value_type; + operator bool() const { return this->value; } +}; + +#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) +template< bool C_ > +bool const bool_::value; +#endif + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +#endif // BOOST_MPL_BOOL_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/bool_fwd.hpp b/external-libs/boost/boost/mpl/bool_fwd.hpp new file mode 100644 index 0000000..3bf2ab4 --- /dev/null +++ b/external-libs/boost/boost/mpl/bool_fwd.hpp @@ -0,0 +1,33 @@ + +#ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED +#define BOOST_MPL_BOOL_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +template< bool C_ > struct bool_; + +// shorcuts +typedef bool_ true_; +typedef bool_ false_; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_) +BOOST_MPL_AUX_ADL_BARRIER_DECL(true_) +BOOST_MPL_AUX_ADL_BARRIER_DECL(false_) + +#endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/eval_if.hpp b/external-libs/boost/boost/mpl/eval_if.hpp new file mode 100644 index 0000000..c0cbbee --- /dev/null +++ b/external-libs/boost/boost/mpl/eval_if.hpp @@ -0,0 +1,71 @@ + +#ifndef BOOST_MPL_EVAL_IF_HPP_INCLUDED +#define BOOST_MPL_EVAL_IF_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2008-03-22 17:45:55 -0400 (Sat, 22 Mar 2008) $ +// $Revision: 43798 $ + +#include +#include +#include +#include +#include +#include + +namespace boost { namespace mpl { + +template< + typename BOOST_MPL_AUX_NA_PARAM(C) + , typename BOOST_MPL_AUX_NA_PARAM(F1) + , typename BOOST_MPL_AUX_NA_PARAM(F2) + > +struct eval_if +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ + || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \ + && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \ + ) +{ + typedef typename if_::type f_; + typedef typename f_::type type; +#else + : if_::type +{ +#endif + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2)) +}; + +// (almost) copy & paste in order to save one more +// recursively nested template instantiation to user +template< + bool C + , typename F1 + , typename F2 + > +struct eval_if_c +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ + || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \ + && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \ + ) +{ + typedef typename if_c::type f_; + typedef typename f_::type type; +#else + : if_c::type +{ +#endif +}; + +BOOST_MPL_AUX_NA_SPEC(3, eval_if) + +}} + +#endif // BOOST_MPL_EVAL_IF_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/has_xxx.hpp b/external-libs/boost/boost/mpl/has_xxx.hpp new file mode 100644 index 0000000..dea85ce --- /dev/null +++ b/external-libs/boost/boost/mpl/has_xxx.hpp @@ -0,0 +1,272 @@ + +#ifndef BOOST_MPL_HAS_XXX_HPP_INCLUDED +#define BOOST_MPL_HAS_XXX_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2002-2006 +// Copyright David Abrahams 2002-2003 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) ) +# include +#endif + +#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) + +# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + +// agurt, 11/sep/02: MSVC-specific version (< 7.1), based on a USENET +// newsgroup's posting by John Madsen (comp.lang.c++.moderated, +// 1999-11-12 19:17:06 GMT); the code is _not_ standard-conforming, but +// it works way more reliably than the SFINAE-based implementation + +// Modified dwa 8/Oct/02 to handle reference types. + +# include +# include + +namespace boost { namespace mpl { namespace aux { + +struct has_xxx_tag; + +#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) +template< typename U > struct msvc_incomplete_array +{ + typedef char (&type)[sizeof(U) + 1]; +}; +#endif + +template< typename T > +struct msvc_is_incomplete +{ + // MSVC is capable of some kinds of SFINAE. If U is an incomplete + // type, it won't pick the second overload + static char tester(...); + +#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) + template< typename U > + static typename msvc_incomplete_array::type tester(type_wrapper); +#else + template< typename U > + static char (& tester(type_wrapper) )[sizeof(U)+1]; +#endif + + BOOST_STATIC_CONSTANT(bool, value = + sizeof(tester(type_wrapper())) == 1 + ); +}; + +template<> +struct msvc_is_incomplete +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +}}} + +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, default_) \ +template< typename T, typename name = ::boost::mpl::aux::has_xxx_tag > \ +struct BOOST_PP_CAT(trait,_impl) : T \ +{ \ + static boost::mpl::aux::no_tag \ + test(void(*)(::boost::mpl::aux::has_xxx_tag)); \ + \ + static boost::mpl::aux::yes_tag test(...); \ + \ + BOOST_STATIC_CONSTANT(bool, value = \ + sizeof(test(static_cast(0))) \ + != sizeof(boost::mpl::aux::no_tag) \ + ); \ + typedef boost::mpl::bool_ type; \ +}; \ +\ +template< typename T, typename fallback_ = boost::mpl::bool_ > \ +struct trait \ + : boost::mpl::if_c< \ + boost::mpl::aux::msvc_is_incomplete::value \ + , boost::mpl::bool_ \ + , BOOST_PP_CAT(trait,_impl) \ + >::type \ +{ \ +}; \ +\ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, void) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, bool) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, char) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed char) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned char) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed short) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned short) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed int) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned int) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed long) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned long) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, float) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, double) \ +BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, long double) \ +/**/ + +# define BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, T) \ +template<> struct trait \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = false); \ + typedef boost::mpl::bool_ type; \ +}; \ +/**/ + +#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \ + BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \ + BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, wchar_t) \ +/**/ +#else +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \ + BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \ +/**/ +#endif + + +// SFINAE-based implementations below are derived from a USENET newsgroup's +// posting by Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST) + +# elif BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ + || BOOST_WORKAROUND(__IBMCPP__, <= 700) + +// MSVC 7.1+ & VACPP + +// agurt, 15/jun/05: replace overload-based SFINAE implementation with SFINAE +// applied to partial specialization to fix some apparently random failures +// (thanks to Daniel Wallin for researching this!) + +namespace boost { namespace mpl { namespace aux { +template< typename T > struct msvc71_sfinae_helper { typedef void type; }; +}}} + +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ +template< typename T, typename U = void > \ +struct BOOST_PP_CAT(trait,_impl_) \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = false); \ + typedef boost::mpl::bool_ type; \ +}; \ +\ +template< typename T > \ +struct BOOST_PP_CAT(trait,_impl_)< \ + T \ + , typename boost::mpl::aux::msvc71_sfinae_helper< typename T::name >::type \ + > \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = true); \ + typedef boost::mpl::bool_ type; \ +}; \ +\ +template< typename T, typename fallback_ = boost::mpl::bool_ > \ +struct trait \ + : BOOST_PP_CAT(trait,_impl_) \ +{ \ +}; \ +/**/ + +# elif BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) ) + +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \ +template< typename T, bool IS_CLASS > \ +struct trait_tester \ +{ \ + BOOST_STATIC_CONSTANT( bool, value = false ); \ +}; \ +template< typename T > \ +struct trait_tester< T, true > \ +{ \ + struct trait_tester_impl \ + { \ + template < class U > \ + static int resolve( boost::mpl::aux::type_wrapper const volatile * \ + , boost::mpl::aux::type_wrapper* = 0 ); \ + static char resolve( ... ); \ + }; \ + typedef boost::mpl::aux::type_wrapper t_; \ + BOOST_STATIC_CONSTANT( bool, value = ( sizeof( trait_tester_impl::resolve( static_cast< t_ * >(0) ) ) == sizeof(int) ) ); \ +}; \ +template< typename T, typename fallback_ = boost::mpl::bool_ > \ +struct trait \ +{ \ + BOOST_STATIC_CONSTANT( bool, value = (trait_tester< T, boost::is_class< T >::value >::value) ); \ + typedef boost::mpl::bool_< trait< T, fallback_ >::value > type; \ +}; + +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ + BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF( trait \ + , BOOST_PP_CAT(trait,_tester) \ + , name \ + , default_ ) \ +/**/ + +# else // other SFINAE-capable compilers + +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ +template< typename T, typename fallback_ = boost::mpl::bool_ > \ +struct trait \ +{ \ + struct gcc_3_2_wknd \ + { \ + template< typename U > \ + static boost::mpl::aux::yes_tag test( \ + boost::mpl::aux::type_wrapper const volatile* \ + , boost::mpl::aux::type_wrapper* = 0 \ + ); \ + \ + static boost::mpl::aux::no_tag test(...); \ + }; \ + \ + typedef boost::mpl::aux::type_wrapper t_; \ + BOOST_STATIC_CONSTANT(bool, value = \ + sizeof(gcc_3_2_wknd::test(static_cast(0))) \ + == sizeof(boost::mpl::aux::yes_tag) \ + ); \ + typedef boost::mpl::bool_ type; \ +}; \ +/**/ + +# endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + + +#else // BOOST_MPL_CFG_NO_HAS_XXX + +// placeholder implementation + +# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ +template< typename T, typename fallback_ = boost::mpl::bool_ > \ +struct trait \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \ + typedef fallback_ type; \ +}; \ +/**/ + +#endif + +#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name) \ + BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(BOOST_PP_CAT(has_,name), name, false) \ +/**/ + +#endif // BOOST_MPL_HAS_XXX_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/identity.hpp b/external-libs/boost/boost/mpl/identity.hpp new file mode 100644 index 0000000..2cdf4e1 --- /dev/null +++ b/external-libs/boost/boost/mpl/identity.hpp @@ -0,0 +1,45 @@ + +#ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED +#define BOOST_MPL_IDENTITY_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +namespace boost { namespace mpl { + +template< + typename BOOST_MPL_AUX_NA_PARAM(T) + > +struct identity +{ + typedef T type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T)) +}; + +template< + typename BOOST_MPL_AUX_NA_PARAM(T) + > +struct make_identity +{ + typedef identity type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T)) +}; + +BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity) +BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity) + +}} + +#endif // BOOST_MPL_IDENTITY_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/if.hpp b/external-libs/boost/boost/mpl/if.hpp new file mode 100644 index 0000000..08fa6ae --- /dev/null +++ b/external-libs/boost/boost/mpl/if.hpp @@ -0,0 +1,135 @@ + +#ifndef BOOST_MPL_IF_HPP_INCLUDED +#define BOOST_MPL_IF_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-07 04:53:22 -0400 (Tue, 07 Sep 2004) $ +// $Revision: 24947 $ + +#include +#include +#include +#include +#include +#include +#include + +namespace boost { namespace mpl { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + bool C + , typename T1 + , typename T2 + > +struct if_c +{ + typedef T1 type; +}; + +template< + typename T1 + , typename T2 + > +struct if_c +{ + typedef T2 type; +}; + +// agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars +// (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959 +template< + typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) + , typename BOOST_MPL_AUX_NA_PARAM(T3) + > +struct if_ +{ + private: + // agurt, 02/jan/03: two-step 'type' definition for the sake of aCC + typedef if_c< +#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) + BOOST_MPL_AUX_VALUE_WKND(T1)::value +#else + BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value) +#endif + , T2 + , T3 + > almost_type_; + + public: + typedef typename almost_type_::type type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3)) +}; + +#else + +// no partial class template specialization + +namespace aux { + +template< bool C > +struct if_impl +{ + template< typename T1, typename T2 > struct result_ + { + typedef T1 type; + }; +}; + +template<> +struct if_impl +{ + template< typename T1, typename T2 > struct result_ + { + typedef T2 type; + }; +}; + +} // namespace aux + +template< + bool C_ + , typename T1 + , typename T2 + > +struct if_c +{ + typedef typename aux::if_impl< C_ > + ::template result_::type type; +}; + +// (almost) copy & paste in order to save one more +// recursively nested template instantiation to user +template< + typename BOOST_MPL_AUX_NA_PARAM(C_) + , typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) + > +struct if_ +{ + enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value }; + + typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) > + ::template result_::type type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2)) +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_MPL_AUX_NA_SPEC(3, if_) + +}} + +#endif // BOOST_MPL_IF_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/int.hpp b/external-libs/boost/boost/mpl/int.hpp new file mode 100644 index 0000000..200a448 --- /dev/null +++ b/external-libs/boost/boost/mpl/int.hpp @@ -0,0 +1,22 @@ + +#ifndef BOOST_MPL_INT_HPP_INCLUDED +#define BOOST_MPL_INT_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#define AUX_WRAPPER_VALUE_TYPE int +#include + +#endif // BOOST_MPL_INT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/int_fwd.hpp b/external-libs/boost/boost/mpl/int_fwd.hpp new file mode 100644 index 0000000..a5deed9 --- /dev/null +++ b/external-libs/boost/boost/mpl/int_fwd.hpp @@ -0,0 +1,27 @@ + +#ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED +#define BOOST_MPL_INT_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(int_) + +#endif // BOOST_MPL_INT_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/integral_c.hpp b/external-libs/boost/boost/mpl/integral_c.hpp new file mode 100644 index 0000000..a6a7bb0 --- /dev/null +++ b/external-libs/boost/boost/mpl/integral_c.hpp @@ -0,0 +1,51 @@ + +#ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED +#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2006 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2006-11-08 16:44:30 -0500 (Wed, 08 Nov 2006) $ +// $Revision: 35926 $ + +#include +#include +#include +#include + +#if BOOST_WORKAROUND(__HP_aCC, <= 53800) +// the type of non-type template arguments may not depend on template arguments +# define AUX_WRAPPER_PARAMS(N) typename T, long N +#else +# define AUX_WRAPPER_PARAMS(N) typename T, T N +#endif + +#define AUX_WRAPPER_NAME integral_c +#define AUX_WRAPPER_VALUE_TYPE T +#define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value > +#include + + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !BOOST_WORKAROUND(__BORLANDC__, <= 0x551) +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +// 'bool' constant doesn't have 'next'/'prior' members +template< bool C > +struct integral_c +{ + BOOST_STATIC_CONSTANT(bool, value = C); + typedef integral_c_tag tag; + typedef integral_c type; + typedef bool value_type; + operator bool() const { return this->value; } +}; +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +#endif + +#endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/integral_c_fwd.hpp b/external-libs/boost/boost/mpl/integral_c_fwd.hpp new file mode 100644 index 0000000..7f31579 --- /dev/null +++ b/external-libs/boost/boost/mpl/integral_c_fwd.hpp @@ -0,0 +1,32 @@ + +#ifndef BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED +#define BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2006 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2006-11-08 16:44:30 -0500 (Wed, 08 Nov 2006) $ +// $Revision: 35926 $ + +#include +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +#if BOOST_WORKAROUND(__HP_aCC, <= 53800) +// the type of non-type template arguments may not depend on template arguments +template< typename T, long N > struct integral_c; +#else +template< typename T, T N > struct integral_c; +#endif + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c) + +#endif // BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/integral_c_tag.hpp b/external-libs/boost/boost/mpl/integral_c_tag.hpp new file mode 100644 index 0000000..a2d621b --- /dev/null +++ b/external-libs/boost/boost/mpl/integral_c_tag.hpp @@ -0,0 +1,26 @@ + +#ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED +#define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-28 09:56:59 -0400 (Tue, 28 Sep 2004) $ +// $Revision: 25453 $ + + +#include +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); }; +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag) + +#endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/lambda.hpp b/external-libs/boost/boost/mpl/lambda.hpp new file mode 100644 index 0000000..c567c47 --- /dev/null +++ b/external-libs/boost/boost/mpl/lambda.hpp @@ -0,0 +1,29 @@ + +#ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED +#define BOOST_MPL_LAMBDA_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) +# include +#else +# include +# include +# define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS +#endif + +#endif // BOOST_MPL_LAMBDA_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/lambda_fwd.hpp b/external-libs/boost/boost/mpl/lambda_fwd.hpp new file mode 100644 index 0000000..27b4ae3 --- /dev/null +++ b/external-libs/boost/boost/mpl/lambda_fwd.hpp @@ -0,0 +1,57 @@ + +#ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED +#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) + +# include +# include +# include + +namespace boost { namespace mpl { + +template< + typename T = na + , typename Tag = void_ + BOOST_MPL_AUX_LAMBDA_ARITY_PARAM( + typename Arity = int_< aux::template_arity::value > + ) + > +struct lambda; + +}} + +#else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT + +# include + +namespace boost { namespace mpl { + +template< + typename T = na + , typename Tag = void_ + , typename Protect = true_ + > +struct lambda; + +}} + +#endif + +#endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/limits/arity.hpp b/external-libs/boost/boost/mpl/limits/arity.hpp new file mode 100644 index 0000000..74b9705 --- /dev/null +++ b/external-libs/boost/boost/mpl/limits/arity.hpp @@ -0,0 +1,21 @@ + +#ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED +#define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) +# define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5 +#endif + +#endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/next.hpp b/external-libs/boost/boost/mpl/next.hpp new file mode 100644 index 0000000..4638857 --- /dev/null +++ b/external-libs/boost/boost/mpl/next.hpp @@ -0,0 +1,19 @@ + +#ifndef BOOST_MPL_NEXT_HPP_INCLUDED +#define BOOST_MPL_NEXT_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +#endif // BOOST_MPL_NEXT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/next_prior.hpp b/external-libs/boost/boost/mpl/next_prior.hpp new file mode 100644 index 0000000..df5be9d --- /dev/null +++ b/external-libs/boost/boost/mpl/next_prior.hpp @@ -0,0 +1,49 @@ + +#ifndef BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED +#define BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-17 02:09:38 -0400 (Fri, 17 Sep 2004) $ +// $Revision: 25163 $ + +#include +#include +#include + +namespace boost { namespace mpl { + +BOOST_MPL_AUX_COMMON_NAME_WKND(next) +BOOST_MPL_AUX_COMMON_NAME_WKND(prior) + +template< + typename BOOST_MPL_AUX_NA_PARAM(T) + > +struct next +{ + typedef typename T::next type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T)) +}; + +template< + typename BOOST_MPL_AUX_NA_PARAM(T) + > +struct prior +{ + typedef typename T::prior type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T)) +}; + +BOOST_MPL_AUX_NA_SPEC(1, next) +BOOST_MPL_AUX_NA_SPEC(1, prior) + +}} + +#endif // BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/not.hpp b/external-libs/boost/boost/mpl/not.hpp new file mode 100644 index 0000000..dc633ec --- /dev/null +++ b/external-libs/boost/boost/mpl/not.hpp @@ -0,0 +1,51 @@ + +#ifndef BOOST_MPL_NOT_HPP_INCLUDED +#define BOOST_MPL_NOT_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include +#include +#include +#include + +namespace boost { namespace mpl { + +namespace aux { + +template< BOOST_MPL_AUX_NTTP_DECL(long, C_) > // 'long' is intentional here +struct not_impl + : bool_ +{ +}; + +} // namespace aux + + +template< + typename BOOST_MPL_AUX_NA_PARAM(T) + > +struct not_ + : aux::not_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T)) +}; + +BOOST_MPL_AUX_NA_SPEC(1,not_) + +}} + +#endif // BOOST_MPL_NOT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/or.hpp b/external-libs/boost/boost/mpl/or.hpp new file mode 100644 index 0000000..2df6fe6 --- /dev/null +++ b/external-libs/boost/boost/mpl/or.hpp @@ -0,0 +1,61 @@ + +#ifndef BOOST_MPL_OR_HPP_INCLUDED +#define BOOST_MPL_OR_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2007-11-25 13:07:19 -0500 (Sun, 25 Nov 2007) $ +// $Revision: 41369 $ + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# include +# include +# include +# include +# include + +// agurt, 19/may/04: workaround a conflict with header's +// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(or)' +// has to be checked in a separate condition, otherwise GCC complains +// about 'or' being an alternative token +#if defined(_MSC_VER) +#ifndef __GCCXML__ +#if defined(or) +# pragma push_macro("or") +# undef or +# define or(x) +#endif +#endif +#endif + +# define BOOST_MPL_PREPROCESSED_HEADER or.hpp +# include + +#if defined(_MSC_VER) +#ifndef __GCCXML__ +#if defined(or) +# pragma pop_macro("or") +#endif +#endif +#endif + +#else + +# define AUX778076_OP_NAME or_ +# define AUX778076_OP_VALUE1 true +# define AUX778076_OP_VALUE2 false +# include + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_OR_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/placeholders.hpp b/external-libs/boost/boost/mpl/placeholders.hpp new file mode 100644 index 0000000..f4ed032 --- /dev/null +++ b/external-libs/boost/boost/mpl/placeholders.hpp @@ -0,0 +1,100 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED +#define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// Copyright Peter Dimov 2001-2003 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-16 10:09:12 -0400 (Thu, 16 Sep 2004) $ +// $Revision: 25148 $ + + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include + +# if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) +# define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \ + using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \ + /**/ +# else +# define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/ +# endif + +#endif + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp +# include + +#else + +# include +# include +# include +# include + +// watch out for GNU gettext users, who #define _(x) +#if !defined(_) || defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN +typedef arg<-1> _; +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; +} + +}} +#endif + +/// agurt, 17/mar/02: one more placeholder for the last 'apply#' +/// specialization +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, )) +#include BOOST_PP_ITERATE() + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +typedef arg BOOST_PP_CAT(_,i_); + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +namespace boost { namespace mpl { + +BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(BOOST_PP_CAT(_,i_)) + +namespace placeholders { +using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::BOOST_PP_CAT(_,i_); +} + +}} + +#undef i_ +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/protect.hpp b/external-libs/boost/boost/mpl/protect.hpp new file mode 100644 index 0000000..bbc733f --- /dev/null +++ b/external-libs/boost/boost/mpl/protect.hpp @@ -0,0 +1,55 @@ + +#ifndef BOOST_MPL_PROTECT_HPP_INCLUDED +#define BOOST_MPL_PROTECT_HPP_INCLUDED + +// Copyright Peter Dimov 2001 +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-07 17:37:24 -0400 (Tue, 07 Sep 2004) $ +// $Revision: 24963 $ + +#include +#include +#include +#include + +namespace boost { namespace mpl { + +template< + typename BOOST_MPL_AUX_NA_PARAM(T) + , int not_le_ = 0 + > +struct protect : T +{ +#if BOOST_WORKAROUND(__EDG_VERSION__, == 238) + typedef mpl::protect type; +#else + typedef protect type; +#endif +}; + +#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) +namespace aux { +template< BOOST_MPL_AUX_NTTP_DECL(int, N), typename T > +struct arity< protect, N > + : arity +{ +}; +} // namespace aux +#endif + +BOOST_MPL_AUX_NA_SPEC_MAIN(1, protect) +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) +BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(1, 1, protect) +#endif + +}} + +#endif // BOOST_MPL_PROTECT_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/quote.hpp b/external-libs/boost/boost/mpl/quote.hpp new file mode 100644 index 0000000..fbedf6c --- /dev/null +++ b/external-libs/boost/boost/mpl/quote.hpp @@ -0,0 +1,140 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_QUOTE_HPP_INCLUDED +#define BOOST_MPL_QUOTE_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2000-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2006-05-02 23:27:58 -0400 (Tue, 02 May 2006) $ +// $Revision: 33913 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +# include +#endif + +#include + +#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) +# define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE +#endif + +#if !defined(BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS) \ + && defined(BOOST_MPL_CFG_NO_HAS_XXX) +# define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS +#endif + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER quote.hpp +# include + +#else + +# include +# include +# include +# include + +# include +# include + +#if !defined(BOOST_MPL_CFG_NO_QUOTE_TEMPLATE) + +namespace boost { namespace mpl { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< typename T, bool has_type_ > +struct quote_impl +// GCC has a problem with metafunction forwarding when T is a +// specialization of a template called 'type'. +# if BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4)) \ + && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(0)) \ + && BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, BOOST_TESTED_AT(2)) +{ + typedef typename T::type type; +}; +# else + : T +{ +}; +# endif + +template< typename T > +struct quote_impl +{ + typedef T type; +}; + +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +template< bool > struct quote_impl +{ + template< typename T > struct result_ + : T + { + }; +}; + +template<> struct quote_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +#endif + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() + +}} + +#endif // BOOST_MPL_CFG_NO_QUOTE_TEMPLATE + +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_QUOTE_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +template< + template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F + , typename Tag = void_ + > +struct BOOST_PP_CAT(quote,i_) +{ + template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + : quote_impl< + F< BOOST_MPL_PP_PARAMS(i_, U) > + , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value + > +#else + : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value > + ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > > +#endif + { + }; +}; + +#undef i_ +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/mpl/void.hpp b/external-libs/boost/boost/mpl/void.hpp new file mode 100644 index 0000000..8c19f8b --- /dev/null +++ b/external-libs/boost/boost/mpl/void.hpp @@ -0,0 +1,76 @@ + +#ifndef BOOST_MPL_VOID_HPP_INCLUDED +#define BOOST_MPL_VOID_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include +#include +#include +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +// [JDG Feb-4-2003] made void_ a complete type to allow it to be +// instantiated so that it can be passed in as an object that can be +// used to select an overloaded function. Possible use includes signaling +// a zero arity functor evaluation call. +struct void_ { typedef void_ type; }; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +namespace boost { namespace mpl { + +template< typename T > +struct is_void_ + : false_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using false_::value; +#endif +}; + +template<> +struct is_void_ + : true_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using true_::value; +#endif +}; + +template< typename T > +struct is_not_void_ + : true_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using true_::value; +#endif +}; + +template<> +struct is_not_void_ + : false_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) + using false_::value; +#endif +}; + +BOOST_MPL_AUX_NA_SPEC(1, is_void_) +BOOST_MPL_AUX_NA_SPEC(1, is_not_void_) + +}} + +#endif // BOOST_MPL_VOID_HPP_INCLUDED diff --git a/external-libs/boost/boost/mpl/void_fwd.hpp b/external-libs/boost/boost/mpl/void_fwd.hpp new file mode 100644 index 0000000..68cace7 --- /dev/null +++ b/external-libs/boost/boost/mpl/void_fwd.hpp @@ -0,0 +1,26 @@ + +#ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED +#define BOOST_MPL_VOID_FWD_HPP_INCLUDED + +// Copyright Aleksey Gurtovoy 2001-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +struct void_; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(void_) + +#endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED diff --git a/external-libs/boost/boost/noncopyable.hpp b/external-libs/boost/boost/noncopyable.hpp new file mode 100644 index 0000000..7770bdb --- /dev/null +++ b/external-libs/boost/boost/noncopyable.hpp @@ -0,0 +1,36 @@ +// Boost noncopyable.hpp header file --------------------------------------// + +// (C) Copyright Beman Dawes 1999-2003. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/utility for documentation. + +#ifndef BOOST_NONCOPYABLE_HPP_INCLUDED +#define BOOST_NONCOPYABLE_HPP_INCLUDED + +namespace boost { + +// Private copy constructor and copy assignment ensure classes derived from +// class noncopyable cannot be copied. + +// Contributed by Dave Abrahams + +namespace noncopyable_ // protection from unintended ADL +{ + class noncopyable + { + protected: + noncopyable() {} + ~noncopyable() {} + private: // emphasize the following members are private + noncopyable( const noncopyable& ); + const noncopyable& operator=( const noncopyable& ); + }; +} + +typedef noncopyable_::noncopyable noncopyable; + +} // namespace boost + +#endif // BOOST_NONCOPYABLE_HPP_INCLUDED diff --git a/external-libs/boost/boost/operators.hpp b/external-libs/boost/boost/operators.hpp new file mode 100644 index 0000000..b3b1bd7 --- /dev/null +++ b/external-libs/boost/boost/operators.hpp @@ -0,0 +1,943 @@ +// Boost operators.hpp header file ----------------------------------------// + +// (C) Copyright David Abrahams, Jeremy Siek, Daryle Walker 1999-2001. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/utility/operators.htm for documentation. + +// Revision History +// 24 May 07 Changed empty_base to depend on T, see +// http://svn.boost.org/trac/boost/ticket/979 +// 21 Oct 02 Modified implementation of operators to allow compilers with a +// correct named return value optimization (NRVO) to produce optimal +// code. (Daniel Frey) +// 02 Dec 01 Bug fixed in random_access_iteratable. (Helmut Zeisel) +// 28 Sep 01 Factored out iterator operator groups. (Daryle Walker) +// 27 Aug 01 'left' form for non commutative operators added; +// additional classes for groups of related operators added; +// workaround for empty base class optimization +// bug of GCC 3.0 (Helmut Zeisel) +// 25 Jun 01 output_iterator_helper changes: removed default template +// parameters, added support for self-proxying, additional +// documentation and tests (Aleksey Gurtovoy) +// 29 May 01 Added operator classes for << and >>. Added input and output +// iterator helper classes. Added classes to connect equality and +// relational operators. Added classes for groups of related +// operators. Reimplemented example operator and iterator helper +// classes in terms of the new groups. (Daryle Walker, with help +// from Alexy Gurtovoy) +// 11 Feb 01 Fixed bugs in the iterator helpers which prevented explicitly +// supplied arguments from actually being used (Dave Abrahams) +// 04 Jul 00 Fixed NO_OPERATORS_IN_NAMESPACE bugs, major cleanup and +// refactoring of compiler workarounds, additional documentation +// (Alexy Gurtovoy and Mark Rodgers with some help and prompting from +// Dave Abrahams) +// 28 Jun 00 General cleanup and integration of bugfixes from Mark Rodgers and +// Jeremy Siek (Dave Abrahams) +// 20 Jun 00 Changes to accommodate Borland C++Builder 4 and Borland C++ 5.5 +// (Mark Rodgers) +// 20 Jun 00 Minor fixes to the prior revision (Aleksey Gurtovoy) +// 10 Jun 00 Support for the base class chaining technique was added +// (Aleksey Gurtovoy). See documentation and the comments below +// for the details. +// 12 Dec 99 Initial version with iterator operators (Jeremy Siek) +// 18 Nov 99 Change name "divideable" to "dividable", remove unnecessary +// specializations of dividable, subtractable, modable (Ed Brey) +// 17 Nov 99 Add comments (Beman Dawes) +// Remove unnecessary specialization of operators<> (Ed Brey) +// 15 Nov 99 Fix less_than_comparable second operand type for first two +// operators.(Beman Dawes) +// 12 Nov 99 Add operators templates (Ed Brey) +// 11 Nov 99 Add single template parameter version for compilers without +// partial specialization (Beman Dawes) +// 10 Nov 99 Initial version + +// 10 Jun 00: +// An additional optional template parameter was added to most of +// operator templates to support the base class chaining technique (see +// documentation for the details). Unfortunately, a straightforward +// implementation of this change would have broken compatibility with the +// previous version of the library by making it impossible to use the same +// template name (e.g. 'addable') for both the 1- and 2-argument versions of +// an operator template. This implementation solves the backward-compatibility +// issue at the cost of some simplicity. +// +// One of the complications is an existence of special auxiliary class template +// 'is_chained_base<>' (see 'detail' namespace below), which is used +// to determine whether its template parameter is a library's operator template +// or not. You have to specialize 'is_chained_base<>' for each new +// operator template you add to the library. +// +// However, most of the non-trivial implementation details are hidden behind +// several local macros defined below, and as soon as you understand them, +// you understand the whole library implementation. + +#ifndef BOOST_OPERATORS_HPP +#define BOOST_OPERATORS_HPP + +#include +#include +#include + +#if defined(__sgi) && !defined(__GNUC__) +# pragma set woff 1234 +#endif + +#if defined(BOOST_MSVC) +# pragma warning( disable : 4284 ) // complaint about return type of +#endif // operator-> not begin a UDT + +namespace boost { +namespace detail { + +template class empty_base { + +// Helmut Zeisel, empty base class optimization bug with GCC 3.0.0 +#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==0 && __GNU_PATCHLEVEL__==0 + bool dummy; +#endif + +}; + +} // namespace detail +} // namespace boost + +// In this section we supply the xxxx1 and xxxx2 forms of the operator +// templates, which are explicitly targeted at the 1-type-argument and +// 2-type-argument operator forms, respectively. Some compilers get confused +// when inline friend functions are overloaded in namespaces other than the +// global namespace. When BOOST_NO_OPERATORS_IN_NAMESPACE is defined, all of +// these templates must go in the global namespace. + +#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE +namespace boost +{ +#endif + +// Basic operator classes (contributed by Dave Abrahams) ------------------// + +// Note that friend functions defined in a class are implicitly inline. +// See the C++ std, 11.4 [class.friend] paragraph 5 + +template > +struct less_than_comparable2 : B +{ + friend bool operator<=(const T& x, const U& y) { return !(x > y); } + friend bool operator>=(const T& x, const U& y) { return !(x < y); } + friend bool operator>(const U& x, const T& y) { return y < x; } + friend bool operator<(const U& x, const T& y) { return y > x; } + friend bool operator<=(const U& x, const T& y) { return !(y < x); } + friend bool operator>=(const U& x, const T& y) { return !(y > x); } +}; + +template > +struct less_than_comparable1 : B +{ + friend bool operator>(const T& x, const T& y) { return y < x; } + friend bool operator<=(const T& x, const T& y) { return !(y < x); } + friend bool operator>=(const T& x, const T& y) { return !(x < y); } +}; + +template > +struct equality_comparable2 : B +{ + friend bool operator==(const U& y, const T& x) { return x == y; } + friend bool operator!=(const U& y, const T& x) { return !(x == y); } + friend bool operator!=(const T& y, const U& x) { return !(y == x); } +}; + +template > +struct equality_comparable1 : B +{ + friend bool operator!=(const T& x, const T& y) { return !(x == y); } +}; + +// A macro which produces "name_2left" from "name". +#define BOOST_OPERATOR2_LEFT(name) name##2##_##left + +// NRVO-friendly implementation (contributed by Daniel Frey) ---------------// + +#if defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) + +// This is the optimal implementation for ISO/ANSI C++, +// but it requires the compiler to implement the NRVO. +// If the compiler has no NRVO, this is the best symmetric +// implementation available. + +#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \ +template > \ +struct NAME##2 : B \ +{ \ + friend T operator OP( const T& lhs, const U& rhs ) \ + { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ + friend T operator OP( const U& lhs, const T& rhs ) \ + { T nrv( rhs ); nrv OP##= lhs; return nrv; } \ +}; \ + \ +template > \ +struct NAME##1 : B \ +{ \ + friend T operator OP( const T& lhs, const T& rhs ) \ + { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ +}; + +#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \ +template > \ +struct NAME##2 : B \ +{ \ + friend T operator OP( const T& lhs, const U& rhs ) \ + { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ +}; \ + \ +template > \ +struct BOOST_OPERATOR2_LEFT(NAME) : B \ +{ \ + friend T operator OP( const U& lhs, const T& rhs ) \ + { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ +}; \ + \ +template > \ +struct NAME##1 : B \ +{ \ + friend T operator OP( const T& lhs, const T& rhs ) \ + { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ +}; + +#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) + +// For compilers without NRVO the following code is optimal, but not +// symmetric! Note that the implementation of +// BOOST_OPERATOR2_LEFT(NAME) only looks cool, but doesn't provide +// optimization opportunities to the compiler :) + +#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \ +template > \ +struct NAME##2 : B \ +{ \ + friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \ + friend T operator OP( const U& lhs, T rhs ) { return rhs OP##= lhs; } \ +}; \ + \ +template > \ +struct NAME##1 : B \ +{ \ + friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \ +}; + +#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \ +template > \ +struct NAME##2 : B \ +{ \ + friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \ +}; \ + \ +template > \ +struct BOOST_OPERATOR2_LEFT(NAME) : B \ +{ \ + friend T operator OP( const U& lhs, const T& rhs ) \ + { return T( lhs ) OP##= rhs; } \ +}; \ + \ +template > \ +struct NAME##1 : B \ +{ \ + friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \ +}; + +#endif // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) + +BOOST_BINARY_OPERATOR_COMMUTATIVE( multipliable, * ) +BOOST_BINARY_OPERATOR_COMMUTATIVE( addable, + ) +BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( subtractable, - ) +BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( dividable, / ) +BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( modable, % ) +BOOST_BINARY_OPERATOR_COMMUTATIVE( xorable, ^ ) +BOOST_BINARY_OPERATOR_COMMUTATIVE( andable, & ) +BOOST_BINARY_OPERATOR_COMMUTATIVE( orable, | ) + +#undef BOOST_BINARY_OPERATOR_COMMUTATIVE +#undef BOOST_BINARY_OPERATOR_NON_COMMUTATIVE +#undef BOOST_OPERATOR2_LEFT + +// incrementable and decrementable contributed by Jeremy Siek + +template > +struct incrementable : B +{ + friend T operator++(T& x, int) + { + incrementable_type nrv(x); + ++x; + return nrv; + } +private: // The use of this typedef works around a Borland bug + typedef T incrementable_type; +}; + +template > +struct decrementable : B +{ + friend T operator--(T& x, int) + { + decrementable_type nrv(x); + --x; + return nrv; + } +private: // The use of this typedef works around a Borland bug + typedef T decrementable_type; +}; + +// Iterator operator classes (contributed by Jeremy Siek) ------------------// + +template > +struct dereferenceable : B +{ + P operator->() const + { + return &*static_cast(*this); + } +}; + +template > +struct indexable : B +{ + R operator[](I n) const + { + return *(static_cast(*this) + n); + } +}; + +// More operator classes (contributed by Daryle Walker) --------------------// +// (NRVO-friendly implementation contributed by Daniel Frey) ---------------// + +#if defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) + +#define BOOST_BINARY_OPERATOR( NAME, OP ) \ +template > \ +struct NAME##2 : B \ +{ \ + friend T operator OP( const T& lhs, const U& rhs ) \ + { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ +}; \ + \ +template > \ +struct NAME##1 : B \ +{ \ + friend T operator OP( const T& lhs, const T& rhs ) \ + { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ +}; + +#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) + +#define BOOST_BINARY_OPERATOR( NAME, OP ) \ +template > \ +struct NAME##2 : B \ +{ \ + friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \ +}; \ + \ +template > \ +struct NAME##1 : B \ +{ \ + friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \ +}; + +#endif // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) + +BOOST_BINARY_OPERATOR( left_shiftable, << ) +BOOST_BINARY_OPERATOR( right_shiftable, >> ) + +#undef BOOST_BINARY_OPERATOR + +template > +struct equivalent2 : B +{ + friend bool operator==(const T& x, const U& y) + { + return !(x < y) && !(x > y); + } +}; + +template > +struct equivalent1 : B +{ + friend bool operator==(const T&x, const T&y) + { + return !(x < y) && !(y < x); + } +}; + +template > +struct partially_ordered2 : B +{ + friend bool operator<=(const T& x, const U& y) + { return (x < y) || (x == y); } + friend bool operator>=(const T& x, const U& y) + { return (x > y) || (x == y); } + friend bool operator>(const U& x, const T& y) + { return y < x; } + friend bool operator<(const U& x, const T& y) + { return y > x; } + friend bool operator<=(const U& x, const T& y) + { return (y > x) || (y == x); } + friend bool operator>=(const U& x, const T& y) + { return (y < x) || (y == x); } +}; + +template > +struct partially_ordered1 : B +{ + friend bool operator>(const T& x, const T& y) + { return y < x; } + friend bool operator<=(const T& x, const T& y) + { return (x < y) || (x == y); } + friend bool operator>=(const T& x, const T& y) + { return (y < x) || (x == y); } +}; + +// Combined operator classes (contributed by Daryle Walker) ----------------// + +template > +struct totally_ordered2 + : less_than_comparable2 > {}; + +template > +struct totally_ordered1 + : less_than_comparable1 > {}; + +template > +struct additive2 + : addable2 > {}; + +template > +struct additive1 + : addable1 > {}; + +template > +struct multiplicative2 + : multipliable2 > {}; + +template > +struct multiplicative1 + : multipliable1 > {}; + +template > +struct integer_multiplicative2 + : multiplicative2 > {}; + +template > +struct integer_multiplicative1 + : multiplicative1 > {}; + +template > +struct arithmetic2 + : additive2 > {}; + +template > +struct arithmetic1 + : additive1 > {}; + +template > +struct integer_arithmetic2 + : additive2 > {}; + +template > +struct integer_arithmetic1 + : additive1 > {}; + +template > +struct bitwise2 + : xorable2 > > {}; + +template > +struct bitwise1 + : xorable1 > > {}; + +template > +struct unit_steppable + : incrementable > {}; + +template > +struct shiftable2 + : left_shiftable2 > {}; + +template > +struct shiftable1 + : left_shiftable1 > {}; + +template > +struct ring_operators2 + : additive2 > > {}; + +template > +struct ring_operators1 + : additive1 > {}; + +template > +struct ordered_ring_operators2 + : ring_operators2 > {}; + +template > +struct ordered_ring_operators1 + : ring_operators1 > {}; + +template > +struct field_operators2 + : ring_operators2 > > {}; + +template > +struct field_operators1 + : ring_operators1 > {}; + +template > +struct ordered_field_operators2 + : field_operators2 > {}; + +template > +struct ordered_field_operators1 + : field_operators1 > {}; + +template > +struct euclidian_ring_operators2 + : ring_operators2 > > > > {}; + +template > +struct euclidian_ring_operators1 + : ring_operators1 > > {}; + +template > +struct ordered_euclidian_ring_operators2 + : totally_ordered2 > {}; + +template > +struct ordered_euclidian_ring_operators1 + : totally_ordered1 > {}; + +template > +struct input_iteratable + : equality_comparable1 > > {}; + +template > +struct output_iteratable + : incrementable {}; + +template > +struct forward_iteratable + : input_iteratable {}; + +template > +struct bidirectional_iteratable + : forward_iteratable > {}; + +// To avoid repeated derivation from equality_comparable, +// which is an indirect base class of bidirectional_iterable, +// random_access_iteratable must not be derived from totally_ordered1 +// but from less_than_comparable1 only. (Helmut Zeisel, 02-Dec-2001) +template > +struct random_access_iteratable + : bidirectional_iteratable > > > {}; + +#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE +} // namespace boost +#endif // BOOST_NO_OPERATORS_IN_NAMESPACE + + +// BOOST_IMPORT_TEMPLATE1 .. BOOST_IMPORT_TEMPLATE4 - +// +// When BOOST_NO_OPERATORS_IN_NAMESPACE is defined we need a way to import an +// operator template into the boost namespace. BOOST_IMPORT_TEMPLATE1 is used +// for one-argument forms of operator templates; BOOST_IMPORT_TEMPLATE2 for +// two-argument forms. Note that these macros expect to be invoked from within +// boost. + +#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE + + // The template is already in boost so we have nothing to do. +# define BOOST_IMPORT_TEMPLATE4(template_name) +# define BOOST_IMPORT_TEMPLATE3(template_name) +# define BOOST_IMPORT_TEMPLATE2(template_name) +# define BOOST_IMPORT_TEMPLATE1(template_name) + +#else // BOOST_NO_OPERATORS_IN_NAMESPACE + +# ifndef BOOST_NO_USING_TEMPLATE + + // Bring the names in with a using-declaration + // to avoid stressing the compiler. +# define BOOST_IMPORT_TEMPLATE4(template_name) using ::template_name; +# define BOOST_IMPORT_TEMPLATE3(template_name) using ::template_name; +# define BOOST_IMPORT_TEMPLATE2(template_name) using ::template_name; +# define BOOST_IMPORT_TEMPLATE1(template_name) using ::template_name; + +# else + + // Otherwise, because a Borland C++ 5.5 bug prevents a using declaration + // from working, we are forced to use inheritance for that compiler. +# define BOOST_IMPORT_TEMPLATE4(template_name) \ + template > \ + struct template_name : ::template_name {}; + +# define BOOST_IMPORT_TEMPLATE3(template_name) \ + template > \ + struct template_name : ::template_name {}; + +# define BOOST_IMPORT_TEMPLATE2(template_name) \ + template > \ + struct template_name : ::template_name {}; + +# define BOOST_IMPORT_TEMPLATE1(template_name) \ + template > \ + struct template_name : ::template_name {}; + +# endif // BOOST_NO_USING_TEMPLATE + +#endif // BOOST_NO_OPERATORS_IN_NAMESPACE + +// +// Here's where we put it all together, defining the xxxx forms of the templates +// in namespace boost. We also define specializations of is_chained_base<> for +// the xxxx, xxxx1, and xxxx2 templates, importing them into boost:: as +// necessary. +// +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +// is_chained_base<> - a traits class used to distinguish whether an operator +// template argument is being used for base class chaining, or is specifying a +// 2nd argument type. + +namespace boost { +// A type parameter is used instead of a plain bool because Borland's compiler +// didn't cope well with the more obvious non-type template parameter. +namespace detail { + struct true_t {}; + struct false_t {}; +} // namespace detail + +// Unspecialized version assumes that most types are not being used for base +// class chaining. We specialize for the operator templates defined in this +// library. +template struct is_chained_base { + typedef ::boost::detail::false_t value; +}; + +} // namespace boost + +// Import a 4-type-argument operator template into boost (if necessary) and +// provide a specialization of 'is_chained_base<>' for it. +# define BOOST_OPERATOR_TEMPLATE4(template_name4) \ + BOOST_IMPORT_TEMPLATE4(template_name4) \ + template \ + struct is_chained_base< ::boost::template_name4 > { \ + typedef ::boost::detail::true_t value; \ + }; + +// Import a 3-type-argument operator template into boost (if necessary) and +// provide a specialization of 'is_chained_base<>' for it. +# define BOOST_OPERATOR_TEMPLATE3(template_name3) \ + BOOST_IMPORT_TEMPLATE3(template_name3) \ + template \ + struct is_chained_base< ::boost::template_name3 > { \ + typedef ::boost::detail::true_t value; \ + }; + +// Import a 2-type-argument operator template into boost (if necessary) and +// provide a specialization of 'is_chained_base<>' for it. +# define BOOST_OPERATOR_TEMPLATE2(template_name2) \ + BOOST_IMPORT_TEMPLATE2(template_name2) \ + template \ + struct is_chained_base< ::boost::template_name2 > { \ + typedef ::boost::detail::true_t value; \ + }; + +// Import a 1-type-argument operator template into boost (if necessary) and +// provide a specialization of 'is_chained_base<>' for it. +# define BOOST_OPERATOR_TEMPLATE1(template_name1) \ + BOOST_IMPORT_TEMPLATE1(template_name1) \ + template \ + struct is_chained_base< ::boost::template_name1 > { \ + typedef ::boost::detail::true_t value; \ + }; + +// BOOST_OPERATOR_TEMPLATE(template_name) defines template_name<> such that it +// can be used for specifying both 1-argument and 2-argument forms. Requires the +// existence of two previously defined class templates named '1' +// and '2' which must implement the corresponding 1- and 2- +// argument forms. +// +// The template type parameter O == is_chained_base::value is used to +// distinguish whether the 2nd argument to is being used for +// base class chaining from another boost operator template or is describing a +// 2nd operand type. O == true_t only when U is actually an another operator +// template from the library. Partial specialization is used to select an +// implementation in terms of either '1' or '2'. +// + +# define BOOST_OPERATOR_TEMPLATE(template_name) \ +template \ + ,class O = typename is_chained_base::value \ + > \ +struct template_name : template_name##2 {}; \ + \ +template \ +struct template_name \ + : template_name##1 {}; \ + \ +template \ +struct template_name \ + : template_name##1 {}; \ + \ +template \ +struct is_chained_base< ::boost::template_name > { \ + typedef ::boost::detail::true_t value; \ +}; \ + \ +BOOST_OPERATOR_TEMPLATE2(template_name##2) \ +BOOST_OPERATOR_TEMPLATE1(template_name##1) + + +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +# define BOOST_OPERATOR_TEMPLATE4(template_name4) \ + BOOST_IMPORT_TEMPLATE4(template_name4) +# define BOOST_OPERATOR_TEMPLATE3(template_name3) \ + BOOST_IMPORT_TEMPLATE3(template_name3) +# define BOOST_OPERATOR_TEMPLATE2(template_name2) \ + BOOST_IMPORT_TEMPLATE2(template_name2) +# define BOOST_OPERATOR_TEMPLATE1(template_name1) \ + BOOST_IMPORT_TEMPLATE1(template_name1) + + // In this case we can only assume that template_name<> is equivalent to the + // more commonly needed template_name1<> form. +# define BOOST_OPERATOR_TEMPLATE(template_name) \ + template > \ + struct template_name : template_name##1 {}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +namespace boost { + +BOOST_OPERATOR_TEMPLATE(less_than_comparable) +BOOST_OPERATOR_TEMPLATE(equality_comparable) +BOOST_OPERATOR_TEMPLATE(multipliable) +BOOST_OPERATOR_TEMPLATE(addable) +BOOST_OPERATOR_TEMPLATE(subtractable) +BOOST_OPERATOR_TEMPLATE2(subtractable2_left) +BOOST_OPERATOR_TEMPLATE(dividable) +BOOST_OPERATOR_TEMPLATE2(dividable2_left) +BOOST_OPERATOR_TEMPLATE(modable) +BOOST_OPERATOR_TEMPLATE2(modable2_left) +BOOST_OPERATOR_TEMPLATE(xorable) +BOOST_OPERATOR_TEMPLATE(andable) +BOOST_OPERATOR_TEMPLATE(orable) + +BOOST_OPERATOR_TEMPLATE1(incrementable) +BOOST_OPERATOR_TEMPLATE1(decrementable) + +BOOST_OPERATOR_TEMPLATE2(dereferenceable) +BOOST_OPERATOR_TEMPLATE3(indexable) + +BOOST_OPERATOR_TEMPLATE(left_shiftable) +BOOST_OPERATOR_TEMPLATE(right_shiftable) +BOOST_OPERATOR_TEMPLATE(equivalent) +BOOST_OPERATOR_TEMPLATE(partially_ordered) + +BOOST_OPERATOR_TEMPLATE(totally_ordered) +BOOST_OPERATOR_TEMPLATE(additive) +BOOST_OPERATOR_TEMPLATE(multiplicative) +BOOST_OPERATOR_TEMPLATE(integer_multiplicative) +BOOST_OPERATOR_TEMPLATE(arithmetic) +BOOST_OPERATOR_TEMPLATE(integer_arithmetic) +BOOST_OPERATOR_TEMPLATE(bitwise) +BOOST_OPERATOR_TEMPLATE1(unit_steppable) +BOOST_OPERATOR_TEMPLATE(shiftable) +BOOST_OPERATOR_TEMPLATE(ring_operators) +BOOST_OPERATOR_TEMPLATE(ordered_ring_operators) +BOOST_OPERATOR_TEMPLATE(field_operators) +BOOST_OPERATOR_TEMPLATE(ordered_field_operators) +BOOST_OPERATOR_TEMPLATE(euclidian_ring_operators) +BOOST_OPERATOR_TEMPLATE(ordered_euclidian_ring_operators) +BOOST_OPERATOR_TEMPLATE2(input_iteratable) +BOOST_OPERATOR_TEMPLATE1(output_iteratable) +BOOST_OPERATOR_TEMPLATE2(forward_iteratable) +BOOST_OPERATOR_TEMPLATE2(bidirectional_iteratable) +BOOST_OPERATOR_TEMPLATE4(random_access_iteratable) + +#undef BOOST_OPERATOR_TEMPLATE +#undef BOOST_OPERATOR_TEMPLATE4 +#undef BOOST_OPERATOR_TEMPLATE3 +#undef BOOST_OPERATOR_TEMPLATE2 +#undef BOOST_OPERATOR_TEMPLATE1 +#undef BOOST_IMPORT_TEMPLATE1 +#undef BOOST_IMPORT_TEMPLATE2 +#undef BOOST_IMPORT_TEMPLATE3 +#undef BOOST_IMPORT_TEMPLATE4 + +// The following 'operators' classes can only be used portably if the derived class +// declares ALL of the required member operators. +template +struct operators2 + : totally_ordered2 > > {}; + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template +struct operators : operators2 {}; + +template struct operators +#else +template struct operators +#endif + : totally_ordered > > > {}; + +// Iterator helper classes (contributed by Jeremy Siek) -------------------// +// (Input and output iterator helpers contributed by Daryle Walker) -------// +// (Changed to use combined operator classes by Daryle Walker) ------------// +template +struct input_iterator_helper + : input_iteratable > {}; + +template +struct output_iterator_helper + : output_iteratable > +{ + T& operator*() { return static_cast(*this); } + T& operator++() { return static_cast(*this); } +}; + +template +struct forward_iterator_helper + : forward_iteratable > {}; + +template +struct bidirectional_iterator_helper + : bidirectional_iteratable > {}; + +template +struct random_access_iterator_helper + : random_access_iteratable > +{ + friend D requires_difference_operator(const T& x, const T& y) { + return x - y; + } +}; // random_access_iterator_helper + +} // namespace boost + +#if defined(__sgi) && !defined(__GNUC__) +#pragma reset woff 1234 +#endif + +#endif // BOOST_OPERATORS_HPP diff --git a/external-libs/boost/boost/preprocessor/arithmetic/add.hpp b/external-libs/boost/boost/preprocessor/arithmetic/add.hpp new file mode 100644 index 0000000..5a29f55 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/arithmetic/add.hpp @@ -0,0 +1,51 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP +# define BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP +# +# include +# include +# include +# include +# include +# +# /* BOOST_PP_ADD */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_ADD(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) +# else +# define BOOST_PP_ADD(x, y) BOOST_PP_ADD_I(x, y) +# define BOOST_PP_ADD_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) +# endif +# +# define BOOST_PP_ADD_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy) +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I xy +# else +# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy)) +# endif +# +# define BOOST_PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y)) +# +# /* BOOST_PP_ADD_D */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_ADD_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) +# else +# define BOOST_PP_ADD_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y) +# define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/arithmetic/dec.hpp b/external-libs/boost/boost/preprocessor/arithmetic/dec.hpp new file mode 100644 index 0000000..0503359 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/arithmetic/dec.hpp @@ -0,0 +1,288 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP +# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP +# +# include +# +# /* BOOST_PP_DEC */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_DEC(x) BOOST_PP_DEC_I(x) +# else +# define BOOST_PP_DEC(x) BOOST_PP_DEC_OO((x)) +# define BOOST_PP_DEC_OO(par) BOOST_PP_DEC_I ## par +# endif +# +# define BOOST_PP_DEC_I(x) BOOST_PP_DEC_ ## x +# +# define BOOST_PP_DEC_0 0 +# define BOOST_PP_DEC_1 0 +# define BOOST_PP_DEC_2 1 +# define BOOST_PP_DEC_3 2 +# define BOOST_PP_DEC_4 3 +# define BOOST_PP_DEC_5 4 +# define BOOST_PP_DEC_6 5 +# define BOOST_PP_DEC_7 6 +# define BOOST_PP_DEC_8 7 +# define BOOST_PP_DEC_9 8 +# define BOOST_PP_DEC_10 9 +# define BOOST_PP_DEC_11 10 +# define BOOST_PP_DEC_12 11 +# define BOOST_PP_DEC_13 12 +# define BOOST_PP_DEC_14 13 +# define BOOST_PP_DEC_15 14 +# define BOOST_PP_DEC_16 15 +# define BOOST_PP_DEC_17 16 +# define BOOST_PP_DEC_18 17 +# define BOOST_PP_DEC_19 18 +# define BOOST_PP_DEC_20 19 +# define BOOST_PP_DEC_21 20 +# define BOOST_PP_DEC_22 21 +# define BOOST_PP_DEC_23 22 +# define BOOST_PP_DEC_24 23 +# define BOOST_PP_DEC_25 24 +# define BOOST_PP_DEC_26 25 +# define BOOST_PP_DEC_27 26 +# define BOOST_PP_DEC_28 27 +# define BOOST_PP_DEC_29 28 +# define BOOST_PP_DEC_30 29 +# define BOOST_PP_DEC_31 30 +# define BOOST_PP_DEC_32 31 +# define BOOST_PP_DEC_33 32 +# define BOOST_PP_DEC_34 33 +# define BOOST_PP_DEC_35 34 +# define BOOST_PP_DEC_36 35 +# define BOOST_PP_DEC_37 36 +# define BOOST_PP_DEC_38 37 +# define BOOST_PP_DEC_39 38 +# define BOOST_PP_DEC_40 39 +# define BOOST_PP_DEC_41 40 +# define BOOST_PP_DEC_42 41 +# define BOOST_PP_DEC_43 42 +# define BOOST_PP_DEC_44 43 +# define BOOST_PP_DEC_45 44 +# define BOOST_PP_DEC_46 45 +# define BOOST_PP_DEC_47 46 +# define BOOST_PP_DEC_48 47 +# define BOOST_PP_DEC_49 48 +# define BOOST_PP_DEC_50 49 +# define BOOST_PP_DEC_51 50 +# define BOOST_PP_DEC_52 51 +# define BOOST_PP_DEC_53 52 +# define BOOST_PP_DEC_54 53 +# define BOOST_PP_DEC_55 54 +# define BOOST_PP_DEC_56 55 +# define BOOST_PP_DEC_57 56 +# define BOOST_PP_DEC_58 57 +# define BOOST_PP_DEC_59 58 +# define BOOST_PP_DEC_60 59 +# define BOOST_PP_DEC_61 60 +# define BOOST_PP_DEC_62 61 +# define BOOST_PP_DEC_63 62 +# define BOOST_PP_DEC_64 63 +# define BOOST_PP_DEC_65 64 +# define BOOST_PP_DEC_66 65 +# define BOOST_PP_DEC_67 66 +# define BOOST_PP_DEC_68 67 +# define BOOST_PP_DEC_69 68 +# define BOOST_PP_DEC_70 69 +# define BOOST_PP_DEC_71 70 +# define BOOST_PP_DEC_72 71 +# define BOOST_PP_DEC_73 72 +# define BOOST_PP_DEC_74 73 +# define BOOST_PP_DEC_75 74 +# define BOOST_PP_DEC_76 75 +# define BOOST_PP_DEC_77 76 +# define BOOST_PP_DEC_78 77 +# define BOOST_PP_DEC_79 78 +# define BOOST_PP_DEC_80 79 +# define BOOST_PP_DEC_81 80 +# define BOOST_PP_DEC_82 81 +# define BOOST_PP_DEC_83 82 +# define BOOST_PP_DEC_84 83 +# define BOOST_PP_DEC_85 84 +# define BOOST_PP_DEC_86 85 +# define BOOST_PP_DEC_87 86 +# define BOOST_PP_DEC_88 87 +# define BOOST_PP_DEC_89 88 +# define BOOST_PP_DEC_90 89 +# define BOOST_PP_DEC_91 90 +# define BOOST_PP_DEC_92 91 +# define BOOST_PP_DEC_93 92 +# define BOOST_PP_DEC_94 93 +# define BOOST_PP_DEC_95 94 +# define BOOST_PP_DEC_96 95 +# define BOOST_PP_DEC_97 96 +# define BOOST_PP_DEC_98 97 +# define BOOST_PP_DEC_99 98 +# define BOOST_PP_DEC_100 99 +# define BOOST_PP_DEC_101 100 +# define BOOST_PP_DEC_102 101 +# define BOOST_PP_DEC_103 102 +# define BOOST_PP_DEC_104 103 +# define BOOST_PP_DEC_105 104 +# define BOOST_PP_DEC_106 105 +# define BOOST_PP_DEC_107 106 +# define BOOST_PP_DEC_108 107 +# define BOOST_PP_DEC_109 108 +# define BOOST_PP_DEC_110 109 +# define BOOST_PP_DEC_111 110 +# define BOOST_PP_DEC_112 111 +# define BOOST_PP_DEC_113 112 +# define BOOST_PP_DEC_114 113 +# define BOOST_PP_DEC_115 114 +# define BOOST_PP_DEC_116 115 +# define BOOST_PP_DEC_117 116 +# define BOOST_PP_DEC_118 117 +# define BOOST_PP_DEC_119 118 +# define BOOST_PP_DEC_120 119 +# define BOOST_PP_DEC_121 120 +# define BOOST_PP_DEC_122 121 +# define BOOST_PP_DEC_123 122 +# define BOOST_PP_DEC_124 123 +# define BOOST_PP_DEC_125 124 +# define BOOST_PP_DEC_126 125 +# define BOOST_PP_DEC_127 126 +# define BOOST_PP_DEC_128 127 +# define BOOST_PP_DEC_129 128 +# define BOOST_PP_DEC_130 129 +# define BOOST_PP_DEC_131 130 +# define BOOST_PP_DEC_132 131 +# define BOOST_PP_DEC_133 132 +# define BOOST_PP_DEC_134 133 +# define BOOST_PP_DEC_135 134 +# define BOOST_PP_DEC_136 135 +# define BOOST_PP_DEC_137 136 +# define BOOST_PP_DEC_138 137 +# define BOOST_PP_DEC_139 138 +# define BOOST_PP_DEC_140 139 +# define BOOST_PP_DEC_141 140 +# define BOOST_PP_DEC_142 141 +# define BOOST_PP_DEC_143 142 +# define BOOST_PP_DEC_144 143 +# define BOOST_PP_DEC_145 144 +# define BOOST_PP_DEC_146 145 +# define BOOST_PP_DEC_147 146 +# define BOOST_PP_DEC_148 147 +# define BOOST_PP_DEC_149 148 +# define BOOST_PP_DEC_150 149 +# define BOOST_PP_DEC_151 150 +# define BOOST_PP_DEC_152 151 +# define BOOST_PP_DEC_153 152 +# define BOOST_PP_DEC_154 153 +# define BOOST_PP_DEC_155 154 +# define BOOST_PP_DEC_156 155 +# define BOOST_PP_DEC_157 156 +# define BOOST_PP_DEC_158 157 +# define BOOST_PP_DEC_159 158 +# define BOOST_PP_DEC_160 159 +# define BOOST_PP_DEC_161 160 +# define BOOST_PP_DEC_162 161 +# define BOOST_PP_DEC_163 162 +# define BOOST_PP_DEC_164 163 +# define BOOST_PP_DEC_165 164 +# define BOOST_PP_DEC_166 165 +# define BOOST_PP_DEC_167 166 +# define BOOST_PP_DEC_168 167 +# define BOOST_PP_DEC_169 168 +# define BOOST_PP_DEC_170 169 +# define BOOST_PP_DEC_171 170 +# define BOOST_PP_DEC_172 171 +# define BOOST_PP_DEC_173 172 +# define BOOST_PP_DEC_174 173 +# define BOOST_PP_DEC_175 174 +# define BOOST_PP_DEC_176 175 +# define BOOST_PP_DEC_177 176 +# define BOOST_PP_DEC_178 177 +# define BOOST_PP_DEC_179 178 +# define BOOST_PP_DEC_180 179 +# define BOOST_PP_DEC_181 180 +# define BOOST_PP_DEC_182 181 +# define BOOST_PP_DEC_183 182 +# define BOOST_PP_DEC_184 183 +# define BOOST_PP_DEC_185 184 +# define BOOST_PP_DEC_186 185 +# define BOOST_PP_DEC_187 186 +# define BOOST_PP_DEC_188 187 +# define BOOST_PP_DEC_189 188 +# define BOOST_PP_DEC_190 189 +# define BOOST_PP_DEC_191 190 +# define BOOST_PP_DEC_192 191 +# define BOOST_PP_DEC_193 192 +# define BOOST_PP_DEC_194 193 +# define BOOST_PP_DEC_195 194 +# define BOOST_PP_DEC_196 195 +# define BOOST_PP_DEC_197 196 +# define BOOST_PP_DEC_198 197 +# define BOOST_PP_DEC_199 198 +# define BOOST_PP_DEC_200 199 +# define BOOST_PP_DEC_201 200 +# define BOOST_PP_DEC_202 201 +# define BOOST_PP_DEC_203 202 +# define BOOST_PP_DEC_204 203 +# define BOOST_PP_DEC_205 204 +# define BOOST_PP_DEC_206 205 +# define BOOST_PP_DEC_207 206 +# define BOOST_PP_DEC_208 207 +# define BOOST_PP_DEC_209 208 +# define BOOST_PP_DEC_210 209 +# define BOOST_PP_DEC_211 210 +# define BOOST_PP_DEC_212 211 +# define BOOST_PP_DEC_213 212 +# define BOOST_PP_DEC_214 213 +# define BOOST_PP_DEC_215 214 +# define BOOST_PP_DEC_216 215 +# define BOOST_PP_DEC_217 216 +# define BOOST_PP_DEC_218 217 +# define BOOST_PP_DEC_219 218 +# define BOOST_PP_DEC_220 219 +# define BOOST_PP_DEC_221 220 +# define BOOST_PP_DEC_222 221 +# define BOOST_PP_DEC_223 222 +# define BOOST_PP_DEC_224 223 +# define BOOST_PP_DEC_225 224 +# define BOOST_PP_DEC_226 225 +# define BOOST_PP_DEC_227 226 +# define BOOST_PP_DEC_228 227 +# define BOOST_PP_DEC_229 228 +# define BOOST_PP_DEC_230 229 +# define BOOST_PP_DEC_231 230 +# define BOOST_PP_DEC_232 231 +# define BOOST_PP_DEC_233 232 +# define BOOST_PP_DEC_234 233 +# define BOOST_PP_DEC_235 234 +# define BOOST_PP_DEC_236 235 +# define BOOST_PP_DEC_237 236 +# define BOOST_PP_DEC_238 237 +# define BOOST_PP_DEC_239 238 +# define BOOST_PP_DEC_240 239 +# define BOOST_PP_DEC_241 240 +# define BOOST_PP_DEC_242 241 +# define BOOST_PP_DEC_243 242 +# define BOOST_PP_DEC_244 243 +# define BOOST_PP_DEC_245 244 +# define BOOST_PP_DEC_246 245 +# define BOOST_PP_DEC_247 246 +# define BOOST_PP_DEC_248 247 +# define BOOST_PP_DEC_249 248 +# define BOOST_PP_DEC_250 249 +# define BOOST_PP_DEC_251 250 +# define BOOST_PP_DEC_252 251 +# define BOOST_PP_DEC_253 252 +# define BOOST_PP_DEC_254 253 +# define BOOST_PP_DEC_255 254 +# define BOOST_PP_DEC_256 255 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/arithmetic/inc.hpp b/external-libs/boost/boost/preprocessor/arithmetic/inc.hpp new file mode 100644 index 0000000..1597ab8 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/arithmetic/inc.hpp @@ -0,0 +1,288 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP +# define BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP +# +# include +# +# /* BOOST_PP_INC */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_INC(x) BOOST_PP_INC_I(x) +# else +# define BOOST_PP_INC(x) BOOST_PP_INC_OO((x)) +# define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par +# endif +# +# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x +# +# define BOOST_PP_INC_0 1 +# define BOOST_PP_INC_1 2 +# define BOOST_PP_INC_2 3 +# define BOOST_PP_INC_3 4 +# define BOOST_PP_INC_4 5 +# define BOOST_PP_INC_5 6 +# define BOOST_PP_INC_6 7 +# define BOOST_PP_INC_7 8 +# define BOOST_PP_INC_8 9 +# define BOOST_PP_INC_9 10 +# define BOOST_PP_INC_10 11 +# define BOOST_PP_INC_11 12 +# define BOOST_PP_INC_12 13 +# define BOOST_PP_INC_13 14 +# define BOOST_PP_INC_14 15 +# define BOOST_PP_INC_15 16 +# define BOOST_PP_INC_16 17 +# define BOOST_PP_INC_17 18 +# define BOOST_PP_INC_18 19 +# define BOOST_PP_INC_19 20 +# define BOOST_PP_INC_20 21 +# define BOOST_PP_INC_21 22 +# define BOOST_PP_INC_22 23 +# define BOOST_PP_INC_23 24 +# define BOOST_PP_INC_24 25 +# define BOOST_PP_INC_25 26 +# define BOOST_PP_INC_26 27 +# define BOOST_PP_INC_27 28 +# define BOOST_PP_INC_28 29 +# define BOOST_PP_INC_29 30 +# define BOOST_PP_INC_30 31 +# define BOOST_PP_INC_31 32 +# define BOOST_PP_INC_32 33 +# define BOOST_PP_INC_33 34 +# define BOOST_PP_INC_34 35 +# define BOOST_PP_INC_35 36 +# define BOOST_PP_INC_36 37 +# define BOOST_PP_INC_37 38 +# define BOOST_PP_INC_38 39 +# define BOOST_PP_INC_39 40 +# define BOOST_PP_INC_40 41 +# define BOOST_PP_INC_41 42 +# define BOOST_PP_INC_42 43 +# define BOOST_PP_INC_43 44 +# define BOOST_PP_INC_44 45 +# define BOOST_PP_INC_45 46 +# define BOOST_PP_INC_46 47 +# define BOOST_PP_INC_47 48 +# define BOOST_PP_INC_48 49 +# define BOOST_PP_INC_49 50 +# define BOOST_PP_INC_50 51 +# define BOOST_PP_INC_51 52 +# define BOOST_PP_INC_52 53 +# define BOOST_PP_INC_53 54 +# define BOOST_PP_INC_54 55 +# define BOOST_PP_INC_55 56 +# define BOOST_PP_INC_56 57 +# define BOOST_PP_INC_57 58 +# define BOOST_PP_INC_58 59 +# define BOOST_PP_INC_59 60 +# define BOOST_PP_INC_60 61 +# define BOOST_PP_INC_61 62 +# define BOOST_PP_INC_62 63 +# define BOOST_PP_INC_63 64 +# define BOOST_PP_INC_64 65 +# define BOOST_PP_INC_65 66 +# define BOOST_PP_INC_66 67 +# define BOOST_PP_INC_67 68 +# define BOOST_PP_INC_68 69 +# define BOOST_PP_INC_69 70 +# define BOOST_PP_INC_70 71 +# define BOOST_PP_INC_71 72 +# define BOOST_PP_INC_72 73 +# define BOOST_PP_INC_73 74 +# define BOOST_PP_INC_74 75 +# define BOOST_PP_INC_75 76 +# define BOOST_PP_INC_76 77 +# define BOOST_PP_INC_77 78 +# define BOOST_PP_INC_78 79 +# define BOOST_PP_INC_79 80 +# define BOOST_PP_INC_80 81 +# define BOOST_PP_INC_81 82 +# define BOOST_PP_INC_82 83 +# define BOOST_PP_INC_83 84 +# define BOOST_PP_INC_84 85 +# define BOOST_PP_INC_85 86 +# define BOOST_PP_INC_86 87 +# define BOOST_PP_INC_87 88 +# define BOOST_PP_INC_88 89 +# define BOOST_PP_INC_89 90 +# define BOOST_PP_INC_90 91 +# define BOOST_PP_INC_91 92 +# define BOOST_PP_INC_92 93 +# define BOOST_PP_INC_93 94 +# define BOOST_PP_INC_94 95 +# define BOOST_PP_INC_95 96 +# define BOOST_PP_INC_96 97 +# define BOOST_PP_INC_97 98 +# define BOOST_PP_INC_98 99 +# define BOOST_PP_INC_99 100 +# define BOOST_PP_INC_100 101 +# define BOOST_PP_INC_101 102 +# define BOOST_PP_INC_102 103 +# define BOOST_PP_INC_103 104 +# define BOOST_PP_INC_104 105 +# define BOOST_PP_INC_105 106 +# define BOOST_PP_INC_106 107 +# define BOOST_PP_INC_107 108 +# define BOOST_PP_INC_108 109 +# define BOOST_PP_INC_109 110 +# define BOOST_PP_INC_110 111 +# define BOOST_PP_INC_111 112 +# define BOOST_PP_INC_112 113 +# define BOOST_PP_INC_113 114 +# define BOOST_PP_INC_114 115 +# define BOOST_PP_INC_115 116 +# define BOOST_PP_INC_116 117 +# define BOOST_PP_INC_117 118 +# define BOOST_PP_INC_118 119 +# define BOOST_PP_INC_119 120 +# define BOOST_PP_INC_120 121 +# define BOOST_PP_INC_121 122 +# define BOOST_PP_INC_122 123 +# define BOOST_PP_INC_123 124 +# define BOOST_PP_INC_124 125 +# define BOOST_PP_INC_125 126 +# define BOOST_PP_INC_126 127 +# define BOOST_PP_INC_127 128 +# define BOOST_PP_INC_128 129 +# define BOOST_PP_INC_129 130 +# define BOOST_PP_INC_130 131 +# define BOOST_PP_INC_131 132 +# define BOOST_PP_INC_132 133 +# define BOOST_PP_INC_133 134 +# define BOOST_PP_INC_134 135 +# define BOOST_PP_INC_135 136 +# define BOOST_PP_INC_136 137 +# define BOOST_PP_INC_137 138 +# define BOOST_PP_INC_138 139 +# define BOOST_PP_INC_139 140 +# define BOOST_PP_INC_140 141 +# define BOOST_PP_INC_141 142 +# define BOOST_PP_INC_142 143 +# define BOOST_PP_INC_143 144 +# define BOOST_PP_INC_144 145 +# define BOOST_PP_INC_145 146 +# define BOOST_PP_INC_146 147 +# define BOOST_PP_INC_147 148 +# define BOOST_PP_INC_148 149 +# define BOOST_PP_INC_149 150 +# define BOOST_PP_INC_150 151 +# define BOOST_PP_INC_151 152 +# define BOOST_PP_INC_152 153 +# define BOOST_PP_INC_153 154 +# define BOOST_PP_INC_154 155 +# define BOOST_PP_INC_155 156 +# define BOOST_PP_INC_156 157 +# define BOOST_PP_INC_157 158 +# define BOOST_PP_INC_158 159 +# define BOOST_PP_INC_159 160 +# define BOOST_PP_INC_160 161 +# define BOOST_PP_INC_161 162 +# define BOOST_PP_INC_162 163 +# define BOOST_PP_INC_163 164 +# define BOOST_PP_INC_164 165 +# define BOOST_PP_INC_165 166 +# define BOOST_PP_INC_166 167 +# define BOOST_PP_INC_167 168 +# define BOOST_PP_INC_168 169 +# define BOOST_PP_INC_169 170 +# define BOOST_PP_INC_170 171 +# define BOOST_PP_INC_171 172 +# define BOOST_PP_INC_172 173 +# define BOOST_PP_INC_173 174 +# define BOOST_PP_INC_174 175 +# define BOOST_PP_INC_175 176 +# define BOOST_PP_INC_176 177 +# define BOOST_PP_INC_177 178 +# define BOOST_PP_INC_178 179 +# define BOOST_PP_INC_179 180 +# define BOOST_PP_INC_180 181 +# define BOOST_PP_INC_181 182 +# define BOOST_PP_INC_182 183 +# define BOOST_PP_INC_183 184 +# define BOOST_PP_INC_184 185 +# define BOOST_PP_INC_185 186 +# define BOOST_PP_INC_186 187 +# define BOOST_PP_INC_187 188 +# define BOOST_PP_INC_188 189 +# define BOOST_PP_INC_189 190 +# define BOOST_PP_INC_190 191 +# define BOOST_PP_INC_191 192 +# define BOOST_PP_INC_192 193 +# define BOOST_PP_INC_193 194 +# define BOOST_PP_INC_194 195 +# define BOOST_PP_INC_195 196 +# define BOOST_PP_INC_196 197 +# define BOOST_PP_INC_197 198 +# define BOOST_PP_INC_198 199 +# define BOOST_PP_INC_199 200 +# define BOOST_PP_INC_200 201 +# define BOOST_PP_INC_201 202 +# define BOOST_PP_INC_202 203 +# define BOOST_PP_INC_203 204 +# define BOOST_PP_INC_204 205 +# define BOOST_PP_INC_205 206 +# define BOOST_PP_INC_206 207 +# define BOOST_PP_INC_207 208 +# define BOOST_PP_INC_208 209 +# define BOOST_PP_INC_209 210 +# define BOOST_PP_INC_210 211 +# define BOOST_PP_INC_211 212 +# define BOOST_PP_INC_212 213 +# define BOOST_PP_INC_213 214 +# define BOOST_PP_INC_214 215 +# define BOOST_PP_INC_215 216 +# define BOOST_PP_INC_216 217 +# define BOOST_PP_INC_217 218 +# define BOOST_PP_INC_218 219 +# define BOOST_PP_INC_219 220 +# define BOOST_PP_INC_220 221 +# define BOOST_PP_INC_221 222 +# define BOOST_PP_INC_222 223 +# define BOOST_PP_INC_223 224 +# define BOOST_PP_INC_224 225 +# define BOOST_PP_INC_225 226 +# define BOOST_PP_INC_226 227 +# define BOOST_PP_INC_227 228 +# define BOOST_PP_INC_228 229 +# define BOOST_PP_INC_229 230 +# define BOOST_PP_INC_230 231 +# define BOOST_PP_INC_231 232 +# define BOOST_PP_INC_232 233 +# define BOOST_PP_INC_233 234 +# define BOOST_PP_INC_234 235 +# define BOOST_PP_INC_235 236 +# define BOOST_PP_INC_236 237 +# define BOOST_PP_INC_237 238 +# define BOOST_PP_INC_238 239 +# define BOOST_PP_INC_239 240 +# define BOOST_PP_INC_240 241 +# define BOOST_PP_INC_241 242 +# define BOOST_PP_INC_242 243 +# define BOOST_PP_INC_243 244 +# define BOOST_PP_INC_244 245 +# define BOOST_PP_INC_245 246 +# define BOOST_PP_INC_246 247 +# define BOOST_PP_INC_247 248 +# define BOOST_PP_INC_248 249 +# define BOOST_PP_INC_249 250 +# define BOOST_PP_INC_250 251 +# define BOOST_PP_INC_251 252 +# define BOOST_PP_INC_252 253 +# define BOOST_PP_INC_253 254 +# define BOOST_PP_INC_254 255 +# define BOOST_PP_INC_255 256 +# define BOOST_PP_INC_256 256 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/arithmetic/sub.hpp b/external-libs/boost/boost/preprocessor/arithmetic/sub.hpp new file mode 100644 index 0000000..5262cda --- /dev/null +++ b/external-libs/boost/boost/preprocessor/arithmetic/sub.hpp @@ -0,0 +1,50 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP +# define BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP +# +# include +# include +# include +# include +# +# /* BOOST_PP_SUB */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_SUB(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) +# else +# define BOOST_PP_SUB(x, y) BOOST_PP_SUB_I(x, y) +# define BOOST_PP_SUB_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) +# endif +# +# define BOOST_PP_SUB_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy) +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I xy +# else +# define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy)) +# endif +# +# define BOOST_PP_SUB_O_I(x, y) (BOOST_PP_DEC(x), BOOST_PP_DEC(y)) +# +# /* BOOST_PP_SUB_D */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_SUB_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) +# else +# define BOOST_PP_SUB_D(d, x, y) BOOST_PP_SUB_D_I(d, x, y) +# define BOOST_PP_SUB_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/cat.hpp b/external-libs/boost/boost/preprocessor/cat.hpp new file mode 100644 index 0000000..b2a82c0 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/cat.hpp @@ -0,0 +1,35 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CAT_HPP +# define BOOST_PREPROCESSOR_CAT_HPP +# +# include +# +# /* BOOST_PP_CAT */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b) +# else +# define BOOST_PP_CAT(a, b) BOOST_PP_CAT_OO((a, b)) +# define BOOST_PP_CAT_OO(par) BOOST_PP_CAT_I ## par +# endif +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# define BOOST_PP_CAT_I(a, b) a ## b +# else +# define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(a ## b) +# define BOOST_PP_CAT_II(res) res +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/comma_if.hpp b/external-libs/boost/boost/preprocessor/comma_if.hpp new file mode 100644 index 0000000..9ceb079 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/comma_if.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP +# define BOOST_PREPROCESSOR_COMMA_IF_HPP +# +# include +# +# endif diff --git a/external-libs/boost/boost/preprocessor/config/config.hpp b/external-libs/boost/boost/preprocessor/config/config.hpp new file mode 100644 index 0000000..dd0f713 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/config/config.hpp @@ -0,0 +1,70 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP +# define BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP +# +# /* BOOST_PP_CONFIG_FLAGS */ +# +# define BOOST_PP_CONFIG_STRICT() 0x0001 +# define BOOST_PP_CONFIG_IDEAL() 0x0002 +# +# define BOOST_PP_CONFIG_MSVC() 0x0004 +# define BOOST_PP_CONFIG_MWCC() 0x0008 +# define BOOST_PP_CONFIG_BCC() 0x0010 +# define BOOST_PP_CONFIG_EDG() 0x0020 +# define BOOST_PP_CONFIG_DMC() 0x0040 +# +# ifndef BOOST_PP_CONFIG_FLAGS +# if defined(__GCCXML__) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) +# elif defined(__WAVE__) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) +# elif defined(__MWERKS__) && __MWERKS__ >= 0x3200 +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) +# elif defined(__EDG__) || defined(__EDG_VERSION__) +# if defined(_MSC_VER) && __EDG_VERSION__ >= 308 +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) +# else +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT()) +# endif +# elif defined(__MWERKS__) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC()) +# elif defined(__DMC__) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC()) +# elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581 +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) +# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC()) +# elif defined(_MSC_VER) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) +# else +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) +# endif +# endif +# +# /* BOOST_PP_CONFIG_EXTENDED_LINE_INFO */ +# +# ifndef BOOST_PP_CONFIG_EXTENDED_LINE_INFO +# define BOOST_PP_CONFIG_EXTENDED_LINE_INFO 0 +# endif +# +# /* BOOST_PP_CONFIG_ERRORS */ +# +# ifndef BOOST_PP_CONFIG_ERRORS +# ifdef NDEBUG +# define BOOST_PP_CONFIG_ERRORS 0 +# else +# define BOOST_PP_CONFIG_ERRORS 1 +# endif +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/control/detail/edg/while.hpp b/external-libs/boost/boost/preprocessor/control/detail/edg/while.hpp new file mode 100644 index 0000000..ce28eb2 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/control/detail/edg/while.hpp @@ -0,0 +1,534 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP +# define BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP +# +# include +# include +# +# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_I(p, o, s) +# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_I(p, o, s) +# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_I(p, o, s) +# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_I(p, o, s) +# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_I(p, o, s) +# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_I(p, o, s) +# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_I(p, o, s) +# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_I(p, o, s) +# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_I(p, o, s) +# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_I(p, o, s) +# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_I(p, o, s) +# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_I(p, o, s) +# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_I(p, o, s) +# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_I(p, o, s) +# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_I(p, o, s) +# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_I(p, o, s) +# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_I(p, o, s) +# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_I(p, o, s) +# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_I(p, o, s) +# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_I(p, o, s) +# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_I(p, o, s) +# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_I(p, o, s) +# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_I(p, o, s) +# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_I(p, o, s) +# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_I(p, o, s) +# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_I(p, o, s) +# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_I(p, o, s) +# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_I(p, o, s) +# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_I(p, o, s) +# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_I(p, o, s) +# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_I(p, o, s) +# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_I(p, o, s) +# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_I(p, o, s) +# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_I(p, o, s) +# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_I(p, o, s) +# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_I(p, o, s) +# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_I(p, o, s) +# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_I(p, o, s) +# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_I(p, o, s) +# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_I(p, o, s) +# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_I(p, o, s) +# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_I(p, o, s) +# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_I(p, o, s) +# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_I(p, o, s) +# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_I(p, o, s) +# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_I(p, o, s) +# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_I(p, o, s) +# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_I(p, o, s) +# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_I(p, o, s) +# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_I(p, o, s) +# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_I(p, o, s) +# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_I(p, o, s) +# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_I(p, o, s) +# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_I(p, o, s) +# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_I(p, o, s) +# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_I(p, o, s) +# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_I(p, o, s) +# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_I(p, o, s) +# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_I(p, o, s) +# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_I(p, o, s) +# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_I(p, o, s) +# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_I(p, o, s) +# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_I(p, o, s) +# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_I(p, o, s) +# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_I(p, o, s) +# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_I(p, o, s) +# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_I(p, o, s) +# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_I(p, o, s) +# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_I(p, o, s) +# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_I(p, o, s) +# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_I(p, o, s) +# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_I(p, o, s) +# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_I(p, o, s) +# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_I(p, o, s) +# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_I(p, o, s) +# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_I(p, o, s) +# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_I(p, o, s) +# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_I(p, o, s) +# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_I(p, o, s) +# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_I(p, o, s) +# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_I(p, o, s) +# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_I(p, o, s) +# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_I(p, o, s) +# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_I(p, o, s) +# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_I(p, o, s) +# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_I(p, o, s) +# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_I(p, o, s) +# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_I(p, o, s) +# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_I(p, o, s) +# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_I(p, o, s) +# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_I(p, o, s) +# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_I(p, o, s) +# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_I(p, o, s) +# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_I(p, o, s) +# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_I(p, o, s) +# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_I(p, o, s) +# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_I(p, o, s) +# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_I(p, o, s) +# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_I(p, o, s) +# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_I(p, o, s) +# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_I(p, o, s) +# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_I(p, o, s) +# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_I(p, o, s) +# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_I(p, o, s) +# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_I(p, o, s) +# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_I(p, o, s) +# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_I(p, o, s) +# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_I(p, o, s) +# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_I(p, o, s) +# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_I(p, o, s) +# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_I(p, o, s) +# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_I(p, o, s) +# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_I(p, o, s) +# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_I(p, o, s) +# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_I(p, o, s) +# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_I(p, o, s) +# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_I(p, o, s) +# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_I(p, o, s) +# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_I(p, o, s) +# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_I(p, o, s) +# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_I(p, o, s) +# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_I(p, o, s) +# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_I(p, o, s) +# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_I(p, o, s) +# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_I(p, o, s) +# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_I(p, o, s) +# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_I(p, o, s) +# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_I(p, o, s) +# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_I(p, o, s) +# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_I(p, o, s) +# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_I(p, o, s) +# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_I(p, o, s) +# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_I(p, o, s) +# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_I(p, o, s) +# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_I(p, o, s) +# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_I(p, o, s) +# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_I(p, o, s) +# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_I(p, o, s) +# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_I(p, o, s) +# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_I(p, o, s) +# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_I(p, o, s) +# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_I(p, o, s) +# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_I(p, o, s) +# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_I(p, o, s) +# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_I(p, o, s) +# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_I(p, o, s) +# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_I(p, o, s) +# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_I(p, o, s) +# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_I(p, o, s) +# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_I(p, o, s) +# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_I(p, o, s) +# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_I(p, o, s) +# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_I(p, o, s) +# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_I(p, o, s) +# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_I(p, o, s) +# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_I(p, o, s) +# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_I(p, o, s) +# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_I(p, o, s) +# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_I(p, o, s) +# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_I(p, o, s) +# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_I(p, o, s) +# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_I(p, o, s) +# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_I(p, o, s) +# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_I(p, o, s) +# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_I(p, o, s) +# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_I(p, o, s) +# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_I(p, o, s) +# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_I(p, o, s) +# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_I(p, o, s) +# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_I(p, o, s) +# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_I(p, o, s) +# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_I(p, o, s) +# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_I(p, o, s) +# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_I(p, o, s) +# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_I(p, o, s) +# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_I(p, o, s) +# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_I(p, o, s) +# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_I(p, o, s) +# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_I(p, o, s) +# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_I(p, o, s) +# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_I(p, o, s) +# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_I(p, o, s) +# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_I(p, o, s) +# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_I(p, o, s) +# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_I(p, o, s) +# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_I(p, o, s) +# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_I(p, o, s) +# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_I(p, o, s) +# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_I(p, o, s) +# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_I(p, o, s) +# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_I(p, o, s) +# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_I(p, o, s) +# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_I(p, o, s) +# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_I(p, o, s) +# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_I(p, o, s) +# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_I(p, o, s) +# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_I(p, o, s) +# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_I(p, o, s) +# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_I(p, o, s) +# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_I(p, o, s) +# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_I(p, o, s) +# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_I(p, o, s) +# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_I(p, o, s) +# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_I(p, o, s) +# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_I(p, o, s) +# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_I(p, o, s) +# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_I(p, o, s) +# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_I(p, o, s) +# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_I(p, o, s) +# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_I(p, o, s) +# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_I(p, o, s) +# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_I(p, o, s) +# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_I(p, o, s) +# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_I(p, o, s) +# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_I(p, o, s) +# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_I(p, o, s) +# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_I(p, o, s) +# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_I(p, o, s) +# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_I(p, o, s) +# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_I(p, o, s) +# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_I(p, o, s) +# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_I(p, o, s) +# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_I(p, o, s) +# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_I(p, o, s) +# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_I(p, o, s) +# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_I(p, o, s) +# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_I(p, o, s) +# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_I(p, o, s) +# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_I(p, o, s) +# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_I(p, o, s) +# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_I(p, o, s) +# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_I(p, o, s) +# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_I(p, o, s) +# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_I(p, o, s) +# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_I(p, o, s) +# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_I(p, o, s) +# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_I(p, o, s) +# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_I(p, o, s) +# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_I(p, o, s) +# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_I(p, o, s) +# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_I(p, o, s) +# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_I(p, o, s) +# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_I(p, o, s) +# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_I(p, o, s) +# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_I(p, o, s) +# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_I(p, o, s) +# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_I(p, o, s) +# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_I(p, o, s) +# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_I(p, o, s) +# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_I(p, o, s) +# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_I(p, o, s) +# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_I(p, o, s) +# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_I(p, o, s) +# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_I(p, o, s) +# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_I(p, o, s) +# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_I(p, o, s) +# +# define BOOST_PP_WHILE_1_I(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s)) +# define BOOST_PP_WHILE_2_I(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s)) +# define BOOST_PP_WHILE_3_I(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s)) +# define BOOST_PP_WHILE_4_I(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s)) +# define BOOST_PP_WHILE_5_I(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s)) +# define BOOST_PP_WHILE_6_I(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s)) +# define BOOST_PP_WHILE_7_I(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s)) +# define BOOST_PP_WHILE_8_I(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s)) +# define BOOST_PP_WHILE_9_I(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s)) +# define BOOST_PP_WHILE_10_I(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s)) +# define BOOST_PP_WHILE_11_I(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s)) +# define BOOST_PP_WHILE_12_I(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s)) +# define BOOST_PP_WHILE_13_I(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s)) +# define BOOST_PP_WHILE_14_I(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s)) +# define BOOST_PP_WHILE_15_I(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s)) +# define BOOST_PP_WHILE_16_I(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s)) +# define BOOST_PP_WHILE_17_I(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s)) +# define BOOST_PP_WHILE_18_I(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s)) +# define BOOST_PP_WHILE_19_I(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s)) +# define BOOST_PP_WHILE_20_I(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s)) +# define BOOST_PP_WHILE_21_I(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s)) +# define BOOST_PP_WHILE_22_I(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s)) +# define BOOST_PP_WHILE_23_I(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s)) +# define BOOST_PP_WHILE_24_I(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s)) +# define BOOST_PP_WHILE_25_I(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s)) +# define BOOST_PP_WHILE_26_I(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s)) +# define BOOST_PP_WHILE_27_I(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s)) +# define BOOST_PP_WHILE_28_I(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s)) +# define BOOST_PP_WHILE_29_I(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s)) +# define BOOST_PP_WHILE_30_I(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s)) +# define BOOST_PP_WHILE_31_I(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s)) +# define BOOST_PP_WHILE_32_I(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s)) +# define BOOST_PP_WHILE_33_I(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s)) +# define BOOST_PP_WHILE_34_I(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s)) +# define BOOST_PP_WHILE_35_I(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s)) +# define BOOST_PP_WHILE_36_I(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s)) +# define BOOST_PP_WHILE_37_I(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s)) +# define BOOST_PP_WHILE_38_I(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s)) +# define BOOST_PP_WHILE_39_I(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s)) +# define BOOST_PP_WHILE_40_I(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s)) +# define BOOST_PP_WHILE_41_I(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s)) +# define BOOST_PP_WHILE_42_I(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s)) +# define BOOST_PP_WHILE_43_I(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s)) +# define BOOST_PP_WHILE_44_I(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s)) +# define BOOST_PP_WHILE_45_I(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s)) +# define BOOST_PP_WHILE_46_I(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s)) +# define BOOST_PP_WHILE_47_I(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s)) +# define BOOST_PP_WHILE_48_I(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s)) +# define BOOST_PP_WHILE_49_I(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s)) +# define BOOST_PP_WHILE_50_I(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s)) +# define BOOST_PP_WHILE_51_I(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s)) +# define BOOST_PP_WHILE_52_I(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s)) +# define BOOST_PP_WHILE_53_I(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s)) +# define BOOST_PP_WHILE_54_I(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s)) +# define BOOST_PP_WHILE_55_I(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s)) +# define BOOST_PP_WHILE_56_I(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s)) +# define BOOST_PP_WHILE_57_I(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s)) +# define BOOST_PP_WHILE_58_I(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s)) +# define BOOST_PP_WHILE_59_I(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s)) +# define BOOST_PP_WHILE_60_I(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s)) +# define BOOST_PP_WHILE_61_I(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s)) +# define BOOST_PP_WHILE_62_I(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s)) +# define BOOST_PP_WHILE_63_I(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s)) +# define BOOST_PP_WHILE_64_I(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s)) +# define BOOST_PP_WHILE_65_I(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s)) +# define BOOST_PP_WHILE_66_I(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s)) +# define BOOST_PP_WHILE_67_I(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s)) +# define BOOST_PP_WHILE_68_I(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s)) +# define BOOST_PP_WHILE_69_I(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s)) +# define BOOST_PP_WHILE_70_I(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s)) +# define BOOST_PP_WHILE_71_I(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s)) +# define BOOST_PP_WHILE_72_I(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s)) +# define BOOST_PP_WHILE_73_I(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s)) +# define BOOST_PP_WHILE_74_I(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s)) +# define BOOST_PP_WHILE_75_I(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s)) +# define BOOST_PP_WHILE_76_I(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s)) +# define BOOST_PP_WHILE_77_I(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s)) +# define BOOST_PP_WHILE_78_I(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s)) +# define BOOST_PP_WHILE_79_I(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s)) +# define BOOST_PP_WHILE_80_I(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s)) +# define BOOST_PP_WHILE_81_I(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s)) +# define BOOST_PP_WHILE_82_I(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s)) +# define BOOST_PP_WHILE_83_I(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s)) +# define BOOST_PP_WHILE_84_I(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s)) +# define BOOST_PP_WHILE_85_I(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s)) +# define BOOST_PP_WHILE_86_I(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s)) +# define BOOST_PP_WHILE_87_I(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s)) +# define BOOST_PP_WHILE_88_I(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s)) +# define BOOST_PP_WHILE_89_I(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s)) +# define BOOST_PP_WHILE_90_I(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s)) +# define BOOST_PP_WHILE_91_I(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s)) +# define BOOST_PP_WHILE_92_I(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s)) +# define BOOST_PP_WHILE_93_I(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s)) +# define BOOST_PP_WHILE_94_I(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s)) +# define BOOST_PP_WHILE_95_I(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s)) +# define BOOST_PP_WHILE_96_I(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s)) +# define BOOST_PP_WHILE_97_I(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s)) +# define BOOST_PP_WHILE_98_I(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s)) +# define BOOST_PP_WHILE_99_I(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s)) +# define BOOST_PP_WHILE_100_I(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s)) +# define BOOST_PP_WHILE_101_I(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s)) +# define BOOST_PP_WHILE_102_I(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s)) +# define BOOST_PP_WHILE_103_I(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s)) +# define BOOST_PP_WHILE_104_I(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s)) +# define BOOST_PP_WHILE_105_I(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s)) +# define BOOST_PP_WHILE_106_I(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s)) +# define BOOST_PP_WHILE_107_I(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s)) +# define BOOST_PP_WHILE_108_I(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s)) +# define BOOST_PP_WHILE_109_I(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s)) +# define BOOST_PP_WHILE_110_I(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s)) +# define BOOST_PP_WHILE_111_I(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s)) +# define BOOST_PP_WHILE_112_I(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s)) +# define BOOST_PP_WHILE_113_I(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s)) +# define BOOST_PP_WHILE_114_I(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s)) +# define BOOST_PP_WHILE_115_I(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s)) +# define BOOST_PP_WHILE_116_I(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s)) +# define BOOST_PP_WHILE_117_I(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s)) +# define BOOST_PP_WHILE_118_I(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s)) +# define BOOST_PP_WHILE_119_I(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s)) +# define BOOST_PP_WHILE_120_I(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s)) +# define BOOST_PP_WHILE_121_I(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s)) +# define BOOST_PP_WHILE_122_I(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s)) +# define BOOST_PP_WHILE_123_I(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s)) +# define BOOST_PP_WHILE_124_I(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s)) +# define BOOST_PP_WHILE_125_I(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s)) +# define BOOST_PP_WHILE_126_I(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s)) +# define BOOST_PP_WHILE_127_I(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s)) +# define BOOST_PP_WHILE_128_I(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s)) +# define BOOST_PP_WHILE_129_I(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s)) +# define BOOST_PP_WHILE_130_I(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s)) +# define BOOST_PP_WHILE_131_I(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s)) +# define BOOST_PP_WHILE_132_I(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s)) +# define BOOST_PP_WHILE_133_I(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s)) +# define BOOST_PP_WHILE_134_I(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s)) +# define BOOST_PP_WHILE_135_I(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s)) +# define BOOST_PP_WHILE_136_I(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s)) +# define BOOST_PP_WHILE_137_I(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s)) +# define BOOST_PP_WHILE_138_I(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s)) +# define BOOST_PP_WHILE_139_I(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s)) +# define BOOST_PP_WHILE_140_I(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s)) +# define BOOST_PP_WHILE_141_I(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s)) +# define BOOST_PP_WHILE_142_I(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s)) +# define BOOST_PP_WHILE_143_I(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s)) +# define BOOST_PP_WHILE_144_I(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s)) +# define BOOST_PP_WHILE_145_I(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s)) +# define BOOST_PP_WHILE_146_I(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s)) +# define BOOST_PP_WHILE_147_I(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s)) +# define BOOST_PP_WHILE_148_I(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s)) +# define BOOST_PP_WHILE_149_I(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s)) +# define BOOST_PP_WHILE_150_I(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s)) +# define BOOST_PP_WHILE_151_I(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s)) +# define BOOST_PP_WHILE_152_I(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s)) +# define BOOST_PP_WHILE_153_I(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s)) +# define BOOST_PP_WHILE_154_I(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s)) +# define BOOST_PP_WHILE_155_I(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s)) +# define BOOST_PP_WHILE_156_I(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s)) +# define BOOST_PP_WHILE_157_I(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s)) +# define BOOST_PP_WHILE_158_I(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s)) +# define BOOST_PP_WHILE_159_I(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s)) +# define BOOST_PP_WHILE_160_I(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s)) +# define BOOST_PP_WHILE_161_I(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s)) +# define BOOST_PP_WHILE_162_I(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s)) +# define BOOST_PP_WHILE_163_I(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s)) +# define BOOST_PP_WHILE_164_I(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s)) +# define BOOST_PP_WHILE_165_I(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s)) +# define BOOST_PP_WHILE_166_I(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s)) +# define BOOST_PP_WHILE_167_I(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s)) +# define BOOST_PP_WHILE_168_I(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s)) +# define BOOST_PP_WHILE_169_I(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s)) +# define BOOST_PP_WHILE_170_I(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s)) +# define BOOST_PP_WHILE_171_I(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s)) +# define BOOST_PP_WHILE_172_I(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s)) +# define BOOST_PP_WHILE_173_I(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s)) +# define BOOST_PP_WHILE_174_I(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s)) +# define BOOST_PP_WHILE_175_I(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s)) +# define BOOST_PP_WHILE_176_I(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s)) +# define BOOST_PP_WHILE_177_I(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s)) +# define BOOST_PP_WHILE_178_I(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s)) +# define BOOST_PP_WHILE_179_I(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s)) +# define BOOST_PP_WHILE_180_I(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s)) +# define BOOST_PP_WHILE_181_I(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s)) +# define BOOST_PP_WHILE_182_I(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s)) +# define BOOST_PP_WHILE_183_I(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s)) +# define BOOST_PP_WHILE_184_I(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s)) +# define BOOST_PP_WHILE_185_I(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s)) +# define BOOST_PP_WHILE_186_I(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s)) +# define BOOST_PP_WHILE_187_I(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s)) +# define BOOST_PP_WHILE_188_I(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s)) +# define BOOST_PP_WHILE_189_I(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s)) +# define BOOST_PP_WHILE_190_I(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s)) +# define BOOST_PP_WHILE_191_I(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s)) +# define BOOST_PP_WHILE_192_I(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s)) +# define BOOST_PP_WHILE_193_I(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s)) +# define BOOST_PP_WHILE_194_I(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s)) +# define BOOST_PP_WHILE_195_I(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s)) +# define BOOST_PP_WHILE_196_I(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s)) +# define BOOST_PP_WHILE_197_I(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s)) +# define BOOST_PP_WHILE_198_I(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s)) +# define BOOST_PP_WHILE_199_I(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s)) +# define BOOST_PP_WHILE_200_I(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s)) +# define BOOST_PP_WHILE_201_I(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s)) +# define BOOST_PP_WHILE_202_I(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s)) +# define BOOST_PP_WHILE_203_I(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s)) +# define BOOST_PP_WHILE_204_I(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s)) +# define BOOST_PP_WHILE_205_I(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s)) +# define BOOST_PP_WHILE_206_I(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s)) +# define BOOST_PP_WHILE_207_I(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s)) +# define BOOST_PP_WHILE_208_I(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s)) +# define BOOST_PP_WHILE_209_I(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s)) +# define BOOST_PP_WHILE_210_I(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s)) +# define BOOST_PP_WHILE_211_I(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s)) +# define BOOST_PP_WHILE_212_I(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s)) +# define BOOST_PP_WHILE_213_I(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s)) +# define BOOST_PP_WHILE_214_I(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s)) +# define BOOST_PP_WHILE_215_I(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s)) +# define BOOST_PP_WHILE_216_I(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s)) +# define BOOST_PP_WHILE_217_I(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s)) +# define BOOST_PP_WHILE_218_I(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s)) +# define BOOST_PP_WHILE_219_I(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s)) +# define BOOST_PP_WHILE_220_I(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s)) +# define BOOST_PP_WHILE_221_I(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s)) +# define BOOST_PP_WHILE_222_I(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s)) +# define BOOST_PP_WHILE_223_I(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s)) +# define BOOST_PP_WHILE_224_I(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s)) +# define BOOST_PP_WHILE_225_I(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s)) +# define BOOST_PP_WHILE_226_I(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s)) +# define BOOST_PP_WHILE_227_I(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s)) +# define BOOST_PP_WHILE_228_I(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s)) +# define BOOST_PP_WHILE_229_I(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s)) +# define BOOST_PP_WHILE_230_I(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s)) +# define BOOST_PP_WHILE_231_I(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s)) +# define BOOST_PP_WHILE_232_I(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s)) +# define BOOST_PP_WHILE_233_I(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s)) +# define BOOST_PP_WHILE_234_I(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s)) +# define BOOST_PP_WHILE_235_I(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s)) +# define BOOST_PP_WHILE_236_I(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s)) +# define BOOST_PP_WHILE_237_I(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s)) +# define BOOST_PP_WHILE_238_I(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s)) +# define BOOST_PP_WHILE_239_I(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s)) +# define BOOST_PP_WHILE_240_I(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s)) +# define BOOST_PP_WHILE_241_I(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s)) +# define BOOST_PP_WHILE_242_I(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s)) +# define BOOST_PP_WHILE_243_I(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s)) +# define BOOST_PP_WHILE_244_I(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s)) +# define BOOST_PP_WHILE_245_I(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s)) +# define BOOST_PP_WHILE_246_I(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s)) +# define BOOST_PP_WHILE_247_I(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s)) +# define BOOST_PP_WHILE_248_I(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s)) +# define BOOST_PP_WHILE_249_I(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s)) +# define BOOST_PP_WHILE_250_I(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s)) +# define BOOST_PP_WHILE_251_I(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s)) +# define BOOST_PP_WHILE_252_I(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s)) +# define BOOST_PP_WHILE_253_I(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s)) +# define BOOST_PP_WHILE_254_I(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s)) +# define BOOST_PP_WHILE_255_I(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s)) +# define BOOST_PP_WHILE_256_I(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s)) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/control/detail/msvc/while.hpp b/external-libs/boost/boost/preprocessor/control/detail/msvc/while.hpp new file mode 100644 index 0000000..e543e41 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/control/detail/msvc/while.hpp @@ -0,0 +1,277 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP +# define BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP +# +# include +# include +# +# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s)) +# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s)) +# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s)) +# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s)) +# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s)) +# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s)) +# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s)) +# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s)) +# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s)) +# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s)) +# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s)) +# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s)) +# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s)) +# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s)) +# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s)) +# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s)) +# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s)) +# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s)) +# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s)) +# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s)) +# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s)) +# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s)) +# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s)) +# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s)) +# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s)) +# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s)) +# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s)) +# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s)) +# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s)) +# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s)) +# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s)) +# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s)) +# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s)) +# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s)) +# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s)) +# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s)) +# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s)) +# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s)) +# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s)) +# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s)) +# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s)) +# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s)) +# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s)) +# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s)) +# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s)) +# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s)) +# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s)) +# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s)) +# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s)) +# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s)) +# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s)) +# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s)) +# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s)) +# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s)) +# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s)) +# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s)) +# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s)) +# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s)) +# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s)) +# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s)) +# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s)) +# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s)) +# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s)) +# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s)) +# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s)) +# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s)) +# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s)) +# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s)) +# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s)) +# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s)) +# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s)) +# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s)) +# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s)) +# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s)) +# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s)) +# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s)) +# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s)) +# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s)) +# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s)) +# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s)) +# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s)) +# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s)) +# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s)) +# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s)) +# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s)) +# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s)) +# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s)) +# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s)) +# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s)) +# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s)) +# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s)) +# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s)) +# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s)) +# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s)) +# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s)) +# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s)) +# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s)) +# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s)) +# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s)) +# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s)) +# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s)) +# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s)) +# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s)) +# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s)) +# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s)) +# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s)) +# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s)) +# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s)) +# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s)) +# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s)) +# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s)) +# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s)) +# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s)) +# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s)) +# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s)) +# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s)) +# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s)) +# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s)) +# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s)) +# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s)) +# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s)) +# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s)) +# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s)) +# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s)) +# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s)) +# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s)) +# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s)) +# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s)) +# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s)) +# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s)) +# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s)) +# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s)) +# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s)) +# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s)) +# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s)) +# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s)) +# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s)) +# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s)) +# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s)) +# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s)) +# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s)) +# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s)) +# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s)) +# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s)) +# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s)) +# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s)) +# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s)) +# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s)) +# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s)) +# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s)) +# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s)) +# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s)) +# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s)) +# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s)) +# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s)) +# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s)) +# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s)) +# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s)) +# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s)) +# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s)) +# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s)) +# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s)) +# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s)) +# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s)) +# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s)) +# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s)) +# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s)) +# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s)) +# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s)) +# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s)) +# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s)) +# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s)) +# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s)) +# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s)) +# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s)) +# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s)) +# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s)) +# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s)) +# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s)) +# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s)) +# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s)) +# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s)) +# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s)) +# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s)) +# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s)) +# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s)) +# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s)) +# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s)) +# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s)) +# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s)) +# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s)) +# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s)) +# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s)) +# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s)) +# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s)) +# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s)) +# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s)) +# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s)) +# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s)) +# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s)) +# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s)) +# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s)) +# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s)) +# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s)) +# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s)) +# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s)) +# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s)) +# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s)) +# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s)) +# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s)) +# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s)) +# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s)) +# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s)) +# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s)) +# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s)) +# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s)) +# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s)) +# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s)) +# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s)) +# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s)) +# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s)) +# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s)) +# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s)) +# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s)) +# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s)) +# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s)) +# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s)) +# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s)) +# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s)) +# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s)) +# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s)) +# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s)) +# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s)) +# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s)) +# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s)) +# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s)) +# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s)) +# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s)) +# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s)) +# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s)) +# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s)) +# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s)) +# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s)) +# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s)) +# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s)) +# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s)) +# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s)) +# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s)) +# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s)) +# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s)) +# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s)) +# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s)) +# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s)) +# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s)) +# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s)) +# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s)) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/control/detail/while.hpp b/external-libs/boost/boost/preprocessor/control/detail/while.hpp new file mode 100644 index 0000000..7315e1d --- /dev/null +++ b/external-libs/boost/boost/preprocessor/control/detail/while.hpp @@ -0,0 +1,536 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP +# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP +# +# include +# include +# include +# +# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p(2, s)), p, o, s) +# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p(3, s)), p, o, s) +# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p(4, s)), p, o, s) +# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p(5, s)), p, o, s) +# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p(6, s)), p, o, s) +# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p(7, s)), p, o, s) +# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p(8, s)), p, o, s) +# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p(9, s)), p, o, s) +# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p(10, s)), p, o, s) +# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p(11, s)), p, o, s) +# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p(12, s)), p, o, s) +# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p(13, s)), p, o, s) +# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p(14, s)), p, o, s) +# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p(15, s)), p, o, s) +# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p(16, s)), p, o, s) +# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p(17, s)), p, o, s) +# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p(18, s)), p, o, s) +# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p(19, s)), p, o, s) +# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p(20, s)), p, o, s) +# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p(21, s)), p, o, s) +# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p(22, s)), p, o, s) +# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p(23, s)), p, o, s) +# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p(24, s)), p, o, s) +# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p(25, s)), p, o, s) +# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p(26, s)), p, o, s) +# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p(27, s)), p, o, s) +# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p(28, s)), p, o, s) +# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p(29, s)), p, o, s) +# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p(30, s)), p, o, s) +# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p(31, s)), p, o, s) +# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p(32, s)), p, o, s) +# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p(33, s)), p, o, s) +# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p(34, s)), p, o, s) +# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p(35, s)), p, o, s) +# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p(36, s)), p, o, s) +# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p(37, s)), p, o, s) +# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p(38, s)), p, o, s) +# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p(39, s)), p, o, s) +# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p(40, s)), p, o, s) +# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p(41, s)), p, o, s) +# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p(42, s)), p, o, s) +# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p(43, s)), p, o, s) +# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p(44, s)), p, o, s) +# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p(45, s)), p, o, s) +# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p(46, s)), p, o, s) +# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p(47, s)), p, o, s) +# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p(48, s)), p, o, s) +# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p(49, s)), p, o, s) +# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p(50, s)), p, o, s) +# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p(51, s)), p, o, s) +# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p(52, s)), p, o, s) +# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p(53, s)), p, o, s) +# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p(54, s)), p, o, s) +# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p(55, s)), p, o, s) +# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p(56, s)), p, o, s) +# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p(57, s)), p, o, s) +# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p(58, s)), p, o, s) +# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p(59, s)), p, o, s) +# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p(60, s)), p, o, s) +# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p(61, s)), p, o, s) +# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p(62, s)), p, o, s) +# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p(63, s)), p, o, s) +# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p(64, s)), p, o, s) +# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p(65, s)), p, o, s) +# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p(66, s)), p, o, s) +# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p(67, s)), p, o, s) +# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p(68, s)), p, o, s) +# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p(69, s)), p, o, s) +# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p(70, s)), p, o, s) +# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p(71, s)), p, o, s) +# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p(72, s)), p, o, s) +# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p(73, s)), p, o, s) +# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p(74, s)), p, o, s) +# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p(75, s)), p, o, s) +# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p(76, s)), p, o, s) +# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p(77, s)), p, o, s) +# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p(78, s)), p, o, s) +# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p(79, s)), p, o, s) +# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p(80, s)), p, o, s) +# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p(81, s)), p, o, s) +# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p(82, s)), p, o, s) +# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p(83, s)), p, o, s) +# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p(84, s)), p, o, s) +# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p(85, s)), p, o, s) +# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p(86, s)), p, o, s) +# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p(87, s)), p, o, s) +# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p(88, s)), p, o, s) +# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p(89, s)), p, o, s) +# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p(90, s)), p, o, s) +# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p(91, s)), p, o, s) +# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p(92, s)), p, o, s) +# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p(93, s)), p, o, s) +# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p(94, s)), p, o, s) +# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p(95, s)), p, o, s) +# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p(96, s)), p, o, s) +# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p(97, s)), p, o, s) +# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p(98, s)), p, o, s) +# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p(99, s)), p, o, s) +# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p(100, s)), p, o, s) +# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p(101, s)), p, o, s) +# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p(102, s)), p, o, s) +# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p(103, s)), p, o, s) +# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p(104, s)), p, o, s) +# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p(105, s)), p, o, s) +# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p(106, s)), p, o, s) +# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p(107, s)), p, o, s) +# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p(108, s)), p, o, s) +# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p(109, s)), p, o, s) +# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p(110, s)), p, o, s) +# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p(111, s)), p, o, s) +# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p(112, s)), p, o, s) +# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p(113, s)), p, o, s) +# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p(114, s)), p, o, s) +# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p(115, s)), p, o, s) +# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p(116, s)), p, o, s) +# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p(117, s)), p, o, s) +# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p(118, s)), p, o, s) +# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p(119, s)), p, o, s) +# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p(120, s)), p, o, s) +# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p(121, s)), p, o, s) +# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p(122, s)), p, o, s) +# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p(123, s)), p, o, s) +# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p(124, s)), p, o, s) +# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p(125, s)), p, o, s) +# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p(126, s)), p, o, s) +# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p(127, s)), p, o, s) +# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p(128, s)), p, o, s) +# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p(129, s)), p, o, s) +# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p(130, s)), p, o, s) +# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p(131, s)), p, o, s) +# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p(132, s)), p, o, s) +# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p(133, s)), p, o, s) +# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p(134, s)), p, o, s) +# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p(135, s)), p, o, s) +# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p(136, s)), p, o, s) +# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p(137, s)), p, o, s) +# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p(138, s)), p, o, s) +# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p(139, s)), p, o, s) +# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p(140, s)), p, o, s) +# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p(141, s)), p, o, s) +# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p(142, s)), p, o, s) +# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p(143, s)), p, o, s) +# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p(144, s)), p, o, s) +# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p(145, s)), p, o, s) +# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p(146, s)), p, o, s) +# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p(147, s)), p, o, s) +# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p(148, s)), p, o, s) +# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p(149, s)), p, o, s) +# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p(150, s)), p, o, s) +# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p(151, s)), p, o, s) +# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p(152, s)), p, o, s) +# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p(153, s)), p, o, s) +# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p(154, s)), p, o, s) +# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p(155, s)), p, o, s) +# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p(156, s)), p, o, s) +# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p(157, s)), p, o, s) +# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p(158, s)), p, o, s) +# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p(159, s)), p, o, s) +# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p(160, s)), p, o, s) +# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p(161, s)), p, o, s) +# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p(162, s)), p, o, s) +# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p(163, s)), p, o, s) +# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p(164, s)), p, o, s) +# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p(165, s)), p, o, s) +# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p(166, s)), p, o, s) +# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p(167, s)), p, o, s) +# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p(168, s)), p, o, s) +# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p(169, s)), p, o, s) +# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p(170, s)), p, o, s) +# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p(171, s)), p, o, s) +# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p(172, s)), p, o, s) +# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p(173, s)), p, o, s) +# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p(174, s)), p, o, s) +# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p(175, s)), p, o, s) +# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p(176, s)), p, o, s) +# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p(177, s)), p, o, s) +# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p(178, s)), p, o, s) +# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p(179, s)), p, o, s) +# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p(180, s)), p, o, s) +# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p(181, s)), p, o, s) +# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p(182, s)), p, o, s) +# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p(183, s)), p, o, s) +# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p(184, s)), p, o, s) +# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p(185, s)), p, o, s) +# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p(186, s)), p, o, s) +# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p(187, s)), p, o, s) +# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p(188, s)), p, o, s) +# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p(189, s)), p, o, s) +# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p(190, s)), p, o, s) +# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p(191, s)), p, o, s) +# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p(192, s)), p, o, s) +# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p(193, s)), p, o, s) +# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p(194, s)), p, o, s) +# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p(195, s)), p, o, s) +# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p(196, s)), p, o, s) +# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p(197, s)), p, o, s) +# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p(198, s)), p, o, s) +# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p(199, s)), p, o, s) +# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p(200, s)), p, o, s) +# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p(201, s)), p, o, s) +# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p(202, s)), p, o, s) +# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p(203, s)), p, o, s) +# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p(204, s)), p, o, s) +# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p(205, s)), p, o, s) +# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p(206, s)), p, o, s) +# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p(207, s)), p, o, s) +# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p(208, s)), p, o, s) +# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p(209, s)), p, o, s) +# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p(210, s)), p, o, s) +# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p(211, s)), p, o, s) +# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p(212, s)), p, o, s) +# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p(213, s)), p, o, s) +# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p(214, s)), p, o, s) +# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p(215, s)), p, o, s) +# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p(216, s)), p, o, s) +# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p(217, s)), p, o, s) +# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p(218, s)), p, o, s) +# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p(219, s)), p, o, s) +# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p(220, s)), p, o, s) +# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p(221, s)), p, o, s) +# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p(222, s)), p, o, s) +# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p(223, s)), p, o, s) +# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p(224, s)), p, o, s) +# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p(225, s)), p, o, s) +# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p(226, s)), p, o, s) +# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p(227, s)), p, o, s) +# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p(228, s)), p, o, s) +# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p(229, s)), p, o, s) +# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p(230, s)), p, o, s) +# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p(231, s)), p, o, s) +# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p(232, s)), p, o, s) +# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p(233, s)), p, o, s) +# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p(234, s)), p, o, s) +# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p(235, s)), p, o, s) +# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p(236, s)), p, o, s) +# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p(237, s)), p, o, s) +# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p(238, s)), p, o, s) +# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p(239, s)), p, o, s) +# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p(240, s)), p, o, s) +# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p(241, s)), p, o, s) +# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p(242, s)), p, o, s) +# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p(243, s)), p, o, s) +# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p(244, s)), p, o, s) +# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p(245, s)), p, o, s) +# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p(246, s)), p, o, s) +# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p(247, s)), p, o, s) +# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p(248, s)), p, o, s) +# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p(249, s)), p, o, s) +# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p(250, s)), p, o, s) +# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p(251, s)), p, o, s) +# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p(252, s)), p, o, s) +# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p(253, s)), p, o, s) +# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p(254, s)), p, o, s) +# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p(255, s)), p, o, s) +# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p(256, s)), p, o, s) +# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p(257, s)), p, o, s) +# +# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(2, s)) +# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(3, s)) +# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(4, s)) +# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(5, s)) +# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(6, s)) +# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(7, s)) +# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(8, s)) +# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(9, s)) +# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(10, s)) +# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(11, s)) +# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(12, s)) +# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(13, s)) +# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(14, s)) +# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(15, s)) +# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(16, s)) +# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(17, s)) +# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(18, s)) +# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(19, s)) +# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(20, s)) +# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(21, s)) +# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(22, s)) +# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(23, s)) +# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(24, s)) +# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(25, s)) +# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(26, s)) +# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(27, s)) +# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(28, s)) +# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(29, s)) +# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(30, s)) +# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(31, s)) +# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(32, s)) +# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(33, s)) +# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(34, s)) +# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(35, s)) +# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(36, s)) +# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(37, s)) +# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(38, s)) +# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(39, s)) +# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(40, s)) +# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(41, s)) +# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(42, s)) +# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(43, s)) +# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(44, s)) +# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(45, s)) +# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(46, s)) +# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(47, s)) +# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(48, s)) +# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(49, s)) +# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(50, s)) +# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(51, s)) +# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(52, s)) +# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(53, s)) +# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(54, s)) +# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(55, s)) +# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(56, s)) +# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(57, s)) +# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(58, s)) +# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(59, s)) +# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(60, s)) +# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(61, s)) +# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(62, s)) +# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(63, s)) +# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(64, s)) +# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(65, s)) +# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(66, s)) +# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(67, s)) +# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(68, s)) +# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(69, s)) +# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(70, s)) +# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(71, s)) +# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(72, s)) +# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(73, s)) +# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(74, s)) +# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(75, s)) +# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(76, s)) +# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(77, s)) +# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(78, s)) +# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(79, s)) +# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(80, s)) +# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(81, s)) +# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(82, s)) +# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(83, s)) +# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(84, s)) +# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(85, s)) +# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(86, s)) +# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(87, s)) +# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(88, s)) +# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(89, s)) +# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(90, s)) +# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(91, s)) +# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(92, s)) +# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(93, s)) +# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(94, s)) +# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(95, s)) +# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(96, s)) +# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(97, s)) +# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(98, s)) +# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(99, s)) +# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(100, s)) +# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(101, s)) +# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(102, s)) +# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(103, s)) +# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(104, s)) +# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(105, s)) +# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(106, s)) +# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(107, s)) +# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(108, s)) +# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(109, s)) +# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(110, s)) +# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(111, s)) +# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(112, s)) +# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(113, s)) +# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(114, s)) +# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(115, s)) +# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(116, s)) +# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(117, s)) +# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(118, s)) +# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(119, s)) +# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(120, s)) +# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(121, s)) +# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(122, s)) +# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(123, s)) +# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(124, s)) +# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(125, s)) +# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(126, s)) +# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(127, s)) +# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(128, s)) +# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(129, s)) +# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(130, s)) +# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(131, s)) +# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(132, s)) +# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(133, s)) +# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(134, s)) +# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(135, s)) +# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(136, s)) +# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(137, s)) +# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(138, s)) +# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(139, s)) +# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(140, s)) +# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(141, s)) +# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(142, s)) +# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(143, s)) +# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(144, s)) +# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(145, s)) +# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(146, s)) +# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(147, s)) +# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(148, s)) +# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(149, s)) +# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(150, s)) +# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(151, s)) +# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(152, s)) +# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(153, s)) +# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(154, s)) +# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(155, s)) +# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(156, s)) +# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(157, s)) +# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(158, s)) +# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(159, s)) +# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(160, s)) +# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(161, s)) +# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(162, s)) +# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(163, s)) +# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(164, s)) +# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(165, s)) +# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(166, s)) +# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(167, s)) +# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(168, s)) +# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(169, s)) +# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(170, s)) +# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(171, s)) +# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(172, s)) +# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(173, s)) +# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(174, s)) +# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(175, s)) +# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(176, s)) +# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(177, s)) +# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(178, s)) +# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(179, s)) +# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(180, s)) +# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(181, s)) +# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(182, s)) +# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(183, s)) +# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(184, s)) +# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(185, s)) +# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(186, s)) +# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(187, s)) +# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(188, s)) +# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(189, s)) +# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(190, s)) +# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(191, s)) +# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(192, s)) +# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(193, s)) +# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(194, s)) +# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(195, s)) +# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(196, s)) +# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(197, s)) +# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(198, s)) +# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(199, s)) +# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(200, s)) +# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(201, s)) +# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(202, s)) +# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(203, s)) +# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(204, s)) +# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(205, s)) +# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(206, s)) +# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(207, s)) +# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(208, s)) +# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(209, s)) +# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(210, s)) +# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(211, s)) +# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(212, s)) +# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(213, s)) +# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(214, s)) +# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(215, s)) +# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(216, s)) +# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(217, s)) +# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(218, s)) +# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(219, s)) +# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(220, s)) +# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(221, s)) +# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(222, s)) +# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(223, s)) +# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(224, s)) +# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(225, s)) +# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(226, s)) +# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(227, s)) +# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(228, s)) +# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(229, s)) +# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(230, s)) +# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(231, s)) +# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(232, s)) +# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(233, s)) +# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(234, s)) +# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(235, s)) +# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(236, s)) +# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(237, s)) +# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(238, s)) +# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(239, s)) +# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(240, s)) +# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(241, s)) +# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(242, s)) +# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(243, s)) +# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(244, s)) +# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(245, s)) +# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(246, s)) +# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(247, s)) +# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(248, s)) +# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(249, s)) +# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(250, s)) +# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(251, s)) +# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(252, s)) +# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(253, s)) +# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(254, s)) +# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(255, s)) +# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(256, s)) +# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(257, s)) +# +# +# endif diff --git a/external-libs/boost/boost/preprocessor/control/expr_iif.hpp b/external-libs/boost/boost/preprocessor/control/expr_iif.hpp new file mode 100644 index 0000000..58f45a4 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/control/expr_iif.hpp @@ -0,0 +1,31 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP +# define BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP +# +# include +# +# /* BOOST_PP_EXPR_IIF */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr) +# else +# define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_OO((bit, expr)) +# define BOOST_PP_EXPR_IIF_OO(par) BOOST_PP_EXPR_IIF_I ## par +# endif +# +# define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr) +# +# define BOOST_PP_EXPR_IIF_0(expr) +# define BOOST_PP_EXPR_IIF_1(expr) expr +# +# endif diff --git a/external-libs/boost/boost/preprocessor/control/if.hpp b/external-libs/boost/boost/preprocessor/control/if.hpp new file mode 100644 index 0000000..52cfc3d --- /dev/null +++ b/external-libs/boost/boost/preprocessor/control/if.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONTROL_IF_HPP +# define BOOST_PREPROCESSOR_CONTROL_IF_HPP +# +# include +# include +# include +# +# /* BOOST_PP_IF */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) +# else +# define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f) +# define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/control/iif.hpp b/external-libs/boost/boost/preprocessor/control/iif.hpp new file mode 100644 index 0000000..fd07817 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/control/iif.hpp @@ -0,0 +1,34 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONTROL_IIF_HPP +# define BOOST_PREPROCESSOR_CONTROL_IIF_HPP +# +# include +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f) +# else +# define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f)) +# define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par +# endif +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f) +# else +# define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f)) +# define BOOST_PP_IIF_II(id) id +# endif +# +# define BOOST_PP_IIF_0(t, f) f +# define BOOST_PP_IIF_1(t, f) t +# +# endif diff --git a/external-libs/boost/boost/preprocessor/control/while.hpp b/external-libs/boost/boost/preprocessor/control/while.hpp new file mode 100644 index 0000000..e8a65ff --- /dev/null +++ b/external-libs/boost/boost/preprocessor/control/while.hpp @@ -0,0 +1,312 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_CONTROL_WHILE_HPP +# define BOOST_PREPROCESSOR_CONTROL_WHILE_HPP +# +# include +# include +# include +# include +# include +# include +# include +# +# /* BOOST_PP_WHILE */ +# +# if 0 +# define BOOST_PP_WHILE(pred, op, state) +# endif +# +# define BOOST_PP_WHILE BOOST_PP_CAT(BOOST_PP_WHILE_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)) +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_CHECK_, BOOST_PP_LIST_FOLD_RIGHT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)))) +# else +# define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL))) +# endif +# +# define BOOST_PP_WHILE_F(d, _) 0 +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# include +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# include +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() +# include +# else +# include +# endif +# +# define BOOST_PP_WHILE_257(p, o, s) BOOST_PP_ERROR(0x0001) +# +# define BOOST_PP_WHILE_CHECK_BOOST_PP_NIL 1 +# +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_1(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_2(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_3(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_4(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_5(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_6(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_7(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_8(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_9(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_10(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_11(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_12(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_13(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_14(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_15(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_16(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_17(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_18(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_19(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_20(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_21(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_22(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_23(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_24(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_25(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_26(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_27(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_28(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_29(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_30(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_31(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_32(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_33(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_34(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_35(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_36(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_37(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_38(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_39(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_40(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_41(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_42(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_43(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_44(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_45(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_46(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_47(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_48(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_49(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_50(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_51(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_52(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_53(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_54(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_55(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_56(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_57(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_58(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_59(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_60(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_61(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_62(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_63(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_64(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_65(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_66(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_67(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_68(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_69(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_70(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_71(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_72(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_73(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_74(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_75(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_76(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_77(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_78(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_79(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_80(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_81(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_82(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_83(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_84(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_85(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_86(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_87(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_88(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_89(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_90(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_91(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_92(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_93(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_94(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_95(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_96(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_97(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_98(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_99(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_100(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_101(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_102(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_103(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_104(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_105(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_106(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_107(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_108(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_109(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_110(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_111(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_112(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_113(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_114(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_115(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_116(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_117(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_118(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_119(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_120(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_121(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_122(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_123(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_124(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_125(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_126(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_127(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_128(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_129(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_130(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_131(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_132(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_133(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_134(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_135(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_136(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_137(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_138(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_139(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_140(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_141(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_142(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_143(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_144(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_145(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_146(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_147(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_148(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_149(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_150(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_151(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_152(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_153(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_154(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_155(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_156(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_157(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_158(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_159(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_160(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_161(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_162(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_163(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_164(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_165(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_166(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_167(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_168(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_169(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_170(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_171(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_172(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_173(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_174(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_175(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_176(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_177(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_178(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_179(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_180(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_181(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_182(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_183(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_184(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_185(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_186(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_187(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_188(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_189(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_190(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_191(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_192(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_193(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_194(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_195(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_196(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_197(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_198(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_199(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_200(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_201(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_202(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_203(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_204(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_205(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_206(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_207(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_208(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_209(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_210(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_211(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_212(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_213(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_214(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_215(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_216(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_217(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_218(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_219(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_220(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_221(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_222(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_223(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_224(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_225(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_226(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_227(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_228(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_229(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_230(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_231(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_232(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_233(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_234(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_235(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_236(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_237(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_238(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_239(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_240(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_241(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_242(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_243(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_244(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_245(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_246(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_247(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_248(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_249(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_250(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_251(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_252(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_253(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_254(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_255(p, o, s) 0 +# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_256(p, o, s) 0 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/debug/error.hpp b/external-libs/boost/boost/preprocessor/debug/error.hpp new file mode 100644 index 0000000..c8ae5e7 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/debug/error.hpp @@ -0,0 +1,33 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_DEBUG_ERROR_HPP +# define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP +# +# include +# include +# +# /* BOOST_PP_ERROR */ +# +# if BOOST_PP_CONFIG_ERRORS +# define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code) +# endif +# +# define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS) +# define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW) +# define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW) +# define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW) +# define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW) +# define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW) +# define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW) +# define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/detail/auto_rec.hpp b/external-libs/boost/boost/preprocessor/detail/auto_rec.hpp new file mode 100644 index 0000000..39de1d0 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/detail/auto_rec.hpp @@ -0,0 +1,293 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# include +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() +# include +# else +# +# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP +# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP +# +# include +# +# /* BOOST_PP_AUTO_REC */ +# +# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred) +# +# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p) +# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p) +# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p) +# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p) +# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p) +# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p) +# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p) +# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p) +# +# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192) +# define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96) +# define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48) +# define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24) +# define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12) +# define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6) +# define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3) +# define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p(1), 1, 2) +# define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p(3), 3, 4) +# define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7) +# define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p(5), 5, 6) +# define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p(7), 7, 8) +# define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14) +# define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11) +# define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p(9), 9, 10) +# define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p(11), 11, 12) +# define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15) +# define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p(13), 13, 14) +# define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p(15), 15, 16) +# define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28) +# define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22) +# define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19) +# define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p(17), 17, 18) +# define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p(19), 19, 20) +# define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23) +# define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p(21), 21, 22) +# define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p(23), 23, 24) +# define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30) +# define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27) +# define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p(25), 25, 26) +# define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p(27), 27, 28) +# define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31) +# define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p(29), 29, 30) +# define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p(31), 31, 32) +# define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56) +# define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44) +# define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38) +# define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35) +# define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p(33), 33, 34) +# define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p(35), 35, 36) +# define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39) +# define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p(37), 37, 38) +# define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p(39), 39, 40) +# define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46) +# define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43) +# define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p(41), 41, 42) +# define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p(43), 43, 44) +# define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47) +# define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p(45), 45, 46) +# define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p(47), 47, 48) +# define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60) +# define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54) +# define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51) +# define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p(49), 49, 50) +# define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p(51), 51, 52) +# define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55) +# define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p(53), 53, 54) +# define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p(55), 55, 56) +# define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62) +# define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59) +# define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p(57), 57, 58) +# define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p(59), 59, 60) +# define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63) +# define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p(61), 61, 62) +# define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p(63), 63, 64) +# define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112) +# define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88) +# define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76) +# define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70) +# define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67) +# define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p(65), 65, 66) +# define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p(67), 67, 68) +# define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71) +# define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p(69), 69, 70) +# define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p(71), 71, 72) +# define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78) +# define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75) +# define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p(73), 73, 74) +# define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p(75), 75, 76) +# define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79) +# define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p(77), 77, 78) +# define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p(79), 79, 80) +# define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92) +# define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86) +# define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83) +# define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p(81), 81, 82) +# define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p(83), 83, 84) +# define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87) +# define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p(85), 85, 86) +# define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p(87), 87, 88) +# define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94) +# define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91) +# define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p(89), 89, 90) +# define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p(91), 91, 92) +# define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95) +# define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p(93), 93, 94) +# define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p(95), 95, 96) +# define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120) +# define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108) +# define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102) +# define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99) +# define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p(97), 97, 98) +# define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p(99), 99, 100) +# define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103) +# define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p(101), 101, 102) +# define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p(103), 103, 104) +# define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110) +# define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107) +# define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p(105), 105, 106) +# define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p(107), 107, 108) +# define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111) +# define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p(109), 109, 110) +# define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p(111), 111, 112) +# define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124) +# define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118) +# define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115) +# define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p(113), 113, 114) +# define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p(115), 115, 116) +# define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119) +# define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p(117), 117, 118) +# define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p(119), 119, 120) +# define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126) +# define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123) +# define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p(121), 121, 122) +# define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p(123), 123, 124) +# define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127) +# define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p(125), 125, 126) +# define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p(127), 127, 128) +# define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224) +# define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176) +# define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152) +# define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140) +# define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134) +# define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131) +# define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p(129), 129, 130) +# define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p(131), 131, 132) +# define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135) +# define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p(133), 133, 134) +# define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p(135), 135, 136) +# define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142) +# define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139) +# define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p(137), 137, 138) +# define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p(139), 139, 140) +# define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143) +# define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p(141), 141, 142) +# define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p(143), 143, 144) +# define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156) +# define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150) +# define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147) +# define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p(145), 145, 146) +# define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p(147), 147, 148) +# define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151) +# define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p(149), 149, 150) +# define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p(151), 151, 152) +# define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158) +# define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155) +# define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p(153), 153, 154) +# define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p(155), 155, 156) +# define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159) +# define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p(157), 157, 158) +# define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p(159), 159, 160) +# define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184) +# define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172) +# define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166) +# define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163) +# define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p(161), 161, 162) +# define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p(163), 163, 164) +# define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167) +# define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p(165), 165, 166) +# define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p(167), 167, 168) +# define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174) +# define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171) +# define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p(169), 169, 170) +# define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p(171), 171, 172) +# define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175) +# define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p(173), 173, 174) +# define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p(175), 175, 176) +# define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188) +# define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182) +# define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179) +# define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p(177), 177, 178) +# define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p(179), 179, 180) +# define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183) +# define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p(181), 181, 182) +# define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p(183), 183, 184) +# define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190) +# define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187) +# define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p(185), 185, 186) +# define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p(187), 187, 188) +# define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191) +# define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p(189), 189, 190) +# define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p(191), 191, 192) +# define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240) +# define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216) +# define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204) +# define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198) +# define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195) +# define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p(193), 193, 194) +# define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p(195), 195, 196) +# define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199) +# define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p(197), 197, 198) +# define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p(199), 199, 200) +# define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206) +# define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203) +# define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p(201), 201, 202) +# define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p(203), 203, 204) +# define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207) +# define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p(205), 205, 206) +# define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p(207), 207, 208) +# define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220) +# define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214) +# define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211) +# define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p(209), 209, 210) +# define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p(211), 211, 212) +# define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215) +# define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p(213), 213, 214) +# define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p(215), 215, 216) +# define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222) +# define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219) +# define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p(217), 217, 218) +# define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p(219), 219, 220) +# define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223) +# define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p(221), 221, 222) +# define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p(223), 223, 224) +# define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248) +# define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236) +# define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230) +# define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227) +# define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p(225), 225, 226) +# define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p(227), 227, 228) +# define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231) +# define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p(229), 229, 230) +# define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p(231), 231, 232) +# define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238) +# define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235) +# define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p(233), 233, 234) +# define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p(235), 235, 236) +# define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239) +# define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p(237), 237, 238) +# define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p(239), 239, 240) +# define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252) +# define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246) +# define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243) +# define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p(241), 241, 242) +# define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p(243), 243, 244) +# define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247) +# define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p(245), 245, 246) +# define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p(247), 247, 248) +# define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254) +# define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251) +# define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p(249), 249, 250) +# define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p(251), 251, 252) +# define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255) +# define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p(253), 253, 254) +# define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p(255), 255, 256) +# +# endif +# endif diff --git a/external-libs/boost/boost/preprocessor/detail/check.hpp b/external-libs/boost/boost/preprocessor/detail/check.hpp new file mode 100644 index 0000000..63f8ff9 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/detail/check.hpp @@ -0,0 +1,48 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_DETAIL_CHECK_HPP +# define BOOST_PREPROCESSOR_DETAIL_CHECK_HPP +# +# include +# include +# +# /* BOOST_PP_CHECK */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_D(x, type) +# else +# define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_OO((x, type)) +# define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_D ## par +# endif +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() +# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, type x)) +# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) +# define BOOST_PP_CHECK_2(res, _) res +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(type x) +# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) +# define BOOST_PP_CHECK_2(chk) BOOST_PP_CHECK_3((BOOST_PP_CHECK_RESULT_ ## chk)) +# define BOOST_PP_CHECK_3(im) BOOST_PP_CHECK_5(BOOST_PP_CHECK_4 im) +# define BOOST_PP_CHECK_4(res, _) res +# define BOOST_PP_CHECK_5(res) res +# else /* DMC */ +# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_OO((type x)) +# define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_0 ## par +# define BOOST_PP_CHECK_0(chk) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, chk)) +# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) +# define BOOST_PP_CHECK_2(res, _) res +# endif +# +# define BOOST_PP_CHECK_RESULT_1 1, BOOST_PP_NIL +# +# endif diff --git a/external-libs/boost/boost/preprocessor/detail/is_binary.hpp b/external-libs/boost/boost/preprocessor/detail/is_binary.hpp new file mode 100644 index 0000000..3428833 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/detail/is_binary.hpp @@ -0,0 +1,30 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP +# define BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP +# +# include +# include +# +# /* BOOST_PP_IS_BINARY */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_IS_BINARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK) +# else +# define BOOST_PP_IS_BINARY(x) BOOST_PP_IS_BINARY_I(x) +# define BOOST_PP_IS_BINARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK) +# endif +# +# define BOOST_PP_IS_BINARY_CHECK(a, b) 1 +# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_BINARY_CHECK 0, BOOST_PP_NIL +# +# endif diff --git a/external-libs/boost/boost/preprocessor/empty.hpp b/external-libs/boost/boost/preprocessor/empty.hpp new file mode 100644 index 0000000..116ef74 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/empty.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_EMPTY_HPP +# define BOOST_PREPROCESSOR_EMPTY_HPP +# +# include +# +# endif diff --git a/external-libs/boost/boost/preprocessor/facilities/empty.hpp b/external-libs/boost/boost/preprocessor/facilities/empty.hpp new file mode 100644 index 0000000..46db190 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/facilities/empty.hpp @@ -0,0 +1,21 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP +# define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP +# +# /* BOOST_PP_EMPTY */ +# +# define BOOST_PP_EMPTY() +# +# endif diff --git a/external-libs/boost/boost/preprocessor/facilities/identity.hpp b/external-libs/boost/boost/preprocessor/facilities/identity.hpp new file mode 100644 index 0000000..13ec4ca --- /dev/null +++ b/external-libs/boost/boost/preprocessor/facilities/identity.hpp @@ -0,0 +1,23 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP +# define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP +# +# include +# +# /* BOOST_PP_IDENTITY */ +# +# define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY +# +# endif diff --git a/external-libs/boost/boost/preprocessor/identity.hpp b/external-libs/boost/boost/preprocessor/identity.hpp new file mode 100644 index 0000000..847dd13 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/identity.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_IDENTITY_HPP +# define BOOST_PREPROCESSOR_IDENTITY_HPP +# +# include +# +# endif diff --git a/external-libs/boost/boost/preprocessor/inc.hpp b/external-libs/boost/boost/preprocessor/inc.hpp new file mode 100644 index 0000000..b98d3a6 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/inc.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_INC_HPP +# define BOOST_PREPROCESSOR_INC_HPP +# +# include +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/adt.hpp b/external-libs/boost/boost/preprocessor/list/adt.hpp new file mode 100644 index 0000000..b4f12ba --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/adt.hpp @@ -0,0 +1,73 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * +# * See http://www.boost.org for most recent version. +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# ifndef BOOST_PREPROCESSOR_LIST_ADT_HPP +# define BOOST_PREPROCESSOR_LIST_ADT_HPP +# +# include +# include +# include +# include +# +# /* BOOST_PP_LIST_CONS */ +# +# define BOOST_PP_LIST_CONS(head, tail) (head, tail) +# +# /* BOOST_PP_LIST_NIL */ +# +# define BOOST_PP_LIST_NIL BOOST_PP_NIL +# +# /* BOOST_PP_LIST_FIRST */ +# +# define BOOST_PP_LIST_FIRST(list) BOOST_PP_LIST_FIRST_D(list) +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I list +# else +# define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I ## list +# endif +# +# define BOOST_PP_LIST_FIRST_I(head, tail) head +# +# /* BOOST_PP_LIST_REST */ +# +# define BOOST_PP_LIST_REST(list) BOOST_PP_LIST_REST_D(list) +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I list +# else +# define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I ## list +# endif +# +# define BOOST_PP_LIST_REST_I(head, tail) tail +# +# /* BOOST_PP_LIST_IS_CONS */ +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC() +# define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_LIST_IS_CONS_D(list) +# define BOOST_PP_LIST_IS_CONS_D(list) BOOST_PP_LIST_IS_CONS_ ## list +# define BOOST_PP_LIST_IS_CONS_(head, tail) 1 +# define BOOST_PP_LIST_IS_CONS_BOOST_PP_NIL 0 +# else +# define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_IS_BINARY(list) +# endif +# +# /* BOOST_PP_LIST_IS_NIL */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC() +# define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_IS_BINARY(list)) +# else +# define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_LIST_IS_CONS(list)) +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/detail/edg/fold_left.hpp b/external-libs/boost/boost/preprocessor/list/detail/edg/fold_left.hpp new file mode 100644 index 0000000..ae9524f --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/detail/edg/fold_left.hpp @@ -0,0 +1,536 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP +# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# +# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) +# +# define BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/detail/edg/fold_right.hpp b/external-libs/boost/boost/preprocessor/list/detail/edg/fold_right.hpp new file mode 100644 index 0000000..d372d2e --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/detail/edg/fold_right.hpp @@ -0,0 +1,794 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP +# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP +# +# include +# include +# include +# +# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) +# +# define BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(2, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_2, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(3, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_3, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(4, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_4, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(5, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_5, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(6, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_6, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(7, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_7, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(8, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_8, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(9, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_9, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(10, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_10, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(11, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_11, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(12, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_12, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(13, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_13, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(14, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_14, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(15, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_15, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(16, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_16, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(17, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_17, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(18, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_18, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(19, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_19, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(20, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_20, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(21, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_21, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(22, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_22, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(23, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_23, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(24, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_24, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(25, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_25, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(26, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_26, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(27, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_27, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(28, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_28, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(29, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_29, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(30, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_30, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(31, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_31, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(32, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_32, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(33, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_33, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(34, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_34, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(35, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_35, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(36, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_36, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(37, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_37, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(38, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_38, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(39, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_39, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(40, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_40, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(41, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_41, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(42, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_42, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(43, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_43, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(44, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_44, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(45, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_45, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(46, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_46, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(47, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_47, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(48, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_48, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(49, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_49, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(50, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_50, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(51, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_51, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(52, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_52, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(53, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_53, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(54, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_54, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(55, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_55, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(56, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_56, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(57, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_57, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(58, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_58, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(59, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_59, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(60, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_60, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(61, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_61, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(62, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_62, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(63, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_63, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(64, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_64, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(65, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_65, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(66, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_66, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(67, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_67, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(68, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_68, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(69, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_69, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(70, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_70, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(71, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_71, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(72, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_72, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(73, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_73, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(74, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_74, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(75, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_75, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(76, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_76, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(77, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_77, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(78, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_78, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(79, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_79, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(80, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_80, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(81, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_81, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(82, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_82, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(83, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_83, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(84, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_84, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(85, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_85, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(86, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_86, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(87, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_87, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(88, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_88, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(89, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_89, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(90, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_90, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(91, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_91, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(92, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_92, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(93, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_93, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(94, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_94, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(95, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_95, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(96, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_96, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(97, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_97, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(98, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_98, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(99, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_99, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(100, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_100, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(101, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_101, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(102, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_102, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(103, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_103, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(104, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_104, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(105, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_105, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(106, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_106, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(107, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_107, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(108, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_108, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(109, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_109, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(110, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_110, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(111, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_111, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(112, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_112, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(113, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_113, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(114, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_114, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(115, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_115, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(116, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_116, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(117, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_117, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(118, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_118, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(119, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_119, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(120, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_120, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(121, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_121, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(122, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_122, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(123, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_123, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(124, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_124, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(125, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_125, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(126, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_126, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(127, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_127, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(128, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_128, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(129, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_129, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(130, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_130, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(131, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_131, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(132, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_132, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(133, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_133, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(134, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_134, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(135, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_135, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(136, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_136, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(137, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_137, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(138, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_138, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(139, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_139, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(140, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_140, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(141, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_141, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(142, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_142, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(143, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_143, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(144, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_144, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(145, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_145, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(146, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_146, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(147, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_147, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(148, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_148, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(149, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_149, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(150, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_150, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(151, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_151, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(152, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_152, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(153, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_153, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(154, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_154, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(155, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_155, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(156, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_156, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(157, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_157, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(158, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_158, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(159, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_159, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(160, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_160, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(161, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_161, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(162, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_162, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(163, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_163, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(164, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_164, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(165, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_165, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(166, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_166, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(167, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_167, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(168, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_168, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(169, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_169, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(170, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_170, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(171, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_171, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(172, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_172, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(173, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_173, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(174, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_174, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(175, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_175, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(176, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_176, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(177, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_177, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(178, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_178, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(179, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_179, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(180, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_180, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(181, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_181, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(182, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_182, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(183, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_183, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(184, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_184, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(185, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_185, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(186, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_186, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(187, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_187, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(188, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_188, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(189, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_189, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(190, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_190, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(191, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_191, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(192, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_192, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(193, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_193, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(194, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_194, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(195, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_195, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(196, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_196, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(197, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_197, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(198, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_198, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(199, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_199, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(200, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_200, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(201, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_201, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(202, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_202, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(203, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_203, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(204, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_204, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(205, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_205, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(206, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_206, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(207, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_207, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(208, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_208, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(209, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_209, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(210, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_210, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(211, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_211, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(212, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_212, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(213, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_213, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(214, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_214, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(215, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_215, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(216, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_216, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(217, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_217, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(218, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_218, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(219, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_219, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(220, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_220, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(221, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_221, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(222, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_222, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(223, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_223, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(224, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_224, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(225, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_225, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(226, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_226, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(227, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_227, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(228, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_228, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(229, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_229, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(230, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_230, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(231, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_231, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(232, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_232, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(233, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_233, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(234, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_234, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(235, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_235, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(236, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_236, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(237, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_237, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(238, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_238, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(239, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_239, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(240, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_240, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(241, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_241, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(242, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_242, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(243, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_243, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(244, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_244, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(245, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_245, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(246, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_246, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(247, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_247, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(248, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_248, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(249, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_249, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(250, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_250, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(251, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_251, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(252, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_252, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(253, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_253, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(254, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_254, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(255, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_255, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(256, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_256, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# define BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(257, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_257, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) +# +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_NIL 1 +# +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/detail/fold_left.hpp b/external-libs/boost/boost/preprocessor/list/detail/fold_left.hpp new file mode 100644 index 0000000..f5fcab7 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/detail/fold_left.hpp @@ -0,0 +1,279 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP +# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# +# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/detail/fold_right.hpp b/external-libs/boost/boost/preprocessor/list/detail/fold_right.hpp new file mode 100644 index 0000000..29146d5 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/detail/fold_right.hpp @@ -0,0 +1,277 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP +# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP +# +# include +# include +# +# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1(o, s, BOOST_PP_LIST_REVERSE_D(1, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2(o, s, BOOST_PP_LIST_REVERSE_D(2, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3(o, s, BOOST_PP_LIST_REVERSE_D(3, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4(o, s, BOOST_PP_LIST_REVERSE_D(4, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5(o, s, BOOST_PP_LIST_REVERSE_D(5, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6(o, s, BOOST_PP_LIST_REVERSE_D(6, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7(o, s, BOOST_PP_LIST_REVERSE_D(7, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8(o, s, BOOST_PP_LIST_REVERSE_D(8, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9(o, s, BOOST_PP_LIST_REVERSE_D(9, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10(o, s, BOOST_PP_LIST_REVERSE_D(10, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11(o, s, BOOST_PP_LIST_REVERSE_D(11, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12(o, s, BOOST_PP_LIST_REVERSE_D(12, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13(o, s, BOOST_PP_LIST_REVERSE_D(13, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14(o, s, BOOST_PP_LIST_REVERSE_D(14, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15(o, s, BOOST_PP_LIST_REVERSE_D(15, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16(o, s, BOOST_PP_LIST_REVERSE_D(16, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17(o, s, BOOST_PP_LIST_REVERSE_D(17, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18(o, s, BOOST_PP_LIST_REVERSE_D(18, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19(o, s, BOOST_PP_LIST_REVERSE_D(19, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20(o, s, BOOST_PP_LIST_REVERSE_D(20, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21(o, s, BOOST_PP_LIST_REVERSE_D(21, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22(o, s, BOOST_PP_LIST_REVERSE_D(22, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23(o, s, BOOST_PP_LIST_REVERSE_D(23, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24(o, s, BOOST_PP_LIST_REVERSE_D(24, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25(o, s, BOOST_PP_LIST_REVERSE_D(25, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26(o, s, BOOST_PP_LIST_REVERSE_D(26, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27(o, s, BOOST_PP_LIST_REVERSE_D(27, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28(o, s, BOOST_PP_LIST_REVERSE_D(28, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29(o, s, BOOST_PP_LIST_REVERSE_D(29, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30(o, s, BOOST_PP_LIST_REVERSE_D(30, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31(o, s, BOOST_PP_LIST_REVERSE_D(31, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32(o, s, BOOST_PP_LIST_REVERSE_D(32, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33(o, s, BOOST_PP_LIST_REVERSE_D(33, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34(o, s, BOOST_PP_LIST_REVERSE_D(34, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35(o, s, BOOST_PP_LIST_REVERSE_D(35, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36(o, s, BOOST_PP_LIST_REVERSE_D(36, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37(o, s, BOOST_PP_LIST_REVERSE_D(37, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38(o, s, BOOST_PP_LIST_REVERSE_D(38, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39(o, s, BOOST_PP_LIST_REVERSE_D(39, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40(o, s, BOOST_PP_LIST_REVERSE_D(40, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41(o, s, BOOST_PP_LIST_REVERSE_D(41, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42(o, s, BOOST_PP_LIST_REVERSE_D(42, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43(o, s, BOOST_PP_LIST_REVERSE_D(43, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44(o, s, BOOST_PP_LIST_REVERSE_D(44, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45(o, s, BOOST_PP_LIST_REVERSE_D(45, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46(o, s, BOOST_PP_LIST_REVERSE_D(46, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47(o, s, BOOST_PP_LIST_REVERSE_D(47, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48(o, s, BOOST_PP_LIST_REVERSE_D(48, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49(o, s, BOOST_PP_LIST_REVERSE_D(49, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50(o, s, BOOST_PP_LIST_REVERSE_D(50, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51(o, s, BOOST_PP_LIST_REVERSE_D(51, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52(o, s, BOOST_PP_LIST_REVERSE_D(52, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53(o, s, BOOST_PP_LIST_REVERSE_D(53, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54(o, s, BOOST_PP_LIST_REVERSE_D(54, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55(o, s, BOOST_PP_LIST_REVERSE_D(55, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56(o, s, BOOST_PP_LIST_REVERSE_D(56, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57(o, s, BOOST_PP_LIST_REVERSE_D(57, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58(o, s, BOOST_PP_LIST_REVERSE_D(58, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59(o, s, BOOST_PP_LIST_REVERSE_D(59, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60(o, s, BOOST_PP_LIST_REVERSE_D(60, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61(o, s, BOOST_PP_LIST_REVERSE_D(61, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62(o, s, BOOST_PP_LIST_REVERSE_D(62, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63(o, s, BOOST_PP_LIST_REVERSE_D(63, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64(o, s, BOOST_PP_LIST_REVERSE_D(64, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65(o, s, BOOST_PP_LIST_REVERSE_D(65, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66(o, s, BOOST_PP_LIST_REVERSE_D(66, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67(o, s, BOOST_PP_LIST_REVERSE_D(67, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68(o, s, BOOST_PP_LIST_REVERSE_D(68, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69(o, s, BOOST_PP_LIST_REVERSE_D(69, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70(o, s, BOOST_PP_LIST_REVERSE_D(70, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71(o, s, BOOST_PP_LIST_REVERSE_D(71, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72(o, s, BOOST_PP_LIST_REVERSE_D(72, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73(o, s, BOOST_PP_LIST_REVERSE_D(73, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74(o, s, BOOST_PP_LIST_REVERSE_D(74, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75(o, s, BOOST_PP_LIST_REVERSE_D(75, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76(o, s, BOOST_PP_LIST_REVERSE_D(76, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77(o, s, BOOST_PP_LIST_REVERSE_D(77, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78(o, s, BOOST_PP_LIST_REVERSE_D(78, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79(o, s, BOOST_PP_LIST_REVERSE_D(79, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80(o, s, BOOST_PP_LIST_REVERSE_D(80, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81(o, s, BOOST_PP_LIST_REVERSE_D(81, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82(o, s, BOOST_PP_LIST_REVERSE_D(82, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83(o, s, BOOST_PP_LIST_REVERSE_D(83, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84(o, s, BOOST_PP_LIST_REVERSE_D(84, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85(o, s, BOOST_PP_LIST_REVERSE_D(85, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86(o, s, BOOST_PP_LIST_REVERSE_D(86, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87(o, s, BOOST_PP_LIST_REVERSE_D(87, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88(o, s, BOOST_PP_LIST_REVERSE_D(88, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89(o, s, BOOST_PP_LIST_REVERSE_D(89, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90(o, s, BOOST_PP_LIST_REVERSE_D(90, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91(o, s, BOOST_PP_LIST_REVERSE_D(91, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92(o, s, BOOST_PP_LIST_REVERSE_D(92, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93(o, s, BOOST_PP_LIST_REVERSE_D(93, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94(o, s, BOOST_PP_LIST_REVERSE_D(94, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95(o, s, BOOST_PP_LIST_REVERSE_D(95, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96(o, s, BOOST_PP_LIST_REVERSE_D(96, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97(o, s, BOOST_PP_LIST_REVERSE_D(97, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98(o, s, BOOST_PP_LIST_REVERSE_D(98, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99(o, s, BOOST_PP_LIST_REVERSE_D(99, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100(o, s, BOOST_PP_LIST_REVERSE_D(100, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101(o, s, BOOST_PP_LIST_REVERSE_D(101, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102(o, s, BOOST_PP_LIST_REVERSE_D(102, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103(o, s, BOOST_PP_LIST_REVERSE_D(103, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104(o, s, BOOST_PP_LIST_REVERSE_D(104, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105(o, s, BOOST_PP_LIST_REVERSE_D(105, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106(o, s, BOOST_PP_LIST_REVERSE_D(106, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107(o, s, BOOST_PP_LIST_REVERSE_D(107, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108(o, s, BOOST_PP_LIST_REVERSE_D(108, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109(o, s, BOOST_PP_LIST_REVERSE_D(109, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110(o, s, BOOST_PP_LIST_REVERSE_D(110, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111(o, s, BOOST_PP_LIST_REVERSE_D(111, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112(o, s, BOOST_PP_LIST_REVERSE_D(112, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113(o, s, BOOST_PP_LIST_REVERSE_D(113, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114(o, s, BOOST_PP_LIST_REVERSE_D(114, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115(o, s, BOOST_PP_LIST_REVERSE_D(115, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116(o, s, BOOST_PP_LIST_REVERSE_D(116, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117(o, s, BOOST_PP_LIST_REVERSE_D(117, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118(o, s, BOOST_PP_LIST_REVERSE_D(118, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119(o, s, BOOST_PP_LIST_REVERSE_D(119, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120(o, s, BOOST_PP_LIST_REVERSE_D(120, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121(o, s, BOOST_PP_LIST_REVERSE_D(121, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122(o, s, BOOST_PP_LIST_REVERSE_D(122, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123(o, s, BOOST_PP_LIST_REVERSE_D(123, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124(o, s, BOOST_PP_LIST_REVERSE_D(124, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125(o, s, BOOST_PP_LIST_REVERSE_D(125, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126(o, s, BOOST_PP_LIST_REVERSE_D(126, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127(o, s, BOOST_PP_LIST_REVERSE_D(127, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128(o, s, BOOST_PP_LIST_REVERSE_D(128, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129(o, s, BOOST_PP_LIST_REVERSE_D(129, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130(o, s, BOOST_PP_LIST_REVERSE_D(130, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131(o, s, BOOST_PP_LIST_REVERSE_D(131, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132(o, s, BOOST_PP_LIST_REVERSE_D(132, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133(o, s, BOOST_PP_LIST_REVERSE_D(133, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134(o, s, BOOST_PP_LIST_REVERSE_D(134, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135(o, s, BOOST_PP_LIST_REVERSE_D(135, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136(o, s, BOOST_PP_LIST_REVERSE_D(136, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137(o, s, BOOST_PP_LIST_REVERSE_D(137, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138(o, s, BOOST_PP_LIST_REVERSE_D(138, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139(o, s, BOOST_PP_LIST_REVERSE_D(139, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140(o, s, BOOST_PP_LIST_REVERSE_D(140, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141(o, s, BOOST_PP_LIST_REVERSE_D(141, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142(o, s, BOOST_PP_LIST_REVERSE_D(142, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143(o, s, BOOST_PP_LIST_REVERSE_D(143, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144(o, s, BOOST_PP_LIST_REVERSE_D(144, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145(o, s, BOOST_PP_LIST_REVERSE_D(145, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146(o, s, BOOST_PP_LIST_REVERSE_D(146, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147(o, s, BOOST_PP_LIST_REVERSE_D(147, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148(o, s, BOOST_PP_LIST_REVERSE_D(148, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149(o, s, BOOST_PP_LIST_REVERSE_D(149, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150(o, s, BOOST_PP_LIST_REVERSE_D(150, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151(o, s, BOOST_PP_LIST_REVERSE_D(151, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152(o, s, BOOST_PP_LIST_REVERSE_D(152, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153(o, s, BOOST_PP_LIST_REVERSE_D(153, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154(o, s, BOOST_PP_LIST_REVERSE_D(154, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155(o, s, BOOST_PP_LIST_REVERSE_D(155, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156(o, s, BOOST_PP_LIST_REVERSE_D(156, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157(o, s, BOOST_PP_LIST_REVERSE_D(157, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158(o, s, BOOST_PP_LIST_REVERSE_D(158, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159(o, s, BOOST_PP_LIST_REVERSE_D(159, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160(o, s, BOOST_PP_LIST_REVERSE_D(160, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161(o, s, BOOST_PP_LIST_REVERSE_D(161, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162(o, s, BOOST_PP_LIST_REVERSE_D(162, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163(o, s, BOOST_PP_LIST_REVERSE_D(163, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164(o, s, BOOST_PP_LIST_REVERSE_D(164, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165(o, s, BOOST_PP_LIST_REVERSE_D(165, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166(o, s, BOOST_PP_LIST_REVERSE_D(166, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167(o, s, BOOST_PP_LIST_REVERSE_D(167, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168(o, s, BOOST_PP_LIST_REVERSE_D(168, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169(o, s, BOOST_PP_LIST_REVERSE_D(169, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170(o, s, BOOST_PP_LIST_REVERSE_D(170, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171(o, s, BOOST_PP_LIST_REVERSE_D(171, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172(o, s, BOOST_PP_LIST_REVERSE_D(172, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173(o, s, BOOST_PP_LIST_REVERSE_D(173, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174(o, s, BOOST_PP_LIST_REVERSE_D(174, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175(o, s, BOOST_PP_LIST_REVERSE_D(175, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176(o, s, BOOST_PP_LIST_REVERSE_D(176, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177(o, s, BOOST_PP_LIST_REVERSE_D(177, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178(o, s, BOOST_PP_LIST_REVERSE_D(178, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179(o, s, BOOST_PP_LIST_REVERSE_D(179, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180(o, s, BOOST_PP_LIST_REVERSE_D(180, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181(o, s, BOOST_PP_LIST_REVERSE_D(181, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182(o, s, BOOST_PP_LIST_REVERSE_D(182, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183(o, s, BOOST_PP_LIST_REVERSE_D(183, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184(o, s, BOOST_PP_LIST_REVERSE_D(184, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185(o, s, BOOST_PP_LIST_REVERSE_D(185, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186(o, s, BOOST_PP_LIST_REVERSE_D(186, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187(o, s, BOOST_PP_LIST_REVERSE_D(187, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188(o, s, BOOST_PP_LIST_REVERSE_D(188, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189(o, s, BOOST_PP_LIST_REVERSE_D(189, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190(o, s, BOOST_PP_LIST_REVERSE_D(190, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191(o, s, BOOST_PP_LIST_REVERSE_D(191, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192(o, s, BOOST_PP_LIST_REVERSE_D(192, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193(o, s, BOOST_PP_LIST_REVERSE_D(193, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194(o, s, BOOST_PP_LIST_REVERSE_D(194, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195(o, s, BOOST_PP_LIST_REVERSE_D(195, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196(o, s, BOOST_PP_LIST_REVERSE_D(196, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197(o, s, BOOST_PP_LIST_REVERSE_D(197, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198(o, s, BOOST_PP_LIST_REVERSE_D(198, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199(o, s, BOOST_PP_LIST_REVERSE_D(199, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200(o, s, BOOST_PP_LIST_REVERSE_D(200, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201(o, s, BOOST_PP_LIST_REVERSE_D(201, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202(o, s, BOOST_PP_LIST_REVERSE_D(202, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203(o, s, BOOST_PP_LIST_REVERSE_D(203, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204(o, s, BOOST_PP_LIST_REVERSE_D(204, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205(o, s, BOOST_PP_LIST_REVERSE_D(205, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206(o, s, BOOST_PP_LIST_REVERSE_D(206, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207(o, s, BOOST_PP_LIST_REVERSE_D(207, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208(o, s, BOOST_PP_LIST_REVERSE_D(208, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209(o, s, BOOST_PP_LIST_REVERSE_D(209, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210(o, s, BOOST_PP_LIST_REVERSE_D(210, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211(o, s, BOOST_PP_LIST_REVERSE_D(211, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212(o, s, BOOST_PP_LIST_REVERSE_D(212, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213(o, s, BOOST_PP_LIST_REVERSE_D(213, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214(o, s, BOOST_PP_LIST_REVERSE_D(214, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215(o, s, BOOST_PP_LIST_REVERSE_D(215, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216(o, s, BOOST_PP_LIST_REVERSE_D(216, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217(o, s, BOOST_PP_LIST_REVERSE_D(217, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218(o, s, BOOST_PP_LIST_REVERSE_D(218, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219(o, s, BOOST_PP_LIST_REVERSE_D(219, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220(o, s, BOOST_PP_LIST_REVERSE_D(220, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221(o, s, BOOST_PP_LIST_REVERSE_D(221, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222(o, s, BOOST_PP_LIST_REVERSE_D(222, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223(o, s, BOOST_PP_LIST_REVERSE_D(223, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224(o, s, BOOST_PP_LIST_REVERSE_D(224, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225(o, s, BOOST_PP_LIST_REVERSE_D(225, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226(o, s, BOOST_PP_LIST_REVERSE_D(226, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227(o, s, BOOST_PP_LIST_REVERSE_D(227, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228(o, s, BOOST_PP_LIST_REVERSE_D(228, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229(o, s, BOOST_PP_LIST_REVERSE_D(229, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230(o, s, BOOST_PP_LIST_REVERSE_D(230, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231(o, s, BOOST_PP_LIST_REVERSE_D(231, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232(o, s, BOOST_PP_LIST_REVERSE_D(232, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233(o, s, BOOST_PP_LIST_REVERSE_D(233, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234(o, s, BOOST_PP_LIST_REVERSE_D(234, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235(o, s, BOOST_PP_LIST_REVERSE_D(235, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236(o, s, BOOST_PP_LIST_REVERSE_D(236, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237(o, s, BOOST_PP_LIST_REVERSE_D(237, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238(o, s, BOOST_PP_LIST_REVERSE_D(238, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239(o, s, BOOST_PP_LIST_REVERSE_D(239, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240(o, s, BOOST_PP_LIST_REVERSE_D(240, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241(o, s, BOOST_PP_LIST_REVERSE_D(241, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242(o, s, BOOST_PP_LIST_REVERSE_D(242, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243(o, s, BOOST_PP_LIST_REVERSE_D(243, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244(o, s, BOOST_PP_LIST_REVERSE_D(244, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245(o, s, BOOST_PP_LIST_REVERSE_D(245, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246(o, s, BOOST_PP_LIST_REVERSE_D(246, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247(o, s, BOOST_PP_LIST_REVERSE_D(247, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248(o, s, BOOST_PP_LIST_REVERSE_D(248, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249(o, s, BOOST_PP_LIST_REVERSE_D(249, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250(o, s, BOOST_PP_LIST_REVERSE_D(250, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251(o, s, BOOST_PP_LIST_REVERSE_D(251, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252(o, s, BOOST_PP_LIST_REVERSE_D(252, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253(o, s, BOOST_PP_LIST_REVERSE_D(253, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254(o, s, BOOST_PP_LIST_REVERSE_D(254, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255(o, s, BOOST_PP_LIST_REVERSE_D(255, l)) +# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256(o, s, BOOST_PP_LIST_REVERSE_D(256, l)) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/fold_left.hpp b/external-libs/boost/boost/preprocessor/list/fold_left.hpp new file mode 100644 index 0000000..f235aec --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/fold_left.hpp @@ -0,0 +1,303 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP +# define BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP +# +# include +# include +# include +# include +# +# /* BOOST_PP_LIST_FOLD_LEFT */ +# +# if 0 +# define BOOST_PP_LIST_FOLD_LEFT(op, state, list) +# endif +# +# define BOOST_PP_LIST_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)) +# +# define BOOST_PP_LIST_FOLD_LEFT_257(o, s, l) BOOST_PP_ERROR(0x0004) +# +# define BOOST_PP_LIST_FOLD_LEFT_D(d, o, s, l) BOOST_PP_LIST_FOLD_LEFT_ ## d(o, s, l) +# define BOOST_PP_LIST_FOLD_LEFT_2ND BOOST_PP_LIST_FOLD_LEFT +# define BOOST_PP_LIST_FOLD_LEFT_2ND_D BOOST_PP_LIST_FOLD_LEFT_D +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# include +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() +# include +# else +# include +# endif +# +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_NIL 1 +# +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) 0 +# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) 0 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/fold_right.hpp b/external-libs/boost/boost/preprocessor/list/fold_right.hpp new file mode 100644 index 0000000..ce18afe --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/fold_right.hpp @@ -0,0 +1,40 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP +# define BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP +# +# include +# include +# include +# include +# +# if 0 +# define BOOST_PP_LIST_FOLD_RIGHT(op, state, list) +# endif +# +# define BOOST_PP_LIST_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)) +# +# define BOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) BOOST_PP_ERROR(0x0004) +# +# define BOOST_PP_LIST_FOLD_RIGHT_D(d, o, s, l) BOOST_PP_LIST_FOLD_RIGHT_ ## d(o, s, l) +# define BOOST_PP_LIST_FOLD_RIGHT_2ND BOOST_PP_LIST_FOLD_RIGHT +# define BOOST_PP_LIST_FOLD_RIGHT_2ND_D BOOST_PP_LIST_FOLD_RIGHT_D +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# include +# else +# include +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/list/reverse.hpp b/external-libs/boost/boost/preprocessor/list/reverse.hpp new file mode 100644 index 0000000..651da05 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/list/reverse.hpp @@ -0,0 +1,40 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LIST_REVERSE_HPP +# define BOOST_PREPROCESSOR_LIST_REVERSE_HPP +# +# include +# include +# +# /* BOOST_PP_LIST_REVERSE */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) +# else +# define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_REVERSE_I(list) +# define BOOST_PP_LIST_REVERSE_I(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) +# endif +# +# define BOOST_PP_LIST_REVERSE_O(d, s, x) (x, s) +# +# /* BOOST_PP_LIST_REVERSE_D */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) +# else +# define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_REVERSE_D_I(d, list) +# define BOOST_PP_LIST_REVERSE_D_I(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/logical/and.hpp b/external-libs/boost/boost/preprocessor/logical/and.hpp new file mode 100644 index 0000000..8590365 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/logical/and.hpp @@ -0,0 +1,30 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP +# define BOOST_PREPROCESSOR_LOGICAL_AND_HPP +# +# include +# include +# include +# +# /* BOOST_PP_AND */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_AND(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) +# else +# define BOOST_PP_AND(p, q) BOOST_PP_AND_I(p, q) +# define BOOST_PP_AND_I(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/logical/bitand.hpp b/external-libs/boost/boost/preprocessor/logical/bitand.hpp new file mode 100644 index 0000000..74e9527 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/logical/bitand.hpp @@ -0,0 +1,38 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP +# define BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP +# +# include +# +# /* BOOST_PP_BITAND */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_I(x, y) +# else +# define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_OO((x, y)) +# define BOOST_PP_BITAND_OO(par) BOOST_PP_BITAND_I ## par +# endif +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ ## x ## y +# else +# define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ID(BOOST_PP_BITAND_ ## x ## y) +# define BOOST_PP_BITAND_ID(res) res +# endif +# +# define BOOST_PP_BITAND_00 0 +# define BOOST_PP_BITAND_01 0 +# define BOOST_PP_BITAND_10 0 +# define BOOST_PP_BITAND_11 1 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/logical/bool.hpp b/external-libs/boost/boost/preprocessor/logical/bool.hpp new file mode 100644 index 0000000..fc01b5b --- /dev/null +++ b/external-libs/boost/boost/preprocessor/logical/bool.hpp @@ -0,0 +1,288 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP +# define BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP +# +# include +# +# /* BOOST_PP_BOOL */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_BOOL(x) BOOST_PP_BOOL_I(x) +# else +# define BOOST_PP_BOOL(x) BOOST_PP_BOOL_OO((x)) +# define BOOST_PP_BOOL_OO(par) BOOST_PP_BOOL_I ## par +# endif +# +# define BOOST_PP_BOOL_I(x) BOOST_PP_BOOL_ ## x +# +# define BOOST_PP_BOOL_0 0 +# define BOOST_PP_BOOL_1 1 +# define BOOST_PP_BOOL_2 1 +# define BOOST_PP_BOOL_3 1 +# define BOOST_PP_BOOL_4 1 +# define BOOST_PP_BOOL_5 1 +# define BOOST_PP_BOOL_6 1 +# define BOOST_PP_BOOL_7 1 +# define BOOST_PP_BOOL_8 1 +# define BOOST_PP_BOOL_9 1 +# define BOOST_PP_BOOL_10 1 +# define BOOST_PP_BOOL_11 1 +# define BOOST_PP_BOOL_12 1 +# define BOOST_PP_BOOL_13 1 +# define BOOST_PP_BOOL_14 1 +# define BOOST_PP_BOOL_15 1 +# define BOOST_PP_BOOL_16 1 +# define BOOST_PP_BOOL_17 1 +# define BOOST_PP_BOOL_18 1 +# define BOOST_PP_BOOL_19 1 +# define BOOST_PP_BOOL_20 1 +# define BOOST_PP_BOOL_21 1 +# define BOOST_PP_BOOL_22 1 +# define BOOST_PP_BOOL_23 1 +# define BOOST_PP_BOOL_24 1 +# define BOOST_PP_BOOL_25 1 +# define BOOST_PP_BOOL_26 1 +# define BOOST_PP_BOOL_27 1 +# define BOOST_PP_BOOL_28 1 +# define BOOST_PP_BOOL_29 1 +# define BOOST_PP_BOOL_30 1 +# define BOOST_PP_BOOL_31 1 +# define BOOST_PP_BOOL_32 1 +# define BOOST_PP_BOOL_33 1 +# define BOOST_PP_BOOL_34 1 +# define BOOST_PP_BOOL_35 1 +# define BOOST_PP_BOOL_36 1 +# define BOOST_PP_BOOL_37 1 +# define BOOST_PP_BOOL_38 1 +# define BOOST_PP_BOOL_39 1 +# define BOOST_PP_BOOL_40 1 +# define BOOST_PP_BOOL_41 1 +# define BOOST_PP_BOOL_42 1 +# define BOOST_PP_BOOL_43 1 +# define BOOST_PP_BOOL_44 1 +# define BOOST_PP_BOOL_45 1 +# define BOOST_PP_BOOL_46 1 +# define BOOST_PP_BOOL_47 1 +# define BOOST_PP_BOOL_48 1 +# define BOOST_PP_BOOL_49 1 +# define BOOST_PP_BOOL_50 1 +# define BOOST_PP_BOOL_51 1 +# define BOOST_PP_BOOL_52 1 +# define BOOST_PP_BOOL_53 1 +# define BOOST_PP_BOOL_54 1 +# define BOOST_PP_BOOL_55 1 +# define BOOST_PP_BOOL_56 1 +# define BOOST_PP_BOOL_57 1 +# define BOOST_PP_BOOL_58 1 +# define BOOST_PP_BOOL_59 1 +# define BOOST_PP_BOOL_60 1 +# define BOOST_PP_BOOL_61 1 +# define BOOST_PP_BOOL_62 1 +# define BOOST_PP_BOOL_63 1 +# define BOOST_PP_BOOL_64 1 +# define BOOST_PP_BOOL_65 1 +# define BOOST_PP_BOOL_66 1 +# define BOOST_PP_BOOL_67 1 +# define BOOST_PP_BOOL_68 1 +# define BOOST_PP_BOOL_69 1 +# define BOOST_PP_BOOL_70 1 +# define BOOST_PP_BOOL_71 1 +# define BOOST_PP_BOOL_72 1 +# define BOOST_PP_BOOL_73 1 +# define BOOST_PP_BOOL_74 1 +# define BOOST_PP_BOOL_75 1 +# define BOOST_PP_BOOL_76 1 +# define BOOST_PP_BOOL_77 1 +# define BOOST_PP_BOOL_78 1 +# define BOOST_PP_BOOL_79 1 +# define BOOST_PP_BOOL_80 1 +# define BOOST_PP_BOOL_81 1 +# define BOOST_PP_BOOL_82 1 +# define BOOST_PP_BOOL_83 1 +# define BOOST_PP_BOOL_84 1 +# define BOOST_PP_BOOL_85 1 +# define BOOST_PP_BOOL_86 1 +# define BOOST_PP_BOOL_87 1 +# define BOOST_PP_BOOL_88 1 +# define BOOST_PP_BOOL_89 1 +# define BOOST_PP_BOOL_90 1 +# define BOOST_PP_BOOL_91 1 +# define BOOST_PP_BOOL_92 1 +# define BOOST_PP_BOOL_93 1 +# define BOOST_PP_BOOL_94 1 +# define BOOST_PP_BOOL_95 1 +# define BOOST_PP_BOOL_96 1 +# define BOOST_PP_BOOL_97 1 +# define BOOST_PP_BOOL_98 1 +# define BOOST_PP_BOOL_99 1 +# define BOOST_PP_BOOL_100 1 +# define BOOST_PP_BOOL_101 1 +# define BOOST_PP_BOOL_102 1 +# define BOOST_PP_BOOL_103 1 +# define BOOST_PP_BOOL_104 1 +# define BOOST_PP_BOOL_105 1 +# define BOOST_PP_BOOL_106 1 +# define BOOST_PP_BOOL_107 1 +# define BOOST_PP_BOOL_108 1 +# define BOOST_PP_BOOL_109 1 +# define BOOST_PP_BOOL_110 1 +# define BOOST_PP_BOOL_111 1 +# define BOOST_PP_BOOL_112 1 +# define BOOST_PP_BOOL_113 1 +# define BOOST_PP_BOOL_114 1 +# define BOOST_PP_BOOL_115 1 +# define BOOST_PP_BOOL_116 1 +# define BOOST_PP_BOOL_117 1 +# define BOOST_PP_BOOL_118 1 +# define BOOST_PP_BOOL_119 1 +# define BOOST_PP_BOOL_120 1 +# define BOOST_PP_BOOL_121 1 +# define BOOST_PP_BOOL_122 1 +# define BOOST_PP_BOOL_123 1 +# define BOOST_PP_BOOL_124 1 +# define BOOST_PP_BOOL_125 1 +# define BOOST_PP_BOOL_126 1 +# define BOOST_PP_BOOL_127 1 +# define BOOST_PP_BOOL_128 1 +# define BOOST_PP_BOOL_129 1 +# define BOOST_PP_BOOL_130 1 +# define BOOST_PP_BOOL_131 1 +# define BOOST_PP_BOOL_132 1 +# define BOOST_PP_BOOL_133 1 +# define BOOST_PP_BOOL_134 1 +# define BOOST_PP_BOOL_135 1 +# define BOOST_PP_BOOL_136 1 +# define BOOST_PP_BOOL_137 1 +# define BOOST_PP_BOOL_138 1 +# define BOOST_PP_BOOL_139 1 +# define BOOST_PP_BOOL_140 1 +# define BOOST_PP_BOOL_141 1 +# define BOOST_PP_BOOL_142 1 +# define BOOST_PP_BOOL_143 1 +# define BOOST_PP_BOOL_144 1 +# define BOOST_PP_BOOL_145 1 +# define BOOST_PP_BOOL_146 1 +# define BOOST_PP_BOOL_147 1 +# define BOOST_PP_BOOL_148 1 +# define BOOST_PP_BOOL_149 1 +# define BOOST_PP_BOOL_150 1 +# define BOOST_PP_BOOL_151 1 +# define BOOST_PP_BOOL_152 1 +# define BOOST_PP_BOOL_153 1 +# define BOOST_PP_BOOL_154 1 +# define BOOST_PP_BOOL_155 1 +# define BOOST_PP_BOOL_156 1 +# define BOOST_PP_BOOL_157 1 +# define BOOST_PP_BOOL_158 1 +# define BOOST_PP_BOOL_159 1 +# define BOOST_PP_BOOL_160 1 +# define BOOST_PP_BOOL_161 1 +# define BOOST_PP_BOOL_162 1 +# define BOOST_PP_BOOL_163 1 +# define BOOST_PP_BOOL_164 1 +# define BOOST_PP_BOOL_165 1 +# define BOOST_PP_BOOL_166 1 +# define BOOST_PP_BOOL_167 1 +# define BOOST_PP_BOOL_168 1 +# define BOOST_PP_BOOL_169 1 +# define BOOST_PP_BOOL_170 1 +# define BOOST_PP_BOOL_171 1 +# define BOOST_PP_BOOL_172 1 +# define BOOST_PP_BOOL_173 1 +# define BOOST_PP_BOOL_174 1 +# define BOOST_PP_BOOL_175 1 +# define BOOST_PP_BOOL_176 1 +# define BOOST_PP_BOOL_177 1 +# define BOOST_PP_BOOL_178 1 +# define BOOST_PP_BOOL_179 1 +# define BOOST_PP_BOOL_180 1 +# define BOOST_PP_BOOL_181 1 +# define BOOST_PP_BOOL_182 1 +# define BOOST_PP_BOOL_183 1 +# define BOOST_PP_BOOL_184 1 +# define BOOST_PP_BOOL_185 1 +# define BOOST_PP_BOOL_186 1 +# define BOOST_PP_BOOL_187 1 +# define BOOST_PP_BOOL_188 1 +# define BOOST_PP_BOOL_189 1 +# define BOOST_PP_BOOL_190 1 +# define BOOST_PP_BOOL_191 1 +# define BOOST_PP_BOOL_192 1 +# define BOOST_PP_BOOL_193 1 +# define BOOST_PP_BOOL_194 1 +# define BOOST_PP_BOOL_195 1 +# define BOOST_PP_BOOL_196 1 +# define BOOST_PP_BOOL_197 1 +# define BOOST_PP_BOOL_198 1 +# define BOOST_PP_BOOL_199 1 +# define BOOST_PP_BOOL_200 1 +# define BOOST_PP_BOOL_201 1 +# define BOOST_PP_BOOL_202 1 +# define BOOST_PP_BOOL_203 1 +# define BOOST_PP_BOOL_204 1 +# define BOOST_PP_BOOL_205 1 +# define BOOST_PP_BOOL_206 1 +# define BOOST_PP_BOOL_207 1 +# define BOOST_PP_BOOL_208 1 +# define BOOST_PP_BOOL_209 1 +# define BOOST_PP_BOOL_210 1 +# define BOOST_PP_BOOL_211 1 +# define BOOST_PP_BOOL_212 1 +# define BOOST_PP_BOOL_213 1 +# define BOOST_PP_BOOL_214 1 +# define BOOST_PP_BOOL_215 1 +# define BOOST_PP_BOOL_216 1 +# define BOOST_PP_BOOL_217 1 +# define BOOST_PP_BOOL_218 1 +# define BOOST_PP_BOOL_219 1 +# define BOOST_PP_BOOL_220 1 +# define BOOST_PP_BOOL_221 1 +# define BOOST_PP_BOOL_222 1 +# define BOOST_PP_BOOL_223 1 +# define BOOST_PP_BOOL_224 1 +# define BOOST_PP_BOOL_225 1 +# define BOOST_PP_BOOL_226 1 +# define BOOST_PP_BOOL_227 1 +# define BOOST_PP_BOOL_228 1 +# define BOOST_PP_BOOL_229 1 +# define BOOST_PP_BOOL_230 1 +# define BOOST_PP_BOOL_231 1 +# define BOOST_PP_BOOL_232 1 +# define BOOST_PP_BOOL_233 1 +# define BOOST_PP_BOOL_234 1 +# define BOOST_PP_BOOL_235 1 +# define BOOST_PP_BOOL_236 1 +# define BOOST_PP_BOOL_237 1 +# define BOOST_PP_BOOL_238 1 +# define BOOST_PP_BOOL_239 1 +# define BOOST_PP_BOOL_240 1 +# define BOOST_PP_BOOL_241 1 +# define BOOST_PP_BOOL_242 1 +# define BOOST_PP_BOOL_243 1 +# define BOOST_PP_BOOL_244 1 +# define BOOST_PP_BOOL_245 1 +# define BOOST_PP_BOOL_246 1 +# define BOOST_PP_BOOL_247 1 +# define BOOST_PP_BOOL_248 1 +# define BOOST_PP_BOOL_249 1 +# define BOOST_PP_BOOL_250 1 +# define BOOST_PP_BOOL_251 1 +# define BOOST_PP_BOOL_252 1 +# define BOOST_PP_BOOL_253 1 +# define BOOST_PP_BOOL_254 1 +# define BOOST_PP_BOOL_255 1 +# define BOOST_PP_BOOL_256 1 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/logical/compl.hpp b/external-libs/boost/boost/preprocessor/logical/compl.hpp new file mode 100644 index 0000000..ad4c7a4 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/logical/compl.hpp @@ -0,0 +1,36 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP +# define BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP +# +# include +# +# /* BOOST_PP_COMPL */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_COMPL(x) BOOST_PP_COMPL_I(x) +# else +# define BOOST_PP_COMPL(x) BOOST_PP_COMPL_OO((x)) +# define BOOST_PP_COMPL_OO(par) BOOST_PP_COMPL_I ## par +# endif +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ ## x +# else +# define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ID(BOOST_PP_COMPL_ ## x) +# define BOOST_PP_COMPL_ID(id) id +# endif +# +# define BOOST_PP_COMPL_0 1 +# define BOOST_PP_COMPL_1 0 +# +# endif diff --git a/external-libs/boost/boost/preprocessor/punctuation/comma.hpp b/external-libs/boost/boost/preprocessor/punctuation/comma.hpp new file mode 100644 index 0000000..38c2e0e --- /dev/null +++ b/external-libs/boost/boost/preprocessor/punctuation/comma.hpp @@ -0,0 +1,21 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP +# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP +# +# /* BOOST_PP_COMMA */ +# +# define BOOST_PP_COMMA() , +# +# endif diff --git a/external-libs/boost/boost/preprocessor/punctuation/comma_if.hpp b/external-libs/boost/boost/preprocessor/punctuation/comma_if.hpp new file mode 100644 index 0000000..c711f36 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/punctuation/comma_if.hpp @@ -0,0 +1,31 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP +# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP +# +# include +# include +# include +# include +# +# /* BOOST_PP_COMMA_IF */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() +# define BOOST_PP_COMMA_IF(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() +# else +# define BOOST_PP_COMMA_IF(cond) BOOST_PP_COMMA_IF_I(cond) +# define BOOST_PP_COMMA_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() +# endif +# +# endif diff --git a/external-libs/boost/boost/preprocessor/repeat.hpp b/external-libs/boost/boost/preprocessor/repeat.hpp new file mode 100644 index 0000000..7c47ee8 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/repeat.hpp @@ -0,0 +1,17 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Paul Mensonides 2002. +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_REPEAT_HPP +# define BOOST_PREPROCESSOR_REPEAT_HPP +# +# include +# +# endif diff --git a/external-libs/boost/boost/preprocessor/repetition/repeat.hpp b/external-libs/boost/boost/preprocessor/repetition/repeat.hpp new file mode 100644 index 0000000..0172738 --- /dev/null +++ b/external-libs/boost/boost/preprocessor/repetition/repeat.hpp @@ -0,0 +1,825 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP +# define BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP +# +# include +# include +# include +# include +# include +# +# /* BOOST_PP_REPEAT */ +# +# if 0 +# define BOOST_PP_REPEAT(count, macro, data) +# endif +# +# define BOOST_PP_REPEAT BOOST_PP_CAT(BOOST_PP_REPEAT_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)) +# +# define BOOST_PP_REPEAT_P(n) BOOST_PP_CAT(BOOST_PP_REPEAT_CHECK_, BOOST_PP_REPEAT_ ## n(1, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3, BOOST_PP_NIL)) +# +# define BOOST_PP_REPEAT_CHECK_BOOST_PP_NIL 1 +# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_1(c, m, d) 0 +# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_2(c, m, d) 0 +# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_3(c, m, d) 0 +# +# define BOOST_PP_REPEAT_1(c, m, d) BOOST_PP_REPEAT_1_I(c, m, d) +# define BOOST_PP_REPEAT_2(c, m, d) BOOST_PP_REPEAT_2_I(c, m, d) +# define BOOST_PP_REPEAT_3(c, m, d) BOOST_PP_REPEAT_3_I(c, m, d) +# define BOOST_PP_REPEAT_4(c, m, d) BOOST_PP_ERROR(0x0003) +# +# define BOOST_PP_REPEAT_1_I(c, m, d) BOOST_PP_REPEAT_1_ ## c(m, d) +# define BOOST_PP_REPEAT_2_I(c, m, d) BOOST_PP_REPEAT_2_ ## c(m, d) +# define BOOST_PP_REPEAT_3_I(c, m, d) BOOST_PP_REPEAT_3_ ## c(m, d) +# +# define BOOST_PP_REPEAT_1ST BOOST_PP_REPEAT_1 +# define BOOST_PP_REPEAT_2ND BOOST_PP_REPEAT_2 +# define BOOST_PP_REPEAT_3RD BOOST_PP_REPEAT_3 +# +# define BOOST_PP_REPEAT_1_0(m, d) +# define BOOST_PP_REPEAT_1_1(m, d) m(2, 0, d) +# define BOOST_PP_REPEAT_1_2(m, d) BOOST_PP_REPEAT_1_1(m, d) m(2, 1, d) +# define BOOST_PP_REPEAT_1_3(m, d) BOOST_PP_REPEAT_1_2(m, d) m(2, 2, d) +# define BOOST_PP_REPEAT_1_4(m, d) BOOST_PP_REPEAT_1_3(m, d) m(2, 3, d) +# define BOOST_PP_REPEAT_1_5(m, d) BOOST_PP_REPEAT_1_4(m, d) m(2, 4, d) +# define BOOST_PP_REPEAT_1_6(m, d) BOOST_PP_REPEAT_1_5(m, d) m(2, 5, d) +# define BOOST_PP_REPEAT_1_7(m, d) BOOST_PP_REPEAT_1_6(m, d) m(2, 6, d) +# define BOOST_PP_REPEAT_1_8(m, d) BOOST_PP_REPEAT_1_7(m, d) m(2, 7, d) +# define BOOST_PP_REPEAT_1_9(m, d) BOOST_PP_REPEAT_1_8(m, d) m(2, 8, d) +# define BOOST_PP_REPEAT_1_10(m, d) BOOST_PP_REPEAT_1_9(m, d) m(2, 9, d) +# define BOOST_PP_REPEAT_1_11(m, d) BOOST_PP_REPEAT_1_10(m, d) m(2, 10, d) +# define BOOST_PP_REPEAT_1_12(m, d) BOOST_PP_REPEAT_1_11(m, d) m(2, 11, d) +# define BOOST_PP_REPEAT_1_13(m, d) BOOST_PP_REPEAT_1_12(m, d) m(2, 12, d) +# define BOOST_PP_REPEAT_1_14(m, d) BOOST_PP_REPEAT_1_13(m, d) m(2, 13, d) +# define BOOST_PP_REPEAT_1_15(m, d) BOOST_PP_REPEAT_1_14(m, d) m(2, 14, d) +# define BOOST_PP_REPEAT_1_16(m, d) BOOST_PP_REPEAT_1_15(m, d) m(2, 15, d) +# define BOOST_PP_REPEAT_1_17(m, d) BOOST_PP_REPEAT_1_16(m, d) m(2, 16, d) +# define BOOST_PP_REPEAT_1_18(m, d) BOOST_PP_REPEAT_1_17(m, d) m(2, 17, d) +# define BOOST_PP_REPEAT_1_19(m, d) BOOST_PP_REPEAT_1_18(m, d) m(2, 18, d) +# define BOOST_PP_REPEAT_1_20(m, d) BOOST_PP_REPEAT_1_19(m, d) m(2, 19, d) +# define BOOST_PP_REPEAT_1_21(m, d) BOOST_PP_REPEAT_1_20(m, d) m(2, 20, d) +# define BOOST_PP_REPEAT_1_22(m, d) BOOST_PP_REPEAT_1_21(m, d) m(2, 21, d) +# define BOOST_PP_REPEAT_1_23(m, d) BOOST_PP_REPEAT_1_22(m, d) m(2, 22, d) +# define BOOST_PP_REPEAT_1_24(m, d) BOOST_PP_REPEAT_1_23(m, d) m(2, 23, d) +# define BOOST_PP_REPEAT_1_25(m, d) BOOST_PP_REPEAT_1_24(m, d) m(2, 24, d) +# define BOOST_PP_REPEAT_1_26(m, d) BOOST_PP_REPEAT_1_25(m, d) m(2, 25, d) +# define BOOST_PP_REPEAT_1_27(m, d) BOOST_PP_REPEAT_1_26(m, d) m(2, 26, d) +# define BOOST_PP_REPEAT_1_28(m, d) BOOST_PP_REPEAT_1_27(m, d) m(2, 27, d) +# define BOOST_PP_REPEAT_1_29(m, d) BOOST_PP_REPEAT_1_28(m, d) m(2, 28, d) +# define BOOST_PP_REPEAT_1_30(m, d) BOOST_PP_REPEAT_1_29(m, d) m(2, 29, d) +# define BOOST_PP_REPEAT_1_31(m, d) BOOST_PP_REPEAT_1_30(m, d) m(2, 30, d) +# define BOOST_PP_REPEAT_1_32(m, d) BOOST_PP_REPEAT_1_31(m, d) m(2, 31, d) +# define BOOST_PP_REPEAT_1_33(m, d) BOOST_PP_REPEAT_1_32(m, d) m(2, 32, d) +# define BOOST_PP_REPEAT_1_34(m, d) BOOST_PP_REPEAT_1_33(m, d) m(2, 33, d) +# define BOOST_PP_REPEAT_1_35(m, d) BOOST_PP_REPEAT_1_34(m, d) m(2, 34, d) +# define BOOST_PP_REPEAT_1_36(m, d) BOOST_PP_REPEAT_1_35(m, d) m(2, 35, d) +# define BOOST_PP_REPEAT_1_37(m, d) BOOST_PP_REPEAT_1_36(m, d) m(2, 36, d) +# define BOOST_PP_REPEAT_1_38(m, d) BOOST_PP_REPEAT_1_37(m, d) m(2, 37, d) +# define BOOST_PP_REPEAT_1_39(m, d) BOOST_PP_REPEAT_1_38(m, d) m(2, 38, d) +# define BOOST_PP_REPEAT_1_40(m, d) BOOST_PP_REPEAT_1_39(m, d) m(2, 39, d) +# define BOOST_PP_REPEAT_1_41(m, d) BOOST_PP_REPEAT_1_40(m, d) m(2, 40, d) +# define BOOST_PP_REPEAT_1_42(m, d) BOOST_PP_REPEAT_1_41(m, d) m(2, 41, d) +# define BOOST_PP_REPEAT_1_43(m, d) BOOST_PP_REPEAT_1_42(m, d) m(2, 42, d) +# define BOOST_PP_REPEAT_1_44(m, d) BOOST_PP_REPEAT_1_43(m, d) m(2, 43, d) +# define BOOST_PP_REPEAT_1_45(m, d) BOOST_PP_REPEAT_1_44(m, d) m(2, 44, d) +# define BOOST_PP_REPEAT_1_46(m, d) BOOST_PP_REPEAT_1_45(m, d) m(2, 45, d) +# define BOOST_PP_REPEAT_1_47(m, d) BOOST_PP_REPEAT_1_46(m, d) m(2, 46, d) +# define BOOST_PP_REPEAT_1_48(m, d) BOOST_PP_REPEAT_1_47(m, d) m(2, 47, d) +# define BOOST_PP_REPEAT_1_49(m, d) BOOST_PP_REPEAT_1_48(m, d) m(2, 48, d) +# define BOOST_PP_REPEAT_1_50(m, d) BOOST_PP_REPEAT_1_49(m, d) m(2, 49, d) +# define BOOST_PP_REPEAT_1_51(m, d) BOOST_PP_REPEAT_1_50(m, d) m(2, 50, d) +# define BOOST_PP_REPEAT_1_52(m, d) BOOST_PP_REPEAT_1_51(m, d) m(2, 51, d) +# define BOOST_PP_REPEAT_1_53(m, d) BOOST_PP_REPEAT_1_52(m, d) m(2, 52, d) +# define BOOST_PP_REPEAT_1_54(m, d) BOOST_PP_REPEAT_1_53(m, d) m(2, 53, d) +# define BOOST_PP_REPEAT_1_55(m, d) BOOST_PP_REPEAT_1_54(m, d) m(2, 54, d) +# define BOOST_PP_REPEAT_1_56(m, d) BOOST_PP_REPEAT_1_55(m, d) m(2, 55, d) +# define BOOST_PP_REPEAT_1_57(m, d) BOOST_PP_REPEAT_1_56(m, d) m(2, 56, d) +# define BOOST_PP_REPEAT_1_58(m, d) BOOST_PP_REPEAT_1_57(m, d) m(2, 57, d) +# define BOOST_PP_REPEAT_1_59(m, d) BOOST_PP_REPEAT_1_58(m, d) m(2, 58, d) +# define BOOST_PP_REPEAT_1_60(m, d) BOOST_PP_REPEAT_1_59(m, d) m(2, 59, d) +# define BOOST_PP_REPEAT_1_61(m, d) BOOST_PP_REPEAT_1_60(m, d) m(2, 60, d) +# define BOOST_PP_REPEAT_1_62(m, d) BOOST_PP_REPEAT_1_61(m, d) m(2, 61, d) +# define BOOST_PP_REPEAT_1_63(m, d) BOOST_PP_REPEAT_1_62(m, d) m(2, 62, d) +# define BOOST_PP_REPEAT_1_64(m, d) BOOST_PP_REPEAT_1_63(m, d) m(2, 63, d) +# define BOOST_PP_REPEAT_1_65(m, d) BOOST_PP_REPEAT_1_64(m, d) m(2, 64, d) +# define BOOST_PP_REPEAT_1_66(m, d) BOOST_PP_REPEAT_1_65(m, d) m(2, 65, d) +# define BOOST_PP_REPEAT_1_67(m, d) BOOST_PP_REPEAT_1_66(m, d) m(2, 66, d) +# define BOOST_PP_REPEAT_1_68(m, d) BOOST_PP_REPEAT_1_67(m, d) m(2, 67, d) +# define BOOST_PP_REPEAT_1_69(m, d) BOOST_PP_REPEAT_1_68(m, d) m(2, 68, d) +# define BOOST_PP_REPEAT_1_70(m, d) BOOST_PP_REPEAT_1_69(m, d) m(2, 69, d) +# define BOOST_PP_REPEAT_1_71(m, d) BOOST_PP_REPEAT_1_70(m, d) m(2, 70, d) +# define BOOST_PP_REPEAT_1_72(m, d) BOOST_PP_REPEAT_1_71(m, d) m(2, 71, d) +# define BOOST_PP_REPEAT_1_73(m, d) BOOST_PP_REPEAT_1_72(m, d) m(2, 72, d) +# define BOOST_PP_REPEAT_1_74(m, d) BOOST_PP_REPEAT_1_73(m, d) m(2, 73, d) +# define BOOST_PP_REPEAT_1_75(m, d) BOOST_PP_REPEAT_1_74(m, d) m(2, 74, d) +# define BOOST_PP_REPEAT_1_76(m, d) BOOST_PP_REPEAT_1_75(m, d) m(2, 75, d) +# define BOOST_PP_REPEAT_1_77(m, d) BOOST_PP_REPEAT_1_76(m, d) m(2, 76, d) +# define BOOST_PP_REPEAT_1_78(m, d) BOOST_PP_REPEAT_1_77(m, d) m(2, 77, d) +# define BOOST_PP_REPEAT_1_79(m, d) BOOST_PP_REPEAT_1_78(m, d) m(2, 78, d) +# define BOOST_PP_REPEAT_1_80(m, d) BOOST_PP_REPEAT_1_79(m, d) m(2, 79, d) +# define BOOST_PP_REPEAT_1_81(m, d) BOOST_PP_REPEAT_1_80(m, d) m(2, 80, d) +# define BOOST_PP_REPEAT_1_82(m, d) BOOST_PP_REPEAT_1_81(m, d) m(2, 81, d) +# define BOOST_PP_REPEAT_1_83(m, d) BOOST_PP_REPEAT_1_82(m, d) m(2, 82, d) +# define BOOST_PP_REPEAT_1_84(m, d) BOOST_PP_REPEAT_1_83(m, d) m(2, 83, d) +# define BOOST_PP_REPEAT_1_85(m, d) BOOST_PP_REPEAT_1_84(m, d) m(2, 84, d) +# define BOOST_PP_REPEAT_1_86(m, d) BOOST_PP_REPEAT_1_85(m, d) m(2, 85, d) +# define BOOST_PP_REPEAT_1_87(m, d) BOOST_PP_REPEAT_1_86(m, d) m(2, 86, d) +# define BOOST_PP_REPEAT_1_88(m, d) BOOST_PP_REPEAT_1_87(m, d) m(2, 87, d) +# define BOOST_PP_REPEAT_1_89(m, d) BOOST_PP_REPEAT_1_88(m, d) m(2, 88, d) +# define BOOST_PP_REPEAT_1_90(m, d) BOOST_PP_REPEAT_1_89(m, d) m(2, 89, d) +# define BOOST_PP_REPEAT_1_91(m, d) BOOST_PP_REPEAT_1_90(m, d) m(2, 90, d) +# define BOOST_PP_REPEAT_1_92(m, d) BOOST_PP_REPEAT_1_91(m, d) m(2, 91, d) +# define BOOST_PP_REPEAT_1_93(m, d) BOOST_PP_REPEAT_1_92(m, d) m(2, 92, d) +# define BOOST_PP_REPEAT_1_94(m, d) BOOST_PP_REPEAT_1_93(m, d) m(2, 93, d) +# define BOOST_PP_REPEAT_1_95(m, d) BOOST_PP_REPEAT_1_94(m, d) m(2, 94, d) +# define BOOST_PP_REPEAT_1_96(m, d) BOOST_PP_REPEAT_1_95(m, d) m(2, 95, d) +# define BOOST_PP_REPEAT_1_97(m, d) BOOST_PP_REPEAT_1_96(m, d) m(2, 96, d) +# define BOOST_PP_REPEAT_1_98(m, d) BOOST_PP_REPEAT_1_97(m, d) m(2, 97, d) +# define BOOST_PP_REPEAT_1_99(m, d) BOOST_PP_REPEAT_1_98(m, d) m(2, 98, d) +# define BOOST_PP_REPEAT_1_100(m, d) BOOST_PP_REPEAT_1_99(m, d) m(2, 99, d) +# define BOOST_PP_REPEAT_1_101(m, d) BOOST_PP_REPEAT_1_100(m, d) m(2, 100, d) +# define BOOST_PP_REPEAT_1_102(m, d) BOOST_PP_REPEAT_1_101(m, d) m(2, 101, d) +# define BOOST_PP_REPEAT_1_103(m, d) BOOST_PP_REPEAT_1_102(m, d) m(2, 102, d) +# define BOOST_PP_REPEAT_1_104(m, d) BOOST_PP_REPEAT_1_103(m, d) m(2, 103, d) +# define BOOST_PP_REPEAT_1_105(m, d) BOOST_PP_REPEAT_1_104(m, d) m(2, 104, d) +# define BOOST_PP_REPEAT_1_106(m, d) BOOST_PP_REPEAT_1_105(m, d) m(2, 105, d) +# define BOOST_PP_REPEAT_1_107(m, d) BOOST_PP_REPEAT_1_106(m, d) m(2, 106, d) +# define BOOST_PP_REPEAT_1_108(m, d) BOOST_PP_REPEAT_1_107(m, d) m(2, 107, d) +# define BOOST_PP_REPEAT_1_109(m, d) BOOST_PP_REPEAT_1_108(m, d) m(2, 108, d) +# define BOOST_PP_REPEAT_1_110(m, d) BOOST_PP_REPEAT_1_109(m, d) m(2, 109, d) +# define BOOST_PP_REPEAT_1_111(m, d) BOOST_PP_REPEAT_1_110(m, d) m(2, 110, d) +# define BOOST_PP_REPEAT_1_112(m, d) BOOST_PP_REPEAT_1_111(m, d) m(2, 111, d) +# define BOOST_PP_REPEAT_1_113(m, d) BOOST_PP_REPEAT_1_112(m, d) m(2, 112, d) +# define BOOST_PP_REPEAT_1_114(m, d) BOOST_PP_REPEAT_1_113(m, d) m(2, 113, d) +# define BOOST_PP_REPEAT_1_115(m, d) BOOST_PP_REPEAT_1_114(m, d) m(2, 114, d) +# define BOOST_PP_REPEAT_1_116(m, d) BOOST_PP_REPEAT_1_115(m, d) m(2, 115, d) +# define BOOST_PP_REPEAT_1_117(m, d) BOOST_PP_REPEAT_1_116(m, d) m(2, 116, d) +# define BOOST_PP_REPEAT_1_118(m, d) BOOST_PP_REPEAT_1_117(m, d) m(2, 117, d) +# define BOOST_PP_REPEAT_1_119(m, d) BOOST_PP_REPEAT_1_118(m, d) m(2, 118, d) +# define BOOST_PP_REPEAT_1_120(m, d) BOOST_PP_REPEAT_1_119(m, d) m(2, 119, d) +# define BOOST_PP_REPEAT_1_121(m, d) BOOST_PP_REPEAT_1_120(m, d) m(2, 120, d) +# define BOOST_PP_REPEAT_1_122(m, d) BOOST_PP_REPEAT_1_121(m, d) m(2, 121, d) +# define BOOST_PP_REPEAT_1_123(m, d) BOOST_PP_REPEAT_1_122(m, d) m(2, 122, d) +# define BOOST_PP_REPEAT_1_124(m, d) BOOST_PP_REPEAT_1_123(m, d) m(2, 123, d) +# define BOOST_PP_REPEAT_1_125(m, d) BOOST_PP_REPEAT_1_124(m, d) m(2, 124, d) +# define BOOST_PP_REPEAT_1_126(m, d) BOOST_PP_REPEAT_1_125(m, d) m(2, 125, d) +# define BOOST_PP_REPEAT_1_127(m, d) BOOST_PP_REPEAT_1_126(m, d) m(2, 126, d) +# define BOOST_PP_REPEAT_1_128(m, d) BOOST_PP_REPEAT_1_127(m, d) m(2, 127, d) +# define BOOST_PP_REPEAT_1_129(m, d) BOOST_PP_REPEAT_1_128(m, d) m(2, 128, d) +# define BOOST_PP_REPEAT_1_130(m, d) BOOST_PP_REPEAT_1_129(m, d) m(2, 129, d) +# define BOOST_PP_REPEAT_1_131(m, d) BOOST_PP_REPEAT_1_130(m, d) m(2, 130, d) +# define BOOST_PP_REPEAT_1_132(m, d) BOOST_PP_REPEAT_1_131(m, d) m(2, 131, d) +# define BOOST_PP_REPEAT_1_133(m, d) BOOST_PP_REPEAT_1_132(m, d) m(2, 132, d) +# define BOOST_PP_REPEAT_1_134(m, d) BOOST_PP_REPEAT_1_133(m, d) m(2, 133, d) +# define BOOST_PP_REPEAT_1_135(m, d) BOOST_PP_REPEAT_1_134(m, d) m(2, 134, d) +# define BOOST_PP_REPEAT_1_136(m, d) BOOST_PP_REPEAT_1_135(m, d) m(2, 135, d) +# define BOOST_PP_REPEAT_1_137(m, d) BOOST_PP_REPEAT_1_136(m, d) m(2, 136, d) +# define BOOST_PP_REPEAT_1_138(m, d) BOOST_PP_REPEAT_1_137(m, d) m(2, 137, d) +# define BOOST_PP_REPEAT_1_139(m, d) BOOST_PP_REPEAT_1_138(m, d) m(2, 138, d) +# define BOOST_PP_REPEAT_1_140(m, d) BOOST_PP_REPEAT_1_139(m, d) m(2, 139, d) +# define BOOST_PP_REPEAT_1_141(m, d) BOOST_PP_REPEAT_1_140(m, d) m(2, 140, d) +# define BOOST_PP_REPEAT_1_142(m, d) BOOST_PP_REPEAT_1_141(m, d) m(2, 141, d) +# define BOOST_PP_REPEAT_1_143(m, d) BOOST_PP_REPEAT_1_142(m, d) m(2, 142, d) +# define BOOST_PP_REPEAT_1_144(m, d) BOOST_PP_REPEAT_1_143(m, d) m(2, 143, d) +# define BOOST_PP_REPEAT_1_145(m, d) BOOST_PP_REPEAT_1_144(m, d) m(2, 144, d) +# define BOOST_PP_REPEAT_1_146(m, d) BOOST_PP_REPEAT_1_145(m, d) m(2, 145, d) +# define BOOST_PP_REPEAT_1_147(m, d) BOOST_PP_REPEAT_1_146(m, d) m(2, 146, d) +# define BOOST_PP_REPEAT_1_148(m, d) BOOST_PP_REPEAT_1_147(m, d) m(2, 147, d) +# define BOOST_PP_REPEAT_1_149(m, d) BOOST_PP_REPEAT_1_148(m, d) m(2, 148, d) +# define BOOST_PP_REPEAT_1_150(m, d) BOOST_PP_REPEAT_1_149(m, d) m(2, 149, d) +# define BOOST_PP_REPEAT_1_151(m, d) BOOST_PP_REPEAT_1_150(m, d) m(2, 150, d) +# define BOOST_PP_REPEAT_1_152(m, d) BOOST_PP_REPEAT_1_151(m, d) m(2, 151, d) +# define BOOST_PP_REPEAT_1_153(m, d) BOOST_PP_REPEAT_1_152(m, d) m(2, 152, d) +# define BOOST_PP_REPEAT_1_154(m, d) BOOST_PP_REPEAT_1_153(m, d) m(2, 153, d) +# define BOOST_PP_REPEAT_1_155(m, d) BOOST_PP_REPEAT_1_154(m, d) m(2, 154, d) +# define BOOST_PP_REPEAT_1_156(m, d) BOOST_PP_REPEAT_1_155(m, d) m(2, 155, d) +# define BOOST_PP_REPEAT_1_157(m, d) BOOST_PP_REPEAT_1_156(m, d) m(2, 156, d) +# define BOOST_PP_REPEAT_1_158(m, d) BOOST_PP_REPEAT_1_157(m, d) m(2, 157, d) +# define BOOST_PP_REPEAT_1_159(m, d) BOOST_PP_REPEAT_1_158(m, d) m(2, 158, d) +# define BOOST_PP_REPEAT_1_160(m, d) BOOST_PP_REPEAT_1_159(m, d) m(2, 159, d) +# define BOOST_PP_REPEAT_1_161(m, d) BOOST_PP_REPEAT_1_160(m, d) m(2, 160, d) +# define BOOST_PP_REPEAT_1_162(m, d) BOOST_PP_REPEAT_1_161(m, d) m(2, 161, d) +# define BOOST_PP_REPEAT_1_163(m, d) BOOST_PP_REPEAT_1_162(m, d) m(2, 162, d) +# define BOOST_PP_REPEAT_1_164(m, d) BOOST_PP_REPEAT_1_163(m, d) m(2, 163, d) +# define BOOST_PP_REPEAT_1_165(m, d) BOOST_PP_REPEAT_1_164(m, d) m(2, 164, d) +# define BOOST_PP_REPEAT_1_166(m, d) BOOST_PP_REPEAT_1_165(m, d) m(2, 165, d) +# define BOOST_PP_REPEAT_1_167(m, d) BOOST_PP_REPEAT_1_166(m, d) m(2, 166, d) +# define BOOST_PP_REPEAT_1_168(m, d) BOOST_PP_REPEAT_1_167(m, d) m(2, 167, d) +# define BOOST_PP_REPEAT_1_169(m, d) BOOST_PP_REPEAT_1_168(m, d) m(2, 168, d) +# define BOOST_PP_REPEAT_1_170(m, d) BOOST_PP_REPEAT_1_169(m, d) m(2, 169, d) +# define BOOST_PP_REPEAT_1_171(m, d) BOOST_PP_REPEAT_1_170(m, d) m(2, 170, d) +# define BOOST_PP_REPEAT_1_172(m, d) BOOST_PP_REPEAT_1_171(m, d) m(2, 171, d) +# define BOOST_PP_REPEAT_1_173(m, d) BOOST_PP_REPEAT_1_172(m, d) m(2, 172, d) +# define BOOST_PP_REPEAT_1_174(m, d) BOOST_PP_REPEAT_1_173(m, d) m(2, 173, d) +# define BOOST_PP_REPEAT_1_175(m, d) BOOST_PP_REPEAT_1_174(m, d) m(2, 174, d) +# define BOOST_PP_REPEAT_1_176(m, d) BOOST_PP_REPEAT_1_175(m, d) m(2, 175, d) +# define BOOST_PP_REPEAT_1_177(m, d) BOOST_PP_REPEAT_1_176(m, d) m(2, 176, d) +# define BOOST_PP_REPEAT_1_178(m, d) BOOST_PP_REPEAT_1_177(m, d) m(2, 177, d) +# define BOOST_PP_REPEAT_1_179(m, d) BOOST_PP_REPEAT_1_178(m, d) m(2, 178, d) +# define BOOST_PP_REPEAT_1_180(m, d) BOOST_PP_REPEAT_1_179(m, d) m(2, 179, d) +# define BOOST_PP_REPEAT_1_181(m, d) BOOST_PP_REPEAT_1_180(m, d) m(2, 180, d) +# define BOOST_PP_REPEAT_1_182(m, d) BOOST_PP_REPEAT_1_181(m, d) m(2, 181, d) +# define BOOST_PP_REPEAT_1_183(m, d) BOOST_PP_REPEAT_1_182(m, d) m(2, 182, d) +# define BOOST_PP_REPEAT_1_184(m, d) BOOST_PP_REPEAT_1_183(m, d) m(2, 183, d) +# define BOOST_PP_REPEAT_1_185(m, d) BOOST_PP_REPEAT_1_184(m, d) m(2, 184, d) +# define BOOST_PP_REPEAT_1_186(m, d) BOOST_PP_REPEAT_1_185(m, d) m(2, 185, d) +# define BOOST_PP_REPEAT_1_187(m, d) BOOST_PP_REPEAT_1_186(m, d) m(2, 186, d) +# define BOOST_PP_REPEAT_1_188(m, d) BOOST_PP_REPEAT_1_187(m, d) m(2, 187, d) +# define BOOST_PP_REPEAT_1_189(m, d) BOOST_PP_REPEAT_1_188(m, d) m(2, 188, d) +# define BOOST_PP_REPEAT_1_190(m, d) BOOST_PP_REPEAT_1_189(m, d) m(2, 189, d) +# define BOOST_PP_REPEAT_1_191(m, d) BOOST_PP_REPEAT_1_190(m, d) m(2, 190, d) +# define BOOST_PP_REPEAT_1_192(m, d) BOOST_PP_REPEAT_1_191(m, d) m(2, 191, d) +# define BOOST_PP_REPEAT_1_193(m, d) BOOST_PP_REPEAT_1_192(m, d) m(2, 192, d) +# define BOOST_PP_REPEAT_1_194(m, d) BOOST_PP_REPEAT_1_193(m, d) m(2, 193, d) +# define BOOST_PP_REPEAT_1_195(m, d) BOOST_PP_REPEAT_1_194(m, d) m(2, 194, d) +# define BOOST_PP_REPEAT_1_196(m, d) BOOST_PP_REPEAT_1_195(m, d) m(2, 195, d) +# define BOOST_PP_REPEAT_1_197(m, d) BOOST_PP_REPEAT_1_196(m, d) m(2, 196, d) +# define BOOST_PP_REPEAT_1_198(m, d) BOOST_PP_REPEAT_1_197(m, d) m(2, 197, d) +# define BOOST_PP_REPEAT_1_199(m, d) BOOST_PP_REPEAT_1_198(m, d) m(2, 198, d) +# define BOOST_PP_REPEAT_1_200(m, d) BOOST_PP_REPEAT_1_199(m, d) m(2, 199, d) +# define BOOST_PP_REPEAT_1_201(m, d) BOOST_PP_REPEAT_1_200(m, d) m(2, 200, d) +# define BOOST_PP_REPEAT_1_202(m, d) BOOST_PP_REPEAT_1_201(m, d) m(2, 201, d) +# define BOOST_PP_REPEAT_1_203(m, d) BOOST_PP_REPEAT_1_202(m, d) m(2, 202, d) +# define BOOST_PP_REPEAT_1_204(m, d) BOOST_PP_REPEAT_1_203(m, d) m(2, 203, d) +# define BOOST_PP_REPEAT_1_205(m, d) BOOST_PP_REPEAT_1_204(m, d) m(2, 204, d) +# define BOOST_PP_REPEAT_1_206(m, d) BOOST_PP_REPEAT_1_205(m, d) m(2, 205, d) +# define BOOST_PP_REPEAT_1_207(m, d) BOOST_PP_REPEAT_1_206(m, d) m(2, 206, d) +# define BOOST_PP_REPEAT_1_208(m, d) BOOST_PP_REPEAT_1_207(m, d) m(2, 207, d) +# define BOOST_PP_REPEAT_1_209(m, d) BOOST_PP_REPEAT_1_208(m, d) m(2, 208, d) +# define BOOST_PP_REPEAT_1_210(m, d) BOOST_PP_REPEAT_1_209(m, d) m(2, 209, d) +# define BOOST_PP_REPEAT_1_211(m, d) BOOST_PP_REPEAT_1_210(m, d) m(2, 210, d) +# define BOOST_PP_REPEAT_1_212(m, d) BOOST_PP_REPEAT_1_211(m, d) m(2, 211, d) +# define BOOST_PP_REPEAT_1_213(m, d) BOOST_PP_REPEAT_1_212(m, d) m(2, 212, d) +# define BOOST_PP_REPEAT_1_214(m, d) BOOST_PP_REPEAT_1_213(m, d) m(2, 213, d) +# define BOOST_PP_REPEAT_1_215(m, d) BOOST_PP_REPEAT_1_214(m, d) m(2, 214, d) +# define BOOST_PP_REPEAT_1_216(m, d) BOOST_PP_REPEAT_1_215(m, d) m(2, 215, d) +# define BOOST_PP_REPEAT_1_217(m, d) BOOST_PP_REPEAT_1_216(m, d) m(2, 216, d) +# define BOOST_PP_REPEAT_1_218(m, d) BOOST_PP_REPEAT_1_217(m, d) m(2, 217, d) +# define BOOST_PP_REPEAT_1_219(m, d) BOOST_PP_REPEAT_1_218(m, d) m(2, 218, d) +# define BOOST_PP_REPEAT_1_220(m, d) BOOST_PP_REPEAT_1_219(m, d) m(2, 219, d) +# define BOOST_PP_REPEAT_1_221(m, d) BOOST_PP_REPEAT_1_220(m, d) m(2, 220, d) +# define BOOST_PP_REPEAT_1_222(m, d) BOOST_PP_REPEAT_1_221(m, d) m(2, 221, d) +# define BOOST_PP_REPEAT_1_223(m, d) BOOST_PP_REPEAT_1_222(m, d) m(2, 222, d) +# define BOOST_PP_REPEAT_1_224(m, d) BOOST_PP_REPEAT_1_223(m, d) m(2, 223, d) +# define BOOST_PP_REPEAT_1_225(m, d) BOOST_PP_REPEAT_1_224(m, d) m(2, 224, d) +# define BOOST_PP_REPEAT_1_226(m, d) BOOST_PP_REPEAT_1_225(m, d) m(2, 225, d) +# define BOOST_PP_REPEAT_1_227(m, d) BOOST_PP_REPEAT_1_226(m, d) m(2, 226, d) +# define BOOST_PP_REPEAT_1_228(m, d) BOOST_PP_REPEAT_1_227(m, d) m(2, 227, d) +# define BOOST_PP_REPEAT_1_229(m, d) BOOST_PP_REPEAT_1_228(m, d) m(2, 228, d) +# define BOOST_PP_REPEAT_1_230(m, d) BOOST_PP_REPEAT_1_229(m, d) m(2, 229, d) +# define BOOST_PP_REPEAT_1_231(m, d) BOOST_PP_REPEAT_1_230(m, d) m(2, 230, d) +# define BOOST_PP_REPEAT_1_232(m, d) BOOST_PP_REPEAT_1_231(m, d) m(2, 231, d) +# define BOOST_PP_REPEAT_1_233(m, d) BOOST_PP_REPEAT_1_232(m, d) m(2, 232, d) +# define BOOST_PP_REPEAT_1_234(m, d) BOOST_PP_REPEAT_1_233(m, d) m(2, 233, d) +# define BOOST_PP_REPEAT_1_235(m, d) BOOST_PP_REPEAT_1_234(m, d) m(2, 234, d) +# define BOOST_PP_REPEAT_1_236(m, d) BOOST_PP_REPEAT_1_235(m, d) m(2, 235, d) +# define BOOST_PP_REPEAT_1_237(m, d) BOOST_PP_REPEAT_1_236(m, d) m(2, 236, d) +# define BOOST_PP_REPEAT_1_238(m, d) BOOST_PP_REPEAT_1_237(m, d) m(2, 237, d) +# define BOOST_PP_REPEAT_1_239(m, d) BOOST_PP_REPEAT_1_238(m, d) m(2, 238, d) +# define BOOST_PP_REPEAT_1_240(m, d) BOOST_PP_REPEAT_1_239(m, d) m(2, 239, d) +# define BOOST_PP_REPEAT_1_241(m, d) BOOST_PP_REPEAT_1_240(m, d) m(2, 240, d) +# define BOOST_PP_REPEAT_1_242(m, d) BOOST_PP_REPEAT_1_241(m, d) m(2, 241, d) +# define BOOST_PP_REPEAT_1_243(m, d) BOOST_PP_REPEAT_1_242(m, d) m(2, 242, d) +# define BOOST_PP_REPEAT_1_244(m, d) BOOST_PP_REPEAT_1_243(m, d) m(2, 243, d) +# define BOOST_PP_REPEAT_1_245(m, d) BOOST_PP_REPEAT_1_244(m, d) m(2, 244, d) +# define BOOST_PP_REPEAT_1_246(m, d) BOOST_PP_REPEAT_1_245(m, d) m(2, 245, d) +# define BOOST_PP_REPEAT_1_247(m, d) BOOST_PP_REPEAT_1_246(m, d) m(2, 246, d) +# define BOOST_PP_REPEAT_1_248(m, d) BOOST_PP_REPEAT_1_247(m, d) m(2, 247, d) +# define BOOST_PP_REPEAT_1_249(m, d) BOOST_PP_REPEAT_1_248(m, d) m(2, 248, d) +# define BOOST_PP_REPEAT_1_250(m, d) BOOST_PP_REPEAT_1_249(m, d) m(2, 249, d) +# define BOOST_PP_REPEAT_1_251(m, d) BOOST_PP_REPEAT_1_250(m, d) m(2, 250, d) +# define BOOST_PP_REPEAT_1_252(m, d) BOOST_PP_REPEAT_1_251(m, d) m(2, 251, d) +# define BOOST_PP_REPEAT_1_253(m, d) BOOST_PP_REPEAT_1_252(m, d) m(2, 252, d) +# define BOOST_PP_REPEAT_1_254(m, d) BOOST_PP_REPEAT_1_253(m, d) m(2, 253, d) +# define BOOST_PP_REPEAT_1_255(m, d) BOOST_PP_REPEAT_1_254(m, d) m(2, 254, d) +# define BOOST_PP_REPEAT_1_256(m, d) BOOST_PP_REPEAT_1_255(m, d) m(2, 255, d) +# +# define BOOST_PP_REPEAT_2_0(m, d) +# define BOOST_PP_REPEAT_2_1(m, d) m(3, 0, d) +# define BOOST_PP_REPEAT_2_2(m, d) BOOST_PP_REPEAT_2_1(m, d) m(3, 1, d) +# define BOOST_PP_REPEAT_2_3(m, d) BOOST_PP_REPEAT_2_2(m, d) m(3, 2, d) +# define BOOST_PP_REPEAT_2_4(m, d) BOOST_PP_REPEAT_2_3(m, d) m(3, 3, d) +# define BOOST_PP_REPEAT_2_5(m, d) BOOST_PP_REPEAT_2_4(m, d) m(3, 4, d) +# define BOOST_PP_REPEAT_2_6(m, d) BOOST_PP_REPEAT_2_5(m, d) m(3, 5, d) +# define BOOST_PP_REPEAT_2_7(m, d) BOOST_PP_REPEAT_2_6(m, d) m(3, 6, d) +# define BOOST_PP_REPEAT_2_8(m, d) BOOST_PP_REPEAT_2_7(m, d) m(3, 7, d) +# define BOOST_PP_REPEAT_2_9(m, d) BOOST_PP_REPEAT_2_8(m, d) m(3, 8, d) +# define BOOST_PP_REPEAT_2_10(m, d) BOOST_PP_REPEAT_2_9(m, d) m(3, 9, d) +# define BOOST_PP_REPEAT_2_11(m, d) BOOST_PP_REPEAT_2_10(m, d) m(3, 10, d) +# define BOOST_PP_REPEAT_2_12(m, d) BOOST_PP_REPEAT_2_11(m, d) m(3, 11, d) +# define BOOST_PP_REPEAT_2_13(m, d) BOOST_PP_REPEAT_2_12(m, d) m(3, 12, d) +# define BOOST_PP_REPEAT_2_14(m, d) BOOST_PP_REPEAT_2_13(m, d) m(3, 13, d) +# define BOOST_PP_REPEAT_2_15(m, d) BOOST_PP_REPEAT_2_14(m, d) m(3, 14, d) +# define BOOST_PP_REPEAT_2_16(m, d) BOOST_PP_REPEAT_2_15(m, d) m(3, 15, d) +# define BOOST_PP_REPEAT_2_17(m, d) BOOST_PP_REPEAT_2_16(m, d) m(3, 16, d) +# define BOOST_PP_REPEAT_2_18(m, d) BOOST_PP_REPEAT_2_17(m, d) m(3, 17, d) +# define BOOST_PP_REPEAT_2_19(m, d) BOOST_PP_REPEAT_2_18(m, d) m(3, 18, d) +# define BOOST_PP_REPEAT_2_20(m, d) BOOST_PP_REPEAT_2_19(m, d) m(3, 19, d) +# define BOOST_PP_REPEAT_2_21(m, d) BOOST_PP_REPEAT_2_20(m, d) m(3, 20, d) +# define BOOST_PP_REPEAT_2_22(m, d) BOOST_PP_REPEAT_2_21(m, d) m(3, 21, d) +# define BOOST_PP_REPEAT_2_23(m, d) BOOST_PP_REPEAT_2_22(m, d) m(3, 22, d) +# define BOOST_PP_REPEAT_2_24(m, d) BOOST_PP_REPEAT_2_23(m, d) m(3, 23, d) +# define BOOST_PP_REPEAT_2_25(m, d) BOOST_PP_REPEAT_2_24(m, d) m(3, 24, d) +# define BOOST_PP_REPEAT_2_26(m, d) BOOST_PP_REPEAT_2_25(m, d) m(3, 25, d) +# define BOOST_PP_REPEAT_2_27(m, d) BOOST_PP_REPEAT_2_26(m, d) m(3, 26, d) +# define BOOST_PP_REPEAT_2_28(m, d) BOOST_PP_REPEAT_2_27(m, d) m(3, 27, d) +# define BOOST_PP_REPEAT_2_29(m, d) BOOST_PP_REPEAT_2_28(m, d) m(3, 28, d) +# define BOOST_PP_REPEAT_2_30(m, d) BOOST_PP_REPEAT_2_29(m, d) m(3, 29, d) +# define BOOST_PP_REPEAT_2_31(m, d) BOOST_PP_REPEAT_2_30(m, d) m(3, 30, d) +# define BOOST_PP_REPEAT_2_32(m, d) BOOST_PP_REPEAT_2_31(m, d) m(3, 31, d) +# define BOOST_PP_REPEAT_2_33(m, d) BOOST_PP_REPEAT_2_32(m, d) m(3, 32, d) +# define BOOST_PP_REPEAT_2_34(m, d) BOOST_PP_REPEAT_2_33(m, d) m(3, 33, d) +# define BOOST_PP_REPEAT_2_35(m, d) BOOST_PP_REPEAT_2_34(m, d) m(3, 34, d) +# define BOOST_PP_REPEAT_2_36(m, d) BOOST_PP_REPEAT_2_35(m, d) m(3, 35, d) +# define BOOST_PP_REPEAT_2_37(m, d) BOOST_PP_REPEAT_2_36(m, d) m(3, 36, d) +# define BOOST_PP_REPEAT_2_38(m, d) BOOST_PP_REPEAT_2_37(m, d) m(3, 37, d) +# define BOOST_PP_REPEAT_2_39(m, d) BOOST_PP_REPEAT_2_38(m, d) m(3, 38, d) +# define BOOST_PP_REPEAT_2_40(m, d) BOOST_PP_REPEAT_2_39(m, d) m(3, 39, d) +# define BOOST_PP_REPEAT_2_41(m, d) BOOST_PP_REPEAT_2_40(m, d) m(3, 40, d) +# define BOOST_PP_REPEAT_2_42(m, d) BOOST_PP_REPEAT_2_41(m, d) m(3, 41, d) +# define BOOST_PP_REPEAT_2_43(m, d) BOOST_PP_REPEAT_2_42(m, d) m(3, 42, d) +# define BOOST_PP_REPEAT_2_44(m, d) BOOST_PP_REPEAT_2_43(m, d) m(3, 43, d) +# define BOOST_PP_REPEAT_2_45(m, d) BOOST_PP_REPEAT_2_44(m, d) m(3, 44, d) +# define BOOST_PP_REPEAT_2_46(m, d) BOOST_PP_REPEAT_2_45(m, d) m(3, 45, d) +# define BOOST_PP_REPEAT_2_47(m, d) BOOST_PP_REPEAT_2_46(m, d) m(3, 46, d) +# define BOOST_PP_REPEAT_2_48(m, d) BOOST_PP_REPEAT_2_47(m, d) m(3, 47, d) +# define BOOST_PP_REPEAT_2_49(m, d) BOOST_PP_REPEAT_2_48(m, d) m(3, 48, d) +# define BOOST_PP_REPEAT_2_50(m, d) BOOST_PP_REPEAT_2_49(m, d) m(3, 49, d) +# define BOOST_PP_REPEAT_2_51(m, d) BOOST_PP_REPEAT_2_50(m, d) m(3, 50, d) +# define BOOST_PP_REPEAT_2_52(m, d) BOOST_PP_REPEAT_2_51(m, d) m(3, 51, d) +# define BOOST_PP_REPEAT_2_53(m, d) BOOST_PP_REPEAT_2_52(m, d) m(3, 52, d) +# define BOOST_PP_REPEAT_2_54(m, d) BOOST_PP_REPEAT_2_53(m, d) m(3, 53, d) +# define BOOST_PP_REPEAT_2_55(m, d) BOOST_PP_REPEAT_2_54(m, d) m(3, 54, d) +# define BOOST_PP_REPEAT_2_56(m, d) BOOST_PP_REPEAT_2_55(m, d) m(3, 55, d) +# define BOOST_PP_REPEAT_2_57(m, d) BOOST_PP_REPEAT_2_56(m, d) m(3, 56, d) +# define BOOST_PP_REPEAT_2_58(m, d) BOOST_PP_REPEAT_2_57(m, d) m(3, 57, d) +# define BOOST_PP_REPEAT_2_59(m, d) BOOST_PP_REPEAT_2_58(m, d) m(3, 58, d) +# define BOOST_PP_REPEAT_2_60(m, d) BOOST_PP_REPEAT_2_59(m, d) m(3, 59, d) +# define BOOST_PP_REPEAT_2_61(m, d) BOOST_PP_REPEAT_2_60(m, d) m(3, 60, d) +# define BOOST_PP_REPEAT_2_62(m, d) BOOST_PP_REPEAT_2_61(m, d) m(3, 61, d) +# define BOOST_PP_REPEAT_2_63(m, d) BOOST_PP_REPEAT_2_62(m, d) m(3, 62, d) +# define BOOST_PP_REPEAT_2_64(m, d) BOOST_PP_REPEAT_2_63(m, d) m(3, 63, d) +# define BOOST_PP_REPEAT_2_65(m, d) BOOST_PP_REPEAT_2_64(m, d) m(3, 64, d) +# define BOOST_PP_REPEAT_2_66(m, d) BOOST_PP_REPEAT_2_65(m, d) m(3, 65, d) +# define BOOST_PP_REPEAT_2_67(m, d) BOOST_PP_REPEAT_2_66(m, d) m(3, 66, d) +# define BOOST_PP_REPEAT_2_68(m, d) BOOST_PP_REPEAT_2_67(m, d) m(3, 67, d) +# define BOOST_PP_REPEAT_2_69(m, d) BOOST_PP_REPEAT_2_68(m, d) m(3, 68, d) +# define BOOST_PP_REPEAT_2_70(m, d) BOOST_PP_REPEAT_2_69(m, d) m(3, 69, d) +# define BOOST_PP_REPEAT_2_71(m, d) BOOST_PP_REPEAT_2_70(m, d) m(3, 70, d) +# define BOOST_PP_REPEAT_2_72(m, d) BOOST_PP_REPEAT_2_71(m, d) m(3, 71, d) +# define BOOST_PP_REPEAT_2_73(m, d) BOOST_PP_REPEAT_2_72(m, d) m(3, 72, d) +# define BOOST_PP_REPEAT_2_74(m, d) BOOST_PP_REPEAT_2_73(m, d) m(3, 73, d) +# define BOOST_PP_REPEAT_2_75(m, d) BOOST_PP_REPEAT_2_74(m, d) m(3, 74, d) +# define BOOST_PP_REPEAT_2_76(m, d) BOOST_PP_REPEAT_2_75(m, d) m(3, 75, d) +# define BOOST_PP_REPEAT_2_77(m, d) BOOST_PP_REPEAT_2_76(m, d) m(3, 76, d) +# define BOOST_PP_REPEAT_2_78(m, d) BOOST_PP_REPEAT_2_77(m, d) m(3, 77, d) +# define BOOST_PP_REPEAT_2_79(m, d) BOOST_PP_REPEAT_2_78(m, d) m(3, 78, d) +# define BOOST_PP_REPEAT_2_80(m, d) BOOST_PP_REPEAT_2_79(m, d) m(3, 79, d) +# define BOOST_PP_REPEAT_2_81(m, d) BOOST_PP_REPEAT_2_80(m, d) m(3, 80, d) +# define BOOST_PP_REPEAT_2_82(m, d) BOOST_PP_REPEAT_2_81(m, d) m(3, 81, d) +# define BOOST_PP_REPEAT_2_83(m, d) BOOST_PP_REPEAT_2_82(m, d) m(3, 82, d) +# define BOOST_PP_REPEAT_2_84(m, d) BOOST_PP_REPEAT_2_83(m, d) m(3, 83, d) +# define BOOST_PP_REPEAT_2_85(m, d) BOOST_PP_REPEAT_2_84(m, d) m(3, 84, d) +# define BOOST_PP_REPEAT_2_86(m, d) BOOST_PP_REPEAT_2_85(m, d) m(3, 85, d) +# define BOOST_PP_REPEAT_2_87(m, d) BOOST_PP_REPEAT_2_86(m, d) m(3, 86, d) +# define BOOST_PP_REPEAT_2_88(m, d) BOOST_PP_REPEAT_2_87(m, d) m(3, 87, d) +# define BOOST_PP_REPEAT_2_89(m, d) BOOST_PP_REPEAT_2_88(m, d) m(3, 88, d) +# define BOOST_PP_REPEAT_2_90(m, d) BOOST_PP_REPEAT_2_89(m, d) m(3, 89, d) +# define BOOST_PP_REPEAT_2_91(m, d) BOOST_PP_REPEAT_2_90(m, d) m(3, 90, d) +# define BOOST_PP_REPEAT_2_92(m, d) BOOST_PP_REPEAT_2_91(m, d) m(3, 91, d) +# define BOOST_PP_REPEAT_2_93(m, d) BOOST_PP_REPEAT_2_92(m, d) m(3, 92, d) +# define BOOST_PP_REPEAT_2_94(m, d) BOOST_PP_REPEAT_2_93(m, d) m(3, 93, d) +# define BOOST_PP_REPEAT_2_95(m, d) BOOST_PP_REPEAT_2_94(m, d) m(3, 94, d) +# define BOOST_PP_REPEAT_2_96(m, d) BOOST_PP_REPEAT_2_95(m, d) m(3, 95, d) +# define BOOST_PP_REPEAT_2_97(m, d) BOOST_PP_REPEAT_2_96(m, d) m(3, 96, d) +# define BOOST_PP_REPEAT_2_98(m, d) BOOST_PP_REPEAT_2_97(m, d) m(3, 97, d) +# define BOOST_PP_REPEAT_2_99(m, d) BOOST_PP_REPEAT_2_98(m, d) m(3, 98, d) +# define BOOST_PP_REPEAT_2_100(m, d) BOOST_PP_REPEAT_2_99(m, d) m(3, 99, d) +# define BOOST_PP_REPEAT_2_101(m, d) BOOST_PP_REPEAT_2_100(m, d) m(3, 100, d) +# define BOOST_PP_REPEAT_2_102(m, d) BOOST_PP_REPEAT_2_101(m, d) m(3, 101, d) +# define BOOST_PP_REPEAT_2_103(m, d) BOOST_PP_REPEAT_2_102(m, d) m(3, 102, d) +# define BOOST_PP_REPEAT_2_104(m, d) BOOST_PP_REPEAT_2_103(m, d) m(3, 103, d) +# define BOOST_PP_REPEAT_2_105(m, d) BOOST_PP_REPEAT_2_104(m, d) m(3, 104, d) +# define BOOST_PP_REPEAT_2_106(m, d) BOOST_PP_REPEAT_2_105(m, d) m(3, 105, d) +# define BOOST_PP_REPEAT_2_107(m, d) BOOST_PP_REPEAT_2_106(m, d) m(3, 106, d) +# define BOOST_PP_REPEAT_2_108(m, d) BOOST_PP_REPEAT_2_107(m, d) m(3, 107, d) +# define BOOST_PP_REPEAT_2_109(m, d) BOOST_PP_REPEAT_2_108(m, d) m(3, 108, d) +# define BOOST_PP_REPEAT_2_110(m, d) BOOST_PP_REPEAT_2_109(m, d) m(3, 109, d) +# define BOOST_PP_REPEAT_2_111(m, d) BOOST_PP_REPEAT_2_110(m, d) m(3, 110, d) +# define BOOST_PP_REPEAT_2_112(m, d) BOOST_PP_REPEAT_2_111(m, d) m(3, 111, d) +# define BOOST_PP_REPEAT_2_113(m, d) BOOST_PP_REPEAT_2_112(m, d) m(3, 112, d) +# define BOOST_PP_REPEAT_2_114(m, d) BOOST_PP_REPEAT_2_113(m, d) m(3, 113, d) +# define BOOST_PP_REPEAT_2_115(m, d) BOOST_PP_REPEAT_2_114(m, d) m(3, 114, d) +# define BOOST_PP_REPEAT_2_116(m, d) BOOST_PP_REPEAT_2_115(m, d) m(3, 115, d) +# define BOOST_PP_REPEAT_2_117(m, d) BOOST_PP_REPEAT_2_116(m, d) m(3, 116, d) +# define BOOST_PP_REPEAT_2_118(m, d) BOOST_PP_REPEAT_2_117(m, d) m(3, 117, d) +# define BOOST_PP_REPEAT_2_119(m, d) BOOST_PP_REPEAT_2_118(m, d) m(3, 118, d) +# define BOOST_PP_REPEAT_2_120(m, d) BOOST_PP_REPEAT_2_119(m, d) m(3, 119, d) +# define BOOST_PP_REPEAT_2_121(m, d) BOOST_PP_REPEAT_2_120(m, d) m(3, 120, d) +# define BOOST_PP_REPEAT_2_122(m, d) BOOST_PP_REPEAT_2_121(m, d) m(3, 121, d) +# define BOOST_PP_REPEAT_2_123(m, d) BOOST_PP_REPEAT_2_122(m, d) m(3, 122, d) +# define BOOST_PP_REPEAT_2_124(m, d) BOOST_PP_REPEAT_2_123(m, d) m(3, 123, d) +# define BOOST_PP_REPEAT_2_125(m, d) BOOST_PP_REPEAT_2_124(m, d) m(3, 124, d) +# define BOOST_PP_REPEAT_2_126(m, d) BOOST_PP_REPEAT_2_125(m, d) m(3, 125, d) +# define BOOST_PP_REPEAT_2_127(m, d) BOOST_PP_REPEAT_2_126(m, d) m(3, 126, d) +# define BOOST_PP_REPEAT_2_128(m, d) BOOST_PP_REPEAT_2_127(m, d) m(3, 127, d) +# define BOOST_PP_REPEAT_2_129(m, d) BOOST_PP_REPEAT_2_128(m, d) m(3, 128, d) +# define BOOST_PP_REPEAT_2_130(m, d) BOOST_PP_REPEAT_2_129(m, d) m(3, 129, d) +# define BOOST_PP_REPEAT_2_131(m, d) BOOST_PP_REPEAT_2_130(m, d) m(3, 130, d) +# define BOOST_PP_REPEAT_2_132(m, d) BOOST_PP_REPEAT_2_131(m, d) m(3, 131, d) +# define BOOST_PP_REPEAT_2_133(m, d) BOOST_PP_REPEAT_2_132(m, d) m(3, 132, d) +# define BOOST_PP_REPEAT_2_134(m, d) BOOST_PP_REPEAT_2_133(m, d) m(3, 133, d) +# define BOOST_PP_REPEAT_2_135(m, d) BOOST_PP_REPEAT_2_134(m, d) m(3, 134, d) +# define BOOST_PP_REPEAT_2_136(m, d) BOOST_PP_REPEAT_2_135(m, d) m(3, 135, d) +# define BOOST_PP_REPEAT_2_137(m, d) BOOST_PP_REPEAT_2_136(m, d) m(3, 136, d) +# define BOOST_PP_REPEAT_2_138(m, d) BOOST_PP_REPEAT_2_137(m, d) m(3, 137, d) +# define BOOST_PP_REPEAT_2_139(m, d) BOOST_PP_REPEAT_2_138(m, d) m(3, 138, d) +# define BOOST_PP_REPEAT_2_140(m, d) BOOST_PP_REPEAT_2_139(m, d) m(3, 139, d) +# define BOOST_PP_REPEAT_2_141(m, d) BOOST_PP_REPEAT_2_140(m, d) m(3, 140, d) +# define BOOST_PP_REPEAT_2_142(m, d) BOOST_PP_REPEAT_2_141(m, d) m(3, 141, d) +# define BOOST_PP_REPEAT_2_143(m, d) BOOST_PP_REPEAT_2_142(m, d) m(3, 142, d) +# define BOOST_PP_REPEAT_2_144(m, d) BOOST_PP_REPEAT_2_143(m, d) m(3, 143, d) +# define BOOST_PP_REPEAT_2_145(m, d) BOOST_PP_REPEAT_2_144(m, d) m(3, 144, d) +# define BOOST_PP_REPEAT_2_146(m, d) BOOST_PP_REPEAT_2_145(m, d) m(3, 145, d) +# define BOOST_PP_REPEAT_2_147(m, d) BOOST_PP_REPEAT_2_146(m, d) m(3, 146, d) +# define BOOST_PP_REPEAT_2_148(m, d) BOOST_PP_REPEAT_2_147(m, d) m(3, 147, d) +# define BOOST_PP_REPEAT_2_149(m, d) BOOST_PP_REPEAT_2_148(m, d) m(3, 148, d) +# define BOOST_PP_REPEAT_2_150(m, d) BOOST_PP_REPEAT_2_149(m, d) m(3, 149, d) +# define BOOST_PP_REPEAT_2_151(m, d) BOOST_PP_REPEAT_2_150(m, d) m(3, 150, d) +# define BOOST_PP_REPEAT_2_152(m, d) BOOST_PP_REPEAT_2_151(m, d) m(3, 151, d) +# define BOOST_PP_REPEAT_2_153(m, d) BOOST_PP_REPEAT_2_152(m, d) m(3, 152, d) +# define BOOST_PP_REPEAT_2_154(m, d) BOOST_PP_REPEAT_2_153(m, d) m(3, 153, d) +# define BOOST_PP_REPEAT_2_155(m, d) BOOST_PP_REPEAT_2_154(m, d) m(3, 154, d) +# define BOOST_PP_REPEAT_2_156(m, d) BOOST_PP_REPEAT_2_155(m, d) m(3, 155, d) +# define BOOST_PP_REPEAT_2_157(m, d) BOOST_PP_REPEAT_2_156(m, d) m(3, 156, d) +# define BOOST_PP_REPEAT_2_158(m, d) BOOST_PP_REPEAT_2_157(m, d) m(3, 157, d) +# define BOOST_PP_REPEAT_2_159(m, d) BOOST_PP_REPEAT_2_158(m, d) m(3, 158, d) +# define BOOST_PP_REPEAT_2_160(m, d) BOOST_PP_REPEAT_2_159(m, d) m(3, 159, d) +# define BOOST_PP_REPEAT_2_161(m, d) BOOST_PP_REPEAT_2_160(m, d) m(3, 160, d) +# define BOOST_PP_REPEAT_2_162(m, d) BOOST_PP_REPEAT_2_161(m, d) m(3, 161, d) +# define BOOST_PP_REPEAT_2_163(m, d) BOOST_PP_REPEAT_2_162(m, d) m(3, 162, d) +# define BOOST_PP_REPEAT_2_164(m, d) BOOST_PP_REPEAT_2_163(m, d) m(3, 163, d) +# define BOOST_PP_REPEAT_2_165(m, d) BOOST_PP_REPEAT_2_164(m, d) m(3, 164, d) +# define BOOST_PP_REPEAT_2_166(m, d) BOOST_PP_REPEAT_2_165(m, d) m(3, 165, d) +# define BOOST_PP_REPEAT_2_167(m, d) BOOST_PP_REPEAT_2_166(m, d) m(3, 166, d) +# define BOOST_PP_REPEAT_2_168(m, d) BOOST_PP_REPEAT_2_167(m, d) m(3, 167, d) +# define BOOST_PP_REPEAT_2_169(m, d) BOOST_PP_REPEAT_2_168(m, d) m(3, 168, d) +# define BOOST_PP_REPEAT_2_170(m, d) BOOST_PP_REPEAT_2_169(m, d) m(3, 169, d) +# define BOOST_PP_REPEAT_2_171(m, d) BOOST_PP_REPEAT_2_170(m, d) m(3, 170, d) +# define BOOST_PP_REPEAT_2_172(m, d) BOOST_PP_REPEAT_2_171(m, d) m(3, 171, d) +# define BOOST_PP_REPEAT_2_173(m, d) BOOST_PP_REPEAT_2_172(m, d) m(3, 172, d) +# define BOOST_PP_REPEAT_2_174(m, d) BOOST_PP_REPEAT_2_173(m, d) m(3, 173, d) +# define BOOST_PP_REPEAT_2_175(m, d) BOOST_PP_REPEAT_2_174(m, d) m(3, 174, d) +# define BOOST_PP_REPEAT_2_176(m, d) BOOST_PP_REPEAT_2_175(m, d) m(3, 175, d) +# define BOOST_PP_REPEAT_2_177(m, d) BOOST_PP_REPEAT_2_176(m, d) m(3, 176, d) +# define BOOST_PP_REPEAT_2_178(m, d) BOOST_PP_REPEAT_2_177(m, d) m(3, 177, d) +# define BOOST_PP_REPEAT_2_179(m, d) BOOST_PP_REPEAT_2_178(m, d) m(3, 178, d) +# define BOOST_PP_REPEAT_2_180(m, d) BOOST_PP_REPEAT_2_179(m, d) m(3, 179, d) +# define BOOST_PP_REPEAT_2_181(m, d) BOOST_PP_REPEAT_2_180(m, d) m(3, 180, d) +# define BOOST_PP_REPEAT_2_182(m, d) BOOST_PP_REPEAT_2_181(m, d) m(3, 181, d) +# define BOOST_PP_REPEAT_2_183(m, d) BOOST_PP_REPEAT_2_182(m, d) m(3, 182, d) +# define BOOST_PP_REPEAT_2_184(m, d) BOOST_PP_REPEAT_2_183(m, d) m(3, 183, d) +# define BOOST_PP_REPEAT_2_185(m, d) BOOST_PP_REPEAT_2_184(m, d) m(3, 184, d) +# define BOOST_PP_REPEAT_2_186(m, d) BOOST_PP_REPEAT_2_185(m, d) m(3, 185, d) +# define BOOST_PP_REPEAT_2_187(m, d) BOOST_PP_REPEAT_2_186(m, d) m(3, 186, d) +# define BOOST_PP_REPEAT_2_188(m, d) BOOST_PP_REPEAT_2_187(m, d) m(3, 187, d) +# define BOOST_PP_REPEAT_2_189(m, d) BOOST_PP_REPEAT_2_188(m, d) m(3, 188, d) +# define BOOST_PP_REPEAT_2_190(m, d) BOOST_PP_REPEAT_2_189(m, d) m(3, 189, d) +# define BOOST_PP_REPEAT_2_191(m, d) BOOST_PP_REPEAT_2_190(m, d) m(3, 190, d) +# define BOOST_PP_REPEAT_2_192(m, d) BOOST_PP_REPEAT_2_191(m, d) m(3, 191, d) +# define BOOST_PP_REPEAT_2_193(m, d) BOOST_PP_REPEAT_2_192(m, d) m(3, 192, d) +# define BOOST_PP_REPEAT_2_194(m, d) BOOST_PP_REPEAT_2_193(m, d) m(3, 193, d) +# define BOOST_PP_REPEAT_2_195(m, d) BOOST_PP_REPEAT_2_194(m, d) m(3, 194, d) +# define BOOST_PP_REPEAT_2_196(m, d) BOOST_PP_REPEAT_2_195(m, d) m(3, 195, d) +# define BOOST_PP_REPEAT_2_197(m, d) BOOST_PP_REPEAT_2_196(m, d) m(3, 196, d) +# define BOOST_PP_REPEAT_2_198(m, d) BOOST_PP_REPEAT_2_197(m, d) m(3, 197, d) +# define BOOST_PP_REPEAT_2_199(m, d) BOOST_PP_REPEAT_2_198(m, d) m(3, 198, d) +# define BOOST_PP_REPEAT_2_200(m, d) BOOST_PP_REPEAT_2_199(m, d) m(3, 199, d) +# define BOOST_PP_REPEAT_2_201(m, d) BOOST_PP_REPEAT_2_200(m, d) m(3, 200, d) +# define BOOST_PP_REPEAT_2_202(m, d) BOOST_PP_REPEAT_2_201(m, d) m(3, 201, d) +# define BOOST_PP_REPEAT_2_203(m, d) BOOST_PP_REPEAT_2_202(m, d) m(3, 202, d) +# define BOOST_PP_REPEAT_2_204(m, d) BOOST_PP_REPEAT_2_203(m, d) m(3, 203, d) +# define BOOST_PP_REPEAT_2_205(m, d) BOOST_PP_REPEAT_2_204(m, d) m(3, 204, d) +# define BOOST_PP_REPEAT_2_206(m, d) BOOST_PP_REPEAT_2_205(m, d) m(3, 205, d) +# define BOOST_PP_REPEAT_2_207(m, d) BOOST_PP_REPEAT_2_206(m, d) m(3, 206, d) +# define BOOST_PP_REPEAT_2_208(m, d) BOOST_PP_REPEAT_2_207(m, d) m(3, 207, d) +# define BOOST_PP_REPEAT_2_209(m, d) BOOST_PP_REPEAT_2_208(m, d) m(3, 208, d) +# define BOOST_PP_REPEAT_2_210(m, d) BOOST_PP_REPEAT_2_209(m, d) m(3, 209, d) +# define BOOST_PP_REPEAT_2_211(m, d) BOOST_PP_REPEAT_2_210(m, d) m(3, 210, d) +# define BOOST_PP_REPEAT_2_212(m, d) BOOST_PP_REPEAT_2_211(m, d) m(3, 211, d) +# define BOOST_PP_REPEAT_2_213(m, d) BOOST_PP_REPEAT_2_212(m, d) m(3, 212, d) +# define BOOST_PP_REPEAT_2_214(m, d) BOOST_PP_REPEAT_2_213(m, d) m(3, 213, d) +# define BOOST_PP_REPEAT_2_215(m, d) BOOST_PP_REPEAT_2_214(m, d) m(3, 214, d) +# define BOOST_PP_REPEAT_2_216(m, d) BOOST_PP_REPEAT_2_215(m, d) m(3, 215, d) +# define BOOST_PP_REPEAT_2_217(m, d) BOOST_PP_REPEAT_2_216(m, d) m(3, 216, d) +# define BOOST_PP_REPEAT_2_218(m, d) BOOST_PP_REPEAT_2_217(m, d) m(3, 217, d) +# define BOOST_PP_REPEAT_2_219(m, d) BOOST_PP_REPEAT_2_218(m, d) m(3, 218, d) +# define BOOST_PP_REPEAT_2_220(m, d) BOOST_PP_REPEAT_2_219(m, d) m(3, 219, d) +# define BOOST_PP_REPEAT_2_221(m, d) BOOST_PP_REPEAT_2_220(m, d) m(3, 220, d) +# define BOOST_PP_REPEAT_2_222(m, d) BOOST_PP_REPEAT_2_221(m, d) m(3, 221, d) +# define BOOST_PP_REPEAT_2_223(m, d) BOOST_PP_REPEAT_2_222(m, d) m(3, 222, d) +# define BOOST_PP_REPEAT_2_224(m, d) BOOST_PP_REPEAT_2_223(m, d) m(3, 223, d) +# define BOOST_PP_REPEAT_2_225(m, d) BOOST_PP_REPEAT_2_224(m, d) m(3, 224, d) +# define BOOST_PP_REPEAT_2_226(m, d) BOOST_PP_REPEAT_2_225(m, d) m(3, 225, d) +# define BOOST_PP_REPEAT_2_227(m, d) BOOST_PP_REPEAT_2_226(m, d) m(3, 226, d) +# define BOOST_PP_REPEAT_2_228(m, d) BOOST_PP_REPEAT_2_227(m, d) m(3, 227, d) +# define BOOST_PP_REPEAT_2_229(m, d) BOOST_PP_REPEAT_2_228(m, d) m(3, 228, d) +# define BOOST_PP_REPEAT_2_230(m, d) BOOST_PP_REPEAT_2_229(m, d) m(3, 229, d) +# define BOOST_PP_REPEAT_2_231(m, d) BOOST_PP_REPEAT_2_230(m, d) m(3, 230, d) +# define BOOST_PP_REPEAT_2_232(m, d) BOOST_PP_REPEAT_2_231(m, d) m(3, 231, d) +# define BOOST_PP_REPEAT_2_233(m, d) BOOST_PP_REPEAT_2_232(m, d) m(3, 232, d) +# define BOOST_PP_REPEAT_2_234(m, d) BOOST_PP_REPEAT_2_233(m, d) m(3, 233, d) +# define BOOST_PP_REPEAT_2_235(m, d) BOOST_PP_REPEAT_2_234(m, d) m(3, 234, d) +# define BOOST_PP_REPEAT_2_236(m, d) BOOST_PP_REPEAT_2_235(m, d) m(3, 235, d) +# define BOOST_PP_REPEAT_2_237(m, d) BOOST_PP_REPEAT_2_236(m, d) m(3, 236, d) +# define BOOST_PP_REPEAT_2_238(m, d) BOOST_PP_REPEAT_2_237(m, d) m(3, 237, d) +# define BOOST_PP_REPEAT_2_239(m, d) BOOST_PP_REPEAT_2_238(m, d) m(3, 238, d) +# define BOOST_PP_REPEAT_2_240(m, d) BOOST_PP_REPEAT_2_239(m, d) m(3, 239, d) +# define BOOST_PP_REPEAT_2_241(m, d) BOOST_PP_REPEAT_2_240(m, d) m(3, 240, d) +# define BOOST_PP_REPEAT_2_242(m, d) BOOST_PP_REPEAT_2_241(m, d) m(3, 241, d) +# define BOOST_PP_REPEAT_2_243(m, d) BOOST_PP_REPEAT_2_242(m, d) m(3, 242, d) +# define BOOST_PP_REPEAT_2_244(m, d) BOOST_PP_REPEAT_2_243(m, d) m(3, 243, d) +# define BOOST_PP_REPEAT_2_245(m, d) BOOST_PP_REPEAT_2_244(m, d) m(3, 244, d) +# define BOOST_PP_REPEAT_2_246(m, d) BOOST_PP_REPEAT_2_245(m, d) m(3, 245, d) +# define BOOST_PP_REPEAT_2_247(m, d) BOOST_PP_REPEAT_2_246(m, d) m(3, 246, d) +# define BOOST_PP_REPEAT_2_248(m, d) BOOST_PP_REPEAT_2_247(m, d) m(3, 247, d) +# define BOOST_PP_REPEAT_2_249(m, d) BOOST_PP_REPEAT_2_248(m, d) m(3, 248, d) +# define BOOST_PP_REPEAT_2_250(m, d) BOOST_PP_REPEAT_2_249(m, d) m(3, 249, d) +# define BOOST_PP_REPEAT_2_251(m, d) BOOST_PP_REPEAT_2_250(m, d) m(3, 250, d) +# define BOOST_PP_REPEAT_2_252(m, d) BOOST_PP_REPEAT_2_251(m, d) m(3, 251, d) +# define BOOST_PP_REPEAT_2_253(m, d) BOOST_PP_REPEAT_2_252(m, d) m(3, 252, d) +# define BOOST_PP_REPEAT_2_254(m, d) BOOST_PP_REPEAT_2_253(m, d) m(3, 253, d) +# define BOOST_PP_REPEAT_2_255(m, d) BOOST_PP_REPEAT_2_254(m, d) m(3, 254, d) +# define BOOST_PP_REPEAT_2_256(m, d) BOOST_PP_REPEAT_2_255(m, d) m(3, 255, d) +# +# define BOOST_PP_REPEAT_3_0(m, d) +# define BOOST_PP_REPEAT_3_1(m, d) m(4, 0, d) +# define BOOST_PP_REPEAT_3_2(m, d) BOOST_PP_REPEAT_3_1(m, d) m(4, 1, d) +# define BOOST_PP_REPEAT_3_3(m, d) BOOST_PP_REPEAT_3_2(m, d) m(4, 2, d) +# define BOOST_PP_REPEAT_3_4(m, d) BOOST_PP_REPEAT_3_3(m, d) m(4, 3, d) +# define BOOST_PP_REPEAT_3_5(m, d) BOOST_PP_REPEAT_3_4(m, d) m(4, 4, d) +# define BOOST_PP_REPEAT_3_6(m, d) BOOST_PP_REPEAT_3_5(m, d) m(4, 5, d) +# define BOOST_PP_REPEAT_3_7(m, d) BOOST_PP_REPEAT_3_6(m, d) m(4, 6, d) +# define BOOST_PP_REPEAT_3_8(m, d) BOOST_PP_REPEAT_3_7(m, d) m(4, 7, d) +# define BOOST_PP_REPEAT_3_9(m, d) BOOST_PP_REPEAT_3_8(m, d) m(4, 8, d) +# define BOOST_PP_REPEAT_3_10(m, d) BOOST_PP_REPEAT_3_9(m, d) m(4, 9, d) +# define BOOST_PP_REPEAT_3_11(m, d) BOOST_PP_REPEAT_3_10(m, d) m(4, 10, d) +# define BOOST_PP_REPEAT_3_12(m, d) BOOST_PP_REPEAT_3_11(m, d) m(4, 11, d) +# define BOOST_PP_REPEAT_3_13(m, d) BOOST_PP_REPEAT_3_12(m, d) m(4, 12, d) +# define BOOST_PP_REPEAT_3_14(m, d) BOOST_PP_REPEAT_3_13(m, d) m(4, 13, d) +# define BOOST_PP_REPEAT_3_15(m, d) BOOST_PP_REPEAT_3_14(m, d) m(4, 14, d) +# define BOOST_PP_REPEAT_3_16(m, d) BOOST_PP_REPEAT_3_15(m, d) m(4, 15, d) +# define BOOST_PP_REPEAT_3_17(m, d) BOOST_PP_REPEAT_3_16(m, d) m(4, 16, d) +# define BOOST_PP_REPEAT_3_18(m, d) BOOST_PP_REPEAT_3_17(m, d) m(4, 17, d) +# define BOOST_PP_REPEAT_3_19(m, d) BOOST_PP_REPEAT_3_18(m, d) m(4, 18, d) +# define BOOST_PP_REPEAT_3_20(m, d) BOOST_PP_REPEAT_3_19(m, d) m(4, 19, d) +# define BOOST_PP_REPEAT_3_21(m, d) BOOST_PP_REPEAT_3_20(m, d) m(4, 20, d) +# define BOOST_PP_REPEAT_3_22(m, d) BOOST_PP_REPEAT_3_21(m, d) m(4, 21, d) +# define BOOST_PP_REPEAT_3_23(m, d) BOOST_PP_REPEAT_3_22(m, d) m(4, 22, d) +# define BOOST_PP_REPEAT_3_24(m, d) BOOST_PP_REPEAT_3_23(m, d) m(4, 23, d) +# define BOOST_PP_REPEAT_3_25(m, d) BOOST_PP_REPEAT_3_24(m, d) m(4, 24, d) +# define BOOST_PP_REPEAT_3_26(m, d) BOOST_PP_REPEAT_3_25(m, d) m(4, 25, d) +# define BOOST_PP_REPEAT_3_27(m, d) BOOST_PP_REPEAT_3_26(m, d) m(4, 26, d) +# define BOOST_PP_REPEAT_3_28(m, d) BOOST_PP_REPEAT_3_27(m, d) m(4, 27, d) +# define BOOST_PP_REPEAT_3_29(m, d) BOOST_PP_REPEAT_3_28(m, d) m(4, 28, d) +# define BOOST_PP_REPEAT_3_30(m, d) BOOST_PP_REPEAT_3_29(m, d) m(4, 29, d) +# define BOOST_PP_REPEAT_3_31(m, d) BOOST_PP_REPEAT_3_30(m, d) m(4, 30, d) +# define BOOST_PP_REPEAT_3_32(m, d) BOOST_PP_REPEAT_3_31(m, d) m(4, 31, d) +# define BOOST_PP_REPEAT_3_33(m, d) BOOST_PP_REPEAT_3_32(m, d) m(4, 32, d) +# define BOOST_PP_REPEAT_3_34(m, d) BOOST_PP_REPEAT_3_33(m, d) m(4, 33, d) +# define BOOST_PP_REPEAT_3_35(m, d) BOOST_PP_REPEAT_3_34(m, d) m(4, 34, d) +# define BOOST_PP_REPEAT_3_36(m, d) BOOST_PP_REPEAT_3_35(m, d) m(4, 35, d) +# define BOOST_PP_REPEAT_3_37(m, d) BOOST_PP_REPEAT_3_36(m, d) m(4, 36, d) +# define BOOST_PP_REPEAT_3_38(m, d) BOOST_PP_REPEAT_3_37(m, d) m(4, 37, d) +# define BOOST_PP_REPEAT_3_39(m, d) BOOST_PP_REPEAT_3_38(m, d) m(4, 38, d) +# define BOOST_PP_REPEAT_3_40(m, d) BOOST_PP_REPEAT_3_39(m, d) m(4, 39, d) +# define BOOST_PP_REPEAT_3_41(m, d) BOOST_PP_REPEAT_3_40(m, d) m(4, 40, d) +# define BOOST_PP_REPEAT_3_42(m, d) BOOST_PP_REPEAT_3_41(m, d) m(4, 41, d) +# define BOOST_PP_REPEAT_3_43(m, d) BOOST_PP_REPEAT_3_42(m, d) m(4, 42, d) +# define BOOST_PP_REPEAT_3_44(m, d) BOOST_PP_REPEAT_3_43(m, d) m(4, 43, d) +# define BOOST_PP_REPEAT_3_45(m, d) BOOST_PP_REPEAT_3_44(m, d) m(4, 44, d) +# define BOOST_PP_REPEAT_3_46(m, d) BOOST_PP_REPEAT_3_45(m, d) m(4, 45, d) +# define BOOST_PP_REPEAT_3_47(m, d) BOOST_PP_REPEAT_3_46(m, d) m(4, 46, d) +# define BOOST_PP_REPEAT_3_48(m, d) BOOST_PP_REPEAT_3_47(m, d) m(4, 47, d) +# define BOOST_PP_REPEAT_3_49(m, d) BOOST_PP_REPEAT_3_48(m, d) m(4, 48, d) +# define BOOST_PP_REPEAT_3_50(m, d) BOOST_PP_REPEAT_3_49(m, d) m(4, 49, d) +# define BOOST_PP_REPEAT_3_51(m, d) BOOST_PP_REPEAT_3_50(m, d) m(4, 50, d) +# define BOOST_PP_REPEAT_3_52(m, d) BOOST_PP_REPEAT_3_51(m, d) m(4, 51, d) +# define BOOST_PP_REPEAT_3_53(m, d) BOOST_PP_REPEAT_3_52(m, d) m(4, 52, d) +# define BOOST_PP_REPEAT_3_54(m, d) BOOST_PP_REPEAT_3_53(m, d) m(4, 53, d) +# define BOOST_PP_REPEAT_3_55(m, d) BOOST_PP_REPEAT_3_54(m, d) m(4, 54, d) +# define BOOST_PP_REPEAT_3_56(m, d) BOOST_PP_REPEAT_3_55(m, d) m(4, 55, d) +# define BOOST_PP_REPEAT_3_57(m, d) BOOST_PP_REPEAT_3_56(m, d) m(4, 56, d) +# define BOOST_PP_REPEAT_3_58(m, d) BOOST_PP_REPEAT_3_57(m, d) m(4, 57, d) +# define BOOST_PP_REPEAT_3_59(m, d) BOOST_PP_REPEAT_3_58(m, d) m(4, 58, d) +# define BOOST_PP_REPEAT_3_60(m, d) BOOST_PP_REPEAT_3_59(m, d) m(4, 59, d) +# define BOOST_PP_REPEAT_3_61(m, d) BOOST_PP_REPEAT_3_60(m, d) m(4, 60, d) +# define BOOST_PP_REPEAT_3_62(m, d) BOOST_PP_REPEAT_3_61(m, d) m(4, 61, d) +# define BOOST_PP_REPEAT_3_63(m, d) BOOST_PP_REPEAT_3_62(m, d) m(4, 62, d) +# define BOOST_PP_REPEAT_3_64(m, d) BOOST_PP_REPEAT_3_63(m, d) m(4, 63, d) +# define BOOST_PP_REPEAT_3_65(m, d) BOOST_PP_REPEAT_3_64(m, d) m(4, 64, d) +# define BOOST_PP_REPEAT_3_66(m, d) BOOST_PP_REPEAT_3_65(m, d) m(4, 65, d) +# define BOOST_PP_REPEAT_3_67(m, d) BOOST_PP_REPEAT_3_66(m, d) m(4, 66, d) +# define BOOST_PP_REPEAT_3_68(m, d) BOOST_PP_REPEAT_3_67(m, d) m(4, 67, d) +# define BOOST_PP_REPEAT_3_69(m, d) BOOST_PP_REPEAT_3_68(m, d) m(4, 68, d) +# define BOOST_PP_REPEAT_3_70(m, d) BOOST_PP_REPEAT_3_69(m, d) m(4, 69, d) +# define BOOST_PP_REPEAT_3_71(m, d) BOOST_PP_REPEAT_3_70(m, d) m(4, 70, d) +# define BOOST_PP_REPEAT_3_72(m, d) BOOST_PP_REPEAT_3_71(m, d) m(4, 71, d) +# define BOOST_PP_REPEAT_3_73(m, d) BOOST_PP_REPEAT_3_72(m, d) m(4, 72, d) +# define BOOST_PP_REPEAT_3_74(m, d) BOOST_PP_REPEAT_3_73(m, d) m(4, 73, d) +# define BOOST_PP_REPEAT_3_75(m, d) BOOST_PP_REPEAT_3_74(m, d) m(4, 74, d) +# define BOOST_PP_REPEAT_3_76(m, d) BOOST_PP_REPEAT_3_75(m, d) m(4, 75, d) +# define BOOST_PP_REPEAT_3_77(m, d) BOOST_PP_REPEAT_3_76(m, d) m(4, 76, d) +# define BOOST_PP_REPEAT_3_78(m, d) BOOST_PP_REPEAT_3_77(m, d) m(4, 77, d) +# define BOOST_PP_REPEAT_3_79(m, d) BOOST_PP_REPEAT_3_78(m, d) m(4, 78, d) +# define BOOST_PP_REPEAT_3_80(m, d) BOOST_PP_REPEAT_3_79(m, d) m(4, 79, d) +# define BOOST_PP_REPEAT_3_81(m, d) BOOST_PP_REPEAT_3_80(m, d) m(4, 80, d) +# define BOOST_PP_REPEAT_3_82(m, d) BOOST_PP_REPEAT_3_81(m, d) m(4, 81, d) +# define BOOST_PP_REPEAT_3_83(m, d) BOOST_PP_REPEAT_3_82(m, d) m(4, 82, d) +# define BOOST_PP_REPEAT_3_84(m, d) BOOST_PP_REPEAT_3_83(m, d) m(4, 83, d) +# define BOOST_PP_REPEAT_3_85(m, d) BOOST_PP_REPEAT_3_84(m, d) m(4, 84, d) +# define BOOST_PP_REPEAT_3_86(m, d) BOOST_PP_REPEAT_3_85(m, d) m(4, 85, d) +# define BOOST_PP_REPEAT_3_87(m, d) BOOST_PP_REPEAT_3_86(m, d) m(4, 86, d) +# define BOOST_PP_REPEAT_3_88(m, d) BOOST_PP_REPEAT_3_87(m, d) m(4, 87, d) +# define BOOST_PP_REPEAT_3_89(m, d) BOOST_PP_REPEAT_3_88(m, d) m(4, 88, d) +# define BOOST_PP_REPEAT_3_90(m, d) BOOST_PP_REPEAT_3_89(m, d) m(4, 89, d) +# define BOOST_PP_REPEAT_3_91(m, d) BOOST_PP_REPEAT_3_90(m, d) m(4, 90, d) +# define BOOST_PP_REPEAT_3_92(m, d) BOOST_PP_REPEAT_3_91(m, d) m(4, 91, d) +# define BOOST_PP_REPEAT_3_93(m, d) BOOST_PP_REPEAT_3_92(m, d) m(4, 92, d) +# define BOOST_PP_REPEAT_3_94(m, d) BOOST_PP_REPEAT_3_93(m, d) m(4, 93, d) +# define BOOST_PP_REPEAT_3_95(m, d) BOOST_PP_REPEAT_3_94(m, d) m(4, 94, d) +# define BOOST_PP_REPEAT_3_96(m, d) BOOST_PP_REPEAT_3_95(m, d) m(4, 95, d) +# define BOOST_PP_REPEAT_3_97(m, d) BOOST_PP_REPEAT_3_96(m, d) m(4, 96, d) +# define BOOST_PP_REPEAT_3_98(m, d) BOOST_PP_REPEAT_3_97(m, d) m(4, 97, d) +# define BOOST_PP_REPEAT_3_99(m, d) BOOST_PP_REPEAT_3_98(m, d) m(4, 98, d) +# define BOOST_PP_REPEAT_3_100(m, d) BOOST_PP_REPEAT_3_99(m, d) m(4, 99, d) +# define BOOST_PP_REPEAT_3_101(m, d) BOOST_PP_REPEAT_3_100(m, d) m(4, 100, d) +# define BOOST_PP_REPEAT_3_102(m, d) BOOST_PP_REPEAT_3_101(m, d) m(4, 101, d) +# define BOOST_PP_REPEAT_3_103(m, d) BOOST_PP_REPEAT_3_102(m, d) m(4, 102, d) +# define BOOST_PP_REPEAT_3_104(m, d) BOOST_PP_REPEAT_3_103(m, d) m(4, 103, d) +# define BOOST_PP_REPEAT_3_105(m, d) BOOST_PP_REPEAT_3_104(m, d) m(4, 104, d) +# define BOOST_PP_REPEAT_3_106(m, d) BOOST_PP_REPEAT_3_105(m, d) m(4, 105, d) +# define BOOST_PP_REPEAT_3_107(m, d) BOOST_PP_REPEAT_3_106(m, d) m(4, 106, d) +# define BOOST_PP_REPEAT_3_108(m, d) BOOST_PP_REPEAT_3_107(m, d) m(4, 107, d) +# define BOOST_PP_REPEAT_3_109(m, d) BOOST_PP_REPEAT_3_108(m, d) m(4, 108, d) +# define BOOST_PP_REPEAT_3_110(m, d) BOOST_PP_REPEAT_3_109(m, d) m(4, 109, d) +# define BOOST_PP_REPEAT_3_111(m, d) BOOST_PP_REPEAT_3_110(m, d) m(4, 110, d) +# define BOOST_PP_REPEAT_3_112(m, d) BOOST_PP_REPEAT_3_111(m, d) m(4, 111, d) +# define BOOST_PP_REPEAT_3_113(m, d) BOOST_PP_REPEAT_3_112(m, d) m(4, 112, d) +# define BOOST_PP_REPEAT_3_114(m, d) BOOST_PP_REPEAT_3_113(m, d) m(4, 113, d) +# define BOOST_PP_REPEAT_3_115(m, d) BOOST_PP_REPEAT_3_114(m, d) m(4, 114, d) +# define BOOST_PP_REPEAT_3_116(m, d) BOOST_PP_REPEAT_3_115(m, d) m(4, 115, d) +# define BOOST_PP_REPEAT_3_117(m, d) BOOST_PP_REPEAT_3_116(m, d) m(4, 116, d) +# define BOOST_PP_REPEAT_3_118(m, d) BOOST_PP_REPEAT_3_117(m, d) m(4, 117, d) +# define BOOST_PP_REPEAT_3_119(m, d) BOOST_PP_REPEAT_3_118(m, d) m(4, 118, d) +# define BOOST_PP_REPEAT_3_120(m, d) BOOST_PP_REPEAT_3_119(m, d) m(4, 119, d) +# define BOOST_PP_REPEAT_3_121(m, d) BOOST_PP_REPEAT_3_120(m, d) m(4, 120, d) +# define BOOST_PP_REPEAT_3_122(m, d) BOOST_PP_REPEAT_3_121(m, d) m(4, 121, d) +# define BOOST_PP_REPEAT_3_123(m, d) BOOST_PP_REPEAT_3_122(m, d) m(4, 122, d) +# define BOOST_PP_REPEAT_3_124(m, d) BOOST_PP_REPEAT_3_123(m, d) m(4, 123, d) +# define BOOST_PP_REPEAT_3_125(m, d) BOOST_PP_REPEAT_3_124(m, d) m(4, 124, d) +# define BOOST_PP_REPEAT_3_126(m, d) BOOST_PP_REPEAT_3_125(m, d) m(4, 125, d) +# define BOOST_PP_REPEAT_3_127(m, d) BOOST_PP_REPEAT_3_126(m, d) m(4, 126, d) +# define BOOST_PP_REPEAT_3_128(m, d) BOOST_PP_REPEAT_3_127(m, d) m(4, 127, d) +# define BOOST_PP_REPEAT_3_129(m, d) BOOST_PP_REPEAT_3_128(m, d) m(4, 128, d) +# define BOOST_PP_REPEAT_3_130(m, d) BOOST_PP_REPEAT_3_129(m, d) m(4, 129, d) +# define BOOST_PP_REPEAT_3_131(m, d) BOOST_PP_REPEAT_3_130(m, d) m(4, 130, d) +# define BOOST_PP_REPEAT_3_132(m, d) BOOST_PP_REPEAT_3_131(m, d) m(4, 131, d) +# define BOOST_PP_REPEAT_3_133(m, d) BOOST_PP_REPEAT_3_132(m, d) m(4, 132, d) +# define BOOST_PP_REPEAT_3_134(m, d) BOOST_PP_REPEAT_3_133(m, d) m(4, 133, d) +# define BOOST_PP_REPEAT_3_135(m, d) BOOST_PP_REPEAT_3_134(m, d) m(4, 134, d) +# define BOOST_PP_REPEAT_3_136(m, d) BOOST_PP_REPEAT_3_135(m, d) m(4, 135, d) +# define BOOST_PP_REPEAT_3_137(m, d) BOOST_PP_REPEAT_3_136(m, d) m(4, 136, d) +# define BOOST_PP_REPEAT_3_138(m, d) BOOST_PP_REPEAT_3_137(m, d) m(4, 137, d) +# define BOOST_PP_REPEAT_3_139(m, d) BOOST_PP_REPEAT_3_138(m, d) m(4, 138, d) +# define BOOST_PP_REPEAT_3_140(m, d) BOOST_PP_REPEAT_3_139(m, d) m(4, 139, d) +# define BOOST_PP_REPEAT_3_141(m, d) BOOST_PP_REPEAT_3_140(m, d) m(4, 140, d) +# define BOOST_PP_REPEAT_3_142(m, d) BOOST_PP_REPEAT_3_141(m, d) m(4, 141, d) +# define BOOST_PP_REPEAT_3_143(m, d) BOOST_PP_REPEAT_3_142(m, d) m(4, 142, d) +# define BOOST_PP_REPEAT_3_144(m, d) BOOST_PP_REPEAT_3_143(m, d) m(4, 143, d) +# define BOOST_PP_REPEAT_3_145(m, d) BOOST_PP_REPEAT_3_144(m, d) m(4, 144, d) +# define BOOST_PP_REPEAT_3_146(m, d) BOOST_PP_REPEAT_3_145(m, d) m(4, 145, d) +# define BOOST_PP_REPEAT_3_147(m, d) BOOST_PP_REPEAT_3_146(m, d) m(4, 146, d) +# define BOOST_PP_REPEAT_3_148(m, d) BOOST_PP_REPEAT_3_147(m, d) m(4, 147, d) +# define BOOST_PP_REPEAT_3_149(m, d) BOOST_PP_REPEAT_3_148(m, d) m(4, 148, d) +# define BOOST_PP_REPEAT_3_150(m, d) BOOST_PP_REPEAT_3_149(m, d) m(4, 149, d) +# define BOOST_PP_REPEAT_3_151(m, d) BOOST_PP_REPEAT_3_150(m, d) m(4, 150, d) +# define BOOST_PP_REPEAT_3_152(m, d) BOOST_PP_REPEAT_3_151(m, d) m(4, 151, d) +# define BOOST_PP_REPEAT_3_153(m, d) BOOST_PP_REPEAT_3_152(m, d) m(4, 152, d) +# define BOOST_PP_REPEAT_3_154(m, d) BOOST_PP_REPEAT_3_153(m, d) m(4, 153, d) +# define BOOST_PP_REPEAT_3_155(m, d) BOOST_PP_REPEAT_3_154(m, d) m(4, 154, d) +# define BOOST_PP_REPEAT_3_156(m, d) BOOST_PP_REPEAT_3_155(m, d) m(4, 155, d) +# define BOOST_PP_REPEAT_3_157(m, d) BOOST_PP_REPEAT_3_156(m, d) m(4, 156, d) +# define BOOST_PP_REPEAT_3_158(m, d) BOOST_PP_REPEAT_3_157(m, d) m(4, 157, d) +# define BOOST_PP_REPEAT_3_159(m, d) BOOST_PP_REPEAT_3_158(m, d) m(4, 158, d) +# define BOOST_PP_REPEAT_3_160(m, d) BOOST_PP_REPEAT_3_159(m, d) m(4, 159, d) +# define BOOST_PP_REPEAT_3_161(m, d) BOOST_PP_REPEAT_3_160(m, d) m(4, 160, d) +# define BOOST_PP_REPEAT_3_162(m, d) BOOST_PP_REPEAT_3_161(m, d) m(4, 161, d) +# define BOOST_PP_REPEAT_3_163(m, d) BOOST_PP_REPEAT_3_162(m, d) m(4, 162, d) +# define BOOST_PP_REPEAT_3_164(m, d) BOOST_PP_REPEAT_3_163(m, d) m(4, 163, d) +# define BOOST_PP_REPEAT_3_165(m, d) BOOST_PP_REPEAT_3_164(m, d) m(4, 164, d) +# define BOOST_PP_REPEAT_3_166(m, d) BOOST_PP_REPEAT_3_165(m, d) m(4, 165, d) +# define BOOST_PP_REPEAT_3_167(m, d) BOOST_PP_REPEAT_3_166(m, d) m(4, 166, d) +# define BOOST_PP_REPEAT_3_168(m, d) BOOST_PP_REPEAT_3_167(m, d) m(4, 167, d) +# define BOOST_PP_REPEAT_3_169(m, d) BOOST_PP_REPEAT_3_168(m, d) m(4, 168, d) +# define BOOST_PP_REPEAT_3_170(m, d) BOOST_PP_REPEAT_3_169(m, d) m(4, 169, d) +# define BOOST_PP_REPEAT_3_171(m, d) BOOST_PP_REPEAT_3_170(m, d) m(4, 170, d) +# define BOOST_PP_REPEAT_3_172(m, d) BOOST_PP_REPEAT_3_171(m, d) m(4, 171, d) +# define BOOST_PP_REPEAT_3_173(m, d) BOOST_PP_REPEAT_3_172(m, d) m(4, 172, d) +# define BOOST_PP_REPEAT_3_174(m, d) BOOST_PP_REPEAT_3_173(m, d) m(4, 173, d) +# define BOOST_PP_REPEAT_3_175(m, d) BOOST_PP_REPEAT_3_174(m, d) m(4, 174, d) +# define BOOST_PP_REPEAT_3_176(m, d) BOOST_PP_REPEAT_3_175(m, d) m(4, 175, d) +# define BOOST_PP_REPEAT_3_177(m, d) BOOST_PP_REPEAT_3_176(m, d) m(4, 176, d) +# define BOOST_PP_REPEAT_3_178(m, d) BOOST_PP_REPEAT_3_177(m, d) m(4, 177, d) +# define BOOST_PP_REPEAT_3_179(m, d) BOOST_PP_REPEAT_3_178(m, d) m(4, 178, d) +# define BOOST_PP_REPEAT_3_180(m, d) BOOST_PP_REPEAT_3_179(m, d) m(4, 179, d) +# define BOOST_PP_REPEAT_3_181(m, d) BOOST_PP_REPEAT_3_180(m, d) m(4, 180, d) +# define BOOST_PP_REPEAT_3_182(m, d) BOOST_PP_REPEAT_3_181(m, d) m(4, 181, d) +# define BOOST_PP_REPEAT_3_183(m, d) BOOST_PP_REPEAT_3_182(m, d) m(4, 182, d) +# define BOOST_PP_REPEAT_3_184(m, d) BOOST_PP_REPEAT_3_183(m, d) m(4, 183, d) +# define BOOST_PP_REPEAT_3_185(m, d) BOOST_PP_REPEAT_3_184(m, d) m(4, 184, d) +# define BOOST_PP_REPEAT_3_186(m, d) BOOST_PP_REPEAT_3_185(m, d) m(4, 185, d) +# define BOOST_PP_REPEAT_3_187(m, d) BOOST_PP_REPEAT_3_186(m, d) m(4, 186, d) +# define BOOST_PP_REPEAT_3_188(m, d) BOOST_PP_REPEAT_3_187(m, d) m(4, 187, d) +# define BOOST_PP_REPEAT_3_189(m, d) BOOST_PP_REPEAT_3_188(m, d) m(4, 188, d) +# define BOOST_PP_REPEAT_3_190(m, d) BOOST_PP_REPEAT_3_189(m, d) m(4, 189, d) +# define BOOST_PP_REPEAT_3_191(m, d) BOOST_PP_REPEAT_3_190(m, d) m(4, 190, d) +# define BOOST_PP_REPEAT_3_192(m, d) BOOST_PP_REPEAT_3_191(m, d) m(4, 191, d) +# define BOOST_PP_REPEAT_3_193(m, d) BOOST_PP_REPEAT_3_192(m, d) m(4, 192, d) +# define BOOST_PP_REPEAT_3_194(m, d) BOOST_PP_REPEAT_3_193(m, d) m(4, 193, d) +# define BOOST_PP_REPEAT_3_195(m, d) BOOST_PP_REPEAT_3_194(m, d) m(4, 194, d) +# define BOOST_PP_REPEAT_3_196(m, d) BOOST_PP_REPEAT_3_195(m, d) m(4, 195, d) +# define BOOST_PP_REPEAT_3_197(m, d) BOOST_PP_REPEAT_3_196(m, d) m(4, 196, d) +# define BOOST_PP_REPEAT_3_198(m, d) BOOST_PP_REPEAT_3_197(m, d) m(4, 197, d) +# define BOOST_PP_REPEAT_3_199(m, d) BOOST_PP_REPEAT_3_198(m, d) m(4, 198, d) +# define BOOST_PP_REPEAT_3_200(m, d) BOOST_PP_REPEAT_3_199(m, d) m(4, 199, d) +# define BOOST_PP_REPEAT_3_201(m, d) BOOST_PP_REPEAT_3_200(m, d) m(4, 200, d) +# define BOOST_PP_REPEAT_3_202(m, d) BOOST_PP_REPEAT_3_201(m, d) m(4, 201, d) +# define BOOST_PP_REPEAT_3_203(m, d) BOOST_PP_REPEAT_3_202(m, d) m(4, 202, d) +# define BOOST_PP_REPEAT_3_204(m, d) BOOST_PP_REPEAT_3_203(m, d) m(4, 203, d) +# define BOOST_PP_REPEAT_3_205(m, d) BOOST_PP_REPEAT_3_204(m, d) m(4, 204, d) +# define BOOST_PP_REPEAT_3_206(m, d) BOOST_PP_REPEAT_3_205(m, d) m(4, 205, d) +# define BOOST_PP_REPEAT_3_207(m, d) BOOST_PP_REPEAT_3_206(m, d) m(4, 206, d) +# define BOOST_PP_REPEAT_3_208(m, d) BOOST_PP_REPEAT_3_207(m, d) m(4, 207, d) +# define BOOST_PP_REPEAT_3_209(m, d) BOOST_PP_REPEAT_3_208(m, d) m(4, 208, d) +# define BOOST_PP_REPEAT_3_210(m, d) BOOST_PP_REPEAT_3_209(m, d) m(4, 209, d) +# define BOOST_PP_REPEAT_3_211(m, d) BOOST_PP_REPEAT_3_210(m, d) m(4, 210, d) +# define BOOST_PP_REPEAT_3_212(m, d) BOOST_PP_REPEAT_3_211(m, d) m(4, 211, d) +# define BOOST_PP_REPEAT_3_213(m, d) BOOST_PP_REPEAT_3_212(m, d) m(4, 212, d) +# define BOOST_PP_REPEAT_3_214(m, d) BOOST_PP_REPEAT_3_213(m, d) m(4, 213, d) +# define BOOST_PP_REPEAT_3_215(m, d) BOOST_PP_REPEAT_3_214(m, d) m(4, 214, d) +# define BOOST_PP_REPEAT_3_216(m, d) BOOST_PP_REPEAT_3_215(m, d) m(4, 215, d) +# define BOOST_PP_REPEAT_3_217(m, d) BOOST_PP_REPEAT_3_216(m, d) m(4, 216, d) +# define BOOST_PP_REPEAT_3_218(m, d) BOOST_PP_REPEAT_3_217(m, d) m(4, 217, d) +# define BOOST_PP_REPEAT_3_219(m, d) BOOST_PP_REPEAT_3_218(m, d) m(4, 218, d) +# define BOOST_PP_REPEAT_3_220(m, d) BOOST_PP_REPEAT_3_219(m, d) m(4, 219, d) +# define BOOST_PP_REPEAT_3_221(m, d) BOOST_PP_REPEAT_3_220(m, d) m(4, 220, d) +# define BOOST_PP_REPEAT_3_222(m, d) BOOST_PP_REPEAT_3_221(m, d) m(4, 221, d) +# define BOOST_PP_REPEAT_3_223(m, d) BOOST_PP_REPEAT_3_222(m, d) m(4, 222, d) +# define BOOST_PP_REPEAT_3_224(m, d) BOOST_PP_REPEAT_3_223(m, d) m(4, 223, d) +# define BOOST_PP_REPEAT_3_225(m, d) BOOST_PP_REPEAT_3_224(m, d) m(4, 224, d) +# define BOOST_PP_REPEAT_3_226(m, d) BOOST_PP_REPEAT_3_225(m, d) m(4, 225, d) +# define BOOST_PP_REPEAT_3_227(m, d) BOOST_PP_REPEAT_3_226(m, d) m(4, 226, d) +# define BOOST_PP_REPEAT_3_228(m, d) BOOST_PP_REPEAT_3_227(m, d) m(4, 227, d) +# define BOOST_PP_REPEAT_3_229(m, d) BOOST_PP_REPEAT_3_228(m, d) m(4, 228, d) +# define BOOST_PP_REPEAT_3_230(m, d) BOOST_PP_REPEAT_3_229(m, d) m(4, 229, d) +# define BOOST_PP_REPEAT_3_231(m, d) BOOST_PP_REPEAT_3_230(m, d) m(4, 230, d) +# define BOOST_PP_REPEAT_3_232(m, d) BOOST_PP_REPEAT_3_231(m, d) m(4, 231, d) +# define BOOST_PP_REPEAT_3_233(m, d) BOOST_PP_REPEAT_3_232(m, d) m(4, 232, d) +# define BOOST_PP_REPEAT_3_234(m, d) BOOST_PP_REPEAT_3_233(m, d) m(4, 233, d) +# define BOOST_PP_REPEAT_3_235(m, d) BOOST_PP_REPEAT_3_234(m, d) m(4, 234, d) +# define BOOST_PP_REPEAT_3_236(m, d) BOOST_PP_REPEAT_3_235(m, d) m(4, 235, d) +# define BOOST_PP_REPEAT_3_237(m, d) BOOST_PP_REPEAT_3_236(m, d) m(4, 236, d) +# define BOOST_PP_REPEAT_3_238(m, d) BOOST_PP_REPEAT_3_237(m, d) m(4, 237, d) +# define BOOST_PP_REPEAT_3_239(m, d) BOOST_PP_REPEAT_3_238(m, d) m(4, 238, d) +# define BOOST_PP_REPEAT_3_240(m, d) BOOST_PP_REPEAT_3_239(m, d) m(4, 239, d) +# define BOOST_PP_REPEAT_3_241(m, d) BOOST_PP_REPEAT_3_240(m, d) m(4, 240, d) +# define BOOST_PP_REPEAT_3_242(m, d) BOOST_PP_REPEAT_3_241(m, d) m(4, 241, d) +# define BOOST_PP_REPEAT_3_243(m, d) BOOST_PP_REPEAT_3_242(m, d) m(4, 242, d) +# define BOOST_PP_REPEAT_3_244(m, d) BOOST_PP_REPEAT_3_243(m, d) m(4, 243, d) +# define BOOST_PP_REPEAT_3_245(m, d) BOOST_PP_REPEAT_3_244(m, d) m(4, 244, d) +# define BOOST_PP_REPEAT_3_246(m, d) BOOST_PP_REPEAT_3_245(m, d) m(4, 245, d) +# define BOOST_PP_REPEAT_3_247(m, d) BOOST_PP_REPEAT_3_246(m, d) m(4, 246, d) +# define BOOST_PP_REPEAT_3_248(m, d) BOOST_PP_REPEAT_3_247(m, d) m(4, 247, d) +# define BOOST_PP_REPEAT_3_249(m, d) BOOST_PP_REPEAT_3_248(m, d) m(4, 248, d) +# define BOOST_PP_REPEAT_3_250(m, d) BOOST_PP_REPEAT_3_249(m, d) m(4, 249, d) +# define BOOST_PP_REPEAT_3_251(m, d) BOOST_PP_REPEAT_3_250(m, d) m(4, 250, d) +# define BOOST_PP_REPEAT_3_252(m, d) BOOST_PP_REPEAT_3_251(m, d) m(4, 251, d) +# define BOOST_PP_REPEAT_3_253(m, d) BOOST_PP_REPEAT_3_252(m, d) m(4, 252, d) +# define BOOST_PP_REPEAT_3_254(m, d) BOOST_PP_REPEAT_3_253(m, d) m(4, 253, d) +# define BOOST_PP_REPEAT_3_255(m, d) BOOST_PP_REPEAT_3_254(m, d) m(4, 254, d) +# define BOOST_PP_REPEAT_3_256(m, d) BOOST_PP_REPEAT_3_255(m, d) m(4, 255, d) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/stringize.hpp b/external-libs/boost/boost/preprocessor/stringize.hpp new file mode 100644 index 0000000..64dd5fd --- /dev/null +++ b/external-libs/boost/boost/preprocessor/stringize.hpp @@ -0,0 +1,33 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_STRINGIZE_HPP +# define BOOST_PREPROCESSOR_STRINGIZE_HPP +# +# include +# +# /* BOOST_PP_STRINGIZE */ +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_A((text)) +# define BOOST_PP_STRINGIZE_A(arg) BOOST_PP_STRINGIZE_I arg +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_OO((text)) +# define BOOST_PP_STRINGIZE_OO(par) BOOST_PP_STRINGIZE_I ## par +# else +# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_I(text) +# endif +# +# define BOOST_PP_STRINGIZE_I(text) #text +# +# endif diff --git a/external-libs/boost/boost/preprocessor/tuple/eat.hpp b/external-libs/boost/boost/preprocessor/tuple/eat.hpp new file mode 100644 index 0000000..82e8ffc --- /dev/null +++ b/external-libs/boost/boost/preprocessor/tuple/eat.hpp @@ -0,0 +1,57 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_EAT_HPP +# define BOOST_PREPROCESSOR_TUPLE_EAT_HPP +# +# include +# +# /* BOOST_PP_TUPLE_EAT */ +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_I(size) +# else +# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_OO((size)) +# define BOOST_PP_TUPLE_EAT_OO(par) BOOST_PP_TUPLE_EAT_I ## par +# endif +# +# define BOOST_PP_TUPLE_EAT_I(size) BOOST_PP_TUPLE_EAT_ ## size +# +# define BOOST_PP_TUPLE_EAT_0() +# define BOOST_PP_TUPLE_EAT_1(a) +# define BOOST_PP_TUPLE_EAT_2(a, b) +# define BOOST_PP_TUPLE_EAT_3(a, b, c) +# define BOOST_PP_TUPLE_EAT_4(a, b, c, d) +# define BOOST_PP_TUPLE_EAT_5(a, b, c, d, e) +# define BOOST_PP_TUPLE_EAT_6(a, b, c, d, e, f) +# define BOOST_PP_TUPLE_EAT_7(a, b, c, d, e, f, g) +# define BOOST_PP_TUPLE_EAT_8(a, b, c, d, e, f, g, h) +# define BOOST_PP_TUPLE_EAT_9(a, b, c, d, e, f, g, h, i) +# define BOOST_PP_TUPLE_EAT_10(a, b, c, d, e, f, g, h, i, j) +# define BOOST_PP_TUPLE_EAT_11(a, b, c, d, e, f, g, h, i, j, k) +# define BOOST_PP_TUPLE_EAT_12(a, b, c, d, e, f, g, h, i, j, k, l) +# define BOOST_PP_TUPLE_EAT_13(a, b, c, d, e, f, g, h, i, j, k, l, m) +# define BOOST_PP_TUPLE_EAT_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) +# define BOOST_PP_TUPLE_EAT_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) +# define BOOST_PP_TUPLE_EAT_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) +# define BOOST_PP_TUPLE_EAT_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) +# define BOOST_PP_TUPLE_EAT_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) +# define BOOST_PP_TUPLE_EAT_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) +# define BOOST_PP_TUPLE_EAT_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) +# define BOOST_PP_TUPLE_EAT_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) +# define BOOST_PP_TUPLE_EAT_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) +# define BOOST_PP_TUPLE_EAT_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) +# define BOOST_PP_TUPLE_EAT_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) +# define BOOST_PP_TUPLE_EAT_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) +# +# endif diff --git a/external-libs/boost/boost/preprocessor/tuple/elem.hpp b/external-libs/boost/boost/preprocessor/tuple/elem.hpp new file mode 100644 index 0000000..2e225ae --- /dev/null +++ b/external-libs/boost/boost/preprocessor/tuple/elem.hpp @@ -0,0 +1,385 @@ +# /* Copyright (C) 2001 +# * Housemarque Oy +# * http://www.housemarque.com +# * +# * Distributed under the Boost Software License, Version 1.0. (See +# * accompanying file LICENSE_1_0.txt or copy at +# * http://www.boost.org/LICENSE_1_0.txt) +# */ +# +# /* Revised by Paul Mensonides (2002) */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_TUPLE_ELEM_HPP +# define BOOST_PREPROCESSOR_TUPLE_ELEM_HPP +# +# include +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_TUPLE_ELEM(size, index, tuple) BOOST_PP_TUPLE_ELEM_I(size, index, tuple) +# else +# define BOOST_PP_TUPLE_ELEM(size, index, tuple) BOOST_PP_TUPLE_ELEM_OO((size, index, tuple)) +# define BOOST_PP_TUPLE_ELEM_OO(par) BOOST_PP_TUPLE_ELEM_I ## par +# endif +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i ## t +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_II(BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i t) +# define BOOST_PP_TUPLE_ELEM_II(res) res +# else +# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i t +# endif +# +# define BOOST_PP_TUPLE_ELEM_1_0(a) a +# +# define BOOST_PP_TUPLE_ELEM_2_0(a, b) a +# define BOOST_PP_TUPLE_ELEM_2_1(a, b) b +# +# define BOOST_PP_TUPLE_ELEM_3_0(a, b, c) a +# define BOOST_PP_TUPLE_ELEM_3_1(a, b, c) b +# define BOOST_PP_TUPLE_ELEM_3_2(a, b, c) c +# +# define BOOST_PP_TUPLE_ELEM_4_0(a, b, c, d) a +# define BOOST_PP_TUPLE_ELEM_4_1(a, b, c, d) b +# define BOOST_PP_TUPLE_ELEM_4_2(a, b, c, d) c +# define BOOST_PP_TUPLE_ELEM_4_3(a, b, c, d) d +# +# define BOOST_PP_TUPLE_ELEM_5_0(a, b, c, d, e) a +# define BOOST_PP_TUPLE_ELEM_5_1(a, b, c, d, e) b +# define BOOST_PP_TUPLE_ELEM_5_2(a, b, c, d, e) c +# define BOOST_PP_TUPLE_ELEM_5_3(a, b, c, d, e) d +# define BOOST_PP_TUPLE_ELEM_5_4(a, b, c, d, e) e +# +# define BOOST_PP_TUPLE_ELEM_6_0(a, b, c, d, e, f) a +# define BOOST_PP_TUPLE_ELEM_6_1(a, b, c, d, e, f) b +# define BOOST_PP_TUPLE_ELEM_6_2(a, b, c, d, e, f) c +# define BOOST_PP_TUPLE_ELEM_6_3(a, b, c, d, e, f) d +# define BOOST_PP_TUPLE_ELEM_6_4(a, b, c, d, e, f) e +# define BOOST_PP_TUPLE_ELEM_6_5(a, b, c, d, e, f) f +# +# define BOOST_PP_TUPLE_ELEM_7_0(a, b, c, d, e, f, g) a +# define BOOST_PP_TUPLE_ELEM_7_1(a, b, c, d, e, f, g) b +# define BOOST_PP_TUPLE_ELEM_7_2(a, b, c, d, e, f, g) c +# define BOOST_PP_TUPLE_ELEM_7_3(a, b, c, d, e, f, g) d +# define BOOST_PP_TUPLE_ELEM_7_4(a, b, c, d, e, f, g) e +# define BOOST_PP_TUPLE_ELEM_7_5(a, b, c, d, e, f, g) f +# define BOOST_PP_TUPLE_ELEM_7_6(a, b, c, d, e, f, g) g +# +# define BOOST_PP_TUPLE_ELEM_8_0(a, b, c, d, e, f, g, h) a +# define BOOST_PP_TUPLE_ELEM_8_1(a, b, c, d, e, f, g, h) b +# define BOOST_PP_TUPLE_ELEM_8_2(a, b, c, d, e, f, g, h) c +# define BOOST_PP_TUPLE_ELEM_8_3(a, b, c, d, e, f, g, h) d +# define BOOST_PP_TUPLE_ELEM_8_4(a, b, c, d, e, f, g, h) e +# define BOOST_PP_TUPLE_ELEM_8_5(a, b, c, d, e, f, g, h) f +# define BOOST_PP_TUPLE_ELEM_8_6(a, b, c, d, e, f, g, h) g +# define BOOST_PP_TUPLE_ELEM_8_7(a, b, c, d, e, f, g, h) h +# +# define BOOST_PP_TUPLE_ELEM_9_0(a, b, c, d, e, f, g, h, i) a +# define BOOST_PP_TUPLE_ELEM_9_1(a, b, c, d, e, f, g, h, i) b +# define BOOST_PP_TUPLE_ELEM_9_2(a, b, c, d, e, f, g, h, i) c +# define BOOST_PP_TUPLE_ELEM_9_3(a, b, c, d, e, f, g, h, i) d +# define BOOST_PP_TUPLE_ELEM_9_4(a, b, c, d, e, f, g, h, i) e +# define BOOST_PP_TUPLE_ELEM_9_5(a, b, c, d, e, f, g, h, i) f +# define BOOST_PP_TUPLE_ELEM_9_6(a, b, c, d, e, f, g, h, i) g +# define BOOST_PP_TUPLE_ELEM_9_7(a, b, c, d, e, f, g, h, i) h +# define BOOST_PP_TUPLE_ELEM_9_8(a, b, c, d, e, f, g, h, i) i +# +# define BOOST_PP_TUPLE_ELEM_10_0(a, b, c, d, e, f, g, h, i, j) a +# define BOOST_PP_TUPLE_ELEM_10_1(a, b, c, d, e, f, g, h, i, j) b +# define BOOST_PP_TUPLE_ELEM_10_2(a, b, c, d, e, f, g, h, i, j) c +# define BOOST_PP_TUPLE_ELEM_10_3(a, b, c, d, e, f, g, h, i, j) d +# define BOOST_PP_TUPLE_ELEM_10_4(a, b, c, d, e, f, g, h, i, j) e +# define BOOST_PP_TUPLE_ELEM_10_5(a, b, c, d, e, f, g, h, i, j) f +# define BOOST_PP_TUPLE_ELEM_10_6(a, b, c, d, e, f, g, h, i, j) g +# define BOOST_PP_TUPLE_ELEM_10_7(a, b, c, d, e, f, g, h, i, j) h +# define BOOST_PP_TUPLE_ELEM_10_8(a, b, c, d, e, f, g, h, i, j) i +# define BOOST_PP_TUPLE_ELEM_10_9(a, b, c, d, e, f, g, h, i, j) j +# +# define BOOST_PP_TUPLE_ELEM_11_0(a, b, c, d, e, f, g, h, i, j, k) a +# define BOOST_PP_TUPLE_ELEM_11_1(a, b, c, d, e, f, g, h, i, j, k) b +# define BOOST_PP_TUPLE_ELEM_11_2(a, b, c, d, e, f, g, h, i, j, k) c +# define BOOST_PP_TUPLE_ELEM_11_3(a, b, c, d, e, f, g, h, i, j, k) d +# define BOOST_PP_TUPLE_ELEM_11_4(a, b, c, d, e, f, g, h, i, j, k) e +# define BOOST_PP_TUPLE_ELEM_11_5(a, b, c, d, e, f, g, h, i, j, k) f +# define BOOST_PP_TUPLE_ELEM_11_6(a, b, c, d, e, f, g, h, i, j, k) g +# define BOOST_PP_TUPLE_ELEM_11_7(a, b, c, d, e, f, g, h, i, j, k) h +# define BOOST_PP_TUPLE_ELEM_11_8(a, b, c, d, e, f, g, h, i, j, k) i +# define BOOST_PP_TUPLE_ELEM_11_9(a, b, c, d, e, f, g, h, i, j, k) j +# define BOOST_PP_TUPLE_ELEM_11_10(a, b, c, d, e, f, g, h, i, j, k) k +# +# define BOOST_PP_TUPLE_ELEM_12_0(a, b, c, d, e, f, g, h, i, j, k, l) a +# define BOOST_PP_TUPLE_ELEM_12_1(a, b, c, d, e, f, g, h, i, j, k, l) b +# define BOOST_PP_TUPLE_ELEM_12_2(a, b, c, d, e, f, g, h, i, j, k, l) c +# define BOOST_PP_TUPLE_ELEM_12_3(a, b, c, d, e, f, g, h, i, j, k, l) d +# define BOOST_PP_TUPLE_ELEM_12_4(a, b, c, d, e, f, g, h, i, j, k, l) e +# define BOOST_PP_TUPLE_ELEM_12_5(a, b, c, d, e, f, g, h, i, j, k, l) f +# define BOOST_PP_TUPLE_ELEM_12_6(a, b, c, d, e, f, g, h, i, j, k, l) g +# define BOOST_PP_TUPLE_ELEM_12_7(a, b, c, d, e, f, g, h, i, j, k, l) h +# define BOOST_PP_TUPLE_ELEM_12_8(a, b, c, d, e, f, g, h, i, j, k, l) i +# define BOOST_PP_TUPLE_ELEM_12_9(a, b, c, d, e, f, g, h, i, j, k, l) j +# define BOOST_PP_TUPLE_ELEM_12_10(a, b, c, d, e, f, g, h, i, j, k, l) k +# define BOOST_PP_TUPLE_ELEM_12_11(a, b, c, d, e, f, g, h, i, j, k, l) l +# +# define BOOST_PP_TUPLE_ELEM_13_0(a, b, c, d, e, f, g, h, i, j, k, l, m) a +# define BOOST_PP_TUPLE_ELEM_13_1(a, b, c, d, e, f, g, h, i, j, k, l, m) b +# define BOOST_PP_TUPLE_ELEM_13_2(a, b, c, d, e, f, g, h, i, j, k, l, m) c +# define BOOST_PP_TUPLE_ELEM_13_3(a, b, c, d, e, f, g, h, i, j, k, l, m) d +# define BOOST_PP_TUPLE_ELEM_13_4(a, b, c, d, e, f, g, h, i, j, k, l, m) e +# define BOOST_PP_TUPLE_ELEM_13_5(a, b, c, d, e, f, g, h, i, j, k, l, m) f +# define BOOST_PP_TUPLE_ELEM_13_6(a, b, c, d, e, f, g, h, i, j, k, l, m) g +# define BOOST_PP_TUPLE_ELEM_13_7(a, b, c, d, e, f, g, h, i, j, k, l, m) h +# define BOOST_PP_TUPLE_ELEM_13_8(a, b, c, d, e, f, g, h, i, j, k, l, m) i +# define BOOST_PP_TUPLE_ELEM_13_9(a, b, c, d, e, f, g, h, i, j, k, l, m) j +# define BOOST_PP_TUPLE_ELEM_13_10(a, b, c, d, e, f, g, h, i, j, k, l, m) k +# define BOOST_PP_TUPLE_ELEM_13_11(a, b, c, d, e, f, g, h, i, j, k, l, m) l +# define BOOST_PP_TUPLE_ELEM_13_12(a, b, c, d, e, f, g, h, i, j, k, l, m) m +# +# define BOOST_PP_TUPLE_ELEM_14_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n) a +# define BOOST_PP_TUPLE_ELEM_14_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n) b +# define BOOST_PP_TUPLE_ELEM_14_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n) c +# define BOOST_PP_TUPLE_ELEM_14_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n) d +# define BOOST_PP_TUPLE_ELEM_14_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n) e +# define BOOST_PP_TUPLE_ELEM_14_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n) f +# define BOOST_PP_TUPLE_ELEM_14_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n) g +# define BOOST_PP_TUPLE_ELEM_14_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n) h +# define BOOST_PP_TUPLE_ELEM_14_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n) i +# define BOOST_PP_TUPLE_ELEM_14_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n) j +# define BOOST_PP_TUPLE_ELEM_14_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n) k +# define BOOST_PP_TUPLE_ELEM_14_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n) l +# define BOOST_PP_TUPLE_ELEM_14_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n) m +# define BOOST_PP_TUPLE_ELEM_14_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n) n +# +# define BOOST_PP_TUPLE_ELEM_15_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) a +# define BOOST_PP_TUPLE_ELEM_15_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) b +# define BOOST_PP_TUPLE_ELEM_15_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) c +# define BOOST_PP_TUPLE_ELEM_15_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) d +# define BOOST_PP_TUPLE_ELEM_15_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) e +# define BOOST_PP_TUPLE_ELEM_15_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) f +# define BOOST_PP_TUPLE_ELEM_15_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) g +# define BOOST_PP_TUPLE_ELEM_15_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) h +# define BOOST_PP_TUPLE_ELEM_15_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) i +# define BOOST_PP_TUPLE_ELEM_15_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) j +# define BOOST_PP_TUPLE_ELEM_15_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) k +# define BOOST_PP_TUPLE_ELEM_15_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) l +# define BOOST_PP_TUPLE_ELEM_15_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) m +# define BOOST_PP_TUPLE_ELEM_15_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) n +# define BOOST_PP_TUPLE_ELEM_15_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) o +# +# define BOOST_PP_TUPLE_ELEM_16_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) a +# define BOOST_PP_TUPLE_ELEM_16_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) b +# define BOOST_PP_TUPLE_ELEM_16_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) c +# define BOOST_PP_TUPLE_ELEM_16_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) d +# define BOOST_PP_TUPLE_ELEM_16_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) e +# define BOOST_PP_TUPLE_ELEM_16_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) f +# define BOOST_PP_TUPLE_ELEM_16_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) g +# define BOOST_PP_TUPLE_ELEM_16_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) h +# define BOOST_PP_TUPLE_ELEM_16_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) i +# define BOOST_PP_TUPLE_ELEM_16_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) j +# define BOOST_PP_TUPLE_ELEM_16_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) k +# define BOOST_PP_TUPLE_ELEM_16_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) l +# define BOOST_PP_TUPLE_ELEM_16_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) m +# define BOOST_PP_TUPLE_ELEM_16_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) n +# define BOOST_PP_TUPLE_ELEM_16_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) o +# define BOOST_PP_TUPLE_ELEM_16_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) p +# +# define BOOST_PP_TUPLE_ELEM_17_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) a +# define BOOST_PP_TUPLE_ELEM_17_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) b +# define BOOST_PP_TUPLE_ELEM_17_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) c +# define BOOST_PP_TUPLE_ELEM_17_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) d +# define BOOST_PP_TUPLE_ELEM_17_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) e +# define BOOST_PP_TUPLE_ELEM_17_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) f +# define BOOST_PP_TUPLE_ELEM_17_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) g +# define BOOST_PP_TUPLE_ELEM_17_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) h +# define BOOST_PP_TUPLE_ELEM_17_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) i +# define BOOST_PP_TUPLE_ELEM_17_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) j +# define BOOST_PP_TUPLE_ELEM_17_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) k +# define BOOST_PP_TUPLE_ELEM_17_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) l +# define BOOST_PP_TUPLE_ELEM_17_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) m +# define BOOST_PP_TUPLE_ELEM_17_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) n +# define BOOST_PP_TUPLE_ELEM_17_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) o +# define BOOST_PP_TUPLE_ELEM_17_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) p +# define BOOST_PP_TUPLE_ELEM_17_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) q +# +# define BOOST_PP_TUPLE_ELEM_18_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) a +# define BOOST_PP_TUPLE_ELEM_18_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) b +# define BOOST_PP_TUPLE_ELEM_18_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) c +# define BOOST_PP_TUPLE_ELEM_18_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) d +# define BOOST_PP_TUPLE_ELEM_18_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) e +# define BOOST_PP_TUPLE_ELEM_18_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) f +# define BOOST_PP_TUPLE_ELEM_18_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) g +# define BOOST_PP_TUPLE_ELEM_18_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) h +# define BOOST_PP_TUPLE_ELEM_18_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) i +# define BOOST_PP_TUPLE_ELEM_18_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) j +# define BOOST_PP_TUPLE_ELEM_18_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) k +# define BOOST_PP_TUPLE_ELEM_18_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) l +# define BOOST_PP_TUPLE_ELEM_18_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) m +# define BOOST_PP_TUPLE_ELEM_18_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) n +# define BOOST_PP_TUPLE_ELEM_18_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) o +# define BOOST_PP_TUPLE_ELEM_18_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) p +# define BOOST_PP_TUPLE_ELEM_18_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) q +# define BOOST_PP_TUPLE_ELEM_18_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) r +# +# define BOOST_PP_TUPLE_ELEM_19_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) a +# define BOOST_PP_TUPLE_ELEM_19_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) b +# define BOOST_PP_TUPLE_ELEM_19_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) c +# define BOOST_PP_TUPLE_ELEM_19_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) d +# define BOOST_PP_TUPLE_ELEM_19_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) e +# define BOOST_PP_TUPLE_ELEM_19_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) f +# define BOOST_PP_TUPLE_ELEM_19_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) g +# define BOOST_PP_TUPLE_ELEM_19_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) h +# define BOOST_PP_TUPLE_ELEM_19_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) i +# define BOOST_PP_TUPLE_ELEM_19_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) j +# define BOOST_PP_TUPLE_ELEM_19_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) k +# define BOOST_PP_TUPLE_ELEM_19_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) l +# define BOOST_PP_TUPLE_ELEM_19_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) m +# define BOOST_PP_TUPLE_ELEM_19_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) n +# define BOOST_PP_TUPLE_ELEM_19_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) o +# define BOOST_PP_TUPLE_ELEM_19_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) p +# define BOOST_PP_TUPLE_ELEM_19_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) q +# define BOOST_PP_TUPLE_ELEM_19_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) r +# define BOOST_PP_TUPLE_ELEM_19_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) s +# +# define BOOST_PP_TUPLE_ELEM_20_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) a +# define BOOST_PP_TUPLE_ELEM_20_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) b +# define BOOST_PP_TUPLE_ELEM_20_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) c +# define BOOST_PP_TUPLE_ELEM_20_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) d +# define BOOST_PP_TUPLE_ELEM_20_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) e +# define BOOST_PP_TUPLE_ELEM_20_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) f +# define BOOST_PP_TUPLE_ELEM_20_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) g +# define BOOST_PP_TUPLE_ELEM_20_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) h +# define BOOST_PP_TUPLE_ELEM_20_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) i +# define BOOST_PP_TUPLE_ELEM_20_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) j +# define BOOST_PP_TUPLE_ELEM_20_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) k +# define BOOST_PP_TUPLE_ELEM_20_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) l +# define BOOST_PP_TUPLE_ELEM_20_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) m +# define BOOST_PP_TUPLE_ELEM_20_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) n +# define BOOST_PP_TUPLE_ELEM_20_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) o +# define BOOST_PP_TUPLE_ELEM_20_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) p +# define BOOST_PP_TUPLE_ELEM_20_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) q +# define BOOST_PP_TUPLE_ELEM_20_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) r +# define BOOST_PP_TUPLE_ELEM_20_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) s +# define BOOST_PP_TUPLE_ELEM_20_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) t +# +# define BOOST_PP_TUPLE_ELEM_21_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) a +# define BOOST_PP_TUPLE_ELEM_21_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) b +# define BOOST_PP_TUPLE_ELEM_21_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) c +# define BOOST_PP_TUPLE_ELEM_21_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) d +# define BOOST_PP_TUPLE_ELEM_21_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) e +# define BOOST_PP_TUPLE_ELEM_21_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) f +# define BOOST_PP_TUPLE_ELEM_21_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) g +# define BOOST_PP_TUPLE_ELEM_21_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) h +# define BOOST_PP_TUPLE_ELEM_21_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) i +# define BOOST_PP_TUPLE_ELEM_21_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) j +# define BOOST_PP_TUPLE_ELEM_21_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) k +# define BOOST_PP_TUPLE_ELEM_21_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) l +# define BOOST_PP_TUPLE_ELEM_21_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) m +# define BOOST_PP_TUPLE_ELEM_21_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) n +# define BOOST_PP_TUPLE_ELEM_21_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) o +# define BOOST_PP_TUPLE_ELEM_21_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) p +# define BOOST_PP_TUPLE_ELEM_21_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) q +# define BOOST_PP_TUPLE_ELEM_21_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) r +# define BOOST_PP_TUPLE_ELEM_21_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) s +# define BOOST_PP_TUPLE_ELEM_21_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) t +# define BOOST_PP_TUPLE_ELEM_21_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) u +# +# define BOOST_PP_TUPLE_ELEM_22_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) a +# define BOOST_PP_TUPLE_ELEM_22_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) b +# define BOOST_PP_TUPLE_ELEM_22_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) c +# define BOOST_PP_TUPLE_ELEM_22_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) d +# define BOOST_PP_TUPLE_ELEM_22_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) e +# define BOOST_PP_TUPLE_ELEM_22_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) f +# define BOOST_PP_TUPLE_ELEM_22_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) g +# define BOOST_PP_TUPLE_ELEM_22_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) h +# define BOOST_PP_TUPLE_ELEM_22_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) i +# define BOOST_PP_TUPLE_ELEM_22_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) j +# define BOOST_PP_TUPLE_ELEM_22_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) k +# define BOOST_PP_TUPLE_ELEM_22_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) l +# define BOOST_PP_TUPLE_ELEM_22_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) m +# define BOOST_PP_TUPLE_ELEM_22_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) n +# define BOOST_PP_TUPLE_ELEM_22_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) o +# define BOOST_PP_TUPLE_ELEM_22_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) p +# define BOOST_PP_TUPLE_ELEM_22_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) q +# define BOOST_PP_TUPLE_ELEM_22_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) r +# define BOOST_PP_TUPLE_ELEM_22_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) s +# define BOOST_PP_TUPLE_ELEM_22_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) t +# define BOOST_PP_TUPLE_ELEM_22_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) u +# define BOOST_PP_TUPLE_ELEM_22_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) v +# +# define BOOST_PP_TUPLE_ELEM_23_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) a +# define BOOST_PP_TUPLE_ELEM_23_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) b +# define BOOST_PP_TUPLE_ELEM_23_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) c +# define BOOST_PP_TUPLE_ELEM_23_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) d +# define BOOST_PP_TUPLE_ELEM_23_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) e +# define BOOST_PP_TUPLE_ELEM_23_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) f +# define BOOST_PP_TUPLE_ELEM_23_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) g +# define BOOST_PP_TUPLE_ELEM_23_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) h +# define BOOST_PP_TUPLE_ELEM_23_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) i +# define BOOST_PP_TUPLE_ELEM_23_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) j +# define BOOST_PP_TUPLE_ELEM_23_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) k +# define BOOST_PP_TUPLE_ELEM_23_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) l +# define BOOST_PP_TUPLE_ELEM_23_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) m +# define BOOST_PP_TUPLE_ELEM_23_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) n +# define BOOST_PP_TUPLE_ELEM_23_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) o +# define BOOST_PP_TUPLE_ELEM_23_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) p +# define BOOST_PP_TUPLE_ELEM_23_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) q +# define BOOST_PP_TUPLE_ELEM_23_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) r +# define BOOST_PP_TUPLE_ELEM_23_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) s +# define BOOST_PP_TUPLE_ELEM_23_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) t +# define BOOST_PP_TUPLE_ELEM_23_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) u +# define BOOST_PP_TUPLE_ELEM_23_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) v +# define BOOST_PP_TUPLE_ELEM_23_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) w +# +# define BOOST_PP_TUPLE_ELEM_24_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) a +# define BOOST_PP_TUPLE_ELEM_24_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) b +# define BOOST_PP_TUPLE_ELEM_24_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) c +# define BOOST_PP_TUPLE_ELEM_24_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) d +# define BOOST_PP_TUPLE_ELEM_24_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) e +# define BOOST_PP_TUPLE_ELEM_24_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) f +# define BOOST_PP_TUPLE_ELEM_24_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) g +# define BOOST_PP_TUPLE_ELEM_24_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) h +# define BOOST_PP_TUPLE_ELEM_24_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) i +# define BOOST_PP_TUPLE_ELEM_24_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) j +# define BOOST_PP_TUPLE_ELEM_24_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) k +# define BOOST_PP_TUPLE_ELEM_24_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) l +# define BOOST_PP_TUPLE_ELEM_24_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) m +# define BOOST_PP_TUPLE_ELEM_24_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) n +# define BOOST_PP_TUPLE_ELEM_24_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) o +# define BOOST_PP_TUPLE_ELEM_24_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) p +# define BOOST_PP_TUPLE_ELEM_24_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) q +# define BOOST_PP_TUPLE_ELEM_24_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) r +# define BOOST_PP_TUPLE_ELEM_24_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) s +# define BOOST_PP_TUPLE_ELEM_24_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) t +# define BOOST_PP_TUPLE_ELEM_24_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) u +# define BOOST_PP_TUPLE_ELEM_24_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) v +# define BOOST_PP_TUPLE_ELEM_24_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) w +# define BOOST_PP_TUPLE_ELEM_24_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) x +# +# define BOOST_PP_TUPLE_ELEM_25_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) a +# define BOOST_PP_TUPLE_ELEM_25_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) b +# define BOOST_PP_TUPLE_ELEM_25_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) c +# define BOOST_PP_TUPLE_ELEM_25_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) d +# define BOOST_PP_TUPLE_ELEM_25_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) e +# define BOOST_PP_TUPLE_ELEM_25_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) f +# define BOOST_PP_TUPLE_ELEM_25_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) g +# define BOOST_PP_TUPLE_ELEM_25_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) h +# define BOOST_PP_TUPLE_ELEM_25_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) i +# define BOOST_PP_TUPLE_ELEM_25_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) j +# define BOOST_PP_TUPLE_ELEM_25_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) k +# define BOOST_PP_TUPLE_ELEM_25_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) l +# define BOOST_PP_TUPLE_ELEM_25_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) m +# define BOOST_PP_TUPLE_ELEM_25_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) n +# define BOOST_PP_TUPLE_ELEM_25_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) o +# define BOOST_PP_TUPLE_ELEM_25_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) p +# define BOOST_PP_TUPLE_ELEM_25_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) q +# define BOOST_PP_TUPLE_ELEM_25_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) r +# define BOOST_PP_TUPLE_ELEM_25_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) s +# define BOOST_PP_TUPLE_ELEM_25_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) t +# define BOOST_PP_TUPLE_ELEM_25_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) u +# define BOOST_PP_TUPLE_ELEM_25_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) v +# define BOOST_PP_TUPLE_ELEM_25_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) w +# define BOOST_PP_TUPLE_ELEM_25_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) x +# define BOOST_PP_TUPLE_ELEM_25_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) y +# +# endif diff --git a/external-libs/boost/boost/shared_ptr.hpp b/external-libs/boost/boost/shared_ptr.hpp new file mode 100644 index 0000000..5e1abd8 --- /dev/null +++ b/external-libs/boost/boost/shared_ptr.hpp @@ -0,0 +1,619 @@ +#ifndef BOOST_SHARED_PTR_HPP_INCLUDED +#define BOOST_SHARED_PTR_HPP_INCLUDED + +// +// shared_ptr.hpp +// +// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. +// Copyright (c) 2001-2007 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation. +// + +#include // for broken compiler workarounds + +#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) +#include +#else + +#include // for std::auto_ptr + +#include +#include +#include +#include +#include + +#include // for std::swap +#include // for std::less +#include // for std::bad_cast +#include // for std::basic_ostream + +#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash +# pragma warning(push) +# pragma warning(disable:4284) // odd return type for operator-> +#endif + +namespace boost +{ + +template class weak_ptr; +template class enable_shared_from_this; + +namespace detail +{ + +struct static_cast_tag {}; +struct const_cast_tag {}; +struct dynamic_cast_tag {}; +struct polymorphic_cast_tag {}; + +template struct shared_ptr_traits +{ + typedef T & reference; +}; + +template<> struct shared_ptr_traits +{ + typedef void reference; +}; + +#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) + +template<> struct shared_ptr_traits +{ + typedef void reference; +}; + +template<> struct shared_ptr_traits +{ + typedef void reference; +}; + +template<> struct shared_ptr_traits +{ + typedef void reference; +}; + +#endif + +// enable_shared_from_this support + +template void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this const * pe, Y const * px ) +{ + if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast(px), pn); +} + +#ifdef _MANAGED + +// Avoid C4793, ... causes native code generation + +struct sp_any_pointer +{ + template sp_any_pointer( T* ) {} +}; + +inline void sp_enable_shared_from_this( shared_count const & /*pn*/, sp_any_pointer, sp_any_pointer ) +{ +} + +#else // _MANAGED + +#ifdef sgi +// Turn off: the last argument of the varargs function "sp_enable_shared_from_this" is unnamed +# pragma set woff 3506 +#endif + +inline void sp_enable_shared_from_this( shared_count const & /*pn*/, ... ) +{ +} + +#ifdef sgi +# pragma reset woff 3506 +#endif + +#endif // _MANAGED + +#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR ) + +// rvalue auto_ptr support based on a technique by Dave Abrahams + +template< class T, class R > struct sp_enable_if_auto_ptr +{ +}; + +template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R > +{ + typedef R type; +}; + +#endif + +} // namespace detail + + +// +// shared_ptr +// +// An enhanced relative of scoped_ptr with reference counted copy semantics. +// The object pointed to is deleted when the last shared_ptr pointing to it +// is destroyed or reset. +// + +template class shared_ptr +{ +private: + + // Borland 5.5.1 specific workaround + typedef shared_ptr this_type; + +public: + + typedef T element_type; + typedef T value_type; + typedef T * pointer; + typedef typename boost::detail::shared_ptr_traits::reference reference; + + shared_ptr(): px(0), pn() // never throws in 1.30+ + { + } + + template + explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete + { + boost::detail::sp_enable_shared_from_this( pn, p, p ); + } + + // + // Requirements: D's copy constructor must not throw + // + // shared_ptr will release p by calling d(p) + // + + template shared_ptr(Y * p, D d): px(p), pn(p, d) + { + boost::detail::sp_enable_shared_from_this( pn, p, p ); + } + + // As above, but with allocator. A's copy constructor shall not throw. + + template shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a ) + { + boost::detail::sp_enable_shared_from_this( pn, p, p ); + } + +// generated copy constructor, assignment, destructor are fine... + +// except that Borland C++ has a bug, and g++ with -Wsynth warns +#if defined(__BORLANDC__) || defined(__GNUC__) + + shared_ptr & operator=(shared_ptr const & r) // never throws + { + px = r.px; + pn = r.pn; // shared_count::op= doesn't throw + return *this; + } + +#endif + + template + explicit shared_ptr(weak_ptr const & r): pn(r.pn) // may throw + { + // it is now safe to copy r.px, as pn(r.pn) did not throw + px = r.px; + } + + template + shared_ptr(shared_ptr const & r): px(r.px), pn(r.pn) // never throws + { + } + + // aliasing + template< class Y > + shared_ptr( shared_ptr const & r, T * p ): px( p ), pn( r.pn ) // never throws + { + } + + template + shared_ptr(shared_ptr const & r, boost::detail::static_cast_tag): px(static_cast(r.px)), pn(r.pn) + { + } + + template + shared_ptr(shared_ptr const & r, boost::detail::const_cast_tag): px(const_cast(r.px)), pn(r.pn) + { + } + + template + shared_ptr(shared_ptr const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast(r.px)), pn(r.pn) + { + if(px == 0) // need to allocate new counter -- the cast failed + { + pn = boost::detail::shared_count(); + } + } + + template + shared_ptr(shared_ptr const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast(r.px)), pn(r.pn) + { + if(px == 0) + { + boost::throw_exception(std::bad_cast()); + } + } + +#ifndef BOOST_NO_AUTO_PTR + + template + explicit shared_ptr(std::auto_ptr & r): px(r.get()), pn() + { + Y * tmp = r.get(); + pn = boost::detail::shared_count(r); + boost::detail::sp_enable_shared_from_this( pn, tmp, tmp ); + } + +#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + + template + shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr::type = 0 ): px( r.get() ), pn() + { + typename Ap::element_type * tmp = r.get(); + pn = boost::detail::shared_count( r ); + boost::detail::sp_enable_shared_from_this( pn, tmp, tmp ); + } + + +#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_NO_AUTO_PTR + +#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300) + + template + shared_ptr & operator=(shared_ptr const & r) // never throws + { + px = r.px; + pn = r.pn; // shared_count::op= doesn't throw + return *this; + } + +#endif + +#ifndef BOOST_NO_AUTO_PTR + + template + shared_ptr & operator=( std::auto_ptr & r ) + { + this_type(r).swap(*this); + return *this; + } + +#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + + template + typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r ) + { + this_type( r ).swap( *this ); + return *this; + } + + +#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_NO_AUTO_PTR + +// Move support + +#if defined( BOOST_HAS_RVALUE_REFS ) + + shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws + { + pn.swap( r.pn ); + r.px = 0; + } + + template + shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws + { + pn.swap( r.pn ); + r.px = 0; + } + + shared_ptr & operator=( shared_ptr && r ) // never throws + { + this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); + return *this; + } + + template + shared_ptr & operator=( shared_ptr && r ) // never throws + { + this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); + return *this; + } + +#endif + + void reset() // never throws in 1.30+ + { + this_type().swap(*this); + } + + template void reset(Y * p) // Y must be complete + { + BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors + this_type(p).swap(*this); + } + + template void reset( Y * p, D d ) + { + this_type( p, d ).swap( *this ); + } + + template void reset( Y * p, D d, A a ) + { + this_type( p, d, a ).swap( *this ); + } + + template void reset( shared_ptr const & r, T * p ) + { + this_type( r, p ).swap( *this ); + } + + reference operator* () const // never throws + { + BOOST_ASSERT(px != 0); + return *px; + } + + T * operator-> () const // never throws + { + BOOST_ASSERT(px != 0); + return px; + } + + T * get() const // never throws + { + return px; + } + + // implicit conversion to "bool" + +#if ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__) + + operator bool () const + { + return px != 0; + } + +#elif defined( _MANAGED ) + + static void unspecified_bool( this_type*** ) + { + } + + typedef void (*unspecified_bool_type)( this_type*** ); + + operator unspecified_bool_type() const // never throws + { + return px == 0? 0: unspecified_bool; + } + +#elif \ + ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ + ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ + ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) + + typedef T * (this_type::*unspecified_bool_type)() const; + + operator unspecified_bool_type() const // never throws + { + return px == 0? 0: &this_type::get; + } + +#else + + typedef T * this_type::*unspecified_bool_type; + + operator unspecified_bool_type() const // never throws + { + return px == 0? 0: &this_type::px; + } + +#endif + + // operator! is redundant, but some compilers need it + + bool operator! () const // never throws + { + return px == 0; + } + + bool unique() const // never throws + { + return pn.unique(); + } + + long use_count() const // never throws + { + return pn.use_count(); + } + + void swap(shared_ptr & other) // never throws + { + std::swap(px, other.px); + pn.swap(other.pn); + } + + template bool _internal_less(shared_ptr const & rhs) const + { + return pn < rhs.pn; + } + + void * _internal_get_deleter( detail::sp_typeinfo const & ti ) const + { + return pn.get_deleter( ti ); + } + +// Tasteless as this may seem, making all members public allows member templates +// to work in the absence of member template friends. (Matthew Langston) + +#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS + +private: + + template friend class shared_ptr; + template friend class weak_ptr; + + +#endif + + T * px; // contained pointer + boost::detail::shared_count pn; // reference counter + +}; // shared_ptr + +template inline bool operator==(shared_ptr const & a, shared_ptr const & b) +{ + return a.get() == b.get(); +} + +template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) +{ + return a.get() != b.get(); +} + +#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96 + +// Resolve the ambiguity between our op!= and the one in rel_ops + +template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) +{ + return a.get() != b.get(); +} + +#endif + +template inline bool operator<(shared_ptr const & a, shared_ptr const & b) +{ + return a._internal_less(b); +} + +template inline void swap(shared_ptr & a, shared_ptr & b) +{ + a.swap(b); +} + +template shared_ptr static_pointer_cast(shared_ptr const & r) +{ + return shared_ptr(r, boost::detail::static_cast_tag()); +} + +template shared_ptr const_pointer_cast(shared_ptr const & r) +{ + return shared_ptr(r, boost::detail::const_cast_tag()); +} + +template shared_ptr dynamic_pointer_cast(shared_ptr const & r) +{ + return shared_ptr(r, boost::detail::dynamic_cast_tag()); +} + +// shared_*_cast names are deprecated. Use *_pointer_cast instead. + +template shared_ptr shared_static_cast(shared_ptr const & r) +{ + return shared_ptr(r, boost::detail::static_cast_tag()); +} + +template shared_ptr shared_dynamic_cast(shared_ptr const & r) +{ + return shared_ptr(r, boost::detail::dynamic_cast_tag()); +} + +template shared_ptr shared_polymorphic_cast(shared_ptr const & r) +{ + return shared_ptr(r, boost::detail::polymorphic_cast_tag()); +} + +template shared_ptr shared_polymorphic_downcast(shared_ptr const & r) +{ + BOOST_ASSERT(dynamic_cast(r.get()) == r.get()); + return shared_static_cast(r); +} + +// get_pointer() enables boost::mem_fn to recognize shared_ptr + +template inline T * get_pointer(shared_ptr const & p) +{ + return p.get(); +} + +// operator<< + +#if defined(__GNUC__) && (__GNUC__ < 3) + +template std::ostream & operator<< (std::ostream & os, shared_ptr const & p) +{ + os << p.get(); + return os; +} + +#else + +// in STLport's no-iostreams mode no iostream symbols can be used +#ifndef _STLP_NO_IOSTREAMS + +# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT) +// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL +using std::basic_ostream; +template basic_ostream & operator<< (basic_ostream & os, shared_ptr const & p) +# else +template std::basic_ostream & operator<< (std::basic_ostream & os, shared_ptr const & p) +# endif +{ + os << p.get(); + return os; +} + +#endif // _STLP_NO_IOSTREAMS + +#endif // __GNUC__ < 3 + +// get_deleter + +#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \ + ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \ + ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) ) + +// g++ 2.9x doesn't allow static_cast(void *) +// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it + +template D * get_deleter(shared_ptr const & p) +{ + void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D)); + return const_cast(static_cast(q)); +} + +#else + +template D * get_deleter(shared_ptr const & p) +{ + return static_cast(p._internal_get_deleter(BOOST_SP_TYPEID(D))); +} + +#endif + +} // namespace boost + +#ifdef BOOST_MSVC +# pragma warning(pop) +#endif + +#endif // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) + +#endif // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED diff --git a/external-libs/boost/boost/static_assert.hpp b/external-libs/boost/boost/static_assert.hpp new file mode 100644 index 0000000..3ffa952 --- /dev/null +++ b/external-libs/boost/boost/static_assert.hpp @@ -0,0 +1,122 @@ +// (C) Copyright John Maddock 2000. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/static_assert for documentation. + +/* + Revision history: + 02 August 2000 + Initial version. +*/ + +#ifndef BOOST_STATIC_ASSERT_HPP +#define BOOST_STATIC_ASSERT_HPP + +#include +#include + +#ifdef __BORLANDC__ +// +// workaround for buggy integral-constant expression support: +#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS +#endif + +#if defined(__GNUC__) && (__GNUC__ == 3) && ((__GNUC_MINOR__ == 3) || (__GNUC_MINOR__ == 4)) +// gcc 3.3 and 3.4 don't produce good error messages with the default version: +# define BOOST_SA_GCC_WORKAROUND +#endif + +#ifdef BOOST_HAS_STATIC_ASSERT +# define BOOST_STATIC_ASSERT( B ) static_assert(B, #B) +#else + +namespace boost{ + +// HP aCC cannot deal with missing names for template value parameters +template struct STATIC_ASSERTION_FAILURE; + +template <> struct STATIC_ASSERTION_FAILURE { enum { value = 1 }; }; + +// HP aCC cannot deal with missing names for template value parameters +template struct static_assert_test{}; + +} + +// +// Implicit instantiation requires that all member declarations be +// instantiated, but that the definitions are *not* instantiated. +// +// It's not particularly clear how this applies to enum's or typedefs; +// both are described as declarations [7.1.3] and [7.2] in the standard, +// however some compilers use "delayed evaluation" of one or more of +// these when implicitly instantiating templates. We use typedef declarations +// by default, but try defining BOOST_USE_ENUM_STATIC_ASSERT if the enum +// version gets better results from your compiler... +// +// Implementation: +// Both of these versions rely on sizeof(incomplete_type) generating an error +// message containing the name of the incomplete type. We use +// "STATIC_ASSERTION_FAILURE" as the type name here to generate +// an eye catching error message. The result of the sizeof expression is either +// used as an enum initialiser, or as a template argument depending which version +// is in use... +// Note that the argument to the assert is explicitly cast to bool using old- +// style casts: too many compilers currently have problems with static_cast +// when used inside integral constant expressions. +// +#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS) + +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) +// __LINE__ macro broken when -ZI is used see Q199057 +// fortunately MSVC ignores duplicate typedef's. +#define BOOST_STATIC_ASSERT( B ) \ + typedef ::boost::static_assert_test<\ + sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\ + > boost_static_assert_typedef_ +#elif defined(BOOST_MSVC) +#define BOOST_STATIC_ASSERT( B ) \ + typedef ::boost::static_assert_test<\ + sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\ + BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__) +#elif defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND) +// agurt 15/sep/02: a special care is needed to force Intel C++ issue an error +// instead of warning in case of failure +# define BOOST_STATIC_ASSERT( B ) \ + typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \ + [ ::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >::value ] +#elif defined(__sgi) +// special version for SGI MIPSpro compiler +#define BOOST_STATIC_ASSERT( B ) \ + BOOST_STATIC_CONSTANT(bool, \ + BOOST_JOIN(boost_static_assert_test_, __LINE__) = ( B )); \ + typedef ::boost::static_assert_test<\ + sizeof(::boost::STATIC_ASSERTION_FAILURE< \ + BOOST_JOIN(boost_static_assert_test_, __LINE__) >)>\ + BOOST_JOIN(boost_static_assert_typedef_, __LINE__) +#elif BOOST_WORKAROUND(__MWERKS__, <= 0x3003) +// special version for CodeWarrior <= 8.x +#define BOOST_STATIC_ASSERT( B ) \ + BOOST_STATIC_CONSTANT(int, \ + BOOST_JOIN(boost_static_assert_test_, __LINE__) = \ + sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) ) +#else +// generic version +#define BOOST_STATIC_ASSERT( B ) \ + typedef ::boost::static_assert_test<\ + sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\ + BOOST_JOIN(boost_static_assert_typedef_, __LINE__) +#endif + +#else +// alternative enum based implementation: +#define BOOST_STATIC_ASSERT( B ) \ + enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \ + = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) } +#endif +#endif // ndef BOOST_HAS_STATIC_ASSERT + +#endif // BOOST_STATIC_ASSERT_HPP + + diff --git a/external-libs/boost/boost/system/config.hpp b/external-libs/boost/boost/system/config.hpp new file mode 100644 index 0000000..fa09099 --- /dev/null +++ b/external-libs/boost/boost/system/config.hpp @@ -0,0 +1,75 @@ +// boost/system/config.hpp -------------------------------------------------// + +// Copyright Beman Dawes 2003, 2006 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/system for documentation. + +#ifndef BOOST_SYSTEM_CONFIG_HPP +#define BOOST_SYSTEM_CONFIG_HPP + +#include + +// BOOST_POSIX_API or BOOST_WINDOWS_API specify which API to use. +// If not specified, a sensible default will be applied. + +# if defined( BOOST_WINDOWS_API ) && defined( BOOST_POSIX_API ) +# error both BOOST_WINDOWS_API and BOOST_POSIX_API are defined +# elif !defined( BOOST_WINDOWS_API ) && !defined( BOOST_POSIX_API ) +# if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__) +# define BOOST_WINDOWS_API +# else +# define BOOST_POSIX_API +# endif +# endif + +// enable dynamic linking on Windows ---------------------------------------// + +//# if (defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK)) && defined(__BORLANDC__) && defined(__WIN32__) +//# error Dynamic linking Boost.System does not work for Borland; use static linking instead +//# endif + +#ifdef BOOST_HAS_DECLSPEC // defined in config system +// we need to import/export our code only if the user has specifically +// asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost +// libraries to be dynamically linked, or BOOST_SYSTEM_DYN_LINK +// if they want just this one to be dynamically liked: +#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK) +// export if this is our own source, otherwise import: +#ifdef BOOST_SYSTEM_SOURCE +# define BOOST_SYSTEM_DECL __declspec(dllexport) +#else +# define BOOST_SYSTEM_DECL __declspec(dllimport) +#endif // BOOST_SYSTEM_SOURCE +#endif // DYN_LINK +#endif // BOOST_HAS_DECLSPEC +// +// if BOOST_SYSTEM_DECL isn't defined yet define it now: +#ifndef BOOST_SYSTEM_DECL +#define BOOST_SYSTEM_DECL +#endif + +// enable automatic library variant selection ------------------------------// + +#if !defined(BOOST_SYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_SYSTEM_NO_LIB) +// +// Set the name of our library, this will get undef'ed by auto_link.hpp +// once it's done with it: +// +#define BOOST_LIB_NAME boost_system +// +// If we're importing code from a dll, then tell auto_link.hpp about it: +// +#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK) +# define BOOST_DYN_LINK +#endif +// +// And include the header that does the work: +// +#include +#endif // auto-linking disabled + +#endif // BOOST_SYSTEM_CONFIG_HPP + diff --git a/external-libs/boost/boost/system/cygwin_error.hpp b/external-libs/boost/boost/system/cygwin_error.hpp new file mode 100644 index 0000000..4955be9 --- /dev/null +++ b/external-libs/boost/boost/system/cygwin_error.hpp @@ -0,0 +1,56 @@ +// boost/system/cygwin_error.hpp -------------------------------------------// + +// Copyright Beman Dawes 2007 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/system + +#ifndef BOOST_CYGWIN_ERROR_HPP +#define BOOST_CYGWIN_ERROR_HPP + +// This header is effectively empty for compiles on operating systems where +// it is not applicable. + +# ifdef __CYGWIN__ + +#include + +namespace boost +{ + namespace system + { + // To construct an error_code after a API error: + // + // error_code( errno, system_category ) + + // User code should use the portable "posix" enums for POSIX errors; this + // allows such code to be portable to non-POSIX systems. For the non-POSIX + // errno values that POSIX-based systems typically provide in addition to + // POSIX values, use the system specific enums below. + + namespace cygwin_error + { + enum cygwin_errno + { + no_net = ENONET, + no_package = ENOPKG, + no_share = ENOSHARE + }; + } // namespace cygwin_error + + template<> struct is_error_code_enum + { static const bool value = true; }; + + namespace cygwin_error + { + inline error_code make_error_code( cygwin_errno e ) + { return error_code( e, get_system_category() ); } + } + } +} + +#endif // __CYGWIN__ + +#endif // BOOST_CYGWIN_ERROR_HPP diff --git a/external-libs/boost/boost/system/error_code.hpp b/external-libs/boost/boost/system/error_code.hpp new file mode 100644 index 0000000..d06ddef --- /dev/null +++ b/external-libs/boost/boost/system/error_code.hpp @@ -0,0 +1,495 @@ +// boost/system/error_code.hpp ---------------------------------------------// + +// Copyright Beman Dawes 2006, 2007 +// Copyright Christoper Kohlhoff 2007 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/system + +#ifndef BOOST_ERROR_CODE_HPP +#define BOOST_ERROR_CODE_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// TODO: undef these macros if not already defined +#include + +#if !defined(BOOST_POSIX_API) && !defined(BOOST_WINDOWS_API) +# error BOOST_POSIX_API or BOOST_WINDOWS_API must be defined +#endif + +#include // must be the last #include + +namespace boost +{ + namespace system + { + + class error_code; + class error_condition; + + // "Concept" helpers ---------------------------------------------------// + + template< class T > + struct is_error_code_enum { static const bool value = false; }; + + template< class T > + struct is_error_condition_enum { static const bool value = false; }; + + // portable error_conditions -------------------------------------------// + + namespace posix_error + { + enum posix_errno + { + success = 0, + address_family_not_supported = EAFNOSUPPORT, + address_in_use = EADDRINUSE, + address_not_available = EADDRNOTAVAIL, + already_connected = EISCONN, + argument_list_too_long = E2BIG, + argument_out_of_domain = EDOM, + bad_address = EFAULT, + bad_file_descriptor = EBADF, + bad_message = EBADMSG, + broken_pipe = EPIPE, + connection_aborted = ECONNABORTED, + connection_already_in_progress = EALREADY, + connection_refused = ECONNREFUSED, + connection_reset = ECONNRESET, + cross_device_link = EXDEV, + destination_address_required = EDESTADDRREQ, + device_or_resource_busy = EBUSY, + directory_not_empty = ENOTEMPTY, + executable_format_error = ENOEXEC, + file_exists = EEXIST, + file_too_large = EFBIG, + filename_too_long = ENAMETOOLONG, + function_not_supported = ENOSYS, + host_unreachable = EHOSTUNREACH, + identifier_removed = EIDRM, + illegal_byte_sequence = EILSEQ, + inappropriate_io_control_operation = ENOTTY, + interrupted = EINTR, + invalid_argument = EINVAL, + invalid_seek = ESPIPE, + io_error = EIO, + is_a_directory = EISDIR, + message_size = EMSGSIZE, + network_down = ENETDOWN, + network_reset = ENETRESET, + network_unreachable = ENETUNREACH, + no_buffer_space = ENOBUFS, + no_child_process = ECHILD, + no_link = ENOLINK, + no_lock_available = ENOLCK, + no_message_available = ENODATA, + no_message = ENOMSG, + no_protocol_option = ENOPROTOOPT, + no_space_on_device = ENOSPC, + no_stream_resources = ENOSR, + no_such_device_or_address = ENXIO, + no_such_device = ENODEV, + no_such_file_or_directory = ENOENT, + no_such_process = ESRCH, + not_a_directory = ENOTDIR, + not_a_socket = ENOTSOCK, + not_a_stream = ENOSTR, + not_connected = ENOTCONN, + not_enough_memory = ENOMEM, + not_supported = ENOTSUP, + operation_canceled = ECANCELED, + operation_in_progress = EINPROGRESS, + operation_not_permitted = EPERM, + operation_not_supported = EOPNOTSUPP, + operation_would_block = EWOULDBLOCK, + owner_dead = EOWNERDEAD, + permission_denied = EACCES, + protocol_error = EPROTO, + protocol_not_supported = EPROTONOSUPPORT, + read_only_file_system = EROFS, + resource_deadlock_would_occur = EDEADLK, + resource_unavailable_try_again = EAGAIN, + result_out_of_range = ERANGE, + state_not_recoverable = ENOTRECOVERABLE, + stream_timeout = ETIME, + text_file_busy = ETXTBSY, + timed_out = ETIMEDOUT, + too_many_files_open_in_system = ENFILE, + too_many_files_open = EMFILE, + too_many_links = EMLINK, + too_many_synbolic_link_levels = ELOOP, + value_too_large = EOVERFLOW, + wrong_protocol_type = EPROTOTYPE + }; + + } // namespace posix_error + +# ifndef BOOST_SYSTEM_NO_DEPRECATED + namespace posix = posix_error; +# endif + + template<> struct is_error_condition_enum + { static const bool value = true; }; + + + // ----------------------------------------------------------------------// + + // Operating system specific interfaces --------------------------------// + + + // The interface is divided into general and system-specific portions to + // meet these requirements: + // + // * Code calling an operating system API can create an error_code with + // a single category (system_category), even for POSIX-like operating + // systems that return some POSIX errno values and some native errno + // values. This code should not have to pay the cost of distinguishing + // between categories, since it is not yet known if that is needed. + // + // * Users wishing to write system-specific code should be given enums for + // at least the common error cases. + // + // * System specific code should fail at compile time if moved to another + // operating system. + + // The system specific portions of the interface are located in headers + // with names reflecting the operating system. For example, + // + // + // + // + // + // These headers are effectively empty for compiles on operating systems + // where they are not applicable. + + // ----------------------------------------------------------------------// + + // class error_category ------------------------------------------------// + + class error_category : public noncopyable + { + public: + virtual ~error_category(){} + virtual inline const char * name() const; // see implementation note below + virtual inline std::string message( int ev ) const; // see implementation note below + virtual inline error_condition default_error_condition( int ev ) const; + virtual inline bool equivalent( int code, const error_condition & condition ) const; + virtual inline bool equivalent( const error_code & code, int condition ) const; + + bool operator==(const error_category & rhs) const { return this == &rhs; } + bool operator!=(const error_category & rhs) const { return this != &rhs; } + bool operator<( const error_category & rhs ) const + { + return std::less()( this, &rhs ); + } + }; + + // predefined error categories -----------------------------------------// + + BOOST_SYSTEM_DECL const error_category & get_system_category(); + BOOST_SYSTEM_DECL const error_category & get_posix_category(); + + static const error_category & system_category = get_system_category(); + static const error_category & posix_category = get_posix_category(); + +# ifndef BOOST_SYSTEM_NO_DEPRECATED + // deprecated synonyms + static const error_category & errno_ecat = get_posix_category(); + static const error_category & native_ecat = get_system_category(); +# endif + + // class error_condition -----------------------------------------------// + + // error_conditions are portable, error_codes are system or lib specific + + class error_condition + { + public: + + // constructors: + error_condition() : m_val(0), m_cat(&get_posix_category()) {} + error_condition( int val, const error_category & cat ) : m_val(val), m_cat(&cat) {} + + template + error_condition(ConditionEnum e, + typename boost::enable_if >::type* = 0) + { + *this = make_error_condition(e); + } + + // modifiers: + + void assign( int val, const error_category & cat ) + { + m_val = val; + m_cat = &cat; + } + + template + typename boost::enable_if, error_condition>::type & + operator=( ConditionEnum val ) + { + *this = make_error_condition(val); + return *this; + } + + void clear() + { + m_val = 0; + m_cat = &get_posix_category(); + } + + // observers: + int value() const { return m_val; } + const error_category & category() const { return *m_cat; } + std::string message() const { return m_cat->message(value()); } + + typedef void (*unspecified_bool_type)(); + static void unspecified_bool_true() {} + + operator unspecified_bool_type() const // true if error + { + return m_val == 0 ? 0 : unspecified_bool_true; + } + + bool operator!() const // true if no error + { + return m_val == 0; + } + + // relationals: + // the more symmetrical non-member syntax allows enum + // conversions work for both rhs and lhs. + inline friend bool operator==( const error_condition & lhs, + const error_condition & rhs ) + { + return lhs.m_cat == rhs.m_cat && lhs.m_val == rhs.m_val; + } + + inline friend bool operator<( const error_condition & lhs, + const error_condition & rhs ) + // the more symmetrical non-member syntax allows enum + // conversions work for both rhs and lhs. + { + return lhs.m_cat < rhs.m_cat + || (lhs.m_cat == rhs.m_cat && lhs.m_val < rhs.m_val); + } + + private: + int m_val; + const error_category * m_cat; + + }; + + // class error_code ----------------------------------------------------// + + // We want error_code to be a value type that can be copied without slicing + // and without requiring heap allocation, but we also want it to have + // polymorphic behavior based on the error category. This is achieved by + // abstract base class error_category supplying the polymorphic behavior, + // and error_code containing a pointer to an object of a type derived + // from error_category. + class error_code + { + public: + + // constructors: + error_code() : m_val(0), m_cat(&get_system_category()) {} + error_code( int val, const error_category & cat ) : m_val(val), m_cat(&cat) {} + + template + error_code(CodeEnum e, + typename boost::enable_if >::type* = 0) + { + *this = make_error_code(e); + } + + // modifiers: + void assign( int val, const error_category & cat ) + { + m_val = val; + m_cat = &cat; + } + + template + typename boost::enable_if, error_code>::type & + operator=( CodeEnum val ) + { + *this = make_error_code(val); + return *this; + } + + void clear() + { + m_val = 0; + m_cat = &get_system_category(); + } + + // observers: + int value() const { return m_val; } + const error_category & category() const { return *m_cat; } + error_condition default_error_condition() const { return m_cat->default_error_condition(value()); } + std::string message() const { return m_cat->message(value()); } + + typedef void (*unspecified_bool_type)(); + static void unspecified_bool_true() {} + + operator unspecified_bool_type() const // true if error + { + return m_val == 0 ? 0 : unspecified_bool_true; + } + + bool operator!() const // true if no error + { + return m_val == 0; + } + + // relationals: + inline friend bool operator==( const error_code & lhs, + const error_code & rhs ) + // the more symmetrical non-member syntax allows enum + // conversions work for both rhs and lhs. + { + return lhs.m_cat == rhs.m_cat && lhs.m_val == rhs.m_val; + } + + inline friend bool operator<( const error_code & lhs, + const error_code & rhs ) + // the more symmetrical non-member syntax allows enum + // conversions work for both rhs and lhs. + { + return lhs.m_cat < rhs.m_cat + || (lhs.m_cat == rhs.m_cat && lhs.m_val < rhs.m_val); + } + + private: + int m_val; + const error_category * m_cat; + + }; + + // non-member functions ------------------------------------------------// + + inline bool operator!=( const error_code & lhs, + const error_code & rhs ) + { + return !(lhs == rhs); + } + + inline bool operator!=( const error_condition & lhs, + const error_condition & rhs ) + { + return !(lhs == rhs); + } + + inline bool operator==( const error_code & code, + const error_condition & condition ) + { + return code.category().equivalent( code.value(), condition ) + || condition.category().equivalent( code, condition.value() ); + } + + inline bool operator!=( const error_code & lhs, + const error_condition & rhs ) + { + return !(lhs == rhs); + } + + inline bool operator==( const error_condition & condition, + const error_code & code ) + { + return condition.category().equivalent( code, condition.value() ) + || code.category().equivalent( code.value(), condition ); + } + + inline bool operator!=( const error_condition & lhs, + const error_code & rhs ) + { + return !(lhs == rhs); + } + + // TODO: both of these may move elsewhere, but the LWG hasn't spoken yet. + + template + inline std::basic_ostream& + operator<< (std::basic_ostream& os, error_code ec) + { + os << ec.category().name() << ':' << ec.value(); + return os; + } + + inline std::size_t hash_value( const error_code & ec ) + { + return static_cast(ec.value()) + + reinterpret_cast(&ec.category()); + } + + // make_* functions for posix_error::posix_errno -----------------------------// + + namespace posix_error + { + // explicit conversion: + inline error_code make_error_code( posix_errno e ) + { return error_code( e, get_posix_category() ); } + + // implicit conversion: + inline error_condition make_error_condition( posix_errno e ) + { return error_condition( e, get_posix_category() ); } + } + + // error_category default implementation -------------------------------// + + inline error_condition error_category::default_error_condition( int ev ) const + { + return error_condition( ev, *this ); + } + + inline bool error_category::equivalent( int code, + const error_condition & condition ) const + { + return default_error_condition( code ) == condition; + } + + inline bool error_category::equivalent( const error_code & code, + int condition ) const + { + return *this == code.category() && code.value() == condition; + } + + // error_category implementation note: VC++ 8.0 objects to name() and + // message() being pure virtual functions. Thus these implementations. + inline const char * error_category::name() const + { + return "error: should never be called"; + } + + inline std::string error_category::message( int ) const + { + static std::string s("error: should never be called"); + return s; + } + + } // namespace system +} // namespace boost + +#include // pops abi_prefix.hpp pragmas + +# ifdef BOOST_ERROR_CODE_HEADER_ONLY +# include +# endif + +#endif // BOOST_ERROR_CODE_HPP + + diff --git a/external-libs/boost/boost/system/linux_error.hpp b/external-libs/boost/boost/system/linux_error.hpp new file mode 100644 index 0000000..2998253 --- /dev/null +++ b/external-libs/boost/boost/system/linux_error.hpp @@ -0,0 +1,110 @@ +// boost/system/linux_error.hpp -------------------------------------------// + +// Copyright Beman Dawes 2007 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/system + +#ifndef BOOST_LINUX_ERROR_HPP +#define BOOST_LINUX_ERROR_HPP + +// This header is effectively empty for compiles on operating systems where +// it is not applicable. + +#if defined(linux) || defined(__linux) || defined(__linux__) + +#include + +namespace boost +{ + namespace system + { + // To construct an error_code after a API error: + // + // error_code( errno, system_category ) + + // User code should use the portable "posix" enums for POSIX errors; this + // allows such code to be portable to non-POSIX systems. For the non-POSIX + // errno values that POSIX-based systems typically provide in addition to + // POSIX values, use the system specific enums below. + + namespace linux_error + { + enum linux_errno + { + advertise_error = EADV, + bad_exchange = EBADE, + bad_file_number = EBADFD, + bad_font_format = EBFONT, + bad_request_code = EBADRQC, + bad_request_descriptor = EBADR, + bad_slot = EBADSLT, + channel_range = ECHRNG, + communication_error = ECOMM, + dot_dot_error = EDOTDOT, + exchange_full = EXFULL, + host_down = EHOSTDOWN, + is_named_file_type= EISNAM, + key_expired = EKEYEXPIRED, + key_rejected = EKEYREJECTED, + key_revoked = EKEYREVOKED, + level2_halt= EL2HLT, + level2_no_syncronized= EL2NSYNC, + level3_halt = EL3HLT, + level3_reset = EL3RST, + link_range = ELNRNG, + medium_type = EMEDIUMTYPE, + no_anode= ENOANO, + no_block_device = ENOTBLK, + no_csi = ENOCSI, + no_key = ENOKEY, + no_medium = ENOMEDIUM, + no_network = ENONET, + no_package = ENOPKG, + not_avail = ENAVAIL, + not_named_file_type= ENOTNAM, + not_recoverable = ENOTRECOVERABLE, + not_unique = ENOTUNIQ, + owner_dead = EOWNERDEAD, + protocol_no_supported = EPFNOSUPPORT, + remote_address_changed = EREMCHG, + remote_io_error = EREMOTEIO, + remote_object = EREMOTE, + restart_needed = ERESTART, + shared_library_access = ELIBACC, + shared_library_bad = ELIBBAD, + shared_library_execute = ELIBEXEC, + shared_library_max_ = ELIBMAX, + shared_library_section= ELIBSCN, + shutdown = ESHUTDOWN, + socket_type_not_supported = ESOCKTNOSUPPORT, + srmount_error = ESRMNT, + stream_pipe_error = ESTRPIPE, + too_many_references = ETOOMANYREFS, + too_many_users = EUSERS, + unattached = EUNATCH, + unclean = EUCLEAN + }; + } // namespace linux_error + +# ifndef BOOST_SYSTEM_NO_DEPRECATED + namespace Linux = linux_error; +# endif + + template<> struct is_error_code_enum + { static const bool value = true; }; + + namespace linux_error + { + inline error_code make_error_code( linux_errno e ) + { return error_code( e, get_system_category() ); } + } + + } // namespace system +} // namespace boost + +#endif // Linux + +#endif // BOOST_LINUX_ERROR_HPP diff --git a/external-libs/boost/boost/system/system_error.hpp b/external-libs/boost/boost/system/system_error.hpp new file mode 100644 index 0000000..3b4204b --- /dev/null +++ b/external-libs/boost/boost/system/system_error.hpp @@ -0,0 +1,71 @@ +// Boost system_error.hpp --------------------------------------------------// + +// Copyright Beman Dawes 2006 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_SYSTEM_ERROR_HPP +#define BOOST_SYSTEM_ERROR_HPP + +#include +#include +#include +#include + +namespace boost +{ + namespace system + { + // class system_error --------------------------------------------------// + + class system_error : public std::runtime_error + { + public: + system_error( error_code ec ) + : std::runtime_error(""), m_error_code(ec) {} + system_error( error_code ec, const std::string & what_arg ) + : std::runtime_error(what_arg), m_error_code(ec) {} + system_error( int ev, const error_category & ecat, + const std::string & what_arg ) + : std::runtime_error(what_arg), m_error_code(ev,ecat) {} + system_error( int ev, const error_category & ecat ) + : std::runtime_error(""), m_error_code(ev,ecat) {} + + virtual ~system_error() throw() {} + + const error_code & code() const throw() { return m_error_code; } + const char * what() const throw(); + + private: + error_code m_error_code; + mutable std::string m_what; + }; + + // implementation ------------------------------------------------------// + + inline const char * system_error::what() const throw() + // see http://www.boost.org/more/error_handling.html for lazy build rationale + { + if ( m_what.empty() ) + { + try + { + m_what = this->std::runtime_error::what(); + if ( m_error_code ) + { + if ( !m_what.empty() ) m_what += ": "; + m_what += m_error_code.message(); + } + } + catch (...) { return std::runtime_error::what(); } + } + return m_what.c_str(); + } + + } // namespace system +} // namespace boost + +#endif // BOOST_SYSTEM_ERROR_HPP + + diff --git a/external-libs/boost/boost/system/windows_error.hpp b/external-libs/boost/boost/system/windows_error.hpp new file mode 100644 index 0000000..b6d2f0f --- /dev/null +++ b/external-libs/boost/boost/system/windows_error.hpp @@ -0,0 +1,118 @@ +// boost/system/windows_error.hpp ------------------------------------------// + +// Copyright Beman Dawes 2007 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/system + +#ifndef BOOST_WINDOWS_ERROR_HPP +#define BOOST_WINDOWS_ERROR_HPP + +// This header is effectively empty for compiles on operating systems where +// it is not applicable. + +#include + +#ifdef BOOST_WINDOWS_API + +#include +#include + +namespace boost +{ + namespace system + { + + // Microsoft Windows ---------------------------------------------------// + + // To construct an error_code after a API error: + // + // error_code( ::GetLastError(), system_category ) + + namespace windows_error + { + enum windows_error_code + { + success = 0, + // These names and values are based on Windows winerror.h + invalid_function = ERROR_INVALID_FUNCTION, + file_not_found = ERROR_FILE_NOT_FOUND, + path_not_found = ERROR_PATH_NOT_FOUND, + too_many_open_files = ERROR_TOO_MANY_OPEN_FILES, + access_denied = ERROR_ACCESS_DENIED, + invalid_handle = ERROR_INVALID_HANDLE, + arena_trashed = ERROR_ARENA_TRASHED, + not_enough_memory = ERROR_NOT_ENOUGH_MEMORY, + invalid_block = ERROR_INVALID_BLOCK, + bad_environment = ERROR_BAD_ENVIRONMENT, + bad_format = ERROR_BAD_FORMAT, + invalid_access = ERROR_INVALID_ACCESS, + outofmemory = ERROR_OUTOFMEMORY, + invalid_drive = ERROR_INVALID_DRIVE, + current_directory = ERROR_CURRENT_DIRECTORY, + not_same_device = ERROR_NOT_SAME_DEVICE, + no_more_files = ERROR_NO_MORE_FILES, + write_protect = ERROR_WRITE_PROTECT, + bad_unit = ERROR_BAD_UNIT, + not_ready = ERROR_NOT_READY, + bad_command = ERROR_BAD_COMMAND, + crc = ERROR_CRC, + bad_length = ERROR_BAD_LENGTH, + seek = ERROR_SEEK, + not_dos_disk = ERROR_NOT_DOS_DISK, + sector_not_found = ERROR_SECTOR_NOT_FOUND, + out_of_paper = ERROR_OUT_OF_PAPER, + write_fault = ERROR_WRITE_FAULT, + read_fault = ERROR_READ_FAULT, + gen_failure = ERROR_GEN_FAILURE, + sharing_violation = ERROR_SHARING_VIOLATION, + lock_violation = ERROR_LOCK_VIOLATION, + wrong_disk = ERROR_WRONG_DISK, + sharing_buffer_exceeded = ERROR_SHARING_BUFFER_EXCEEDED, + handle_eof = ERROR_HANDLE_EOF, + handle_disk_full= ERROR_HANDLE_DISK_FULL, + rem_not_list = ERROR_REM_NOT_LIST, + dup_name = ERROR_DUP_NAME, + bad_net_path = ERROR_BAD_NETPATH, + network_busy = ERROR_NETWORK_BUSY, + // ... + file_exists = ERROR_FILE_EXISTS, + cannot_make = ERROR_CANNOT_MAKE, + // ... + broken_pipe = ERROR_BROKEN_PIPE, + open_failed = ERROR_OPEN_FAILED, + buffer_overflow = ERROR_BUFFER_OVERFLOW, + disk_full= ERROR_DISK_FULL, + // ... + lock_failed = ERROR_LOCK_FAILED, + busy = ERROR_BUSY, + cancel_violation = ERROR_CANCEL_VIOLATION, + already_exists = ERROR_ALREADY_EXISTS + // ... + + // TODO: add more Windows errors + }; + + } // namespace windows + +# ifndef BOOST_SYSTEM_NO_DEPRECATED + namespace windows = windows_error; +# endif + + template<> struct is_error_code_enum + { static const bool value = true; }; + + namespace windows_error + { + inline error_code make_error_code( windows_error_code e ) + { return error_code( e, get_system_category() ); } + } + + } // namespace system +} // namespace boost + +#endif // BOOST_WINDOWS_API + +#endif // BOOST_WINDOWS_ERROR_HPP diff --git a/external-libs/boost/boost/throw_exception.hpp b/external-libs/boost/boost/throw_exception.hpp new file mode 100644 index 0000000..bb79a37 --- /dev/null +++ b/external-libs/boost/boost/throw_exception.hpp @@ -0,0 +1,46 @@ +#ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED +#define BOOST_THROW_EXCEPTION_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// boost/throw_exception.hpp +// +// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// http://www.boost.org/libs/utility/throw_exception.html +// + +#include + +#ifdef BOOST_NO_EXCEPTIONS +# include +#endif + +namespace boost +{ + +#ifdef BOOST_NO_EXCEPTIONS + +void throw_exception(std::exception const & e); // user defined + +#else + +template inline void throw_exception(E const & e) +{ + throw e; +} + +#endif + +} // namespace boost + +#endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/add_const.hpp b/external-libs/boost/boost/type_traits/add_const.hpp new file mode 100644 index 0000000..29f0bd9 --- /dev/null +++ b/external-libs/boost/boost/type_traits/add_const.hpp @@ -0,0 +1,47 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_ADD_CONST_HPP_INCLUDED +#define BOOST_TT_ADD_CONST_HPP_INCLUDED + +#include + +// should be the last #include +#include + +namespace boost { + +// * convert a type T to const type - add_const +// this is not required since the result is always +// the same as "T const", but it does suppress warnings +// from some compilers: + +#if defined(BOOST_MSVC) +// This bogus warning will appear when add_const is applied to a +// const volatile reference because we can't detect const volatile +// references with MSVC6. +# pragma warning(push) +# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored +#endif + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_const,T,T const) + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_const,T&,T&) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_ADD_CONST_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/add_pointer.hpp b/external-libs/boost/boost/type_traits/add_pointer.hpp new file mode 100644 index 0000000..308baf0 --- /dev/null +++ b/external-libs/boost/boost/type_traits/add_pointer.hpp @@ -0,0 +1,72 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_ADD_POINTER_HPP_INCLUDED +#define BOOST_TT_ADD_POINTER_HPP_INCLUDED + +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail { + +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) +// +// For some reason this implementation stops Borlands compiler +// from dropping cv-qualifiers, it still fails with references +// to arrays for some reason though (shrug...) (JM 20021104) +// +template +struct add_pointer_impl +{ + typedef T* type; +}; +template +struct add_pointer_impl +{ + typedef T* type; +}; +template +struct add_pointer_impl +{ + typedef T* type; +}; +template +struct add_pointer_impl +{ + typedef T* type; +}; +template +struct add_pointer_impl +{ + typedef T* type; +}; + +#else + +template +struct add_pointer_impl +{ + typedef typename remove_reference::type no_ref_type; + typedef no_ref_type* type; +}; + +#endif + +} // namespace detail + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_pointer,T,typename boost::detail::add_pointer_impl::type) + +} // namespace boost + +#include + +#endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/add_reference.hpp b/external-libs/boost/boost/type_traits/add_reference.hpp new file mode 100644 index 0000000..7dfb4be --- /dev/null +++ b/external-libs/boost/boost/type_traits/add_reference.hpp @@ -0,0 +1,89 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_ADD_REFERENCE_HPP_INCLUDED +#define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED + +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail { + +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(BOOST_MSVC6_MEMBER_TEMPLATES) + +template +struct reference_adder +{ + template struct result_ + { + typedef T& type; + }; +}; + +template <> +struct reference_adder +{ + template struct result_ + { + typedef T type; + }; +}; + +template +struct add_reference_impl +{ + typedef typename reference_adder< + ::boost::is_reference::value + >::template result_ result; + + typedef typename result::type type; +}; + +#else + +template +struct add_reference_impl +{ + typedef T& type; +}; + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&) +#endif + +#endif + +// these full specialisations are always required: +BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void,void) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const,void const) +BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void volatile,void volatile) +BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const volatile) +#endif + +} // namespace detail + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename boost::detail::add_reference_impl::type) + +// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional +// level of indirection, here +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/broken_compiler_spec.hpp b/external-libs/boost/boost/type_traits/broken_compiler_spec.hpp new file mode 100644 index 0000000..fb51769 --- /dev/null +++ b/external-libs/boost/boost/type_traits/broken_compiler_spec.hpp @@ -0,0 +1,117 @@ + +// Copyright 2001-2003 Aleksey Gurtovoy. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED +#define BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED + +#include +#include + +// these are needed regardless of BOOST_TT_NO_BROKEN_COMPILER_SPEC +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +namespace boost { namespace detail { +template< typename T > struct remove_const_impl { typedef T type; }; +template< typename T > struct remove_volatile_impl { typedef T type; }; +template< typename T > struct remove_pointer_impl { typedef T type; }; +template< typename T > struct remove_reference_impl { typedef T type; }; +typedef int invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces; +}} +#endif + +// agurt, 27/jun/03: disable the workaround if user defined +// BOOST_TT_NO_BROKEN_COMPILER_SPEC +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + || defined(BOOST_TT_NO_BROKEN_COMPILER_SPEC) + +# define BOOST_TT_BROKEN_COMPILER_SPEC(T) /**/ + +#else + +// same as BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it +// never gets #undef-ined +# define BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(trait,spec,result) \ +template<> struct trait##_impl \ +{ \ + typedef result type; \ +}; \ +/**/ + +# define BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const volatile,T volatile) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T volatile,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T const volatile,T const) \ + /**/ + +# define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*volatile,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const volatile,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_reference,T&,T) \ + /**/ + +# define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T) \ + BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T) \ + BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const) \ + BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T volatile) \ + BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const volatile) \ + /**/ + +# define BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \ + BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T) \ + BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T) \ + /**/ + +# define BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T*) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const*) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T volatile*) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const volatile*) \ + /**/ + +# define BOOST_TT_BROKEN_COMPILER_SPEC(T) \ + namespace boost { namespace detail { \ + typedef invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces \ + please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces; \ + BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const*) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T volatile*) \ + BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const volatile*) \ + }} \ + /**/ + +# include + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_TT_BROKEN_COMPILER_SPEC(bool) +BOOST_TT_BROKEN_COMPILER_SPEC(char) +#ifndef BOOST_NO_INTRINSIC_WCHAR_T +BOOST_TT_BROKEN_COMPILER_SPEC(wchar_t) +#endif +BOOST_TT_BROKEN_COMPILER_SPEC(signed char) +BOOST_TT_BROKEN_COMPILER_SPEC(unsigned char) +BOOST_TT_BROKEN_COMPILER_SPEC(signed short) +BOOST_TT_BROKEN_COMPILER_SPEC(unsigned short) +BOOST_TT_BROKEN_COMPILER_SPEC(signed int) +BOOST_TT_BROKEN_COMPILER_SPEC(unsigned int) +BOOST_TT_BROKEN_COMPILER_SPEC(signed long) +BOOST_TT_BROKEN_COMPILER_SPEC(unsigned long) +BOOST_TT_BROKEN_COMPILER_SPEC(float) +BOOST_TT_BROKEN_COMPILER_SPEC(double) +//BOOST_TT_BROKEN_COMPILER_SPEC(long double) + +// for backward compatibility +#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \ + BOOST_TT_BROKEN_COMPILER_SPEC(T) \ +/**/ + +#endif // BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/config.hpp b/external-libs/boost/boost/type_traits/config.hpp new file mode 100644 index 0000000..7f98789 --- /dev/null +++ b/external-libs/boost/boost/type_traits/config.hpp @@ -0,0 +1,76 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_CONFIG_HPP_INCLUDED +#define BOOST_TT_CONFIG_HPP_INCLUDED + +#ifndef BOOST_CONFIG_HPP +#include +#endif + +#include + +// +// whenever we have a conversion function with elipses +// it needs to be declared __cdecl to suppress compiler +// warnings from MS and Borland compilers (this *must* +// appear before we include is_same.hpp below): +#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32)) +# define BOOST_TT_DECL __cdecl +#else +# define BOOST_TT_DECL /**/ +#endif + +# if (BOOST_WORKAROUND(__MWERKS__, < 0x3000) \ + || BOOST_WORKAROUND(BOOST_MSVC, <= 1301) \ + || !defined(__EDG_VERSION__) && BOOST_WORKAROUND(__GNUC__, < 3) \ + || BOOST_WORKAROUND(__IBMCPP__, < 600 ) \ + || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) \ + || defined(__ghs) \ + || BOOST_WORKAROUND(__HP_aCC, < 60700) \ + || BOOST_WORKAROUND(MPW_CPLUS, BOOST_TESTED_AT(0x890)) \ + || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x580))) \ + && defined(BOOST_NO_IS_ABSTRACT) + +# define BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION 1 + +#endif + +#ifndef BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION +# define BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION 1 +#endif + +// +// Define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +// when we can't test for function types with elipsis: +// +#if BOOST_WORKAROUND(__GNUC__, < 3) +# define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +#endif + +// +// define BOOST_TT_TEST_MS_FUNC_SIGS +// when we want to test __stdcall etc function types with is_function etc +// (Note, does not work with Borland, even though it does support __stdcall etc): +// +#if defined(_MSC_EXTENSIONS) && !defined(__BORLANDC__) +# define BOOST_TT_TEST_MS_FUNC_SIGS +#endif + +// +// define BOOST_TT_NO_CV_FUNC_TEST +// if tests for cv-qualified member functions don't +// work in is_member_function_pointer +// +#if BOOST_WORKAROUND(__MWERKS__, < 0x3000) || BOOST_WORKAROUND(__IBMCPP__, <= 600) +# define BOOST_TT_NO_CV_FUNC_TEST +#endif + +#endif // BOOST_TT_CONFIG_HPP_INCLUDED + + diff --git a/external-libs/boost/boost/type_traits/detail/bool_trait_def.hpp b/external-libs/boost/boost/type_traits/detail/bool_trait_def.hpp new file mode 100644 index 0000000..19bb18c --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/bool_trait_def.hpp @@ -0,0 +1,173 @@ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// $Source$ +// $Date: 2006-07-12 07:10:22 -0400 (Wed, 12 Jul 2006) $ +// $Revision: 34511 $ + +#include +#include +#include +#include +#include + +// +// Unfortunately some libraries have started using this header without +// cleaning up afterwards: so we'd better undef the macros just in case +// they've been defined already.... +// +#ifdef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL +#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL +#undef BOOST_TT_AUX_BOOL_C_BASE +#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1 +#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2 +#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1 +#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2 +#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1 +#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2 +#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1 +#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1 +#endif + +#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x570) +# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ + typedef ::boost::integral_constant type; \ + enum { value = type::value }; \ + /**/ +# define BOOST_TT_AUX_BOOL_C_BASE(C) + +#elif defined(BOOST_MSVC) && BOOST_MSVC < 1300 + +# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ + typedef ::boost::integral_constant base_; \ + using base_::value; \ + /**/ + +#endif + +#ifndef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL +# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) /**/ +#endif + +#ifndef BOOST_TT_AUX_BOOL_C_BASE +# define BOOST_TT_AUX_BOOL_C_BASE(C) : ::boost::integral_constant +#endif + + +#define BOOST_TT_AUX_BOOL_TRAIT_DEF1(trait,T,C) \ +template< typename T > struct trait \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \ +}; \ +\ +BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \ +/**/ + + +#define BOOST_TT_AUX_BOOL_TRAIT_DEF2(trait,T1,T2,C) \ +template< typename T1, typename T2 > struct trait \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \ +}; \ +\ +BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,trait) \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,C) \ +template<> struct trait< sp > \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_SPEC2(trait,sp1,sp2,C) \ +template<> struct trait< sp1,sp2 > \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \ +template<> struct trait##_impl< sp > \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = (C)); \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \ +template<> struct trait##_impl< sp1,sp2 > \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = (C)); \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(param,trait,sp,C) \ +template< param > struct trait< sp > \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,sp,C) \ +template< param1, param2 > struct trait< sp > \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \ +template< param > struct trait< sp1,sp2 > \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(param1,param2,trait,sp1,sp2,C) \ +template< param1, param2 > struct trait< sp1,sp2 > \ + BOOST_TT_AUX_BOOL_C_BASE(C) \ +{ \ + BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ +}; \ +/**/ + +#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \ +template< param > struct trait##_impl< sp1,sp2 > \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = (C)); \ +}; \ +/**/ + +#ifndef BOOST_NO_CV_SPECIALIZATIONS +# define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \ + BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \ + BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const,value) \ + BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp volatile,value) \ + BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const volatile,value) \ + /**/ +#else +# define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \ + BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \ + /**/ +#endif diff --git a/external-libs/boost/boost/type_traits/detail/bool_trait_undef.hpp b/external-libs/boost/boost/type_traits/detail/bool_trait_undef.hpp new file mode 100644 index 0000000..2259c64 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/bool_trait_undef.hpp @@ -0,0 +1,27 @@ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL +#undef BOOST_TT_AUX_BOOL_C_BASE +#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1 +#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2 +#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1 +#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2 +#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1 +#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1 +#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2 +#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1 +#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1 diff --git a/external-libs/boost/boost/type_traits/detail/cv_traits_impl.hpp b/external-libs/boost/boost/type_traits/detail/cv_traits_impl.hpp new file mode 100644 index 0000000..b3fa595 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/cv_traits_impl.hpp @@ -0,0 +1,97 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED +#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED + +#include +#include + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +// implementation helper: + + +#if !(BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2)) +namespace boost { +namespace detail { +#else +#include +namespace boost { +namespace type_traits { +namespace gcc8503 { +#endif + +template struct cv_traits_imp {}; + +template +struct cv_traits_imp +{ + BOOST_STATIC_CONSTANT(bool, is_const = false); + BOOST_STATIC_CONSTANT(bool, is_volatile = false); + typedef T unqualified_type; +}; + +template +struct cv_traits_imp +{ + BOOST_STATIC_CONSTANT(bool, is_const = true); + BOOST_STATIC_CONSTANT(bool, is_volatile = false); + typedef T unqualified_type; +}; + +template +struct cv_traits_imp +{ + BOOST_STATIC_CONSTANT(bool, is_const = false); + BOOST_STATIC_CONSTANT(bool, is_volatile = true); + typedef T unqualified_type; +}; + +template +struct cv_traits_imp +{ + BOOST_STATIC_CONSTANT(bool, is_const = true); + BOOST_STATIC_CONSTANT(bool, is_volatile = true); + typedef T unqualified_type; +}; + +#if BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2) +// We have to exclude function pointers +// (see http://gcc.gnu.org/bugzilla/show_bug.cgi?8503) +yes_type mini_funcptr_tester(...); +no_type mini_funcptr_tester(const volatile void*); + +} // namespace gcc8503 +} // namespace type_traits + +namespace detail { + +// Use the implementation above for non function pointers +template +struct cv_traits_imp : ::boost::type_traits::gcc8503::cv_traits_imp { }; + +// Functions are never cv-qualified +template struct cv_traits_imp +{ + BOOST_STATIC_CONSTANT(bool, is_const = false); + BOOST_STATIC_CONSTANT(bool, is_volatile = false); + typedef T unqualified_type; +}; + +#endif + +} // namespace detail +} // namespace boost + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/detail/false_result.hpp b/external-libs/boost/boost/type_traits/detail/false_result.hpp new file mode 100644 index 0000000..e65e8bc --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/false_result.hpp @@ -0,0 +1,28 @@ +// Copyright David Abrahams 2002. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED +#define BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED + +#include + +namespace boost { +namespace type_traits { + +// Utility class which always "returns" false +struct false_result +{ + template struct result_ + { + BOOST_STATIC_CONSTANT(bool, value = false); + }; +}; + +}} // namespace boost::type_traits + +#endif // BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/detail/ice_and.hpp b/external-libs/boost/boost/type_traits/detail/ice_and.hpp new file mode 100644 index 0000000..8b461b9 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/ice_and.hpp @@ -0,0 +1,35 @@ +// (C) Copyright John Maddock and Steve Cleary 2000. +// +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED +#define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED + +#include + +namespace boost { +namespace type_traits { + +template +struct ice_and; + +template +struct ice_and +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +template <> +struct ice_and +{ + BOOST_STATIC_CONSTANT(bool, value = true); +}; + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/detail/ice_eq.hpp b/external-libs/boost/boost/type_traits/detail/ice_eq.hpp new file mode 100644 index 0000000..ea42a60 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/ice_eq.hpp @@ -0,0 +1,36 @@ +// (C) Copyright John Maddock and Steve Cleary 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED +#define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED + +#include + +namespace boost { +namespace type_traits { + +template +struct ice_eq +{ + BOOST_STATIC_CONSTANT(bool, value = (b1 == b2)); +}; + +template +struct ice_ne +{ + BOOST_STATIC_CONSTANT(bool, value = (b1 != b2)); +}; + +#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION +template bool const ice_eq::value; +template bool const ice_ne::value; +#endif + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/detail/ice_not.hpp b/external-libs/boost/boost/type_traits/detail/ice_not.hpp new file mode 100644 index 0000000..ee1dca0 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/ice_not.hpp @@ -0,0 +1,31 @@ +// (C) Copyright John Maddock and Steve Cleary 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED +#define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED + +#include + +namespace boost { +namespace type_traits { + +template +struct ice_not +{ + BOOST_STATIC_CONSTANT(bool, value = true); +}; + +template <> +struct ice_not +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/detail/ice_or.hpp b/external-libs/boost/boost/type_traits/detail/ice_or.hpp new file mode 100644 index 0000000..f88d9f6 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/ice_or.hpp @@ -0,0 +1,34 @@ +// (C) Copyright John Maddock and Steve Cleary 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED +#define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED + +#include + +namespace boost { +namespace type_traits { + +template +struct ice_or; + +template +struct ice_or +{ + BOOST_STATIC_CONSTANT(bool, value = true); +}; + +template <> +struct ice_or +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/detail/is_function_ptr_helper.hpp b/external-libs/boost/boost/type_traits/detail/is_function_ptr_helper.hpp new file mode 100644 index 0000000..605d0bc --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/is_function_ptr_helper.hpp @@ -0,0 +1,220 @@ + +// Copyright 2000 John Maddock (john@johnmaddock.co.uk) +// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) +// +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED +#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED + +#include + +#if defined(BOOST_TT_PREPROCESSING_MODE) +# include +# include +# include +#endif + +namespace boost { +namespace type_traits { + +template +struct is_function_ptr_helper +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +#if !defined(BOOST_TT_PREPROCESSING_MODE) +// preprocessor-generated part, don't edit by hand! + +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#else + +#undef BOOST_STATIC_CONSTANT +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3, (0, 25, "boost/type_traits/detail/is_function_ptr_helper.hpp")) +#include BOOST_PP_ITERATE() + +#endif // BOOST_TT_PREPROCESSING_MODE + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED + +///// iteration + +#else +#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) + +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#endif +#undef BOOST_PP_COUNTER +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/type_traits/detail/is_function_ptr_tester.hpp b/external-libs/boost/boost/type_traits/detail/is_function_ptr_tester.hpp new file mode 100644 index 0000000..c1a3c6a --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/is_function_ptr_tester.hpp @@ -0,0 +1,654 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED +#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED + +#include +#include + +#if defined(BOOST_TT_PREPROCESSING_MODE) +# include +# include +# include +#endif + +namespace boost { +namespace type_traits { + +// Note it is acceptible to use ellipsis here, since the argument will +// always be a pointer type of some sort (JM 2005/06/04): +no_type BOOST_TT_DECL is_function_ptr_tester(...); + +#if !defined(BOOST_TT_PREPROCESSING_MODE) +// pre-processed code, don't edit, try GNU cpp with +// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename + +template +yes_type is_function_ptr_tester(R (*)()); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)()); +template +yes_type is_function_ptr_tester(R (__stdcall*)( ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)()); +template +yes_type is_function_ptr_tester(R (__fastcall*)( ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)()); +template +yes_type is_function_ptr_tester(R (__cdecl*)( ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); +#endif +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); +template +yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); +template +yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); +#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); +template +yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); +#endif +#else + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3, (0, 25, "boost/type_traits/detail/is_function_ptr_tester.hpp")) +#include BOOST_PP_ITERATE() + +#endif // BOOST_TT_PREPROCESSING_MODE + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED + +///// iteration + +#else +#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) +#undef __stdcall +#undef __fastcall +#undef __cdecl + +template +yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); +@#endif +@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); +template +yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); +@#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); +template +yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); +@#endif +template +yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); +template +yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); +@#endif + +#undef BOOST_PP_COUNTER +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp b/external-libs/boost/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp new file mode 100644 index 0000000..4f75f14 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp @@ -0,0 +1,817 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED +#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED + +#include + +#if defined(BOOST_TT_PREPROCESSING_MODE) +# include +# include +# include +#endif + +namespace boost { +namespace type_traits { + +template +struct is_mem_fun_pointer_impl +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +#if !defined(BOOST_TT_PREPROCESSING_MODE) +// pre-processed code, don't edit, try GNU cpp with +// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif + +#else + +#undef BOOST_STATIC_CONSTANT +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp")) +#include BOOST_PP_ITERATE() + +#endif // BOOST_TT_PREPROCESSING_MODE + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED + +///// iteration + +#else +#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#endif + +@#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#endif +@#endif + +#undef BOOST_PP_COUNTER +#endif // BOOST_PP_IS_ITERATING + diff --git a/external-libs/boost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp b/external-libs/boost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp new file mode 100644 index 0000000..e6532d3 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp @@ -0,0 +1,2759 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED +#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED + +#include +#include + +#if defined(BOOST_TT_PREPROCESSING_MODE) +# include +# include +# include +#endif + +namespace boost { +namespace type_traits { + +no_type BOOST_TT_DECL is_mem_fun_pointer_tester(...); + +#if !defined(BOOST_TT_PREPROCESSING_MODE) +// pre-processed code, don't edit, try GNU cpp with +// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)()); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)()); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)()); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)()); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile); +#endif +#ifdef BOOST_TT_TEST_MS_FUNC_SIGS +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile); + +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile); +#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile); +#endif + +#else + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp")) +#include BOOST_PP_ITERATE() + +#endif // BOOST_TT_PREPROCESSING_MODE + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED + +///// iteration + +#else +#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) +#undef __stdcall +#undef __fastcall +#undef __cdecl + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); + +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile); +@#endif +@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS // Other calling conventions used by MS compatible compilers: +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile); + +@#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile); +@#endif + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile); +@#endif + +#undef BOOST_PP_COUNTER +#endif // BOOST_PP_IS_ITERATING diff --git a/external-libs/boost/boost/type_traits/detail/template_arity_spec.hpp b/external-libs/boost/boost/type_traits/detail/template_arity_spec.hpp new file mode 100644 index 0000000..fe9b422 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/template_arity_spec.hpp @@ -0,0 +1,31 @@ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#include +#include +#include +#include +#include + +#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ + && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) +# define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \ +namespace mpl { namespace aux { \ +template< BOOST_MPL_PP_PARAMS(i, typename T) > \ +struct template_arity< \ + name< BOOST_MPL_PP_PARAMS(i, T) > \ + > \ + : int_ \ +{ \ +}; \ +}} \ +/**/ +#else +# define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ +#endif diff --git a/external-libs/boost/boost/type_traits/detail/type_trait_def.hpp b/external-libs/boost/boost/type_traits/detail/type_trait_def.hpp new file mode 100644 index 0000000..644c7ac --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/type_trait_def.hpp @@ -0,0 +1,61 @@ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#include +#include + +#define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \ +template< typename T > struct trait \ +{ \ + typedef result type; \ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \ +}; \ +\ +BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \ +/**/ + +#define BOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \ +template<> struct trait \ +{ \ + typedef result type; \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \ +}; \ +/**/ + +#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \ +template<> struct trait##_impl \ +{ \ + typedef result type; \ +}; \ +/**/ + +#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \ +template< param > struct trait \ +{ \ + typedef result type; \ +}; \ +/**/ + +#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \ +template< param1, param2 > struct trait \ +{ \ + typedef result; \ +}; \ +/**/ + +#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \ +template< param > struct trait##_impl \ +{ \ + typedef result type; \ +}; \ +/**/ diff --git a/external-libs/boost/boost/type_traits/detail/type_trait_undef.hpp b/external-libs/boost/boost/type_traits/detail/type_trait_undef.hpp new file mode 100644 index 0000000..9403b9b --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/type_trait_undef.hpp @@ -0,0 +1,19 @@ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// $Source$ +// $Date: 2004-09-02 11:41:37 -0400 (Thu, 02 Sep 2004) $ +// $Revision: 24874 $ + +#undef BOOST_TT_AUX_TYPE_TRAIT_DEF1 +#undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1 +#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 +#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1 +#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2 +#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1 diff --git a/external-libs/boost/boost/type_traits/detail/yes_no_type.hpp b/external-libs/boost/boost/type_traits/detail/yes_no_type.hpp new file mode 100644 index 0000000..f583730 --- /dev/null +++ b/external-libs/boost/boost/type_traits/detail/yes_no_type.hpp @@ -0,0 +1,26 @@ + +// (C) Copyright John Maddock and Steve Cleary 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. +// +// macros and helpers for working with integral-constant-expressions. + +#ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED +#define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED + +namespace boost { +namespace type_traits { + +typedef char yes_type; +struct no_type +{ + char padding[8]; +}; + +} // namespace type_traits +} // namespace boost + +#endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/ice.hpp b/external-libs/boost/boost/type_traits/ice.hpp new file mode 100644 index 0000000..134bc4b --- /dev/null +++ b/external-libs/boost/boost/type_traits/ice.hpp @@ -0,0 +1,20 @@ + +// (C) Copyright John Maddock and Steve Cleary 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. +// +// macros and helpers for working with integral-constant-expressions. + +#ifndef BOOST_TT_ICE_HPP_INCLUDED +#define BOOST_TT_ICE_HPP_INCLUDED + +#include +#include +#include +#include +#include + +#endif // BOOST_TT_ICE_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/integral_constant.hpp b/external-libs/boost/boost/type_traits/integral_constant.hpp new file mode 100644 index 0000000..4ed1bb0 --- /dev/null +++ b/external-libs/boost/boost/type_traits/integral_constant.hpp @@ -0,0 +1,53 @@ +// (C) Copyright John Maddock 2005. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP +#define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP + +#include +#include +#include + +namespace boost{ + +#if defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__) +template +#else +template +#endif +struct integral_constant : public mpl::integral_c +{ + typedef integral_constant type; +}; + +template<> struct integral_constant : public mpl::true_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +# pragma warning(push) +# pragma warning(disable:4097) + typedef mpl::true_ base_; + using base_::value; +# pragma warning(pop) +#endif + typedef integral_constant type; +}; +template<> struct integral_constant : public mpl::false_ +{ +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +# pragma warning(push) +# pragma warning(disable:4097) + typedef mpl::false_ base_; + using base_::value; +# pragma warning(pop) +#endif + typedef integral_constant type; +}; + +typedef integral_constant true_type; +typedef integral_constant false_type; + +} + +#endif diff --git a/external-libs/boost/boost/type_traits/intrinsics.hpp b/external-libs/boost/boost/type_traits/intrinsics.hpp new file mode 100644 index 0000000..3b48b47 --- /dev/null +++ b/external-libs/boost/boost/type_traits/intrinsics.hpp @@ -0,0 +1,153 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_INTRINSICS_HPP_INCLUDED +#define BOOST_TT_INTRINSICS_HPP_INCLUDED + +#ifndef BOOST_TT_CONFIG_HPP_INCLUDED +#include +#endif + +// +// Helper macros for builtin compiler support. +// If your compiler has builtin support for any of the following +// traits concepts, then redefine the appropriate macros to pick +// up on the compiler support: +// +// (these should largely ignore cv-qualifiers) +// BOOST_IS_UNION(T) should evaluate to true if T is a union type +// BOOST_IS_POD(T) should evaluate to true if T is a POD type +// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty struct or union +// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect +// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy +// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy +// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect +// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw +// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw +// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw +// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor + +#ifdef BOOST_HAS_SGI_TYPE_TRAITS + // Hook into SGI's __type_traits class, this will pick up user supplied + // specializations as well as SGI - compiler supplied specializations. +# include +# ifdef __NetBSD__ + // There are two different versions of type_traits.h on NetBSD on Spark + // use an implicit include via algorithm instead, to make sure we get + // the same version as the std lib: +# include +# else +# include +# endif +# define BOOST_IS_POD(T) ::boost::is_same< typename ::__type_traits::is_POD_type, ::__true_type>::value +# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::boost::is_same< typename ::__type_traits::has_trivial_default_constructor, ::__true_type>::value +# define BOOST_HAS_TRIVIAL_COPY(T) ::boost::is_same< typename ::__type_traits::has_trivial_copy_constructor, ::__true_type>::value +# define BOOST_HAS_TRIVIAL_ASSIGN(T) ::boost::is_same< typename ::__type_traits::has_trivial_assignment_operator, ::__true_type>::value +# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::boost::is_same< typename ::__type_traits::has_trivial_destructor, ::__true_type>::value + +# ifdef __sgi +# define BOOST_HAS_TYPE_TRAITS_INTRINSICS +# endif +#endif + +#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000) + // Metrowerks compiler is acquiring intrinsic type traits support + // post version 8. We hook into the published interface to pick up + // user defined specializations as well as compiler intrinsics as + // and when they become available: +# include +# define BOOST_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union::value +# define BOOST_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD::value +# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor::value +# define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor::value +# define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment::value +# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor::value +# define BOOST_HAS_TYPE_TRAITS_INTRINSICS +#endif + +#if defined(BOOST_MSVC) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >=140050215) +# define BOOST_IS_UNION(T) __is_union(T) +# define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T)) +# define BOOST_IS_EMPTY(T) __is_empty(T) +# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) +# define BOOST_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T) +# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T) +# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) +# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) +# define BOOST_HAS_NOTHROW_COPY(T) __has_nothrow_copy(T) +# define BOOST_HAS_NOTHROW_ASSIGN(T) __has_nothrow_assign(T) +# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) +# define BOOST_HAS_TYPE_TRAITS_INTRINSICS +#endif + +#if defined(__DMC__) && (__DMC__ >= 0x848) +// For Digital Mars C++, www.digitalmars.com +# define BOOST_IS_UNION(T) (__typeinfo(T) & 0x400) +# define BOOST_IS_POD(T) (__typeinfo(T) & 0x800) +# define BOOST_IS_EMPTY(T) (__typeinfo(T) & 0x1000) +# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__typeinfo(T) & 0x10) +# define BOOST_HAS_TRIVIAL_COPY(T) (__typeinfo(T) & 0x20) +# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__typeinfo(T) & 0x40) +# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__typeinfo(T) & 0x8) +# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__typeinfo(T) & 0x80) +# define BOOST_HAS_NOTHROW_COPY(T) (__typeinfo(T) & 0x100) +# define BOOST_HAS_NOTHROW_ASSIGN(T) (__typeinfo(T) & 0x200) +# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) (__typeinfo(T) & 0x4) +# define BOOST_HAS_TYPE_TRAITS_INTRINSICS +#endif + +#ifndef BOOST_IS_UNION +# define BOOST_IS_UNION(T) false +#endif + +#ifndef BOOST_IS_POD +# define BOOST_IS_POD(T) false +#endif + +#ifndef BOOST_IS_EMPTY +# define BOOST_IS_EMPTY(T) false +#endif + +#ifndef BOOST_HAS_TRIVIAL_CONSTRUCTOR +# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) false +#endif + +#ifndef BOOST_HAS_TRIVIAL_COPY +# define BOOST_HAS_TRIVIAL_COPY(T) false +#endif + +#ifndef BOOST_HAS_TRIVIAL_ASSIGN +# define BOOST_HAS_TRIVIAL_ASSIGN(T) false +#endif + +#ifndef BOOST_HAS_TRIVIAL_DESTRUCTOR +# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) false +#endif + +#ifndef BOOST_HAS_NOTHROW_CONSTRUCTOR +# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) false +#endif + +#ifndef BOOST_HAS_NOTHROW_COPY +# define BOOST_HAS_NOTHROW_COPY(T) false +#endif + +#ifndef BOOST_HAS_NOTHROW_ASSIGN +# define BOOST_HAS_NOTHROW_ASSIGN(T) false +#endif + +#ifndef BOOST_HAS_VIRTUAL_DESTRUCTOR +# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) false +#endif + +#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED + + + + + diff --git a/external-libs/boost/boost/type_traits/is_abstract.hpp b/external-libs/boost/boost/type_traits/is_abstract.hpp new file mode 100644 index 0000000..c565f08 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_abstract.hpp @@ -0,0 +1,144 @@ +#ifndef BOOST_TT_IS_ABSTRACT_CLASS_HPP +#define BOOST_TT_IS_ABSTRACT_CLASS_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 +// is_abstract_class.hpp: +// +// (C) Copyright 2002 Rani Sharoni (rani_sharoni@hotmail.com) and Robert Ramey +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org for updates, documentation, and revision history. +// + +// Compile type discovery whether given type is abstract class or not. +// +// Requires DR 337 to be supported by compiler +// (http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#337). +// +// +// Believed (Jan 2004) to work on: +// - GCC 3.4 +// - VC++ 7.1 +// - compilers with new EDG frontend (Intel C++ 7, Comeau 4.3.2) +// +// Doesn't work on: +// - VC++6, VC++7.0 and less +// - GCC 3.3.X and less +// - Borland C++ 6 and less +// +// +// History: +// - Originally written by Rani Sharoni, see +// http://groups.google.com/groups?selm=df893da6.0207110613.75b2fe90%40posting.google.com +// At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1. +// - Adapted and added into Boost.Serialization library by Robert Ramey +// (starting with submission #10). +// - Jan 2004: GCC 3.4 fixed to suport DR337 (Giovanni Bajo). +// - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek). +// - Nov 2004: Christoph Ludwig found that the implementation did not work with +// template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig +// and John Maddock. +// - Dec 2004: Added new config macro BOOST_NO_IS_ABSTRACT which causes the template +// to degrade gracefully, rather than trash the compiler (John Maddock). +// + +#include +#include +#include +#include +#ifdef BOOST_NO_IS_ABSTRACT +#include +#endif +// should be the last #include +#include + + +namespace boost { +namespace detail{ + +#ifndef BOOST_NO_IS_ABSTRACT +template +struct is_abstract_imp2 +{ + // Deduction fails if T is void, function type, + // reference type (14.8.2/2)or an abstract class type + // according to review status issue #337 + // + template + static type_traits::no_type check_sig(U (*)[1]); + template + static type_traits::yes_type check_sig(...); + // + // T must be a complete type, further if T is a template then + // it must be instantiated in order for us to get the right answer: + // + BOOST_STATIC_ASSERT(sizeof(T) != 0); + + // GCC2 won't even parse this template if we embed the computation + // of s1 in the computation of value. +#ifdef __GNUC__ + BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(is_abstract_imp2::template check_sig(0))); +#else +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(push) +#pragma warning(disable:6334) +#endif + BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig(0))); +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(pop) +#endif +#endif + + BOOST_STATIC_CONSTANT(bool, value = + (s1 == sizeof(type_traits::yes_type))); +}; + +template +struct is_abstract_select +{ + template + struct rebind + { + typedef is_abstract_imp2 type; + }; +}; +template <> +struct is_abstract_select +{ + template + struct rebind + { + typedef false_type type; + }; +}; + +template +struct is_abstract_imp +{ + typedef is_abstract_select< ::boost::is_class::value> selector; + typedef typename selector::template rebind binder; + typedef typename binder::type type; + + BOOST_STATIC_CONSTANT(bool, value = type::value); +}; + +#endif +} + +#ifndef BOOST_NO_IS_ABSTRACT +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_abstract_imp::value) +#else +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_polymorphic_imp::value) +#endif + +} // namespace boost + +#include + +#endif //BOOST_TT_IS_ABSTRACT_CLASS_HPP diff --git a/external-libs/boost/boost/type_traits/is_arithmetic.hpp b/external-libs/boost/boost/type_traits/is_arithmetic.hpp new file mode 100644 index 0000000..be881c5 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_arithmetic.hpp @@ -0,0 +1,43 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED +#define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED + +#include +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail { + +template< typename T > +struct is_arithmetic_impl +{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + ::boost::is_integral::value, + ::boost::is_float::value + >::value)); +}; + +} // namespace detail + +//* is a type T an arithmetic type described in the standard (3.9.1p8) +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,::boost::detail::is_arithmetic_impl::value) + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_array.hpp b/external-libs/boost/boost/type_traits/is_array.hpp new file mode 100644 index 0000000..24a2a90 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_array.hpp @@ -0,0 +1,90 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +// Some fixes for is_array are based on a newgroup posting by Jonathan Lundquist. + + +#ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED +#define BOOST_TT_IS_ARRAY_HPP_INCLUDED + +#include + +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include +# include +#endif + +#include + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,false) +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T[N],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const[N],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T volatile[N],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const volatile[N],true) +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T[],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const[],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T volatile[],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const volatile[],true) +#endif +#endif + +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +namespace detail { + +using ::boost::type_traits::yes_type; +using ::boost::type_traits::no_type; +using ::boost::type_traits::wrap; + +template< typename T > T(* is_array_tester1(wrap) )(wrap); +char BOOST_TT_DECL is_array_tester1(...); + +template< typename T> no_type is_array_tester2(T(*)(wrap)); +yes_type BOOST_TT_DECL is_array_tester2(...); + +template< typename T > +struct is_array_impl +{ + BOOST_STATIC_CONSTANT(bool, value = + sizeof(::boost::detail::is_array_tester2( + ::boost::detail::is_array_tester1( + ::boost::type_traits::wrap() + ) + )) == 1 + ); +}; + +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const volatile,false) +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,::boost::detail::is_array_impl::value) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_ARRAY_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_class.hpp b/external-libs/boost/boost/type_traits/is_class.hpp new file mode 100644 index 0000000..05d96de --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_class.hpp @@ -0,0 +1,128 @@ +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000-2003. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED +#define BOOST_TT_IS_CLASS_HPP_INCLUDED + +#include +# include +# include +# include + +#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION +# include +#else +# include +# include +# include +# include +# include +#endif + +#ifdef __EDG_VERSION__ +# include +#endif + +// should be the last #include +#include + +namespace boost { + +namespace detail { + +#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION + +// This is actually the conforming implementation which works with +// abstract classes. However, enough compilers have trouble with +// it that most will use the one in +// boost/type_traits/object_traits.hpp. This implementation +// actually works with VC7.0, but other interactions seem to fail +// when we use it. + +// is_class<> metafunction due to Paul Mensonides +// (leavings@attbi.com). For more details: +// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1 +#if defined(__GNUC__) && !defined(__EDG_VERSION__) + +template ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); +template ::boost::type_traits::no_type is_class_tester(...); + +template +struct is_class_impl +{ + + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + sizeof(is_class_tester(0)) == sizeof(::boost::type_traits::yes_type), + ::boost::type_traits::ice_not< ::boost::is_union::value >::value + >::value) + ); +}; + +#else + +template +struct is_class_impl +{ + template static ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); + template static ::boost::type_traits::no_type is_class_tester(...); + + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + sizeof(is_class_tester(0)) == sizeof(::boost::type_traits::yes_type), + ::boost::type_traits::ice_not< ::boost::is_union::value >::value + >::value) + ); +}; + +#endif + +#else + +template +struct is_class_impl +{ +# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::type_traits::ice_not< ::boost::is_union::value >::value, + ::boost::type_traits::ice_not< ::boost::is_scalar::value >::value, + ::boost::type_traits::ice_not< ::boost::is_array::value >::value, + ::boost::type_traits::ice_not< ::boost::is_reference::value>::value, + ::boost::type_traits::ice_not< ::boost::is_void::value >::value, + ::boost::type_traits::ice_not< ::boost::is_function::value >::value + >::value)); +# else + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::type_traits::ice_not< ::boost::is_union::value >::value, + ::boost::type_traits::ice_not< ::boost::is_scalar::value >::value, + ::boost::type_traits::ice_not< ::boost::is_array::value >::value, + ::boost::type_traits::ice_not< ::boost::is_reference::value>::value, + ::boost::type_traits::ice_not< ::boost::is_void::value >::value + >::value)); +# endif +}; + +# endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION + +} // namespace detail + +# ifdef __EDG_VERSION__ +BOOST_TT_AUX_BOOL_TRAIT_DEF1( + is_class,T, boost::detail::is_class_impl::type>::value) +# else +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::boost::detail::is_class_impl::value) +# endif + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_CLASS_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_const.hpp b/external-libs/boost/boost/type_traits/is_const.hpp new file mode 100644 index 0000000..18b13f0 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_const.hpp @@ -0,0 +1,142 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + + +#ifndef BOOST_TT_IS_CONST_HPP_INCLUDED +#define BOOST_TT_IS_CONST_HPP_INCLUDED + +#include +#include + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include +# ifdef __GNUC__ +# include +# endif +# if BOOST_WORKAROUND(BOOST_MSVC, < 1400) +# include +# endif +#else +# include +# include +# include +# include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +//* is a type T declared const - is_const +#if BOOST_WORKAROUND(BOOST_MSVC, < 1400) + BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::cv_traits_imp::type*>::is_const) +#else + BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::cv_traits_imp::is_const) +#endif +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false) + +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) +// these are illegal specialisations; cv-qualifies applied to +// references have no effect according to [8.3.2p1], +// C++ Builder requires them though as it treats cv-qualified +// references as distinct types... +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const volatile,false) +#endif + +#if defined(__GNUC__) && (__GNUC__ < 3) +// special case for gcc where illegally cv-qualified reference types can be +// generated in some corner cases: +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T const,!(::boost::is_reference::value)) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T volatile const,!(::boost::is_reference::value)) +#endif + +#else + +namespace detail { + +using ::boost::type_traits::yes_type; +using ::boost::type_traits::no_type; + +yes_type is_const_tester(const volatile void*); +no_type is_const_tester(volatile void *); + +template +struct is_const_helper + : ::boost::type_traits::false_result +{ +}; + +template <> +struct is_const_helper +{ + template struct result_ + { + static T* t; + BOOST_STATIC_CONSTANT(bool, value = ( + sizeof(detail::yes_type) == sizeof(detail::is_const_tester(t)) + )); + }; +}; + +template <> +struct is_const_helper +{ + template struct result_ + { + static T t; + BOOST_STATIC_CONSTANT(bool, value = ( + sizeof(detail::yes_type) == sizeof(detail::is_const_tester(&t)) + )); + }; +}; + +template +struct is_const_impl + : is_const_helper< + is_reference::value + , is_array::value + >::template result_ +{ +}; + +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const volatile,true) +#endif + +} // namespace detail + +//* is a type T declared const - is_const +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::is_const_impl::value) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_CONST_HPP_INCLUDED + diff --git a/external-libs/boost/boost/type_traits/is_convertible.hpp b/external-libs/boost/boost/type_traits/is_convertible.hpp new file mode 100644 index 0000000..10309ca --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_convertible.hpp @@ -0,0 +1,418 @@ + +// Copyright 2000 John Maddock (john@johnmaddock.co.uk) +// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu) +// Copyright 1999, 2000 Jaakko Jrvi (jaakko.jarvi@cs.utu.fi) +// +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED +#define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#ifndef BOOST_NO_IS_ABSTRACT +#include +#endif + +#if defined(__MWERKS__) +#include +#include +#endif + +// should be always the last #include directive +#include + +namespace boost { + +// is one type convertable to another? +// +// there are multiple versions of the is_convertible +// template, almost every compiler seems to require its +// own version. +// +// Thanks to Andrei Alexandrescu for the original version of the +// conversion detection technique! +// + +namespace detail { + +// MS specific version: + +#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) + +// This workaround is necessary to handle when From is void +// which is normally taken care of by the partial specialization +// of the is_convertible typename. +using ::boost::type_traits::yes_type; +using ::boost::type_traits::no_type; + +template< typename From > +struct does_conversion_exist +{ + template< typename To > struct result_ + { + static no_type BOOST_TT_DECL _m_check(...); + static yes_type BOOST_TT_DECL _m_check(To); + static From _m_from; + enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) }; + }; +}; + +template<> +struct does_conversion_exist +{ + template< typename To > struct result_ + { + enum { value = ::boost::is_void::value }; + }; +}; + +template +struct is_convertible_basic_impl + : does_conversion_exist::template result_ +{ +}; + +#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x560) +// +// special version for Borland compilers +// this version breaks when used for some +// UDT conversions: +// +template +struct is_convertible_impl +{ +#pragma option push -w-8074 + // This workaround for Borland breaks the EDG C++ frontend, + // so we only use it for Borland. + template struct checker + { + static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); + static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T); + }; + + static From _m_from; + static bool const value = sizeof( checker::_m_check(_m_from) ) + == sizeof(::boost::type_traits::yes_type); +#pragma option pop +}; + +#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600) +// special version for gcc compiler + recent Borland versions +// note that this does not pass UDT's through (...) + +struct any_conversion +{ + template any_conversion(const volatile T&); + template any_conversion(T&); +}; + +template struct checker +{ + static boost::type_traits::no_type _m_check(any_conversion ...); + static boost::type_traits::yes_type _m_check(T, int); +}; + +template +struct is_convertible_basic_impl +{ + static From _m_from; + static bool const value = sizeof( detail::checker::_m_check(_m_from, 0) ) + == sizeof(::boost::type_traits::yes_type); +}; + +#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \ + || defined(__IBMCPP__) || defined(__HP_aCC) +// +// This is *almost* an ideal world implementation as it doesn't rely +// on undefined behaviour by passing UDT's through (...). +// Unfortunately it doesn't quite pass all the tests for most compilers (sigh...) +// Enable this for your compiler if is_convertible_test.cpp will compile it... +// +// Note we do not enable this for VC7.1, because even though it passes all the +// type_traits tests it is known to cause problems when instantiation occurs +// deep within the instantiation tree :-( +// +struct any_conversion +{ + template any_conversion(const volatile T&); + // we need this constructor to catch references to functions + // (which can not be cv-qualified): + template any_conversion(T&); +}; + +template +struct is_convertible_basic_impl +{ + static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); + static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); + static From _m_from; + + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) + ); +}; + +#elif defined(__DMC__) + +struct any_conversion +{ + template any_conversion(const volatile T&); + // we need this constructor to catch references to functions + // (which can not be cv-qualified): + template any_conversion(T&); +}; + +template +struct is_convertible_basic_impl +{ + // Using '...' doesn't always work on Digital Mars. This version seems to. + template + static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T); + static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int); + static From _m_from; + + // Static constants sometime cause the conversion of _m_from to To to be + // called. This doesn't happen with an enum. + enum { value = + sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type) + }; +}; + +#elif defined(__MWERKS__) +// +// CW works with the technique implemented above for EDG, except when From +// is a function type (or a reference to such a type), in which case +// any_conversion won't be accepted as a valid conversion. We detect this +// exceptional situation and channel it through an alternative algorithm. +// + +template +struct is_convertible_basic_impl_aux; + +struct any_conversion +{ + template any_conversion(const volatile T&); +}; + +template +struct is_convertible_basic_impl_aux +{ + static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); + static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); + static From _m_from; + + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) + ); +}; + +template +struct is_convertible_basic_impl_aux +{ + static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); + static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); + static From _m_from; + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) + ); +}; + +template +struct is_convertible_basic_impl: + is_convertible_basic_impl_aux< + From,To, + ::boost::is_function::type>::value + > +{}; + +#else + +// +// This version seems to work pretty well for a wide spectrum of compilers, +// however it does rely on undefined behaviour by passing UDT's through (...). +// +template +struct is_convertible_basic_impl +{ + static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); + static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); + static From _m_from; +#ifdef BOOST_MSVC +#pragma warning(push) +#pragma warning(disable:4244) +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(disable:6334) +#endif +#endif + BOOST_STATIC_CONSTANT(bool, value = + sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) + ); +#ifdef BOOST_MSVC +#pragma warning(pop) +#endif +}; + +#endif // is_convertible_impl + +#if defined(__DMC__) +// As before, a static constant sometimes causes errors on Digital Mars. +template +struct is_convertible_impl +{ + typedef typename add_reference::type ref_type; + enum { value = + (::boost::type_traits::ice_and< + ::boost::type_traits::ice_or< + ::boost::detail::is_convertible_basic_impl::value, + ::boost::is_void::value + >::value, + ::boost::type_traits::ice_not< + ::boost::is_array::value + >::value + >::value) }; +}; +#elif !defined(__BORLANDC__) || __BORLANDC__ > 0x551 +template +struct is_convertible_impl +{ + typedef typename add_reference::type ref_type; + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::type_traits::ice_or< + ::boost::detail::is_convertible_basic_impl::value, + ::boost::is_void::value + >::value, + ::boost::type_traits::ice_not< + ::boost::is_array::value + >::value + >::value) + ); +}; +#endif + +template +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef is_convertible_impl type; + }; +}; + +template <> +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef true_type type; + }; +}; + +template <> +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef false_type type; + }; +}; + +template <> +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef false_type type; + }; +}; + +template +struct is_convertible_impl_dispatch_base +{ +#if !BOOST_WORKAROUND(__HP_aCC, < 60700) + typedef is_convertible_impl_select< + ::boost::is_arithmetic::value, + ::boost::is_arithmetic::value, +#ifndef BOOST_NO_IS_ABSTRACT + ::boost::is_abstract::value +#else + false +#endif + > selector; +#else + typedef is_convertible_impl_select selector; +#endif + typedef typename selector::template rebind isc_binder; + typedef typename isc_binder::type type; +}; + +template +struct is_convertible_impl_dispatch + : public is_convertible_impl_dispatch_base::type +{}; + +// +// Now add the full and partial specialisations +// for void types, these are common to all the +// implementation above: +// +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +# define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \ + BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2,value) \ + BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const,value) \ + BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 volatile,value) \ + BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const volatile,value) \ + /**/ + +# define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(trait,spec1,spec2,value) \ + TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \ + TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const,spec2,value) \ + TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 volatile,spec2,value) \ + TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const volatile,spec2,value) \ + /**/ + + TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(is_convertible,void,void,true) + +# undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2 +# undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1 + +#else + BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(is_convertible,void,void,true) +#endif // BOOST_NO_CV_VOID_SPECIALIZATIONS + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void,To,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,true) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const,To,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void volatile,To,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const volatile,To,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,true) +#endif +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::boost::detail::is_convertible_impl_dispatch::value)) + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_enum.hpp b/external-libs/boost/boost/type_traits/is_enum.hpp new file mode 100644 index 0000000..c913975 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_enum.hpp @@ -0,0 +1,180 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_IS_ENUM_HPP_INCLUDED +#define BOOST_TT_IS_ENUM_HPP_INCLUDED + +#include +#include +#include +#include +#include +#ifdef __GNUC__ +#include +#endif +#include +#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) +# include +# include +#endif + + +// should be the last #include +#include + +namespace boost { + +#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551)) + +namespace detail { + +#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) + +template +struct is_class_or_union +{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + ::boost::is_class::value + , ::boost::is_union::value + >::value)); +}; + +#else + +template +struct is_class_or_union +{ +# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))// we simply can't detect it this way. + BOOST_STATIC_CONSTANT(bool, value = false); +# else + template static ::boost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void)); + +# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) \ + || BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE + static ::boost::type_traits::no_type is_class_or_union_tester(...); + BOOST_STATIC_CONSTANT( + bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type)); +# else + template + static ::boost::type_traits::no_type is_class_or_union_tester(...); + BOOST_STATIC_CONSTANT( + bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type)); +# endif +# endif +}; +#endif + +struct int_convertible +{ + int_convertible(int); +}; + +// Don't evaluate convertibility to int_convertible unless the type +// is non-arithmetic. This suppresses warnings with GCC. +template +struct is_enum_helper +{ + template struct type + { + BOOST_STATIC_CONSTANT(bool, value = false); + }; +}; + +template <> +struct is_enum_helper +{ + template struct type + : ::boost::is_convertible::type,::boost::detail::int_convertible> + { + }; +}; + +template struct is_enum_impl +{ + //typedef ::boost::add_reference ar_t; + //typedef typename ar_t::type r_type; + +#if defined(__GNUC__) + +#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION + + // We MUST check for is_class_or_union on conforming compilers in + // order to correctly deduce that noncopyable types are not enums + // (dwa 2002/04/15)... + BOOST_STATIC_CONSTANT(bool, selector = + (::boost::type_traits::ice_or< + ::boost::is_arithmetic::value + , ::boost::is_reference::value + , ::boost::is_function::value + , is_class_or_union::value + , is_array::value + >::value)); +#else + // ...however, not checking is_class_or_union on non-conforming + // compilers prevents a dependency recursion. + BOOST_STATIC_CONSTANT(bool, selector = + (::boost::type_traits::ice_or< + ::boost::is_arithmetic::value + , ::boost::is_reference::value + , ::boost::is_function::value + , is_array::value + >::value)); +#endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION + +#else // !defined(__GNUC__): + + BOOST_STATIC_CONSTANT(bool, selector = + (::boost::type_traits::ice_or< + ::boost::is_arithmetic::value + , ::boost::is_reference::value + , is_class_or_union::value + , is_array::value + >::value)); + +#endif + +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) + typedef ::boost::detail::is_enum_helper< + ::boost::detail::is_enum_impl::selector + > se_t; +#else + typedef ::boost::detail::is_enum_helper se_t; +#endif + + typedef typename se_t::template type helper; + BOOST_STATIC_CONSTANT(bool, value = helper::value); +}; + +// these help on compilers with no partial specialization support: +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const volatile,false) +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::boost::detail::is_enum_impl::value) + +#else // __BORLANDC__ +// +// buggy is_convertible prevents working +// implementation of is_enum: +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false) + +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_ENUM_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_float.hpp b/external-libs/boost/boost/type_traits/is_float.hpp new file mode 100644 index 0000000..25d16f1 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_float.hpp @@ -0,0 +1,27 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED +#define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED + +// should be the last #include +#include + +namespace boost { + +//* is a type T a floating-point type described in the standard (3.9.1p8) +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_float,T,false) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,float,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,double,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,long double,true) + +} // namespace boost + +#include + +#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_function.hpp b/external-libs/boost/boost/type_traits/is_function.hpp new file mode 100644 index 0000000..93e4846 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_function.hpp @@ -0,0 +1,95 @@ + +// Copyright 2000 John Maddock (john@johnmaddock.co.uk) +// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) +// +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED +#define BOOST_TT_IS_FUNCTION_HPP_INCLUDED + +#include +#include +#include + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) +# include +#else +# include +# include +#endif + +// should be the last #include +#include + +// is a type a function? +// Please note that this implementation is unnecessarily complex: +// we could just use !is_convertible::value, +// except that some compilers erroneously allow conversions from +// function pointers to void*. + +namespace boost { +namespace detail { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) +template +struct is_function_chooser + : ::boost::type_traits::false_result +{ +}; + +template <> +struct is_function_chooser +{ + template< typename T > struct result_ + : ::boost::type_traits::is_function_ptr_helper + { + }; +}; + +template +struct is_function_impl + : is_function_chooser< ::boost::is_reference::value > + ::BOOST_NESTED_TEMPLATE result_ +{ +}; + +#else + +template +struct is_function_impl +{ +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(push) +#pragma warning(disable:6334) +#endif + static T* t; + BOOST_STATIC_CONSTANT( + bool, value = sizeof(::boost::type_traits::is_function_ptr_tester(t)) + == sizeof(::boost::type_traits::yes_type) + ); +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(pop) +#endif +}; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +template +struct is_function_impl : public false_type +{}; +#endif + +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::boost::detail::is_function_impl::value) + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_integral.hpp b/external-libs/boost/boost/type_traits/is_integral.hpp new file mode 100644 index 0000000..51710c2 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_integral.hpp @@ -0,0 +1,73 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_INTEGRAL_HPP_INCLUDED +#define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED + +#include + +// should be the last #include +#include + +namespace boost { + +//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3) +// as an extention we include long long, as this is likely to be added to the +// standard at a later date +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,false) + +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned char,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned short,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned int,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long,true) + +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed char,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed short,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed int,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed long,true) + +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true) + +#ifndef BOOST_NO_INTRINSIC_WCHAR_T +// If the following line fails to compile and you're using the Intel +// compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php, +// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line. +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true) +#endif + +// Same set of integral types as in boost/type_traits/integral_promotion.hpp. +// Please, keep in sync. -- Alexander Nasonov +#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \ + || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \ + || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300)) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true) +#ifdef __BORLANDC__ +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true) +#endif +#endif + +# if defined(BOOST_HAS_LONG_LONG) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::ulong_long_type,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true) +#elif defined(BOOST_HAS_MS_INT64) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_INTEGRAL_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_member_function_pointer.hpp b/external-libs/boost/boost/type_traits/is_member_function_pointer.hpp new file mode 100644 index 0000000..deedeea --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_member_function_pointer.hpp @@ -0,0 +1,134 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED +#define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED + +#include +#include + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) + // + // Note: we use the "workaround" version for MSVC because it works for + // __stdcall etc function types, where as the partial specialisation + // version does not do so. + // +# include +# include +#else +# include +# include +# include +# include +# include +# include +#endif + +// should be the last #include +#include + +namespace boost { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) + +BOOST_TT_AUX_BOOL_TRAIT_DEF1( + is_member_function_pointer + , T + , ::boost::type_traits::is_mem_fun_pointer_impl::type>::value + ) + +#else + +namespace detail { + +#ifndef __BORLANDC__ + +template +struct is_mem_fun_pointer_select + : ::boost::type_traits::false_result +{ +}; + +template <> +struct is_mem_fun_pointer_select +{ + template struct result_ + { +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(push) +#pragma warning(disable:6334) +#endif + static T* make_t; + typedef result_ self_type; + + BOOST_STATIC_CONSTANT( + bool, value = ( + 1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t)) + )); +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) +#pragma warning(pop) +#endif + }; +}; + +template +struct is_member_function_pointer_impl + : is_mem_fun_pointer_select< + ::boost::type_traits::ice_or< + ::boost::is_reference::value + , ::boost::is_array::value + >::value + >::template result_ +{ +}; + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template +struct is_member_function_pointer_impl : public false_type{}; +#endif + +#else // Borland C++ + +template +struct is_member_function_pointer_impl +{ + static T* m_t; + BOOST_STATIC_CONSTANT( + bool, value = + (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) ); +}; + +template +struct is_member_function_pointer_impl +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +#endif + +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const volatile,false) +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,::boost::detail::is_member_function_pointer_impl::value) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_member_pointer.hpp b/external-libs/boost/boost/type_traits/is_member_pointer.hpp new file mode 100644 index 0000000..1f9f5a7 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_member_pointer.hpp @@ -0,0 +1,114 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + + +#ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED +#define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED + +#include +#include + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) +# include +#else +# include +# include +# include +# include +# include +# include +#endif + +// should be the last #include +#include + +namespace boost { + +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true) + +#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::is_member_function_pointer::value) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true) + +#if !BOOST_WORKAROUND(__MWERKS__,<=0x3003) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const,true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*volatile,true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const volatile,true) +#endif + +#else // no partial template specialization + +namespace detail { + +template +::boost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_tester(R T::*const volatile*); +::boost::type_traits::no_type BOOST_TT_DECL is_member_pointer_tester(...); + +template +struct is_member_pointer_select + : ::boost::type_traits::false_result +{ +}; + +template <> +struct is_member_pointer_select +{ + template struct result_ + { + static T* make_t(); + BOOST_STATIC_CONSTANT( + bool, value = + (::boost::type_traits::ice_or< + (1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(make_t()))), + (1 == sizeof(is_member_pointer_tester(make_t()))) + >::value) ); + }; +}; + +template +struct is_member_pointer_impl + : is_member_pointer_select< + ::boost::type_traits::ice_or< + ::boost::is_reference::value + , ::boost::is_array::value + >::value + >::template result_ +{ +}; + +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const volatile,false) +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::detail::is_member_pointer_impl::value) + +#endif // __BORLANDC__ + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_pod.hpp b/external-libs/boost/boost/type_traits/is_pod.hpp new file mode 100644 index 0000000..af2c3c4 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_pod.hpp @@ -0,0 +1,135 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_POD_HPP_INCLUDED +#define BOOST_TT_IS_POD_HPP_INCLUDED + +#include +#include +#include +#include +#include + +#include + +// should be the last #include +#include + +namespace boost { + +// forward declaration, needed by 'is_pod_array_helper' template below +template< typename T > struct is_POD; + +namespace detail { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +template struct is_pod_impl +{ + BOOST_STATIC_CONSTANT( + bool, value = + (::boost::type_traits::ice_or< + ::boost::is_scalar::value, + ::boost::is_void::value, + BOOST_IS_POD(T) + >::value)); +}; + +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +template +struct is_pod_impl + : is_pod_impl +{ +}; +#endif + +#else + +template +struct is_pod_helper +{ + template struct result_ + { + BOOST_STATIC_CONSTANT( + bool, value = + (::boost::type_traits::ice_or< + ::boost::is_scalar::value, + ::boost::is_void::value, + BOOST_IS_POD(T) + >::value)); + }; +}; + +template +struct bool_to_yes_no_type +{ + typedef ::boost::type_traits::no_type type; +}; + +template <> +struct bool_to_yes_no_type +{ + typedef ::boost::type_traits::yes_type type; +}; + +template +struct is_pod_array_helper +{ + enum { is_pod = ::boost::is_POD::value }; // MSVC workaround + typedef typename bool_to_yes_no_type::type type; + type instance() const; +}; + +template +is_pod_array_helper is_POD_array(T*); + +template <> +struct is_pod_helper +{ + template struct result_ + { + static T& help(); + BOOST_STATIC_CONSTANT(bool, value = + sizeof(is_POD_array(help()).instance()) == sizeof(::boost::type_traits::yes_type) + ); + }; +}; + + +template struct is_pod_impl +{ + BOOST_STATIC_CONSTANT( + bool, value = ( + ::boost::detail::is_pod_helper< + ::boost::is_array::value + >::template result_::value + ) + ); +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +// the following help compilers without partial specialization support: +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true) + +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void volatile,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true) +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::detail::is_pod_impl::value) +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::detail::is_pod_impl::value) + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_POD_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_pointer.hpp b/external-libs/boost/boost/type_traits/is_pointer.hpp new file mode 100644 index 0000000..db0701e --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_pointer.hpp @@ -0,0 +1,160 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + + +#ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED +#define BOOST_TT_IS_POINTER_HPP_INCLUDED + +#include +#include +#include +#include +#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300) +#include +#endif + +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include +# include +# include +# include +# include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +namespace detail { + +template< typename T > struct is_pointer_helper +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +# define TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(helper,sp,result) \ +template< typename T > struct helper \ +{ \ + BOOST_STATIC_CONSTANT(bool, value = result); \ +}; \ +/**/ + +TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T*,true) + +# undef TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC + +template< typename T > +struct is_pointer_impl +{ +#if BOOST_WORKAROUND(BOOST_MSVC,<=1300) + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::detail::is_pointer_helper::value + , ::boost::type_traits::ice_not< + ::boost::is_member_pointer::value + >::value + >::value) + ); +#else + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::detail::is_pointer_helper::type>::value + , ::boost::type_traits::ice_not< + ::boost::is_member_pointer::value + >::value + >::value) + ); +#endif +}; + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl::value) + +#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const volatile,false) +#endif + +#else // no partial template specialization + +namespace detail { + +struct pointer_helper +{ + pointer_helper(const volatile void*); +}; + +yes_type BOOST_TT_DECL is_pointer_tester(pointer_helper); +no_type BOOST_TT_DECL is_pointer_tester(...); + +template +struct is_pointer_select + : ::boost::type_traits::false_result +{ +}; + +template <> +struct is_pointer_select +{ + template struct result_ + { + static T& make_t(); + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + (1 == sizeof(is_pointer_tester(make_t()))), + (1 == sizeof(type_traits::is_function_ptr_tester(make_t()))) + >::value)); + }; +}; + +template +struct is_pointer_impl + : is_pointer_select< + ::boost::type_traits::ice_or< + ::boost::is_reference::value + , ::boost::is_array::value + >::value + >::template result_ +{ +}; + +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const volatile,false) +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl::value) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_POINTER_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_reference.hpp b/external-libs/boost/boost/type_traits/is_reference.hpp new file mode 100644 index 0000000..0eb0d4f --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_reference.hpp @@ -0,0 +1,116 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + + +#ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED +#define BOOST_TT_IS_REFERENCE_HPP_INCLUDED + +#include + +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include +# include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T&,true) + +#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600) +// these are illegal specialisations; cv-qualifies applied to +// references have no effect according to [8.3.2p1], +// C++ Builder requires them though as it treats cv-qualified +// references as distinct types... +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const,true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& volatile,true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const volatile,true) +#endif + +#if defined(__GNUC__) && (__GNUC__ < 3) +// these allow us to work around illegally cv-qualified reference +// types. +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const ,::boost::is_reference::value) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T volatile ,::boost::is_reference::value) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const volatile ,::boost::is_reference::value) +// However, the above specializations confuse gcc 2.96 unless we also +// supply these specializations for array types +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,T[N],false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const T[N],false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,volatile T[N],false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const volatile T[N],false) +#endif + +#else + +#ifdef BOOST_MSVC +# pragma warning(push) +# pragma warning(disable: 4181 4097) +#endif + +namespace detail { + +using ::boost::type_traits::yes_type; +using ::boost::type_traits::no_type; +using ::boost::type_traits::wrap; + +template T&(* is_reference_helper1(wrap) )(wrap); +char is_reference_helper1(...); + +template no_type is_reference_helper2(T&(*)(wrap)); +yes_type is_reference_helper2(...); + +template +struct is_reference_impl +{ + BOOST_STATIC_CONSTANT( + bool, value = sizeof( + ::boost::detail::is_reference_helper2( + ::boost::detail::is_reference_helper1(::boost::type_traits::wrap()))) == 1 + ); +}; + +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void const volatile,false) +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl::value) + +#ifdef BOOST_MSVC +# pragma warning(pop) +#endif + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED + diff --git a/external-libs/boost/boost/type_traits/is_same.hpp b/external-libs/boost/boost/type_traits/is_same.hpp new file mode 100644 index 0000000..e0d1808 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_same.hpp @@ -0,0 +1,103 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + + +#ifndef BOOST_TT_IS_SAME_HPP_INCLUDED +#define BOOST_TT_IS_SAME_HPP_INCLUDED + +#include +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#include +#include +#include +#endif +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true) +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) +// without this, Borland's compiler gives the wrong answer for +// references to arrays: +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true) +#endif + +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +namespace detail { + +#ifdef BOOST_MSVC +// the following VC6 specific implementation is *NOT* legal +// C++, but has the advantage that it works for incomplete +// types. + +template< typename T1 > +struct is_same_part_1 +{ + template struct part_2 { enum { value = false }; }; + template<> struct part_2 { enum { value = true }; }; +}; + +template< typename T1, typename T2 > +struct is_same_impl +{ + enum { value = detail::is_same_part_1::template part_2::value }; +}; + +#else // generic "no-partial-specialization" version + +template +::boost::type_traits::yes_type +BOOST_TT_DECL is_same_tester(T*, T*); + +::boost::type_traits::no_type +BOOST_TT_DECL is_same_tester(...); + +template +struct is_same_impl +{ + static T t; + static U u; + + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + (sizeof(type_traits::yes_type) == sizeof(detail::is_same_tester(&t,&u))), + (::boost::is_reference::value == ::boost::is_reference::value), + (sizeof(T) == sizeof(U)) + >::value)); +}; + +#endif // BOOST_MSVC + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::boost::detail::is_same_impl::value)) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_SAME_HPP_INCLUDED + diff --git a/external-libs/boost/boost/type_traits/is_scalar.hpp b/external-libs/boost/boost/type_traits/is_scalar.hpp new file mode 100644 index 0000000..4af3def --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_scalar.hpp @@ -0,0 +1,55 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED +#define BOOST_TT_IS_SCALAR_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail { + +template +struct is_scalar_impl +{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + ::boost::is_arithmetic::value, + ::boost::is_enum::value, + ::boost::is_pointer::value, + ::boost::is_member_pointer::value + >::value)); +}; + +// these specializations are only really needed for compilers +// without partial specialization support: +template <> struct is_scalar_impl{ BOOST_STATIC_CONSTANT(bool, value = false ); }; +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +template <> struct is_scalar_impl{ BOOST_STATIC_CONSTANT(bool, value = false ); }; +template <> struct is_scalar_impl{ BOOST_STATIC_CONSTANT(bool, value = false ); }; +template <> struct is_scalar_impl{ BOOST_STATIC_CONSTANT(bool, value = false ); }; +#endif + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_scalar,T,::boost::detail::is_scalar_impl::value) + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_union.hpp b/external-libs/boost/boost/type_traits/is_union.hpp new file mode 100644 index 0000000..25bddcc --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_union.hpp @@ -0,0 +1,49 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_IS_UNION_HPP_INCLUDED +#define BOOST_TT_IS_UNION_HPP_INCLUDED + +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail { +#ifndef __GNUC__ +template struct is_union_impl +{ + typedef typename remove_cv::type cvt; + BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt)); +}; +#else +// +// using remove_cv here generates a whole load of needless +// warnings with gcc, since it doesn't do any good with gcc +// in any case (at least at present), just remove it: +// +template struct is_union_impl +{ + BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T)); +}; +#endif +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::boost::detail::is_union_impl::value) + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_UNION_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_void.hpp b/external-libs/boost/boost/type_traits/is_void.hpp new file mode 100644 index 0000000..ca51b54 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_void.hpp @@ -0,0 +1,33 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_VOID_HPP_INCLUDED +#define BOOST_TT_IS_VOID_HPP_INCLUDED + +#include + +// should be the last #include +#include + +namespace boost { + +//* is a type T void - is_void +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,true) + +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const,true) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void volatile,true) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const volatile,true) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_VOID_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/is_volatile.hpp b/external-libs/boost/boost/type_traits/is_volatile.hpp new file mode 100644 index 0000000..db473b5 --- /dev/null +++ b/external-libs/boost/boost/type_traits/is_volatile.hpp @@ -0,0 +1,131 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + + +#ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED +#define BOOST_TT_IS_VOLATILE_HPP_INCLUDED + +#include +#include + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +# include +# if BOOST_WORKAROUND(BOOST_MSVC, < 1400) +# include +# endif +#else +# include +# include +# include +# include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +//* is a type T declared volatile - is_volatile +#if BOOST_WORKAROUND(BOOST_MSVC, < 1400) + BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp::type*>::is_volatile) +#else + BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp::is_volatile) +#endif +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false) + +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) +// these are illegal specialisations; cv-qualifies applied to +// references have no effect according to [8.3.2p1], +// C++ Builder requires them though as it treats cv-qualified +// references as distinct types... +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const volatile,false) +#endif + +#else + +namespace detail { + +using ::boost::type_traits::yes_type; +using ::boost::type_traits::no_type; + +yes_type is_volatile_tester(void const volatile*); +no_type is_volatile_tester(void const*); + +template +struct is_volatile_helper + : ::boost::type_traits::false_result +{ +}; + +template <> +struct is_volatile_helper +{ + template struct result_ + { + static T* t; + BOOST_STATIC_CONSTANT(bool, value = ( + sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(t)) + )); + }; +}; + +template <> +struct is_volatile_helper +{ + template struct result_ + { + static T t; + BOOST_STATIC_CONSTANT(bool, value = ( + sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(&t)) + )); + }; +}; + +template +struct is_volatile_impl + : is_volatile_helper< + is_reference::value + , is_array::value + >::template result_ +{ +}; + +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void volatile,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const volatile,true) +#endif + +} // namespace detail + +//* is a type T declared volatile - is_volatile +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::is_volatile_impl::value) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_VOLATILE_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/remove_bounds.hpp b/external-libs/boost/boost/type_traits/remove_bounds.hpp new file mode 100644 index 0000000..1d7b436 --- /dev/null +++ b/external-libs/boost/boost/type_traits/remove_bounds.hpp @@ -0,0 +1,48 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED +#define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED + +#include +#include +#include + +#if BOOST_WORKAROUND(BOOST_MSVC,<=1300) +#include +#endif + +// should be the last #include +#include + +#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300) + +namespace boost { + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T) + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T[N],T type) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const[N],T const type) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T volatile[N],T volatile type) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const volatile[N],T const volatile type) +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T[],T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const[],T const) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T volatile[],T volatile) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const volatile[],T const volatile) +#endif +#endif + +} // namespace boost + +#endif + +#include + +#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/remove_const.hpp b/external-libs/boost/boost/type_traits/remove_const.hpp new file mode 100644 index 0000000..7e18d88 --- /dev/null +++ b/external-libs/boost/boost/type_traits/remove_const.hpp @@ -0,0 +1,78 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_REMOVE_CONST_HPP_INCLUDED +#define BOOST_TT_REMOVE_CONST_HPP_INCLUDED + +#include +#include +#include +#include +#include + +#include + +#if BOOST_WORKAROUND(BOOST_MSVC,<=1300) +#include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +namespace detail { + +template +struct remove_const_helper +{ + typedef T type; +}; + +template +struct remove_const_helper +{ + typedef T volatile type; +}; + + +template +struct remove_const_impl +{ + typedef typename remove_const_helper< + typename cv_traits_imp::unqualified_type + , ::boost::is_volatile::value + >::type type; +}; + +} // namespace detail + +// * convert a type T to non-const type - remove_const + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename boost::detail::remove_const_impl::type) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_const,T&,T&) +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const[N],T type[N]) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N]) +#endif + +#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300) + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename boost::detail::remove_const_impl::type) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/remove_cv.hpp b/external-libs/boost/boost/type_traits/remove_cv.hpp new file mode 100644 index 0000000..09f8ff1 --- /dev/null +++ b/external-libs/boost/boost/type_traits/remove_cv.hpp @@ -0,0 +1,61 @@ + +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +#ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED +#define BOOST_TT_REMOVE_CV_HPP_INCLUDED + +#include +#include +#include +#include + +#include + +#if BOOST_WORKAROUND(BOOST_MSVC,<=1300) +#include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +// convert a type T to a non-cv-qualified type - remove_cv +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::cv_traits_imp::unqualified_type) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_cv,T&,T&) +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const[N],T type[N]) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T volatile[N],T type[N]) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N]) +#endif + +#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300) + +namespace detail { +template +struct remove_cv_impl +{ + typedef typename remove_volatile_impl< + typename remove_const_impl::type + >::type type; +}; +} + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::remove_cv_impl::type) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_REMOVE_CV_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/remove_pointer.hpp b/external-libs/boost/boost/type_traits/remove_pointer.hpp new file mode 100644 index 0000000..5359992 --- /dev/null +++ b/external-libs/boost/boost/type_traits/remove_pointer.hpp @@ -0,0 +1,43 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_REMOVE_POINTER_HPP_INCLUDED +#define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED + +#include +#include +#include + +#if BOOST_WORKAROUND(BOOST_MSVC,<=1300) +#include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T*,T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const,T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* volatile,T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const volatile,T) + +#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300) + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename boost::detail::remove_pointer_impl::type) + +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_REMOVE_POINTER_HPP_INCLUDED diff --git a/external-libs/boost/boost/type_traits/remove_reference.hpp b/external-libs/boost/boost/type_traits/remove_reference.hpp new file mode 100644 index 0000000..3d0b707 --- /dev/null +++ b/external-libs/boost/boost/type_traits/remove_reference.hpp @@ -0,0 +1,50 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED +#define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED + +#include +#include +#include + +#if BOOST_WORKAROUND(BOOST_MSVC,<=1300) +#include +#endif + +// should be the last #include +#include + +namespace boost { + +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T) + +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) +// these are illegal specialisations; cv-qualifies applied to +// references have no effect according to [8.3.2p1], +// C++ Builder requires them though as it treats cv-qualified +// references as distinct types... +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const,T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& volatile,T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const volatile,T) +#endif + +#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300) + +BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename boost::detail::remove_reference_impl::type) + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace boost + +#include + +#endif // BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED diff --git a/external-libs/boost/boost/utility/enable_if.hpp b/external-libs/boost/boost/utility/enable_if.hpp new file mode 100644 index 0000000..c8b54c4 --- /dev/null +++ b/external-libs/boost/boost/utility/enable_if.hpp @@ -0,0 +1,119 @@ +// Boost enable_if library + +// Copyright 2003 The Trustees of Indiana University. + +// Use, modification, and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// Authors: Jaakko Jrvi (jajarvi at osl.iu.edu) +// Jeremiah Willcock (jewillco at osl.iu.edu) +// Andrew Lumsdaine (lums at osl.iu.edu) + + +#ifndef BOOST_UTILITY_ENABLE_IF_HPP +#define BOOST_UTILITY_ENABLE_IF_HPP + +#include "boost/config.hpp" + +// Even the definition of enable_if causes problems on some compilers, +// so it's macroed out for all compilers that do not support SFINAE + +#ifndef BOOST_NO_SFINAE + +namespace boost +{ + + template + struct enable_if_c { + typedef T type; + }; + + template + struct enable_if_c {}; + + template + struct enable_if : public enable_if_c {}; + + template + struct lazy_enable_if_c { + typedef typename T::type type; + }; + + template + struct lazy_enable_if_c {}; + + template + struct lazy_enable_if : public lazy_enable_if_c {}; + + + template + struct disable_if_c { + typedef T type; + }; + + template + struct disable_if_c {}; + + template + struct disable_if : public disable_if_c {}; + + template + struct lazy_disable_if_c { + typedef typename T::type type; + }; + + template + struct lazy_disable_if_c {}; + + template + struct lazy_disable_if : public lazy_disable_if_c {}; + +} // namespace boost + +#else + +namespace boost { + + namespace detail { typedef void enable_if_default_T; } + + template + struct enable_if_does_not_work_on_this_compiler; + + template + struct enable_if_c : enable_if_does_not_work_on_this_compiler + { }; + + template + struct disable_if_c : enable_if_does_not_work_on_this_compiler + { }; + + template + struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler + { }; + + template + struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler + { }; + + template + struct enable_if : enable_if_does_not_work_on_this_compiler + { }; + + template + struct disable_if : enable_if_does_not_work_on_this_compiler + { }; + + template + struct lazy_enable_if : enable_if_does_not_work_on_this_compiler + { }; + + template + struct lazy_disable_if : enable_if_does_not_work_on_this_compiler + { }; + +} // namespace boost + +#endif // BOOST_NO_SFINAE + +#endif diff --git a/external-libs/boost/build/filesystem/Makefile b/external-libs/boost/build/filesystem/Makefile new file mode 100644 index 0000000..43b907e --- /dev/null +++ b/external-libs/boost/build/filesystem/Makefile @@ -0,0 +1,49 @@ +# To build for Mac, just run 'make'. To build for PS3, run 'make platform=ps3' + +platform := mac + +ifneq ($(platform), ps3) +# Mac +compiler := g++ +linker := ar +compilerFlags += -arch ppc -arch i386 +outPath := mac/ +sources := operations.cpp path.cpp portability.cpp utf8_codecvt_facet.cpp +else +# PS3 +compiler := ppu-lv2-g++ +linker := ppu-lv2-ar +compilerFlags += -DBOOST_NO_STD_LOCALE +outPath := ps3/ +sources := operations.cpp path.cpp portability.cpp +endif + +compilerFlags += -Wall -c -O2 -I../../../ +linkerFlags += rcs +libName := boost_filesystem +sourcePath := ../src/ +tmpPath := $(outPath)tmp/ + +sources := $(addprefix $(sourcePath), $(sources)) +objPath := $(tmpPath)$(libName)/ +objs := $(addsuffix .o, $(addprefix $(objPath), $(basename $(notdir $(sources))))) +lib := $(outPath)lib$(libName).a + +vpath %.cpp $(sourcePath) + +all: makeDirs $(objs) $(lib) + +makeDirs: + @mkdir -p $(outPath) + @mkdir -p $(objPath) + +$(objPath)%.o : %.cpp + $(compiler) $(compilerFlags) -o $@ $< + +# ar rcs lib.a obj1 obj2 ... +$(lib) : $(objs) + $(linker) $(linkerFlags) $(lib) $(objs) + +clean: + @rm -rf $(objPath) + @rm -f $(lib) \ No newline at end of file diff --git a/external-libs/boost/build/filesystem/operations.cpp b/external-libs/boost/build/filesystem/operations.cpp new file mode 100644 index 0000000..646bf03 --- /dev/null +++ b/external-libs/boost/build/filesystem/operations.cpp @@ -0,0 +1,1389 @@ +// operations.cpp ----------------------------------------------------------// + +// Copyright 2002-2005 Beman Dawes +// Copyright 2001 Dietmar Kuehl +// Use, modification, and distribution is subject to the Boost Software +// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy +// at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/filesystem + +//----------------------------------------------------------------------------// + +// define BOOST_FILESYSTEM_SOURCE so that knows +// the library is being built (possibly exporting rather than importing code) +#define BOOST_FILESYSTEM_SOURCE + +#define _POSIX_PTHREAD_SEMANTICS // Sun readdir_r() needs this + +// enable the XPG-compliant version of readdir_r() on AIX +#if defined(_AIX) +# define _LINUX_SOURCE_COMPAT +#endif + +#if !(defined(__HP_aCC) && defined(_ILP32) && \ + !defined(_STATVFS_ACPP_PROBLEMS_FIXED)) +#define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect, +#endif +#define __USE_FILE_OFFSET64 // but that is harmless on Windows and on POSIX + // 64-bit systems or on 32-bit systems which don't have files larger + // than can be represented by a traditional POSIX/UNIX off_t type. + // OTOH, defining them should kick in 64-bit off_t's (and thus + // st_size) on 32-bit systems that provide the Large File + // Support (LFS) interface, such as Linux, Solaris, and IRIX. + // The defines are given before any headers are included to + // ensure that they are available to all included headers. + // That is required at least on Solaris, and possibly on other + // systems as well. + +// for some compilers (CodeWarrior, for example), windows.h +// is getting included by some other boost header, so do this early: +#if !defined(_WIN32_WINNT) +#define _WIN32_WINNT 0x0500 // Default to Windows 2K or later +#endif + + +#include +#include +#include +#include + +namespace fs = boost::filesystem; +using boost::system::error_code; +using boost::system::system_category; + +# if defined(BOOST_WINDOWS_API) +# include +# if defined(__BORLANDC__) || defined(__MWERKS__) +# if defined(__BORLANDC__) + using std::time_t; +# endif +# include +# else +# include +# endif + +# else // BOOST_POSIX_API +# include +# ifndef __CELLOS_LV2__ +# if !defined(__APPLE__) && !defined(__OpenBSD__) +# include +# define BOOST_STATVFS statvfs +# define BOOST_STATVFS_F_FRSIZE vfs.f_frsize +# else +#ifdef __OpenBSD__ +# include +#endif +# include +# define BOOST_STATVFS statfs +# define BOOST_STATVFS_F_FRSIZE static_cast( vfs.f_bsize ) +# endif +# endif // __CELLOS_LV2__ +# include +# include +# include +# include +# include "limits.h" +# endif + +#ifdef __CELLOS_LV2__ +# define __S_ISTYPE(mode, mask) (((mode) & S_IFMT) == (mask)) +# define S_ISDIR(mode) __S_ISTYPE((mode), S_IFDIR) +# define S_ISREG(mode) __S_ISTYPE((mode), S_IFREG) +# define S_ISLNK(mode) __S_ISTYPE((mode), S_IFLNK) +# define S_ISFIFO(mode) 0 +# define S_ISCHR(mode) 0 +# define S_ISBLK(mode) 0 +# define S_ISSOCK(mode) 0 +#endif + +// BOOST_FILESYSTEM_STATUS_CACHE enables file_status cache in +// dir_itr_increment. The config tests are placed here because some of the +// macros being tested come from dirent.h. +// +// TODO: find out what macros indicate dirent::d_type present in more libraries +# if defined(BOOST_WINDOWS_API) \ + || defined(_DIRENT_HAVE_D_TYPE) // defined by GNU C library if d_type present +# define BOOST_FILESYSTEM_STATUS_CACHE +# endif + +#include // even on Windows some functions use stat() +#include +#include +#include // for remove, rename +#include +#include +// #include // for debugging only; comment out when not in use + +#ifdef BOOST_NO_STDC_NAMESPACE +namespace std { using ::strcmp; using ::remove; using ::rename; } +#endif + +// helpers -----------------------------------------------------------------// + +namespace +{ + const fs::directory_iterator end_itr; + bool is_empty_directory( const std::string & dir_path ) + { + return fs::directory_iterator(fs::path(dir_path)) == end_itr; + } + +#ifdef BOOST_WINDOWS_API + +// For Windows, the xxxA form of various function names is used to avoid +// inadvertently getting wide forms of the functions. (The undecorated +// forms are actually macros, so can misfire if the user has various +// other macros defined. There was a bug report of this happening.) + + inline DWORD get_file_attributes( const char * ph ) + { return ::GetFileAttributesA( ph ); } + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + + inline DWORD get_file_attributes( const wchar_t * ph ) + { return ::GetFileAttributesW( ph ); } + + const fs::wdirectory_iterator wend_itr; + bool is_empty_directory( const std::wstring & dir_path ) + { + return fs::wdirectory_iterator(fs::wpath(dir_path)) == wend_itr; + } + + inline BOOL get_file_attributes_ex( const wchar_t * ph, + WIN32_FILE_ATTRIBUTE_DATA & fad ) + { return ::GetFileAttributesExW( ph, ::GetFileExInfoStandard, &fad ); } + + HANDLE create_file( const wchar_t * ph, DWORD dwDesiredAccess, + DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile ) + { + return ::CreateFileW( ph, dwDesiredAccess, dwShareMode, + lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, + hTemplateFile ); + } + + inline DWORD get_current_directory( DWORD sz, wchar_t * buf ) + { return ::GetCurrentDirectoryW( sz, buf ); } + + inline bool set_current_directory( const wchar_t * buf ) + { return ::SetCurrentDirectoryW( buf ) != 0 ; } + + inline bool get_free_disk_space( const std::wstring & ph, + PULARGE_INTEGER avail, PULARGE_INTEGER total, PULARGE_INTEGER free ) + { return ::GetDiskFreeSpaceExW( ph.c_str(), avail, total, free ) != 0; } + + inline std::size_t get_full_path_name( + const std::wstring & ph, std::size_t len, wchar_t * buf, wchar_t ** p ) + { + return static_cast( + ::GetFullPathNameW( ph.c_str(), + static_cast(len), buf, p )); + } + + inline bool remove_directory( const std::wstring & ph ) + { return ::RemoveDirectoryW( ph.c_str() ) != 0; } + + inline bool delete_file( const std::wstring & ph ) + { return ::DeleteFileW( ph.c_str() ) != 0; } + + inline bool create_directory( const std::wstring & dir ) + { return ::CreateDirectoryW( dir.c_str(), 0 ) != 0; } + +#if _WIN32_WINNT >= 0x500 + inline bool create_hard_link( const std::wstring & to_ph, + const std::wstring & from_ph ) + { return ::CreateHardLinkW( from_ph.c_str(), to_ph.c_str(), 0 ) != 0; } +#endif + +# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY + + template< class String > + fs::file_status status_template( const String & ph, error_code & ec ) + { + DWORD attr( get_file_attributes( ph.c_str() ) ); + if ( attr == 0xFFFFFFFF ) + { + ec = error_code( ::GetLastError(), system_category ); + if ((ec.value() == ERROR_FILE_NOT_FOUND) + || (ec.value() == ERROR_PATH_NOT_FOUND) + || (ec.value() == ERROR_INVALID_NAME) // "tools/jam/src/:sys:stat.h", "//foo" + || (ec.value() == ERROR_INVALID_PARAMETER) // ":sys:stat.h" + || (ec.value() == ERROR_BAD_PATHNAME) // "//nosuch" on Win64 + || (ec.value() == ERROR_BAD_NETPATH)) // "//nosuch" on Win32 + { + ec = error_code(); // these are not considered errors; + // the status is considered not found + return fs::file_status( fs::file_not_found ); + } + else if ((ec.value() == ERROR_SHARING_VIOLATION)) + { + ec = error_code(); // these are not considered errors; + // the file exists but the type is not known + return fs::file_status( fs::type_unknown ); + } + return fs::file_status( fs::status_unknown ); + } + ec = error_code();; + return (attr & FILE_ATTRIBUTE_DIRECTORY) + ? fs::file_status( fs::directory_file ) + : fs::file_status( fs::regular_file ); + } + + BOOL get_file_attributes_ex( const char * ph, + WIN32_FILE_ATTRIBUTE_DATA & fad ) + { return ::GetFileAttributesExA( ph, ::GetFileExInfoStandard, &fad ); } + + template< class String > + boost::filesystem::detail::query_pair + is_empty_template( const String & ph ) + { + WIN32_FILE_ATTRIBUTE_DATA fad; + if ( get_file_attributes_ex( ph.c_str(), fad ) == 0 ) + return std::make_pair( error_code( ::GetLastError(), system_category ), false ); + return std::make_pair( error_code(), + ( fad.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) + ? is_empty_directory( ph ) + :( !fad.nFileSizeHigh && !fad.nFileSizeLow ) ); + } + + HANDLE create_file( const char * ph, DWORD dwDesiredAccess, + DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile ) + { + return ::CreateFileA( ph, dwDesiredAccess, dwShareMode, + lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, + hTemplateFile ); + } + + // Thanks to Jeremy Maitin-Shepard for much help and for permission to + // base the equivalent() implementation on portions of his + // file-equivalence-win32.cpp experimental code. + struct handle_wrapper + { + HANDLE handle; + handle_wrapper( HANDLE h ) + : handle(h) {} + ~handle_wrapper() + { + if ( handle != INVALID_HANDLE_VALUE ) + ::CloseHandle(handle); + } + }; + + template< class String > + boost::filesystem::detail::query_pair + equivalent_template( const String & ph1, const String & ph2 ) + { + // Note well: Physical location on external media is part of the + // equivalence criteria. If there are no open handles, physical location + // can change due to defragmentation or other relocations. Thus handles + // must be held open until location information for both paths has + // been retrieved. + handle_wrapper p1( + create_file( + ph1.c_str(), + 0, + FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, + 0, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS, + 0 ) ); + int error1(0); // save error code in case we have to throw + if ( p1.handle == INVALID_HANDLE_VALUE ) + error1 = ::GetLastError(); + handle_wrapper p2( + create_file( + ph2.c_str(), + 0, + FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, + 0, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS, + 0 ) ); + if ( p1.handle == INVALID_HANDLE_VALUE + || p2.handle == INVALID_HANDLE_VALUE ) + { + if ( p1.handle != INVALID_HANDLE_VALUE + || p2.handle != INVALID_HANDLE_VALUE ) + { return std::make_pair( error_code(), false ); } + assert( p1.handle == INVALID_HANDLE_VALUE + && p2.handle == INVALID_HANDLE_VALUE ); + { return std::make_pair( error_code( error1, system_category), false ); } + } + // at this point, both handles are known to be valid + BY_HANDLE_FILE_INFORMATION info1, info2; + if ( !::GetFileInformationByHandle( p1.handle, &info1 ) ) + { return std::make_pair( error_code( ::GetLastError(), system_category ), false ); } + if ( !::GetFileInformationByHandle( p2.handle, &info2 ) ) + { return std::make_pair( error_code( ::GetLastError(), system_category ), false ); } + // In theory, volume serial numbers are sufficient to distinguish between + // devices, but in practice VSN's are sometimes duplicated, so last write + // time and file size are also checked. + return std::make_pair( error_code(), + info1.dwVolumeSerialNumber == info2.dwVolumeSerialNumber + && info1.nFileIndexHigh == info2.nFileIndexHigh + && info1.nFileIndexLow == info2.nFileIndexLow + && info1.nFileSizeHigh == info2.nFileSizeHigh + && info1.nFileSizeLow == info2.nFileSizeLow + && info1.ftLastWriteTime.dwLowDateTime + == info2.ftLastWriteTime.dwLowDateTime + && info1.ftLastWriteTime.dwHighDateTime + == info2.ftLastWriteTime.dwHighDateTime ); + } + + template< class String > + boost::filesystem::detail::uintmax_pair + file_size_template( const String & ph ) + { + WIN32_FILE_ATTRIBUTE_DATA fad; + // by now, intmax_t is 64-bits on all Windows compilers + if ( get_file_attributes_ex( ph.c_str(), fad ) == 0 ) + return std::make_pair( error_code( ::GetLastError(), system_category ), 0 ); + if ( (fad.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) !=0 ) + return std::make_pair( error_code( ERROR_FILE_NOT_FOUND, system_category), 0 ); + return std::make_pair( error_code(), + (static_cast(fad.nFileSizeHigh) + << (sizeof(fad.nFileSizeLow)*8)) + + fad.nFileSizeLow ); + } + + inline bool get_free_disk_space( const std::string & ph, + PULARGE_INTEGER avail, PULARGE_INTEGER total, PULARGE_INTEGER free ) + { return ::GetDiskFreeSpaceExA( ph.c_str(), avail, total, free ) != 0; } + + template< class String > + boost::filesystem::detail::space_pair + space_template( String & ph ) + { + ULARGE_INTEGER avail, total, free; + boost::filesystem::detail::space_pair result; + if ( get_free_disk_space( ph, &avail, &total, &free ) ) + { + result.first = error_code(); + result.second.capacity + = (static_cast(total.HighPart) << 32) + + total.LowPart; + result.second.free + = (static_cast(free.HighPart) << 32) + + free.LowPart; + result.second.available + = (static_cast(avail.HighPart) << 32) + + avail.LowPart; + } + else + { + result.first = error_code( ::GetLastError(), system_category ); + result.second.capacity = result.second.free + = result.second.available = 0; + } + return result; + } + + inline DWORD get_current_directory( DWORD sz, char * buf ) + { return ::GetCurrentDirectoryA( sz, buf ); } + + template< class String > + error_code + get_current_path_template( String & ph ) + { + DWORD sz; + if ( (sz = get_current_directory( 0, + static_cast(0) )) == 0 ) + { sz = 1; } + typedef typename String::value_type value_type; + boost::scoped_array buf( new value_type[sz] ); + if ( get_current_directory( sz, buf.get() ) == 0 ) + return error_code( ::GetLastError(), system_category ); + ph = buf.get(); + return error_code(); + } + + inline bool set_current_directory( const char * buf ) + { return ::SetCurrentDirectoryA( buf ) != 0; } + + template< class String > + error_code + set_current_path_template( const String & ph ) + { + return error_code( set_current_directory( ph.c_str() ) + ? 0 : ::GetLastError(), system_category ); + } + + inline std::size_t get_full_path_name( + const std::string & ph, std::size_t len, char * buf, char ** p ) + { + return static_cast( + ::GetFullPathNameA( ph.c_str(), + static_cast(len), buf, p )); + } + + const std::size_t buf_size( 128 ); + + template + error_code + get_full_path_name_template( const String & ph, String & target ) + { + typename String::value_type buf[buf_size]; + typename String::value_type * pfn; + std::size_t len = get_full_path_name( ph, + buf_size , buf, &pfn ); + if ( len == 0 ) return error_code( ::GetLastError(), system_category ); + if ( len > buf_size ) + { + typedef typename String::value_type value_type; + boost::scoped_array big_buf( new value_type[len] ); + if ( (len=get_full_path_name( ph, len , big_buf.get(), &pfn )) + == 0 ) return error_code( ::GetLastError(), system_category ); + big_buf[len] = '\0'; + target = big_buf.get(); + return error_code(); + } + buf[len] = '\0'; + target = buf; + return error_code(); + } + + template + error_code + get_file_write_time( const String & ph, FILETIME & last_write_time ) + { + handle_wrapper hw( + create_file( ph.c_str(), 0, + FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, 0, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0 ) ); + if ( hw.handle == INVALID_HANDLE_VALUE ) + return error_code( ::GetLastError(), system_category ); + return error_code( ::GetFileTime( hw.handle, 0, 0, &last_write_time ) != 0 + ? 0 : ::GetLastError(), system_category ); + } + + template + error_code + set_file_write_time( const String & ph, const FILETIME & last_write_time ) + { + handle_wrapper hw( + create_file( ph.c_str(), FILE_WRITE_ATTRIBUTES, + FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, 0, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0 ) ); + if ( hw.handle == INVALID_HANDLE_VALUE ) + return error_code( ::GetLastError(), system_category ); + return error_code( ::SetFileTime( hw.handle, 0, 0, &last_write_time ) != 0 + ? 0 : ::GetLastError(), system_category ); + } + + // these constants come from inspecting some Microsoft sample code + std::time_t to_time_t( const FILETIME & ft ) + { + __int64 t = (static_cast<__int64>( ft.dwHighDateTime ) << 32) + + ft.dwLowDateTime; +# if !defined( BOOST_MSVC ) || BOOST_MSVC > 1300 // > VC++ 7.0 + t -= 116444736000000000LL; +# else + t -= 116444736000000000; +# endif + t /= 10000000; + return static_cast( t ); + } + + void to_FILETIME( std::time_t t, FILETIME & ft ) + { + __int64 temp = t; + temp *= 10000000; +# if !defined( BOOST_MSVC ) || BOOST_MSVC > 1300 // > VC++ 7.0 + temp += 116444736000000000LL; +# else + temp += 116444736000000000; +# endif + ft.dwLowDateTime = static_cast( temp ); + ft.dwHighDateTime = static_cast( temp >> 32 ); + } + + template + boost::filesystem::detail::time_pair + last_write_time_template( const String & ph ) + { + FILETIME lwt; + error_code ec( + get_file_write_time( ph, lwt ) ); + return std::make_pair( ec, to_time_t( lwt ) ); + } + + template + error_code + last_write_time_template( const String & ph, const std::time_t new_time ) + { + FILETIME lwt; + to_FILETIME( new_time, lwt ); + return set_file_write_time( ph, lwt ); + } + + bool remove_directory( const std::string & ph ) + { return ::RemoveDirectoryA( ph.c_str() ) != 0; } + + bool delete_file( const std::string & ph ) + { return ::DeleteFileA( ph.c_str() ) != 0; } + + template + error_code + remove_template( const String & ph ) + { + error_code ec; + fs::file_status sf( fs::detail::status_api( ph, ec ) ); + if ( ec ) return ec; + if ( fs::is_directory( sf ) ) + { + if ( !remove_directory( ph ) ) + return error_code(::GetLastError(), system_category); + } + else + { + if ( !delete_file( ph ) ) return error_code(::GetLastError(), system_category); + } + return error_code(); + } + + inline bool create_directory( const std::string & dir ) + { return ::CreateDirectoryA( dir.c_str(), 0 ) != 0; } + + template + boost::filesystem::detail::query_pair + create_directory_template( const String & dir_ph ) + { + error_code error, dummy; + if ( create_directory( dir_ph ) ) return std::make_pair( error, true ); + error = error_code( ::GetLastError(), system_category ); + // an error here may simply mean the postcondition is already met + if ( error.value() == ERROR_ALREADY_EXISTS + && fs::is_directory( fs::detail::status_api( dir_ph, dummy ) ) ) + return std::make_pair( error_code(), false ); + return std::make_pair( error, false ); + } + +#if _WIN32_WINNT >= 0x500 + inline bool create_hard_link( const std::string & to_ph, + const std::string & from_ph ) + { return ::CreateHardLinkA( from_ph.c_str(), to_ph.c_str(), 0 ) != 0; } +#endif + +#if _WIN32_WINNT >= 0x500 + template + error_code + create_hard_link_template( const String & to_ph, + const String & from_ph ) + { + return error_code( create_hard_link( to_ph.c_str(), from_ph.c_str() ) + ? 0 : ::GetLastError(), system_category ); + } +#endif + +#endif +} // unnamed namespace + +namespace boost +{ + namespace filesystem + { + namespace detail + { + +// free functions ----------------------------------------------------------// + + BOOST_FILESYSTEM_DECL error_code not_found_error() + { +# ifdef BOOST_WINDOWS_API + return error_code(ERROR_PATH_NOT_FOUND, system_category); +# else + return error_code(ENOENT, system_category); +# endif + } + + BOOST_FILESYSTEM_DECL bool possible_large_file_size_support() + { +# ifdef BOOST_POSIX_API + struct stat lcl_stat; + return sizeof( lcl_stat.st_size ) > 4; +# else + return true; +# endif + } + +# ifdef BOOST_WINDOWS_API + + BOOST_FILESYSTEM_DECL fs::file_status + status_api( const std::string & ph, error_code & ec ) + { return status_template( ph, ec ); } + +# ifndef BOOST_FILESYSTEM_NARROW_ONLY + + BOOST_FILESYSTEM_DECL fs::file_status + status_api( const std::wstring & ph, error_code & ec ) + { return status_template( ph, ec ); } + + BOOST_FILESYSTEM_DECL bool symbolic_link_exists_api( const std::wstring & ) + { return false; } + + BOOST_FILESYSTEM_DECL + fs::detail::query_pair is_empty_api( const std::wstring & ph ) + { return is_empty_template( ph ); } + + BOOST_FILESYSTEM_DECL + fs::detail::query_pair + equivalent_api( const std::wstring & ph1, const std::wstring & ph2 ) + { return equivalent_template( ph1, ph2 ); } + + BOOST_FILESYSTEM_DECL + fs::detail::uintmax_pair file_size_api( const std::wstring & ph ) + { return file_size_template( ph ); } + + BOOST_FILESYSTEM_DECL + fs::detail::space_pair space_api( const std::wstring & ph ) + { return space_template( ph ); } + + BOOST_FILESYSTEM_DECL + error_code + get_current_path_api( std::wstring & ph ) + { return get_current_path_template( ph ); } + + BOOST_FILESYSTEM_DECL + error_code + set_current_path_api( const std::wstring & ph ) + { return set_current_path_template( ph ); } + + BOOST_FILESYSTEM_DECL error_code + get_full_path_name_api( const std::wstring & ph, std::wstring & target ) + { return get_full_path_name_template( ph, target ); } + + BOOST_FILESYSTEM_DECL time_pair + last_write_time_api( const std::wstring & ph ) + { return last_write_time_template( ph ); } + + BOOST_FILESYSTEM_DECL error_code + last_write_time_api( const std::wstring & ph, std::time_t new_value ) + { return last_write_time_template( ph, new_value ); } + + BOOST_FILESYSTEM_DECL fs::detail::query_pair + create_directory_api( const std::wstring & ph ) + { return create_directory_template( ph ); } + +#if _WIN32_WINNT >= 0x500 + BOOST_FILESYSTEM_DECL error_code + create_hard_link_api( const std::wstring & to_ph, + const std::wstring & from_ph ) + { return create_hard_link_template( to_ph, from_ph ); } +#endif + + BOOST_FILESYSTEM_DECL error_code + create_symlink_api( const std::wstring & /*to_ph*/, + const std::wstring & /*from_ph*/ ) + { return error_code( ERROR_NOT_SUPPORTED, system_category ); } + + BOOST_FILESYSTEM_DECL error_code + remove_api( const std::wstring & ph ) { return remove_template( ph ); } + + BOOST_FILESYSTEM_DECL error_code + rename_api( const std::wstring & from, const std::wstring & to ) + { + return error_code( ::MoveFileW( from.c_str(), to.c_str() ) + ? 0 : ::GetLastError(), system_category ); + } + + BOOST_FILESYSTEM_DECL error_code + copy_file_api( const std::wstring & from, const std::wstring & to ) + { + return error_code( ::CopyFileW( from.c_str(), to.c_str(), /*fail_if_exists=*/true ) + ? 0 : ::GetLastError(), system_category ); + } + + BOOST_FILESYSTEM_DECL bool create_file_api( const std::wstring & ph, + std::ios_base::openmode mode ) // true if succeeds + { + DWORD access( + ((mode & std::ios_base::in) == 0 ? 0 : GENERIC_READ) + | ((mode & std::ios_base::out) == 0 ? 0 : GENERIC_WRITE) ); + + DWORD disposition(0); // see 27.8.1.3 Table 92 + if ( (mode&~std::ios_base::binary) + == (std::ios_base::out|std::ios_base::app) ) + disposition = OPEN_ALWAYS; + else if ( (mode&~(std::ios_base::binary|std::ios_base::out)) + == std::ios_base::in ) disposition = OPEN_EXISTING; + else if ( ((mode&~(std::ios_base::binary|std::ios_base::trunc)) + == std::ios_base::out ) + || ((mode&~std::ios_base::binary) + == (std::ios_base::in|std::ios_base::out|std::ios_base::trunc)) ) + disposition = CREATE_ALWAYS; + else assert( 0 && "invalid mode argument" ); + + HANDLE handle ( ::CreateFileW( ph.c_str(), access, + FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, 0, + disposition, (mode &std::ios_base::out) != 0 + ? FILE_ATTRIBUTE_ARCHIVE : FILE_ATTRIBUTE_NORMAL, 0 ) ); + if ( handle == INVALID_HANDLE_VALUE ) return false; + ::CloseHandle( handle ); + return true; + } + + BOOST_FILESYSTEM_DECL std::string narrow_path_api( + const std::wstring & ph ) // return is empty if fails + { + std::string narrow_short_form; + std::wstring short_form; + for ( DWORD buf_sz( static_cast( ph.size()+1 ));; ) + { + boost::scoped_array buf( new wchar_t[buf_sz] ); + DWORD sz( ::GetShortPathNameW( ph.c_str(), buf.get(), buf_sz ) ); + if ( sz == 0 ) return narrow_short_form; + if ( sz <= buf_sz ) + { + short_form += buf.get(); + break; + } + buf_sz = sz + 1; + } + // contributed by Takeshi Mouri: + int narrow_sz( ::WideCharToMultiByte( CP_ACP, 0, + short_form.c_str(), static_cast(short_form.size()), 0, 0, 0, 0 ) ); + boost::scoped_array narrow_buf( new char[narrow_sz] ); + ::WideCharToMultiByte( CP_ACP, 0, + short_form.c_str(), static_cast(short_form.size()), + narrow_buf.get(), narrow_sz, 0, 0 ); + narrow_short_form.assign(narrow_buf.get(), narrow_sz); + + return narrow_short_form; + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_first( void *& handle, const std::wstring & dir, + std::wstring & target, file_status & sf, file_status & symlink_sf ) + { + // use a form of search Sebastian Martel reports will work with Win98 + std::wstring dirpath( dir ); + dirpath += (dirpath.empty() + || dirpath[dirpath.size()-1] != L'\\') ? L"\\*" : L"*"; + + WIN32_FIND_DATAW data; + if ( (handle = ::FindFirstFileW( dirpath.c_str(), &data )) + == INVALID_HANDLE_VALUE ) + { + handle = 0; + return error_code( ::GetLastError() == ERROR_FILE_NOT_FOUND + ? 0 : ::GetLastError(), system_category ); + } + target = data.cFileName; + if ( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) + { sf.type( directory_file ); symlink_sf.type( directory_file ); } + else { sf.type( regular_file ); symlink_sf.type( regular_file ); } + return error_code(); + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_increment( void *& handle, std::wstring & target, + file_status & sf, file_status & symlink_sf ) + { + WIN32_FIND_DATAW data; + if ( ::FindNextFileW( handle, &data ) == 0 ) // fails + { + int error = ::GetLastError(); + dir_itr_close( handle ); + return error_code( error == ERROR_NO_MORE_FILES ? 0 : error, system_category ); + } + target = data.cFileName; + if ( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) + { sf.type( directory_file ); symlink_sf.type( directory_file ); } + else { sf.type( regular_file ); symlink_sf.type( regular_file ); } + return error_code(); + } + +# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY + + // suggested by Walter Landry + BOOST_FILESYSTEM_DECL bool symbolic_link_exists_api( const std::string & ) + { return false; } + + BOOST_FILESYSTEM_DECL + fs::detail::query_pair is_empty_api( const std::string & ph ) + { return is_empty_template( ph ); } + + BOOST_FILESYSTEM_DECL + fs::detail::query_pair + equivalent_api( const std::string & ph1, const std::string & ph2 ) + { return equivalent_template( ph1, ph2 ); } + + BOOST_FILESYSTEM_DECL + fs::detail::uintmax_pair file_size_api( const std::string & ph ) + { return file_size_template( ph ); } + + BOOST_FILESYSTEM_DECL + fs::detail::space_pair space_api( const std::string & ph ) + { return space_template( ph ); } + + BOOST_FILESYSTEM_DECL + error_code + get_current_path_api( std::string & ph ) + { return get_current_path_template( ph ); } + + BOOST_FILESYSTEM_DECL + error_code + set_current_path_api( const std::string & ph ) + { return set_current_path_template( ph ); } + + BOOST_FILESYSTEM_DECL error_code + get_full_path_name_api( const std::string & ph, std::string & target ) + { return get_full_path_name_template( ph, target ); } + + BOOST_FILESYSTEM_DECL time_pair + last_write_time_api( const std::string & ph ) + { return last_write_time_template( ph ); } + + BOOST_FILESYSTEM_DECL error_code + last_write_time_api( const std::string & ph, std::time_t new_value ) + { return last_write_time_template( ph, new_value ); } + + BOOST_FILESYSTEM_DECL fs::detail::query_pair + create_directory_api( const std::string & ph ) + { return create_directory_template( ph ); } + +#if _WIN32_WINNT >= 0x500 + BOOST_FILESYSTEM_DECL error_code + create_hard_link_api( const std::string & to_ph, + const std::string & from_ph ) + { + return create_hard_link_template( to_ph, from_ph ); + } +#endif + + BOOST_FILESYSTEM_DECL error_code + create_symlink_api( const std::string & /*to_ph*/, + const std::string & /*from_ph*/ ) + { return error_code( ERROR_NOT_SUPPORTED, system_category ); } + + BOOST_FILESYSTEM_DECL error_code + remove_api( const std::string & ph ) { return remove_template( ph ); } + + BOOST_FILESYSTEM_DECL error_code + rename_api( const std::string & from, const std::string & to ) + { + return error_code( ::MoveFileA( from.c_str(), to.c_str() ) + ? 0 : ::GetLastError(), system_category ); + } + + BOOST_FILESYSTEM_DECL error_code + copy_file_api( const std::string & from, const std::string & to ) + { + return error_code( ::CopyFileA( from.c_str(), to.c_str(), /*fail_if_exists=*/true ) + ? 0 : ::GetLastError(), system_category ); + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_first( void *& handle, const std::string & dir, + std::string & target, file_status & sf, file_status & symlink_sf ) + // Note: an empty root directory has no "." or ".." entries, so this + // causes a ERROR_FILE_NOT_FOUND error which we do not considered an + // error. It is treated as eof instead. + { + // use a form of search Sebastian Martel reports will work with Win98 + std::string dirpath( dir ); + dirpath += (dirpath.empty() + || (dirpath[dirpath.size()-1] != '\\' + && dirpath[dirpath.size()-1] != ':')) ? "\\*" : "*"; + + WIN32_FIND_DATAA data; + if ( (handle = ::FindFirstFileA( dirpath.c_str(), &data )) + == INVALID_HANDLE_VALUE ) + { + handle = 0; + return error_code( ::GetLastError() == ERROR_FILE_NOT_FOUND + ? 0 : ::GetLastError(), system_category ); + } + target = data.cFileName; + if ( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) + { sf.type( directory_file ); symlink_sf.type( directory_file ); } + else { sf.type( regular_file ); symlink_sf.type( regular_file ); } + return error_code(); + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_close( void *& handle ) + { + if ( handle != 0 ) + { + bool ok = ::FindClose( handle ) != 0; + handle = 0; + return error_code( ok ? 0 : ::GetLastError(), system_category ); + } + return error_code(); + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_increment( void *& handle, std::string & target, + file_status & sf, file_status & symlink_sf ) + { + WIN32_FIND_DATAA data; + if ( ::FindNextFileA( handle, &data ) == 0 ) // fails + { + int error = ::GetLastError(); + dir_itr_close( handle ); + return error_code( error == ERROR_NO_MORE_FILES ? 0 : error, system_category ); + } + target = data.cFileName; + if ( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) + { sf.type( directory_file ); symlink_sf.type( directory_file ); } + else { sf.type( regular_file ); symlink_sf.type( regular_file ); } + return error_code(); + } + +# else // BOOST_POSIX_API + + BOOST_FILESYSTEM_DECL fs::file_status + status_api( const std::string & ph, error_code & ec ) + { + struct stat path_stat; + if ( ::stat( ph.c_str(), &path_stat ) != 0 ) + { + if ( errno == ENOENT || errno == ENOTDIR ) + { + ec = error_code(); + return fs::file_status( fs::file_not_found ); + } + ec = error_code( errno, system_category ); + return fs::file_status( fs::status_unknown ); + } + ec = error_code(); + if ( S_ISDIR( path_stat.st_mode ) ) + return fs::file_status( fs::directory_file ); + if ( S_ISREG( path_stat.st_mode ) ) + return fs::file_status( fs::regular_file ); + if ( S_ISBLK( path_stat.st_mode ) ) + return fs::file_status( fs::block_file ); + if ( S_ISCHR( path_stat.st_mode ) ) + return fs::file_status( fs::character_file ); + if ( S_ISFIFO( path_stat.st_mode ) ) + return fs::file_status( fs::fifo_file ); + if ( S_ISSOCK( path_stat.st_mode ) ) + return fs::file_status( fs::socket_file ); + return fs::file_status( fs::type_unknown ); + } + + BOOST_FILESYSTEM_DECL fs::file_status + symlink_status_api( const std::string & ph, error_code & ec ) + { +#ifndef __CELLOS_LV2__ + struct stat path_stat; + if ( ::lstat( ph.c_str(), &path_stat ) != 0 ) + { + if ( errno == ENOENT || errno == ENOTDIR ) + { + ec = error_code(); + return fs::file_status( fs::file_not_found ); + } + ec = error_code( errno, system_category ); + return fs::file_status( fs::status_unknown ); + } + ec = error_code(); + if ( S_ISREG( path_stat.st_mode ) ) + return fs::file_status( fs::regular_file ); + if ( S_ISDIR( path_stat.st_mode ) ) + return fs::file_status( fs::directory_file ); + if ( S_ISLNK( path_stat.st_mode ) ) + return fs::file_status( fs::symlink_file ); + if ( S_ISBLK( path_stat.st_mode ) ) + return fs::file_status( fs::block_file ); + if ( S_ISCHR( path_stat.st_mode ) ) + return fs::file_status( fs::character_file ); + if ( S_ISFIFO( path_stat.st_mode ) ) + return fs::file_status( fs::fifo_file ); + if ( S_ISSOCK( path_stat.st_mode ) ) + return fs::file_status( fs::socket_file ); +#endif + return fs::file_status( fs::type_unknown ); + } + + // suggested by Walter Landry + BOOST_FILESYSTEM_DECL bool + symbolic_link_exists_api( const std::string & ph ) + { +#ifndef __CELLOS_LV2__ + struct stat path_stat; + return ::lstat( ph.c_str(), &path_stat ) == 0 + && S_ISLNK( path_stat.st_mode ); +#else + return false; +#endif + } + + BOOST_FILESYSTEM_DECL query_pair + is_empty_api( const std::string & ph ) + { + struct stat path_stat; + if ( (::stat( ph.c_str(), &path_stat )) != 0 ) + return std::make_pair( error_code( errno, system_category ), false ); + return std::make_pair( error_code(), S_ISDIR( path_stat.st_mode ) + ? is_empty_directory( ph ) + : path_stat.st_size == 0 ); + } + + BOOST_FILESYSTEM_DECL query_pair + equivalent_api( const std::string & ph1, const std::string & ph2 ) + { + struct stat s2; + int e2( ::stat( ph2.c_str(), &s2 ) ); + struct stat s1; + int e1( ::stat( ph1.c_str(), &s1 ) ); + if ( e1 != 0 || e2 != 0 ) + return std::make_pair( error_code( e1 != 0 && e2 != 0 ? errno : 0, system_category ), false ); + // at this point, both stats are known to be valid + return std::make_pair( error_code(), + s1.st_dev == s2.st_dev + && s1.st_ino == s2.st_ino + // According to the POSIX stat specs, "The st_ino and st_dev fields + // taken together uniquely identify the file within the system." + // Just to be sure, size and mod time are also checked. + && s1.st_size == s2.st_size + && s1.st_mtime == s2.st_mtime ); + } + + BOOST_FILESYSTEM_DECL uintmax_pair + file_size_api( const std::string & ph ) + { + struct stat path_stat; + if ( ::stat( ph.c_str(), &path_stat ) != 0 ) + return std::make_pair( error_code( errno, system_category ), 0 ); + if ( !S_ISREG( path_stat.st_mode ) ) + return std::make_pair( error_code( EPERM, system_category ), 0 ); + return std::make_pair( error_code(), + static_cast(path_stat.st_size) ); + } + + BOOST_FILESYSTEM_DECL space_pair + space_api( const std::string & ph ) + { +#ifndef __CELLOS_LV2__ + struct BOOST_STATVFS vfs; + space_pair result; + if ( ::BOOST_STATVFS( ph.c_str(), &vfs ) != 0 ) + { + result.first = error_code( errno, system_category ); + result.second.capacity = result.second.free + = result.second.available = 0; + } + else + { + result.first = error_code(); + result.second.capacity + = static_cast(vfs.f_blocks) * BOOST_STATVFS_F_FRSIZE; + result.second.free + = static_cast(vfs.f_bfree) * BOOST_STATVFS_F_FRSIZE; + result.second.available + = static_cast(vfs.f_bavail) * BOOST_STATVFS_F_FRSIZE; + } + return result; +#else + space_pair result; + result.first = error_code(errno, system_category); + result.second.capacity = result.second.free = result.second.available = 0; + return result; +#endif + } + + BOOST_FILESYSTEM_DECL time_pair + last_write_time_api( const std::string & ph ) + { + struct stat path_stat; + if ( ::stat( ph.c_str(), &path_stat ) != 0 ) + return std::make_pair( error_code( errno, system_category ), 0 ); + return std::make_pair( error_code(), path_stat.st_mtime ); + } + + BOOST_FILESYSTEM_DECL error_code + last_write_time_api( const std::string & ph, std::time_t new_value ) + { + struct stat path_stat; + if ( ::stat( ph.c_str(), &path_stat ) != 0 ) + return error_code( errno, system_category ); + ::utimbuf buf; + buf.actime = path_stat.st_atime; // utime() updates access time too:-( + buf.modtime = new_value; + return error_code( ::utime( ph.c_str(), &buf ) != 0 ? errno : 0, system_category ); + } + +#ifndef __CELLOS_LV2__ + BOOST_FILESYSTEM_DECL error_code + get_current_path_api( std::string & ph ) + { + for ( long path_max = 32;; path_max *=2 ) // loop 'til buffer large enough + { + boost::scoped_array + buf( new char[static_cast(path_max)] ); + if ( ::getcwd( buf.get(), static_cast(path_max) ) == 0 ) + { + if ( errno != ERANGE + // bug in some versions of the Metrowerks C lib on the Mac: wrong errno set +# if defined(__MSL__) && (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) + && errno != 0 +# endif + ) return error_code( errno, system_category ); + } + else + { + ph = buf.get(); + break; + } + } + return error_code(); + } +#endif + + BOOST_FILESYSTEM_DECL error_code + set_current_path_api( const std::string & ph ) + { +#ifndef __CELLOS_LV2__ + return error_code( ::chdir( ph.c_str() ) + ? errno : 0, system_category ); +#else + return error_code(errno, system_category); +#endif + } + + BOOST_FILESYSTEM_DECL fs::detail::query_pair + create_directory_api( const std::string & ph ) + { + if ( ::mkdir( ph.c_str(), S_IRWXU|S_IRWXG|S_IRWXO ) == 0 ) + { return std::make_pair( error_code(), true ); } + int ec=errno; + error_code dummy; + if ( ec != EEXIST + || !fs::is_directory( status_api( ph, dummy ) ) ) + { return std::make_pair( error_code( ec, system_category ), false ); } + return std::make_pair( error_code(), false ); + } + + BOOST_FILESYSTEM_DECL error_code + create_hard_link_api( const std::string & to_ph, + const std::string & from_ph ) + { + return error_code( ::link( to_ph.c_str(), from_ph.c_str() ) == 0 + ? 0 : errno, system_category ); + } + + BOOST_FILESYSTEM_DECL error_code + create_symlink_api( const std::string & to_ph, + const std::string & from_ph ) + { +#ifndef __CELLOS_LV2__ + return error_code( ::symlink( to_ph.c_str(), from_ph.c_str() ) == 0 + ? 0 : errno, system_category ); +#else + return error_code(errno, system_category); +#endif + } + + BOOST_FILESYSTEM_DECL error_code + remove_api( const std::string & ph ) + { +# if defined(__QNXNTO__) || (defined(__MSL__) && (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))) + // Some Metrowerks C library versions fail on directories because of a + // known Metrowerks coding error in ::remove. Workaround is to call + // rmdir() or unlink() as indicated. + // Same bug also reported for QNX, with the same fix. + if ( (is_directory( ph ) + ? ::rmdir( ph.c_str() ) + : ::unlink( ph.c_str() )) != 0 ) +# else + // note that the POSIX behavior for symbolic links is what we want; + // the link rather than what it points to is deleted + if ( std::remove( ph.c_str() ) != 0 ) +# endif + { + int error = errno; + // POSIX says "If the directory is not an empty directory, rmdir() + // shall fail and set errno to EEXIST or ENOTEMPTY." + // Linux uses ENOTEMPTY, Solaris uses EEXIST. + if ( error == EEXIST ) error = ENOTEMPTY; + return error_code( error, system_category ); + } + return error_code(); + } + + BOOST_FILESYSTEM_DECL error_code + rename_api( const std::string & from, const std::string & to ) + { + // POSIX is too permissive so must check + error_code dummy; + if ( fs::exists( status_api( to, dummy ) ) ) + return error_code( EEXIST, system_category ); + return error_code( std::rename( from.c_str(), to.c_str() ) != 0 + ? errno : 0, system_category ); + } + + BOOST_FILESYSTEM_DECL error_code + copy_file_api( const std::string & from_file_ph, + const std::string & to_file_ph ) + { + const std::size_t buf_sz = 32768; + boost::scoped_array buf( new char [buf_sz] ); + int infile=0, outfile=0; // init quiets compiler warning + struct stat from_stat; + + if ( ::stat( from_file_ph.c_str(), &from_stat ) != 0 + || (infile = ::open( from_file_ph.c_str(), + O_RDONLY )) < 0 + || (outfile = ::open( to_file_ph.c_str(), + O_WRONLY | O_CREAT | O_EXCL, + from_stat.st_mode )) < 0 ) + { + if ( infile >= 0 ) ::close( infile ); + return error_code( errno, system_category ); + } + + ssize_t sz, sz_read=1, sz_write; + while ( sz_read > 0 + && (sz_read = ::read( infile, buf.get(), buf_sz )) > 0 ) + { + // Allow for partial writes - see Advanced Unix Programming (2nd Ed.), + // Marc Rochkind, Addison-Wesley, 2004, page 94 + sz_write = 0; + do + { + if ( (sz = ::write( outfile, buf.get() + sz_write, + sz_read - sz_write )) < 0 ) + { + sz_read = sz; // cause read loop termination + break; // and error to be thrown after closes + } + sz_write += sz; + } while ( sz_write < sz_read ); + } + + if ( ::close( infile) < 0 ) sz_read = -1; + if ( ::close( outfile) < 0 ) sz_read = -1; + + return error_code( sz_read < 0 ? errno : 0, system_category ); + } + + // this code is based on Stevens and Rago, Advanced Programming in the + // UNIX envirnment, 2nd Ed., ISBN 0-201-43307-9, page 49 + error_code path_max( std::size_t & result ) + { +#ifndef __CELLOS_LV2__ +# ifdef PATH_MAX + static std::size_t max = PATH_MAX; +# else + static std::size_t max = 0; +# endif + if ( max == 0 ) + { + errno = 0; + long tmp = ::pathconf( "/", _PC_NAME_MAX ); + if ( tmp < 0 ) + { + if ( errno == 0 ) // indeterminate + max = 4096; // guess + else return error_code( errno, system_category ); + } + else max = static_cast( tmp + 1 ); // relative root + } + result = max; + return error_code(); +#else + result = 4096; + return error_code(); +#endif + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_first( void *& handle, void *& buffer, + const std::string & dir, std::string & target, + file_status &, file_status & ) + { + if ( (handle = ::opendir( dir.c_str() )) == 0 ) + return error_code( errno, system_category ); + target = std::string( "." ); // string was static but caused trouble + // when iteration called from dtor, after + // static had already been destroyed + std::size_t path_size; + error_code ec = path_max( path_size ); + if ( ec ) return ec; + dirent de; + buffer = std::malloc( (sizeof(dirent) - sizeof(de.d_name)) + + path_size + 1 ); // + 1 for "/0" + return error_code(); + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_close( void *& handle, void*& buffer ) + { + std::free( buffer ); + buffer = 0; + if ( handle == 0 ) return error_code(); + DIR * h( static_cast(handle) ); + handle = 0; + return error_code( ::closedir( h ) == 0 ? 0 : errno, system_category ); + } + + // warning: the only dirent member updated is d_name + inline int readdir_r_simulator( DIR * dirp, struct dirent * entry, + struct dirent ** result ) // *result set to 0 on end of directory + { + errno = 0; + + # if !defined(__CYGWIN__) \ + && defined(_POSIX_THREAD_SAFE_FUNCTIONS) \ + && defined(_SC_THREAD_SAFE_FUNCTIONS) \ + && (_POSIX_THREAD_SAFE_FUNCTIONS+0 >= 0) \ + && (!defined(__hpux) || (defined(__hpux) && defined(_REENTRANT))) + if ( ::sysconf( _SC_THREAD_SAFE_FUNCTIONS ) >= 0 ) + { return ::readdir_r( dirp, entry, result ); } + # endif + + struct dirent * p; + *result = 0; + if ( (p = ::readdir( dirp )) == 0 ) + return errno; + std::strcpy( entry->d_name, p->d_name ); + *result = entry; + return 0; + } + + BOOST_FILESYSTEM_DECL error_code + dir_itr_increment( void *& handle, void *& buffer, + std::string & target, file_status & sf, file_status & symlink_sf ) + { + BOOST_ASSERT( buffer != 0 ); + dirent * entry( static_cast(buffer) ); + dirent * result; + int return_code; + if ( (return_code = readdir_r_simulator( static_cast(handle), + entry, &result )) != 0 ) return error_code( errno, system_category ); + if ( result == 0 ) return dir_itr_close( handle, buffer ); + target = entry->d_name; +# ifdef BOOST_FILESYSTEM_STATUS_CACHE + if ( entry->d_type == DT_UNKNOWN ) // filesystem does not supply d_type value + { + sf = symlink_sf = fs::file_status(fs::status_unknown); + } + else // filesystem supplies d_type value + { + if ( entry->d_type == DT_DIR ) + sf = symlink_sf = fs::file_status( fs::directory_file ); + else if ( entry->d_type == DT_REG ) + sf = symlink_sf = fs::file_status( fs::regular_file ); + else if ( entry->d_type == DT_LNK ) + { + sf = fs::file_status( fs::status_unknown ); + symlink_sf = fs::file_status( fs::symlink_file ); + } + else sf = symlink_sf = fs::file_status( fs::status_unknown ); + } +# else + sf = symlink_sf = fs::file_status( fs::status_unknown ); +# endif + return error_code(); + } + +# endif + } // namespace detail + } // namespace filesystem +} // namespace boost diff --git a/external-libs/boost/build/filesystem/vc8/filesystem.sln b/external-libs/boost/build/filesystem/vc8/filesystem.sln new file mode 100644 index 0000000..171ae6e --- /dev/null +++ b/external-libs/boost/build/filesystem/vc8/filesystem.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filesystem", "filesystem.vcproj", "{A94CD3E7-D646-4115-8EBA-09E90D57E65F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A94CD3E7-D646-4115-8EBA-09E90D57E65F}.Debug|Win32.ActiveCfg = Debug|Win32 + {A94CD3E7-D646-4115-8EBA-09E90D57E65F}.Debug|Win32.Build.0 = Debug|Win32 + {A94CD3E7-D646-4115-8EBA-09E90D57E65F}.Release|Win32.ActiveCfg = Release|Win32 + {A94CD3E7-D646-4115-8EBA-09E90D57E65F}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/external-libs/boost/build/filesystem/vc8/filesystem.vcproj b/external-libs/boost/build/filesystem/vc8/filesystem.vcproj new file mode 100644 index 0000000..94f5bcd --- /dev/null +++ b/external-libs/boost/build/filesystem/vc8/filesystem.vcproj @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/external-libs/boost/build/system/Makefile b/external-libs/boost/build/system/Makefile new file mode 100644 index 0000000..ef312ee --- /dev/null +++ b/external-libs/boost/build/system/Makefile @@ -0,0 +1,48 @@ +# To build for Mac, just run 'make'. To build for PS3, run 'make platform=ps3' + +platform := mac + +ifneq ($(platform), ps3) +# Mac +compiler := g++ +linker := ar +compilerFlags += -arch ppc -arch i386 +outPath := mac/ +else +# PS3 +compiler := ppu-lv2-g++ +linker := ppu-lv2-ar +compilerFlags += -DBOOST_NO_STD_LOCALE +outPath := ps3/ +endif + +sources := error_code.cpp +compilerFlags += -Wall -c -O2 -I../../../ +linkerFlags += rcs +libName := boost_system +sourcePath := ../src/ +tmpPath := $(outPath)tmp/ + +sources := $(addprefix $(sourcePath), $(sources)) +objPath := $(tmpPath)$(libName)/ +objs := $(addsuffix .o, $(addprefix $(objPath), $(basename $(notdir $(sources))))) +lib := $(outPath)lib$(libName).a + +vpath %.cpp $(sourcePath) + +all: makeDirs $(objs) $(lib) + +makeDirs: + @mkdir -p $(outPath) + @mkdir -p $(objPath) + +$(objPath)%.o : %.cpp + $(compiler) $(compilerFlags) -o $@ $< + +# ar rcs lib.a obj1 obj2 ... +$(lib) : $(objs) + $(linker) $(linkerFlags) $(lib) $(objs) + +clean: + @rm -rf $(objPath) + @rm -f $(lib) \ No newline at end of file diff --git a/external-libs/boost/build/system/error_code.cpp b/external-libs/boost/build/system/error_code.cpp new file mode 100644 index 0000000..cf406d0 --- /dev/null +++ b/external-libs/boost/build/system/error_code.cpp @@ -0,0 +1,420 @@ +// error_code support implementation file ----------------------------------// + +// Copyright Beman Dawes 2002, 2006 + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See library home page at http://www.boost.org/libs/system + +//----------------------------------------------------------------------------// + +// VC++ 8.0 warns on usage of certain Standard Library and API functions that +// can be cause buffer overruns or other possible security issues if misused. +// See http://msdn.microsoft.com/msdnmag/issues/05/05/SafeCandC/default.aspx +// But the wording of the warning is misleading and unsettling, there are no +// portable alternative functions, and VC++ 8.0's own libraries use the +// functions in question. So turn off the warnings. +#define _CRT_SECURE_NO_DEPRECATE +#define _SCL_SECURE_NO_DEPRECATE + +// define BOOST_SYSTEM_SOURCE so that knows +// the library is being built (possibly exporting rather than importing code) +#define BOOST_SYSTEM_SOURCE + +#include +#include +#include +#include +#include +#include + +using namespace boost::system; +using namespace boost::system::posix_error; + +#include // for strerror/strerror_r + +# if defined( BOOST_WINDOWS_API ) +# include +# ifndef ERROR_INCORRECT_SIZE +# define ERROR_INCORRECT_SIZE ERROR_BAD_ARGUMENTS +# endif +# endif + +//----------------------------------------------------------------------------// + +namespace +{ + // standard error categories -------------------------------------------// + + class posix_error_category : public error_category + { + public: + posix_error_category(){} + const char * name() const; + std::string message( int ev ) const; + }; + + class system_error_category : public error_category + { + public: + system_error_category(){} + const char * name() const; + std::string message( int ev ) const; + error_condition default_error_condition( int ev ) const; + }; + + // posix_error_category implementation ---------------------------------// + + const char * posix_error_category::name() const + { + return "POSIX"; + } + + std::string posix_error_category::message( int ev ) const + { + // strerror_r is preferred because it is always thread safe, + // however, we fallback to strerror in certain cases because: + // -- Windows doesn't provide strerror_r. + // -- HP and Sundo provide strerror_r on newer systems, but there is + // no way to tell if is available at runtime and in any case their + // versions of strerror are thread safe anyhow. + // -- Linux only sometimes provides strerror_r. + // -- Tru64 provides strerror_r only when compiled -pthread. + // -- VMS doesn't provide strerror_r, but on this platform, strerror is + // thread safe. + # if defined(BOOST_WINDOWS_API) || defined(__hpux) || defined(__sun)\ + || (defined(__linux) && (!defined(__USE_XOPEN2K) || defined(BOOST_SYSTEM_USE_STRERROR)))\ + || (defined(__osf__) && !defined(_REENTRANT))\ + || (defined(__vms))\ + || defined(__CELLOS_LV2__) + const char * c_str = std::strerror( ev ); + return std::string( c_str ? c_str : "Unknown error" ); + # else + char buf[64]; + char * bp = buf; + std::size_t sz = sizeof(buf); + # if defined(__CYGWIN__) || defined(__USE_GNU) + // Oddball version of strerror_r + const char * c_str = strerror_r( ev, bp, sz ); + return std::string( c_str ? c_str : "Unknown error" ); + # else + // POSIX version of strerror_r + int result; + for (;;) + { + // strerror_r returns 0 on success, otherwise ERANGE if buffer too small, + // invalid_argument if ev not a valid error number + # if defined (__sgi) + const char * c_str = strerror( ev ); + result = 0; + return std::string( c_str ? c_str : "Unknown error" ); + # else + result = strerror_r( ev, bp, sz ); + # endif + if (result == 0 ) + break; + else + { + # if defined(__linux) + // Linux strerror_r returns -1 on error, with error number in errno + result = errno; + # endif + if ( result != ERANGE ) break; + if ( sz > sizeof(buf) ) std::free( bp ); + sz *= 2; + if ( (bp = static_cast(std::malloc( sz ))) == 0 ) + return std::string( "ENOMEM" ); + } + } + try + { + std::string msg( ( result == invalid_argument ) ? "Unknown error" : bp ); + if ( sz > sizeof(buf) ) std::free( bp ); + sz = 0; + return msg; + } + catch(...) + { + if ( sz > sizeof(buf) ) std::free( bp ); + throw; + } + # endif + # endif + } + // system_error_category implementation --------------------------------// + + const char * system_error_category::name() const + { + return "system"; + } + + error_condition system_error_category::default_error_condition( int ev ) const + { + switch ( ev ) + { + case 0: return make_error_condition( success ); + # if defined(BOOST_POSIX_API) + // POSIX-like O/S -> posix_errno decode table ---------------------------// + case E2BIG: return make_error_condition( argument_list_too_long ); + case EACCES: return make_error_condition( permission_denied ); + case EADDRINUSE: return make_error_condition( address_in_use ); + case EADDRNOTAVAIL: return make_error_condition( address_not_available ); + case EAFNOSUPPORT: return make_error_condition( address_family_not_supported ); + case EAGAIN: return make_error_condition( resource_unavailable_try_again ); + case EALREADY: return make_error_condition( connection_already_in_progress ); + case EBADF: return make_error_condition( bad_file_descriptor ); + case EBADMSG: return make_error_condition( bad_message ); + case EBUSY: return make_error_condition( device_or_resource_busy ); + case ECANCELED: return make_error_condition( operation_canceled ); + case ECHILD: return make_error_condition( no_child_process ); + case ECONNABORTED: return make_error_condition( connection_aborted ); + case ECONNREFUSED: return make_error_condition( connection_refused ); + case ECONNRESET: return make_error_condition( connection_reset ); + case EDEADLK: return make_error_condition( resource_deadlock_would_occur ); + case EDESTADDRREQ: return make_error_condition( destination_address_required ); + case EDOM: return make_error_condition( argument_out_of_domain ); + case EEXIST: return make_error_condition( file_exists ); + case EFAULT: return make_error_condition( bad_address ); + case EFBIG: return make_error_condition( file_too_large ); + case EHOSTUNREACH: return make_error_condition( host_unreachable ); + case EIDRM: return make_error_condition( identifier_removed ); + case EILSEQ: return make_error_condition( illegal_byte_sequence ); + case EINPROGRESS: return make_error_condition( operation_in_progress ); + case EINTR: return make_error_condition( interrupted ); + case EINVAL: return make_error_condition( invalid_argument ); + case EIO: return make_error_condition( io_error ); + case EISCONN: return make_error_condition( already_connected ); + case EISDIR: return make_error_condition( is_a_directory ); + case ELOOP: return make_error_condition( too_many_synbolic_link_levels ); + case EMFILE: return make_error_condition( too_many_files_open ); + case EMLINK: return make_error_condition( too_many_links ); + case EMSGSIZE: return make_error_condition( message_size ); + case ENAMETOOLONG: return make_error_condition( filename_too_long ); + case ENETDOWN: return make_error_condition( network_down ); + case ENETRESET: return make_error_condition( network_reset ); + case ENETUNREACH: return make_error_condition( network_unreachable ); + case ENFILE: return make_error_condition( too_many_files_open_in_system ); + case ENOBUFS: return make_error_condition( no_buffer_space ); + case ENODATA: return make_error_condition( no_message_available ); + case ENODEV: return make_error_condition( no_such_device ); + case ENOENT: return make_error_condition( no_such_file_or_directory ); + case ENOEXEC: return make_error_condition( executable_format_error ); + case ENOLCK: return make_error_condition( no_lock_available ); + case ENOLINK: return make_error_condition( no_link ); + case ENOMEM: return make_error_condition( not_enough_memory ); + case ENOMSG: return make_error_condition( no_message ); + case ENOPROTOOPT: return make_error_condition( no_protocol_option ); + case ENOSPC: return make_error_condition( no_space_on_device ); + case ENOSR: return make_error_condition( no_stream_resources ); + case ENOSTR: return make_error_condition( not_a_stream ); + case ENOSYS: return make_error_condition( function_not_supported ); + case ENOTCONN: return make_error_condition( not_connected ); + case ENOTDIR: return make_error_condition( not_a_directory ); + # if ENOTEMPTY != EEXIST // AIX treats ENOTEMPTY and EEXIST as the same value + case ENOTEMPTY: return make_error_condition( directory_not_empty ); + # endif // ENOTEMPTY != EEXIST + case ENOTRECOVERABLE: return make_error_condition( state_not_recoverable ); + case ENOTSOCK: return make_error_condition( not_a_socket ); + case ENOTSUP: return make_error_condition( not_supported ); + case ENOTTY: return make_error_condition( inappropriate_io_control_operation ); + case ENXIO: return make_error_condition( no_such_device_or_address ); + # if EOPNOTSUPP != ENOTSUP + case EOPNOTSUPP: return make_error_condition( operation_not_supported ); + # endif // EOPNOTSUPP != ENOTSUP + case EOVERFLOW: return make_error_condition( value_too_large ); + case EOWNERDEAD: return make_error_condition( owner_dead ); + case EPERM: return make_error_condition( operation_not_permitted ); + case EPIPE: return make_error_condition( broken_pipe ); + case EPROTO: return make_error_condition( protocol_error ); + case EPROTONOSUPPORT: return make_error_condition( protocol_not_supported ); + case EPROTOTYPE: return make_error_condition( wrong_protocol_type ); + case ERANGE: return make_error_condition( result_out_of_range ); + case EROFS: return make_error_condition( read_only_file_system ); + case ESPIPE: return make_error_condition( invalid_seek ); + case ESRCH: return make_error_condition( no_such_process ); + case ETIME: return make_error_condition( stream_timeout ); + case ETIMEDOUT: return make_error_condition( timed_out ); + case ETXTBSY: return make_error_condition( text_file_busy ); + # if EAGAIN != EWOULDBLOCK + case EWOULDBLOCK: return make_error_condition( operation_would_block ); + # endif // EAGAIN != EWOULDBLOCK + case EXDEV: return make_error_condition( cross_device_link ); + #else + // Windows system -> posix_errno decode table ---------------------------// + // see WinError.h comments for descriptions of errors + case ERROR_ACCESS_DENIED: return make_error_condition( permission_denied ); + case ERROR_ALREADY_EXISTS: return make_error_condition( file_exists ); + case ERROR_BAD_UNIT: return make_error_condition( no_such_device ); + case ERROR_BUFFER_OVERFLOW: return make_error_condition( filename_too_long ); + case ERROR_BUSY: return make_error_condition( device_or_resource_busy ); + case ERROR_BUSY_DRIVE: return make_error_condition( device_or_resource_busy ); + case ERROR_CANNOT_MAKE: return make_error_condition( permission_denied ); + case ERROR_CANTOPEN: return make_error_condition( io_error ); + case ERROR_CANTREAD: return make_error_condition( io_error ); + case ERROR_CANTWRITE: return make_error_condition( io_error ); + case ERROR_CURRENT_DIRECTORY: return make_error_condition( permission_denied ); + case ERROR_DEV_NOT_EXIST: return make_error_condition( no_such_device ); + case ERROR_DEVICE_IN_USE: return make_error_condition( device_or_resource_busy ); + case ERROR_DIR_NOT_EMPTY: return make_error_condition( directory_not_empty ); + case ERROR_DIRECTORY: return make_error_condition( invalid_argument ); // WinError.h: "The directory name is invalid" + case ERROR_DISK_FULL: return make_error_condition( no_space_on_device ); + case ERROR_FILE_EXISTS: return make_error_condition( file_exists ); + case ERROR_FILE_NOT_FOUND: return make_error_condition( no_such_file_or_directory ); + case ERROR_HANDLE_DISK_FULL: return make_error_condition( no_space_on_device ); + case ERROR_INVALID_ACCESS: return make_error_condition( permission_denied ); + case ERROR_INVALID_DRIVE: return make_error_condition( no_such_device ); + case ERROR_INVALID_FUNCTION: return make_error_condition( function_not_supported ); + case ERROR_INVALID_HANDLE: return make_error_condition( invalid_argument ); + case ERROR_INVALID_NAME: return make_error_condition( invalid_argument ); + case ERROR_LOCK_VIOLATION: return make_error_condition( no_lock_available ); + case ERROR_LOCKED: return make_error_condition( no_lock_available ); + case ERROR_NEGATIVE_SEEK: return make_error_condition( invalid_argument ); + case ERROR_NOACCESS: return make_error_condition( permission_denied ); + case ERROR_NOT_ENOUGH_MEMORY: return make_error_condition( not_enough_memory ); + case ERROR_NOT_READY: return make_error_condition( resource_unavailable_try_again ); + case ERROR_NOT_SAME_DEVICE: return make_error_condition( cross_device_link ); + case ERROR_OPEN_FAILED: return make_error_condition( io_error ); + case ERROR_OPEN_FILES: return make_error_condition( device_or_resource_busy ); + case ERROR_OPERATION_ABORTED: return make_error_condition( operation_canceled ); + case ERROR_OUTOFMEMORY: return make_error_condition( not_enough_memory ); + case ERROR_PATH_NOT_FOUND: return make_error_condition( no_such_file_or_directory ); + case ERROR_READ_FAULT: return make_error_condition( io_error ); + case ERROR_RETRY: return make_error_condition( resource_unavailable_try_again ); + case ERROR_SEEK: return make_error_condition( io_error ); + case ERROR_SHARING_VIOLATION: return make_error_condition( permission_denied ); + case ERROR_TOO_MANY_OPEN_FILES: return make_error_condition( too_many_files_open ); + case ERROR_WRITE_FAULT: return make_error_condition( io_error ); + case ERROR_WRITE_PROTECT: return make_error_condition( permission_denied ); + case WSAEACCES: return make_error_condition( permission_denied ); + case WSAEADDRINUSE: return make_error_condition( address_in_use ); + case WSAEADDRNOTAVAIL: return make_error_condition( address_not_available ); + case WSAEAFNOSUPPORT: return make_error_condition( address_family_not_supported ); + case WSAEALREADY: return make_error_condition( connection_already_in_progress ); + case WSAEBADF: return make_error_condition( bad_file_descriptor ); + case WSAECONNABORTED: return make_error_condition( connection_aborted ); + case WSAECONNREFUSED: return make_error_condition( connection_refused ); + case WSAECONNRESET: return make_error_condition( connection_reset ); + case WSAEDESTADDRREQ: return make_error_condition( destination_address_required ); + case WSAEFAULT: return make_error_condition( bad_address ); + case WSAEHOSTUNREACH: return make_error_condition( host_unreachable ); + case WSAEINPROGRESS: return make_error_condition( operation_in_progress ); + case WSAEINTR: return make_error_condition( interrupted ); + case WSAEINVAL: return make_error_condition( invalid_argument ); + case WSAEISCONN: return make_error_condition( already_connected ); + case WSAEMFILE: return make_error_condition( too_many_files_open ); + case WSAEMSGSIZE: return make_error_condition( message_size ); + case WSAENAMETOOLONG: return make_error_condition( filename_too_long ); + case WSAENETDOWN: return make_error_condition( network_down ); + case WSAENETRESET: return make_error_condition( network_reset ); + case WSAENETUNREACH: return make_error_condition( network_unreachable ); + case WSAENOBUFS: return make_error_condition( no_buffer_space ); + case WSAENOPROTOOPT: return make_error_condition( no_protocol_option ); + case WSAENOTCONN: return make_error_condition( not_connected ); + case WSAENOTSOCK: return make_error_condition( not_a_socket ); + case WSAEOPNOTSUPP: return make_error_condition( operation_not_supported ); + case WSAEPROTONOSUPPORT: return make_error_condition( protocol_not_supported ); + case WSAEPROTOTYPE: return make_error_condition( wrong_protocol_type ); + case WSAETIMEDOUT: return make_error_condition( timed_out ); + case WSAEWOULDBLOCK: return make_error_condition( operation_would_block ); + #endif + default: return error_condition( ev, system_category ); + } + } + +# if !defined( BOOST_WINDOWS_API ) + + std::string system_error_category::message( int ev ) const + { + return posix_category.message( ev ); + } +# else +// TODO: + +//Some quick notes on the implementation (sorry for the noise if +//someone has already mentioned them): +// +//- The ::LocalFree() usage isn't exception safe. +// +//See: +// +// +// +//in the implementation of what() for an example. +// +//Cheers, +//Chris + std::string system_error_category::message( int ev ) const + { +# ifndef BOOST_NO_ANSI_APIS + LPVOID lpMsgBuf; + DWORD retval = ::FormatMessageA( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + ev, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPSTR) &lpMsgBuf, + 0, + NULL + ); + if (retval == 0) + return std::string("Unknown error"); + + std::string str( static_cast(lpMsgBuf) ); + ::LocalFree( lpMsgBuf ); // free the buffer +# else // WinCE workaround + LPVOID lpMsgBuf; + DWORD retval = ::FormatMessageW( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + ev, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPWSTR) &lpMsgBuf, + 0, + NULL + ); + if (retval == 0) + return std::string("Unknown error"); + + int num_chars = (wcslen( static_cast(lpMsgBuf) ) + 1) * 2; + LPSTR narrow_buffer = (LPSTR)_alloca( num_chars ); + if (::WideCharToMultiByte(CP_ACP, 0, static_cast(lpMsgBuf), -1, narrow_buffer, num_chars, NULL, NULL) == 0) + return std::string("Unknown error"); + + std::string str( narrow_buffer ); + ::LocalFree( lpMsgBuf ); // free the buffer +# endif + while ( str.size() + && (str[str.size()-1] == '\n' || str[str.size()-1] == '\r') ) + str.erase( str.size()-1 ); + if ( str.size() && str[str.size()-1] == '.' ) + { str.erase( str.size()-1 ); } + return str; + } +# endif + +} // unnamed namespace + +namespace boost +{ + namespace system + { + + BOOST_SYSTEM_DECL const error_category & get_system_category() + { + static const system_error_category system_category_const; + return system_category_const; + } + + BOOST_SYSTEM_DECL const error_category & get_posix_category() + { + static const posix_error_category posix_category_const; + return posix_category_const; + } + + } // namespace system +} // namespace boost diff --git a/external-libs/boost/build/system/vc8/system.sln b/external-libs/boost/build/system/vc8/system.sln new file mode 100644 index 0000000..5de1cce --- /dev/null +++ b/external-libs/boost/build/system/vc8/system.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "system", "system.vcproj", "{3E0E3F64-0D42-447F-A320-0C972035EF12}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3E0E3F64-0D42-447F-A320-0C972035EF12}.Debug|Win32.ActiveCfg = Debug|Win32 + {3E0E3F64-0D42-447F-A320-0C972035EF12}.Debug|Win32.Build.0 = Debug|Win32 + {3E0E3F64-0D42-447F-A320-0C972035EF12}.Release|Win32.ActiveCfg = Release|Win32 + {3E0E3F64-0D42-447F-A320-0C972035EF12}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/external-libs/boost/build/system/vc8/system.vcproj b/external-libs/boost/build/system/vc8/system.vcproj new file mode 100644 index 0000000..29d429c --- /dev/null +++ b/external-libs/boost/build/system/vc8/system.vcproj @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/external-libs/boost/lib/mac/libboost_filesystem.a b/external-libs/boost/lib/mac/libboost_filesystem.a new file mode 100644 index 0000000..1895418 Binary files /dev/null and b/external-libs/boost/lib/mac/libboost_filesystem.a differ diff --git a/external-libs/boost/lib/mac/libboost_system.a b/external-libs/boost/lib/mac/libboost_system.a new file mode 100644 index 0000000..ee6d130 Binary files /dev/null and b/external-libs/boost/lib/mac/libboost_system.a differ diff --git a/external-libs/boost/lib/mingw/libboost_filesystem.a b/external-libs/boost/lib/mingw/libboost_filesystem.a new file mode 100644 index 0000000..96bfab8 Binary files /dev/null and b/external-libs/boost/lib/mingw/libboost_filesystem.a differ diff --git a/external-libs/boost/lib/mingw/libboost_system.a b/external-libs/boost/lib/mingw/libboost_system.a new file mode 100644 index 0000000..ad12908 Binary files /dev/null and b/external-libs/boost/lib/mingw/libboost_system.a differ diff --git a/external-libs/boost/lib/ps3/libboost_filesystem.a b/external-libs/boost/lib/ps3/libboost_filesystem.a new file mode 100644 index 0000000..5817d3b Binary files /dev/null and b/external-libs/boost/lib/ps3/libboost_filesystem.a differ diff --git a/external-libs/boost/lib/ps3/libboost_system.a b/external-libs/boost/lib/ps3/libboost_system.a new file mode 100644 index 0000000..3031ad4 Binary files /dev/null and b/external-libs/boost/lib/ps3/libboost_system.a differ diff --git a/external-libs/boost/lib/vc8/libboost_filesystem-d.lib b/external-libs/boost/lib/vc8/libboost_filesystem-d.lib new file mode 100644 index 0000000..55ffdc3 Binary files /dev/null and b/external-libs/boost/lib/vc8/libboost_filesystem-d.lib differ diff --git a/external-libs/boost/lib/vc8/libboost_filesystem.lib b/external-libs/boost/lib/vc8/libboost_filesystem.lib new file mode 100644 index 0000000..a0e4ad2 Binary files /dev/null and b/external-libs/boost/lib/vc8/libboost_filesystem.lib differ diff --git a/external-libs/boost/lib/vc8/libboost_system-d.lib b/external-libs/boost/lib/vc8/libboost_system-d.lib new file mode 100644 index 0000000..13715f9 Binary files /dev/null and b/external-libs/boost/lib/vc8/libboost_system-d.lib differ diff --git a/external-libs/boost/lib/vc8/libboost_system.lib b/external-libs/boost/lib/vc8/libboost_system.lib new file mode 100644 index 0000000..500eb1c Binary files /dev/null and b/external-libs/boost/lib/vc8/libboost_system.lib differ diff --git a/external-libs/boost/lib/vc9/libboost_filesystem-d.lib b/external-libs/boost/lib/vc9/libboost_filesystem-d.lib new file mode 100644 index 0000000..17ab10b Binary files /dev/null and b/external-libs/boost/lib/vc9/libboost_filesystem-d.lib differ diff --git a/external-libs/boost/lib/vc9/libboost_filesystem.lib b/external-libs/boost/lib/vc9/libboost_filesystem.lib new file mode 100644 index 0000000..83a28f1 Binary files /dev/null and b/external-libs/boost/lib/vc9/libboost_filesystem.lib differ diff --git a/external-libs/boost/lib/vc9/libboost_system-d.lib b/external-libs/boost/lib/vc9/libboost_system-d.lib new file mode 100644 index 0000000..2ef164e Binary files /dev/null and b/external-libs/boost/lib/vc9/libboost_system-d.lib differ diff --git a/external-libs/boost/lib/vc9/libboost_system.lib b/external-libs/boost/lib/vc9/libboost_system.lib new file mode 100644 index 0000000..65bd989 Binary files /dev/null and b/external-libs/boost/lib/vc9/libboost_system.lib differ diff --git a/external-libs/libxml2/include/libxml/DOCBparser.h b/external-libs/libxml2/include/libxml/DOCBparser.h new file mode 100644 index 0000000..461d4ee --- /dev/null +++ b/external-libs/libxml2/include/libxml/DOCBparser.h @@ -0,0 +1,96 @@ +/* + * Summary: old DocBook SGML parser + * Description: interface for a DocBook SGML non-verifying parser + * This code is DEPRECATED, and should not be used anymore. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __DOCB_PARSER_H__ +#define __DOCB_PARSER_H__ +#include + +#ifdef LIBXML_DOCB_ENABLED + +#include +#include + +#ifndef IN_LIBXML +#ifdef __GNUC__ +#warning "The DOCBparser module has been deprecated in libxml2-2.6.0" +#endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Most of the back-end structures from XML and SGML are shared. + */ +typedef xmlParserCtxt docbParserCtxt; +typedef xmlParserCtxtPtr docbParserCtxtPtr; +typedef xmlSAXHandler docbSAXHandler; +typedef xmlSAXHandlerPtr docbSAXHandlerPtr; +typedef xmlParserInput docbParserInput; +typedef xmlParserInputPtr docbParserInputPtr; +typedef xmlDocPtr docbDocPtr; + +/* + * There is only few public functions. + */ +XMLPUBFUN int XMLCALL + docbEncodeEntities(unsigned char *out, + int *outlen, + const unsigned char *in, + int *inlen, int quoteChar); + +XMLPUBFUN docbDocPtr XMLCALL + docbSAXParseDoc (xmlChar *cur, + const char *encoding, + docbSAXHandlerPtr sax, + void *userData); +XMLPUBFUN docbDocPtr XMLCALL + docbParseDoc (xmlChar *cur, + const char *encoding); +XMLPUBFUN docbDocPtr XMLCALL + docbSAXParseFile (const char *filename, + const char *encoding, + docbSAXHandlerPtr sax, + void *userData); +XMLPUBFUN docbDocPtr XMLCALL + docbParseFile (const char *filename, + const char *encoding); + +/** + * Interfaces for the Push mode. + */ +XMLPUBFUN void XMLCALL + docbFreeParserCtxt (docbParserCtxtPtr ctxt); +XMLPUBFUN docbParserCtxtPtr XMLCALL + docbCreatePushParserCtxt(docbSAXHandlerPtr sax, + void *user_data, + const char *chunk, + int size, + const char *filename, + xmlCharEncoding enc); +XMLPUBFUN int XMLCALL + docbParseChunk (docbParserCtxtPtr ctxt, + const char *chunk, + int size, + int terminate); +XMLPUBFUN docbParserCtxtPtr XMLCALL + docbCreateFileParserCtxt(const char *filename, + const char *encoding); +XMLPUBFUN int XMLCALL + docbParseDocument (docbParserCtxtPtr ctxt); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_DOCB_ENABLED */ + +#endif /* __DOCB_PARSER_H__ */ diff --git a/external-libs/libxml2/include/libxml/HTMLparser.h b/external-libs/libxml2/include/libxml/HTMLparser.h new file mode 100644 index 0000000..05905e4 --- /dev/null +++ b/external-libs/libxml2/include/libxml/HTMLparser.h @@ -0,0 +1,303 @@ +/* + * Summary: interface for an HTML 4.0 non-verifying parser + * Description: this module implements an HTML 4.0 non-verifying parser + * with API compatible with the XML parser ones. It should + * be able to parse "real world" HTML, even if severely + * broken from a specification point of view. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __HTML_PARSER_H__ +#define __HTML_PARSER_H__ +#include +#include + +#ifdef LIBXML_HTML_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Most of the back-end structures from XML and HTML are shared. + */ +typedef xmlParserCtxt htmlParserCtxt; +typedef xmlParserCtxtPtr htmlParserCtxtPtr; +typedef xmlParserNodeInfo htmlParserNodeInfo; +typedef xmlSAXHandler htmlSAXHandler; +typedef xmlSAXHandlerPtr htmlSAXHandlerPtr; +typedef xmlParserInput htmlParserInput; +typedef xmlParserInputPtr htmlParserInputPtr; +typedef xmlDocPtr htmlDocPtr; +typedef xmlNodePtr htmlNodePtr; + +/* + * Internal description of an HTML element, representing HTML 4.01 + * and XHTML 1.0 (which share the same structure). + */ +typedef struct _htmlElemDesc htmlElemDesc; +typedef htmlElemDesc *htmlElemDescPtr; +struct _htmlElemDesc { + const char *name; /* The tag name */ + char startTag; /* Whether the start tag can be implied */ + char endTag; /* Whether the end tag can be implied */ + char saveEndTag; /* Whether the end tag should be saved */ + char empty; /* Is this an empty element ? */ + char depr; /* Is this a deprecated element ? */ + char dtd; /* 1: only in Loose DTD, 2: only Frameset one */ + char isinline; /* is this a block 0 or inline 1 element */ + const char *desc; /* the description */ + +/* NRK Jan.2003 + * New fields encapsulating HTML structure + * + * Bugs: + * This is a very limited representation. It fails to tell us when + * an element *requires* subelements (we only have whether they're + * allowed or not), and it doesn't tell us where CDATA and PCDATA + * are allowed. Some element relationships are not fully represented: + * these are flagged with the word MODIFIER + */ + const char** subelts; /* allowed sub-elements of this element */ + const char* defaultsubelt; /* subelement for suggested auto-repair + if necessary or NULL */ + const char** attrs_opt; /* Optional Attributes */ + const char** attrs_depr; /* Additional deprecated attributes */ + const char** attrs_req; /* Required attributes */ +}; + +/* + * Internal description of an HTML entity. + */ +typedef struct _htmlEntityDesc htmlEntityDesc; +typedef htmlEntityDesc *htmlEntityDescPtr; +struct _htmlEntityDesc { + unsigned int value; /* the UNICODE value for the character */ + const char *name; /* The entity name */ + const char *desc; /* the description */ +}; + +/* + * There is only few public functions. + */ +XMLPUBFUN const htmlElemDesc * XMLCALL + htmlTagLookup (const xmlChar *tag); +XMLPUBFUN const htmlEntityDesc * XMLCALL + htmlEntityLookup(const xmlChar *name); +XMLPUBFUN const htmlEntityDesc * XMLCALL + htmlEntityValueLookup(unsigned int value); + +XMLPUBFUN int XMLCALL + htmlIsAutoClosed(htmlDocPtr doc, + htmlNodePtr elem); +XMLPUBFUN int XMLCALL + htmlAutoCloseTag(htmlDocPtr doc, + const xmlChar *name, + htmlNodePtr elem); +XMLPUBFUN const htmlEntityDesc * XMLCALL + htmlParseEntityRef(htmlParserCtxtPtr ctxt, + const xmlChar **str); +XMLPUBFUN int XMLCALL + htmlParseCharRef(htmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + htmlParseElement(htmlParserCtxtPtr ctxt); + +XMLPUBFUN htmlParserCtxtPtr XMLCALL + htmlNewParserCtxt(void); + +XMLPUBFUN htmlParserCtxtPtr XMLCALL + htmlCreateMemoryParserCtxt(const char *buffer, + int size); + +XMLPUBFUN int XMLCALL + htmlParseDocument(htmlParserCtxtPtr ctxt); +XMLPUBFUN htmlDocPtr XMLCALL + htmlSAXParseDoc (xmlChar *cur, + const char *encoding, + htmlSAXHandlerPtr sax, + void *userData); +XMLPUBFUN htmlDocPtr XMLCALL + htmlParseDoc (xmlChar *cur, + const char *encoding); +XMLPUBFUN htmlDocPtr XMLCALL + htmlSAXParseFile(const char *filename, + const char *encoding, + htmlSAXHandlerPtr sax, + void *userData); +XMLPUBFUN htmlDocPtr XMLCALL + htmlParseFile (const char *filename, + const char *encoding); +XMLPUBFUN int XMLCALL + UTF8ToHtml (unsigned char *out, + int *outlen, + const unsigned char *in, + int *inlen); +XMLPUBFUN int XMLCALL + htmlEncodeEntities(unsigned char *out, + int *outlen, + const unsigned char *in, + int *inlen, int quoteChar); +XMLPUBFUN int XMLCALL + htmlIsScriptAttribute(const xmlChar *name); +XMLPUBFUN int XMLCALL + htmlHandleOmittedElem(int val); + +#ifdef LIBXML_PUSH_ENABLED +/** + * Interfaces for the Push mode. + */ +XMLPUBFUN htmlParserCtxtPtr XMLCALL + htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, + void *user_data, + const char *chunk, + int size, + const char *filename, + xmlCharEncoding enc); +XMLPUBFUN int XMLCALL + htmlParseChunk (htmlParserCtxtPtr ctxt, + const char *chunk, + int size, + int terminate); +#endif /* LIBXML_PUSH_ENABLED */ + +XMLPUBFUN void XMLCALL + htmlFreeParserCtxt (htmlParserCtxtPtr ctxt); + +/* + * New set of simpler/more flexible APIs + */ +/** + * xmlParserOption: + * + * This is the set of XML parser options that can be passed down + * to the xmlReadDoc() and similar calls. + */ +typedef enum { + HTML_PARSE_RECOVER = 1<<0, /* Relaxed parsing */ + HTML_PARSE_NOERROR = 1<<5, /* suppress error reports */ + HTML_PARSE_NOWARNING= 1<<6, /* suppress warning reports */ + HTML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */ + HTML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */ + HTML_PARSE_NONET = 1<<11,/* Forbid network access */ + HTML_PARSE_COMPACT = 1<<16 /* compact small text nodes */ +} htmlParserOption; + +XMLPUBFUN void XMLCALL + htmlCtxtReset (htmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + htmlCtxtUseOptions (htmlParserCtxtPtr ctxt, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlReadDoc (const xmlChar *cur, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlReadFile (const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlReadMemory (const char *buffer, + int size, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlReadFd (int fd, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlReadIO (xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlCtxtReadDoc (xmlParserCtxtPtr ctxt, + const xmlChar *cur, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlCtxtReadFile (xmlParserCtxtPtr ctxt, + const char *filename, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlCtxtReadMemory (xmlParserCtxtPtr ctxt, + const char *buffer, + int size, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlCtxtReadFd (xmlParserCtxtPtr ctxt, + int fd, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN htmlDocPtr XMLCALL + htmlCtxtReadIO (xmlParserCtxtPtr ctxt, + xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + const char *URL, + const char *encoding, + int options); + +/* NRK/Jan2003: further knowledge of HTML structure + */ +typedef enum { + HTML_NA = 0 , /* something we don't check at all */ + HTML_INVALID = 0x1 , + HTML_DEPRECATED = 0x2 , + HTML_VALID = 0x4 , + HTML_REQUIRED = 0xc /* VALID bit set so ( & HTML_VALID ) is TRUE */ +} htmlStatus ; + +/* Using htmlElemDesc rather than name here, to emphasise the fact + that otherwise there's a lookup overhead +*/ +XMLPUBFUN htmlStatus XMLCALL htmlAttrAllowed(const htmlElemDesc*, const xmlChar*, int) ; +XMLPUBFUN int XMLCALL htmlElementAllowedHere(const htmlElemDesc*, const xmlChar*) ; +XMLPUBFUN htmlStatus XMLCALL htmlElementStatusHere(const htmlElemDesc*, const htmlElemDesc*) ; +XMLPUBFUN htmlStatus XMLCALL htmlNodeStatus(const htmlNodePtr, int) ; +/** + * htmlDefaultSubelement: + * @elt: HTML element + * + * Returns the default subelement for this element + */ +#define htmlDefaultSubelement(elt) elt->defaultsubelt +/** + * htmlElementAllowedHereDesc: + * @parent: HTML parent element + * @elt: HTML element + * + * Checks whether an HTML element description may be a + * direct child of the specified element. + * + * Returns 1 if allowed; 0 otherwise. + */ +#define htmlElementAllowedHereDesc(parent,elt) \ + htmlElementAllowedHere((parent), (elt)->name) +/** + * htmlRequiredAttrs: + * @elt: HTML element + * + * Returns the attributes required for the specified element. + */ +#define htmlRequiredAttrs(elt) (elt)->attrs_req + + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_HTML_ENABLED */ +#endif /* __HTML_PARSER_H__ */ diff --git a/external-libs/libxml2/include/libxml/HTMLtree.h b/external-libs/libxml2/include/libxml/HTMLtree.h new file mode 100644 index 0000000..6ea8207 --- /dev/null +++ b/external-libs/libxml2/include/libxml/HTMLtree.h @@ -0,0 +1,147 @@ +/* + * Summary: specific APIs to process HTML tree, especially serialization + * Description: this module implements a few function needed to process + * tree in an HTML specific way. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __HTML_TREE_H__ +#define __HTML_TREE_H__ + +#include +#include +#include +#include + +#ifdef LIBXML_HTML_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * HTML_TEXT_NODE: + * + * Macro. A text node in a HTML document is really implemented + * the same way as a text node in an XML document. + */ +#define HTML_TEXT_NODE XML_TEXT_NODE +/** + * HTML_ENTITY_REF_NODE: + * + * Macro. An entity reference in a HTML document is really implemented + * the same way as an entity reference in an XML document. + */ +#define HTML_ENTITY_REF_NODE XML_ENTITY_REF_NODE +/** + * HTML_COMMENT_NODE: + * + * Macro. A comment in a HTML document is really implemented + * the same way as a comment in an XML document. + */ +#define HTML_COMMENT_NODE XML_COMMENT_NODE +/** + * HTML_PRESERVE_NODE: + * + * Macro. A preserved node in a HTML document is really implemented + * the same way as a CDATA section in an XML document. + */ +#define HTML_PRESERVE_NODE XML_CDATA_SECTION_NODE +/** + * HTML_PI_NODE: + * + * Macro. A processing instruction in a HTML document is really implemented + * the same way as a processing instruction in an XML document. + */ +#define HTML_PI_NODE XML_PI_NODE + +XMLPUBFUN htmlDocPtr XMLCALL + htmlNewDoc (const xmlChar *URI, + const xmlChar *ExternalID); +XMLPUBFUN htmlDocPtr XMLCALL + htmlNewDocNoDtD (const xmlChar *URI, + const xmlChar *ExternalID); +XMLPUBFUN const xmlChar * XMLCALL + htmlGetMetaEncoding (htmlDocPtr doc); +XMLPUBFUN int XMLCALL + htmlSetMetaEncoding (htmlDocPtr doc, + const xmlChar *encoding); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + htmlDocDumpMemory (xmlDocPtr cur, + xmlChar **mem, + int *size); +XMLPUBFUN void XMLCALL + htmlDocDumpMemoryFormat (xmlDocPtr cur, + xmlChar **mem, + int *size, + int format); +XMLPUBFUN int XMLCALL + htmlDocDump (FILE *f, + xmlDocPtr cur); +XMLPUBFUN int XMLCALL + htmlSaveFile (const char *filename, + xmlDocPtr cur); +XMLPUBFUN int XMLCALL + htmlNodeDump (xmlBufferPtr buf, + xmlDocPtr doc, + xmlNodePtr cur); +XMLPUBFUN void XMLCALL + htmlNodeDumpFile (FILE *out, + xmlDocPtr doc, + xmlNodePtr cur); +XMLPUBFUN int XMLCALL + htmlNodeDumpFileFormat (FILE *out, + xmlDocPtr doc, + xmlNodePtr cur, + const char *encoding, + int format); +XMLPUBFUN int XMLCALL + htmlSaveFileEnc (const char *filename, + xmlDocPtr cur, + const char *encoding); +XMLPUBFUN int XMLCALL + htmlSaveFileFormat (const char *filename, + xmlDocPtr cur, + const char *encoding, + int format); + +XMLPUBFUN void XMLCALL + htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, + xmlDocPtr doc, + xmlNodePtr cur, + const char *encoding, + int format); +XMLPUBFUN void XMLCALL + htmlDocContentDumpOutput(xmlOutputBufferPtr buf, + xmlDocPtr cur, + const char *encoding); +XMLPUBFUN void XMLCALL + htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf, + xmlDocPtr cur, + const char *encoding, + int format); +XMLPUBFUN void XMLCALL + htmlNodeDumpOutput (xmlOutputBufferPtr buf, + xmlDocPtr doc, + xmlNodePtr cur, + const char *encoding); + +#endif /* LIBXML_OUTPUT_ENABLED */ + +XMLPUBFUN int XMLCALL + htmlIsBooleanAttr (const xmlChar *name); + + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_HTML_ENABLED */ + +#endif /* __HTML_TREE_H__ */ + diff --git a/external-libs/libxml2/include/libxml/Makefile b/external-libs/libxml2/include/libxml/Makefile new file mode 100644 index 0000000..96d5d4e --- /dev/null +++ b/external-libs/libxml2/include/libxml/Makefile @@ -0,0 +1,565 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# include/libxml/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + +pkgdatadir = $(datadir)/libxml2 +pkglibdir = $(libdir)/libxml2 +pkgincludedir = $(includedir)/libxml2 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = i686-pc-cygwin +host_triplet = i686-pc-cygwin +subdir = include/libxml +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/xmlversion.h.in $(xmlinc_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = xmlversion.h +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(xmlincdir)" +xmlincHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(xmlinc_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} /c/libxml2-2.6.32/missing --run aclocal-1.10 +AMTAR = ${SHELL} /c/libxml2-2.6.32/missing --run tar +AR = ar +AS = as +AUTOCONF = ${SHELL} /c/libxml2-2.6.32/missing --run autoconf +AUTOHEADER = ${SHELL} /c/libxml2-2.6.32/missing --run autoheader +AUTOMAKE = ${SHELL} /c/libxml2-2.6.32/missing --run automake-1.10 +AWK = gawk +BASE_THREAD_LIBS = +C14N_OBJ = c14n.c +CATALOG_OBJ = catalog.o +CC = gcc +CCDEPMODE = depmode=none +CFLAGS = -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -DLIBXML_STATIC +CPP = gcc -E +CPPFLAGS = +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=none +CXXFLAGS = -g -O2 +CYGPATH_W = cygpath -w +CYGWIN_EXTRA_LDFLAGS = -no-undefined +CYGWIN_EXTRA_PYTHON_LIBADD = -L/usr/lib/python2.5 /config -lpython2.5 +DEBUG_OBJ = debugXML.o +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = dlltool +DOCB_OBJ = DOCBparser.o +ECHO = echo +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /usr/bin/grep -E +EXEEXT = .exe +F77 = +FFLAGS = +FTP_OBJ = nanoftp.o +GREP = /usr/bin/grep +HAVE_ISINF = +HAVE_ISNAN = +HTML_DIR = $(datadir)/doc/$(PACKAGE)-$(VERSION)/html +HTML_OBJ = HTMLparser.o HTMLtree.o +HTTP_OBJ = nanohttp.o +ICONV_LIBS = +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +LDFLAGS = +LIBOBJS = +LIBS = +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIBXML_MAJOR_VERSION = 2 +LIBXML_MICRO_VERSION = 32 +LIBXML_MINOR_VERSION = 6 +LIBXML_VERSION = 2.6.32 +LIBXML_VERSION_EXTRA = +LIBXML_VERSION_INFO = 8:32:6 +LIBXML_VERSION_NUMBER = 20632 +LN_S = ln -s +LTLIBOBJS = +MAKEINFO = ${SHELL} /c/libxml2-2.6.32/missing --run makeinfo +MKDIR_P = /usr/bin/mkdir -p +MODULE_EXTENSION = .dll +MODULE_PLATFORM_LIBS = +MV = /usr/bin/mv +M_LIBS = -lm +OBJDUMP = objdump +OBJEXT = o +PACKAGE = libxml2 +PACKAGE_BUGREPORT = +PACKAGE_NAME = +PACKAGE_STRING = +PACKAGE_TARNAME = +PACKAGE_VERSION = +PATH_SEPARATOR = : +PERL = /usr/bin/perl +PYTHON = /c/Python25/python +PYTHON_INCLUDES = +PYTHON_SITE_PACKAGES = c:\Python25\Lib\site-packages +PYTHON_SUBDIR = +PYTHON_TESTS = +PYTHON_VERSION = 2.5 +RANLIB = ranlib +RDL_LIBS = +READER_TEST = Readertests +RELDATE = Mon Apr 21 2008 +RM = /usr/bin/rm +SED = /usr/bin/sed +SET_MAKE = +SHELL = /bin/sh +STATIC_BINARIES = +STRIP = strip +TAR = /usr/bin/tar +TEST_C14N = C14Ntests +TEST_CATALOG = Catatests +TEST_DEBUG = Scripttests +TEST_HTML = HTMLtests +TEST_MODULES = +TEST_PATTERN = Patterntests +TEST_PHTML = HTMLPushtests +TEST_PUSH = XMLPushtests +TEST_REGEXPS = Regexptests Automatatests +TEST_SAX = SAXtests +TEST_SCHEMAS = Schemastests Relaxtests +TEST_SCHEMATRON = Schematrontests +TEST_THREADS = +TEST_VALID = Validtests +TEST_VTIME = VTimingtests +TEST_XINCLUDE = XIncludetests +TEST_XPATH = XPathtests +TEST_XPTR = XPtrtests +THREADS_W32 = +THREAD_CFLAGS = +THREAD_LIBS = +U = +VERSION = 2.6.32 +WGET = /usr/bin/wget +WIN32_EXTRA_LDFLAGS = +WIN32_EXTRA_LIBADD = +WITH_C14N = 1 +WITH_CATALOG = 1 +WITH_DEBUG = 1 +WITH_DOCB = 1 +WITH_FTP = 1 +WITH_HTML = 1 +WITH_HTTP = 1 +WITH_ICONV = 0 +WITH_ISO8859X = 1 +WITH_LEGACY = 1 +WITH_MEM_DEBUG = 0 +WITH_MODULES = 0 +WITH_OUTPUT = 1 +WITH_PATTERN = 1 +WITH_PUSH = 1 +WITH_READER = 1 +WITH_REGEXPS = 1 +WITH_RUN_DEBUG = 0 +WITH_SAX1 = 1 +WITH_SCHEMAS = 1 +WITH_SCHEMATRON = 1 +WITH_THREADS = 0 +WITH_TREE = 1 +WITH_TRIO = 0 +WITH_VALID = 1 +WITH_WRITER = 1 +WITH_XINCLUDE = 1 +WITH_XPATH = 1 +WITH_XPTR = 1 +WITH_ZLIB = 1 +XINCLUDE_OBJ = xinclude.o +XMLLINT = /usr/bin/xmllint +XML_CFLAGS = -DLIBXML_STATIC +XML_INCLUDEDIR = -I${includedir}/libxml2 +XML_LIBDIR = -L${libdir} +XML_LIBS = -lxml2 -Lc:/zlib-1.2.3/install/lib -lz -lm +XML_LIBTOOLLIBS = libxml2.la +XPATH_OBJ = xpath.o +XPTR_OBJ = xpointer.o +XSLTPROC = /usr/bin/xsltproc +Z_CFLAGS = -Ic:/zlib-1.2.3/install/include +Z_LIBS = -Lc:/zlib-1.2.3/install/lib -lz +abs_builddir = /c/libxml2-2.6.32/include/libxml +abs_srcdir = /c/libxml2-2.6.32/include/libxml +abs_top_builddir = /c/libxml2-2.6.32 +abs_top_srcdir = /c/libxml2-2.6.32 +ac_ct_CC = gcc +ac_ct_CXX = g++ +ac_ct_F77 = +am__include = include +am__leading_dot = . +am__quote = +am__tar = ${AMTAR} chof - "$$tardir" +am__untar = ${AMTAR} xf - +bindir = ${exec_prefix}/bin +build = i686-pc-cygwin +build_alias = +build_cpu = i686 +build_os = cygwin +build_vendor = pc +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = i686-pc-cygwin +host_alias = +host_cpu = i686 +host_os = cygwin +host_vendor = pc +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = $(SHELL) /c/libxml2-2.6.32/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = /usr/bin/mkdir -p +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +pythondir = $(libdir)/python$(PYTHON_VERSION)/site-packages +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_builddir = ../.. +top_srcdir = ../.. +xmlincdir = $(includedir)/libxml2/libxml +xmlinc_HEADERS = \ + SAX.h \ + entities.h \ + encoding.h \ + parser.h \ + parserInternals.h \ + xmlerror.h \ + HTMLparser.h \ + HTMLtree.h \ + debugXML.h \ + tree.h \ + list.h \ + hash.h \ + xpath.h \ + xpathInternals.h \ + xpointer.h \ + xinclude.h \ + xmlIO.h \ + xmlmemory.h \ + nanohttp.h \ + nanoftp.h \ + uri.h \ + valid.h \ + xlink.h \ + xmlversion.h \ + DOCBparser.h \ + catalog.h \ + threads.h \ + globals.h \ + c14n.h \ + xmlautomata.h \ + xmlregexp.h \ + xmlmodule.h \ + xmlschemas.h \ + schemasInternals.h \ + xmlschemastypes.h \ + xmlstring.h \ + xmlunicode.h \ + xmlreader.h \ + relaxng.h \ + dict.h \ + SAX2.h \ + xmlexports.h \ + xmlwriter.h \ + chvalid.h \ + pattern.h \ + xmlsave.h \ + schematron.h + +EXTRA_DIST = xmlversion.h.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/libxml/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/libxml/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +xmlversion.h: $(top_builddir)/config.status $(srcdir)/xmlversion.h.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-xmlincHEADERS: $(xmlinc_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(xmlincdir)" || $(MKDIR_P) "$(DESTDIR)$(xmlincdir)" + @list='$(xmlinc_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(xmlincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(xmlincdir)/$$f'"; \ + $(xmlincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(xmlincdir)/$$f"; \ + done + +uninstall-xmlincHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(xmlinc_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(xmlincdir)/$$f'"; \ + rm -f "$(DESTDIR)$(xmlincdir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(xmlincdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-xmlincHEADERS + +install-dvi: install-dvi-am + +install-exec-am: + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-exec-hook + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-xmlincHEADERS + +.MAKE: install-am install-exec-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool ctags distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-exec-hook install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + install-xmlincHEADERS installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-xmlincHEADERS + + +install-exec-hook: + $(mkinstalldirs) $(DESTDIR)$(xmlincdir) +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external-libs/libxml2/include/libxml/Makefile.am b/external-libs/libxml2/include/libxml/Makefile.am new file mode 100644 index 0000000..bf03a3b --- /dev/null +++ b/external-libs/libxml2/include/libxml/Makefile.am @@ -0,0 +1,57 @@ +## Process this file with automake to produce Makefile.in + +xmlincdir = $(includedir)/libxml2/libxml + +xmlinc_HEADERS = \ + SAX.h \ + entities.h \ + encoding.h \ + parser.h \ + parserInternals.h \ + xmlerror.h \ + HTMLparser.h \ + HTMLtree.h \ + debugXML.h \ + tree.h \ + list.h \ + hash.h \ + xpath.h \ + xpathInternals.h \ + xpointer.h \ + xinclude.h \ + xmlIO.h \ + xmlmemory.h \ + nanohttp.h \ + nanoftp.h \ + uri.h \ + valid.h \ + xlink.h \ + xmlversion.h \ + DOCBparser.h \ + catalog.h \ + threads.h \ + globals.h \ + c14n.h \ + xmlautomata.h \ + xmlregexp.h \ + xmlmodule.h \ + xmlschemas.h \ + schemasInternals.h \ + xmlschemastypes.h \ + xmlstring.h \ + xmlunicode.h \ + xmlreader.h \ + relaxng.h \ + dict.h \ + SAX2.h \ + xmlexports.h \ + xmlwriter.h \ + chvalid.h \ + pattern.h \ + xmlsave.h \ + schematron.h + +install-exec-hook: + $(mkinstalldirs) $(DESTDIR)$(xmlincdir) + +EXTRA_DIST = xmlversion.h.in diff --git a/external-libs/libxml2/include/libxml/Makefile.in b/external-libs/libxml2/include/libxml/Makefile.in new file mode 100644 index 0000000..1d495a9 --- /dev/null +++ b/external-libs/libxml2/include/libxml/Makefile.in @@ -0,0 +1,565 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = include/libxml +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/xmlversion.h.in $(xmlinc_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = xmlversion.h +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(xmlincdir)" +xmlincHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(xmlinc_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASE_THREAD_LIBS = @BASE_THREAD_LIBS@ +C14N_OBJ = @C14N_OBJ@ +CATALOG_OBJ = @CATALOG_OBJ@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +CYGWIN_EXTRA_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ +CYGWIN_EXTRA_PYTHON_LIBADD = @CYGWIN_EXTRA_PYTHON_LIBADD@ +DEBUG_OBJ = @DEBUG_OBJ@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DOCB_OBJ = @DOCB_OBJ@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FTP_OBJ = @FTP_OBJ@ +GREP = @GREP@ +HAVE_ISINF = @HAVE_ISINF@ +HAVE_ISNAN = @HAVE_ISNAN@ +HTML_DIR = @HTML_DIR@ +HTML_OBJ = @HTML_OBJ@ +HTTP_OBJ = @HTTP_OBJ@ +ICONV_LIBS = @ICONV_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_MAJOR_VERSION = @LIBXML_MAJOR_VERSION@ +LIBXML_MICRO_VERSION = @LIBXML_MICRO_VERSION@ +LIBXML_MINOR_VERSION = @LIBXML_MINOR_VERSION@ +LIBXML_VERSION = @LIBXML_VERSION@ +LIBXML_VERSION_EXTRA = @LIBXML_VERSION_EXTRA@ +LIBXML_VERSION_INFO = @LIBXML_VERSION_INFO@ +LIBXML_VERSION_NUMBER = @LIBXML_VERSION_NUMBER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MODULE_EXTENSION = @MODULE_EXTENSION@ +MODULE_PLATFORM_LIBS = @MODULE_PLATFORM_LIBS@ +MV = @MV@ +M_LIBS = @M_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PYTHON = @PYTHON@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@ +PYTHON_SUBDIR = @PYTHON_SUBDIR@ +PYTHON_TESTS = @PYTHON_TESTS@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RDL_LIBS = @RDL_LIBS@ +READER_TEST = @READER_TEST@ +RELDATE = @RELDATE@ +RM = @RM@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STATIC_BINARIES = @STATIC_BINARIES@ +STRIP = @STRIP@ +TAR = @TAR@ +TEST_C14N = @TEST_C14N@ +TEST_CATALOG = @TEST_CATALOG@ +TEST_DEBUG = @TEST_DEBUG@ +TEST_HTML = @TEST_HTML@ +TEST_MODULES = @TEST_MODULES@ +TEST_PATTERN = @TEST_PATTERN@ +TEST_PHTML = @TEST_PHTML@ +TEST_PUSH = @TEST_PUSH@ +TEST_REGEXPS = @TEST_REGEXPS@ +TEST_SAX = @TEST_SAX@ +TEST_SCHEMAS = @TEST_SCHEMAS@ +TEST_SCHEMATRON = @TEST_SCHEMATRON@ +TEST_THREADS = @TEST_THREADS@ +TEST_VALID = @TEST_VALID@ +TEST_VTIME = @TEST_VTIME@ +TEST_XINCLUDE = @TEST_XINCLUDE@ +TEST_XPATH = @TEST_XPATH@ +TEST_XPTR = @TEST_XPTR@ +THREADS_W32 = @THREADS_W32@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +THREAD_LIBS = @THREAD_LIBS@ +U = @U@ +VERSION = @VERSION@ +WGET = @WGET@ +WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@ +WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@ +WITH_C14N = @WITH_C14N@ +WITH_CATALOG = @WITH_CATALOG@ +WITH_DEBUG = @WITH_DEBUG@ +WITH_DOCB = @WITH_DOCB@ +WITH_FTP = @WITH_FTP@ +WITH_HTML = @WITH_HTML@ +WITH_HTTP = @WITH_HTTP@ +WITH_ICONV = @WITH_ICONV@ +WITH_ISO8859X = @WITH_ISO8859X@ +WITH_LEGACY = @WITH_LEGACY@ +WITH_MEM_DEBUG = @WITH_MEM_DEBUG@ +WITH_MODULES = @WITH_MODULES@ +WITH_OUTPUT = @WITH_OUTPUT@ +WITH_PATTERN = @WITH_PATTERN@ +WITH_PUSH = @WITH_PUSH@ +WITH_READER = @WITH_READER@ +WITH_REGEXPS = @WITH_REGEXPS@ +WITH_RUN_DEBUG = @WITH_RUN_DEBUG@ +WITH_SAX1 = @WITH_SAX1@ +WITH_SCHEMAS = @WITH_SCHEMAS@ +WITH_SCHEMATRON = @WITH_SCHEMATRON@ +WITH_THREADS = @WITH_THREADS@ +WITH_TREE = @WITH_TREE@ +WITH_TRIO = @WITH_TRIO@ +WITH_VALID = @WITH_VALID@ +WITH_WRITER = @WITH_WRITER@ +WITH_XINCLUDE = @WITH_XINCLUDE@ +WITH_XPATH = @WITH_XPATH@ +WITH_XPTR = @WITH_XPTR@ +WITH_ZLIB = @WITH_ZLIB@ +XINCLUDE_OBJ = @XINCLUDE_OBJ@ +XMLLINT = @XMLLINT@ +XML_CFLAGS = @XML_CFLAGS@ +XML_INCLUDEDIR = @XML_INCLUDEDIR@ +XML_LIBDIR = @XML_LIBDIR@ +XML_LIBS = @XML_LIBS@ +XML_LIBTOOLLIBS = @XML_LIBTOOLLIBS@ +XPATH_OBJ = @XPATH_OBJ@ +XPTR_OBJ = @XPTR_OBJ@ +XSLTPROC = @XSLTPROC@ +Z_CFLAGS = @Z_CFLAGS@ +Z_LIBS = @Z_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xmlincdir = $(includedir)/libxml2/libxml +xmlinc_HEADERS = \ + SAX.h \ + entities.h \ + encoding.h \ + parser.h \ + parserInternals.h \ + xmlerror.h \ + HTMLparser.h \ + HTMLtree.h \ + debugXML.h \ + tree.h \ + list.h \ + hash.h \ + xpath.h \ + xpathInternals.h \ + xpointer.h \ + xinclude.h \ + xmlIO.h \ + xmlmemory.h \ + nanohttp.h \ + nanoftp.h \ + uri.h \ + valid.h \ + xlink.h \ + xmlversion.h \ + DOCBparser.h \ + catalog.h \ + threads.h \ + globals.h \ + c14n.h \ + xmlautomata.h \ + xmlregexp.h \ + xmlmodule.h \ + xmlschemas.h \ + schemasInternals.h \ + xmlschemastypes.h \ + xmlstring.h \ + xmlunicode.h \ + xmlreader.h \ + relaxng.h \ + dict.h \ + SAX2.h \ + xmlexports.h \ + xmlwriter.h \ + chvalid.h \ + pattern.h \ + xmlsave.h \ + schematron.h + +EXTRA_DIST = xmlversion.h.in +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/libxml/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/libxml/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +xmlversion.h: $(top_builddir)/config.status $(srcdir)/xmlversion.h.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-xmlincHEADERS: $(xmlinc_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(xmlincdir)" || $(MKDIR_P) "$(DESTDIR)$(xmlincdir)" + @list='$(xmlinc_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(xmlincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(xmlincdir)/$$f'"; \ + $(xmlincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(xmlincdir)/$$f"; \ + done + +uninstall-xmlincHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(xmlinc_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(xmlincdir)/$$f'"; \ + rm -f "$(DESTDIR)$(xmlincdir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(xmlincdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-xmlincHEADERS + +install-dvi: install-dvi-am + +install-exec-am: + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-exec-hook + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-xmlincHEADERS + +.MAKE: install-am install-exec-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool ctags distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-exec-hook install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + install-xmlincHEADERS installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-xmlincHEADERS + + +install-exec-hook: + $(mkinstalldirs) $(DESTDIR)$(xmlincdir) +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/external-libs/libxml2/include/libxml/SAX.h b/external-libs/libxml2/include/libxml/SAX.h new file mode 100644 index 0000000..0ca161b --- /dev/null +++ b/external-libs/libxml2/include/libxml/SAX.h @@ -0,0 +1,173 @@ +/* + * Summary: Old SAX version 1 handler, deprecated + * Description: DEPRECATED set of SAX version 1 interfaces used to + * build the DOM tree. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __XML_SAX_H__ +#define __XML_SAX_H__ + +#include +#include +#include +#include +#include + +#ifdef LIBXML_LEGACY_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif +XMLPUBFUN const xmlChar * XMLCALL + getPublicId (void *ctx); +XMLPUBFUN const xmlChar * XMLCALL + getSystemId (void *ctx); +XMLPUBFUN void XMLCALL + setDocumentLocator (void *ctx, + xmlSAXLocatorPtr loc); + +XMLPUBFUN int XMLCALL + getLineNumber (void *ctx); +XMLPUBFUN int XMLCALL + getColumnNumber (void *ctx); + +XMLPUBFUN int XMLCALL + isStandalone (void *ctx); +XMLPUBFUN int XMLCALL + hasInternalSubset (void *ctx); +XMLPUBFUN int XMLCALL + hasExternalSubset (void *ctx); + +XMLPUBFUN void XMLCALL + internalSubset (void *ctx, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN void XMLCALL + externalSubset (void *ctx, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN xmlEntityPtr XMLCALL + getEntity (void *ctx, + const xmlChar *name); +XMLPUBFUN xmlEntityPtr XMLCALL + getParameterEntity (void *ctx, + const xmlChar *name); +XMLPUBFUN xmlParserInputPtr XMLCALL + resolveEntity (void *ctx, + const xmlChar *publicId, + const xmlChar *systemId); + +XMLPUBFUN void XMLCALL + entityDecl (void *ctx, + const xmlChar *name, + int type, + const xmlChar *publicId, + const xmlChar *systemId, + xmlChar *content); +XMLPUBFUN void XMLCALL + attributeDecl (void *ctx, + const xmlChar *elem, + const xmlChar *fullname, + int type, + int def, + const xmlChar *defaultValue, + xmlEnumerationPtr tree); +XMLPUBFUN void XMLCALL + elementDecl (void *ctx, + const xmlChar *name, + int type, + xmlElementContentPtr content); +XMLPUBFUN void XMLCALL + notationDecl (void *ctx, + const xmlChar *name, + const xmlChar *publicId, + const xmlChar *systemId); +XMLPUBFUN void XMLCALL + unparsedEntityDecl (void *ctx, + const xmlChar *name, + const xmlChar *publicId, + const xmlChar *systemId, + const xmlChar *notationName); + +XMLPUBFUN void XMLCALL + startDocument (void *ctx); +XMLPUBFUN void XMLCALL + endDocument (void *ctx); +XMLPUBFUN void XMLCALL + attribute (void *ctx, + const xmlChar *fullname, + const xmlChar *value); +XMLPUBFUN void XMLCALL + startElement (void *ctx, + const xmlChar *fullname, + const xmlChar **atts); +XMLPUBFUN void XMLCALL + endElement (void *ctx, + const xmlChar *name); +XMLPUBFUN void XMLCALL + reference (void *ctx, + const xmlChar *name); +XMLPUBFUN void XMLCALL + characters (void *ctx, + const xmlChar *ch, + int len); +XMLPUBFUN void XMLCALL + ignorableWhitespace (void *ctx, + const xmlChar *ch, + int len); +XMLPUBFUN void XMLCALL + processingInstruction (void *ctx, + const xmlChar *target, + const xmlChar *data); +XMLPUBFUN void XMLCALL + globalNamespace (void *ctx, + const xmlChar *href, + const xmlChar *prefix); +XMLPUBFUN void XMLCALL + setNamespace (void *ctx, + const xmlChar *name); +XMLPUBFUN xmlNsPtr XMLCALL + getNamespace (void *ctx); +XMLPUBFUN int XMLCALL + checkNamespace (void *ctx, + xmlChar *nameSpace); +XMLPUBFUN void XMLCALL + namespaceDecl (void *ctx, + const xmlChar *href, + const xmlChar *prefix); +XMLPUBFUN void XMLCALL + comment (void *ctx, + const xmlChar *value); +XMLPUBFUN void XMLCALL + cdataBlock (void *ctx, + const xmlChar *value, + int len); + +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN void XMLCALL + initxmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr, + int warning); +#ifdef LIBXML_HTML_ENABLED +XMLPUBFUN void XMLCALL + inithtmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr); +#endif +#ifdef LIBXML_DOCB_ENABLED +XMLPUBFUN void XMLCALL + initdocbDefaultSAXHandler (xmlSAXHandlerV1 *hdlr); +#endif +#endif /* LIBXML_SAX1_ENABLED */ + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_LEGACY_ENABLED */ + +#endif /* __XML_SAX_H__ */ diff --git a/external-libs/libxml2/include/libxml/SAX2.h b/external-libs/libxml2/include/libxml/SAX2.h new file mode 100644 index 0000000..8d2db02 --- /dev/null +++ b/external-libs/libxml2/include/libxml/SAX2.h @@ -0,0 +1,176 @@ +/* + * Summary: SAX2 parser interface used to build the DOM tree + * Description: those are the default SAX2 interfaces used by + * the library when building DOM tree. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __XML_SAX2_H__ +#define __XML_SAX2_H__ + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif +XMLPUBFUN const xmlChar * XMLCALL + xmlSAX2GetPublicId (void *ctx); +XMLPUBFUN const xmlChar * XMLCALL + xmlSAX2GetSystemId (void *ctx); +XMLPUBFUN void XMLCALL + xmlSAX2SetDocumentLocator (void *ctx, + xmlSAXLocatorPtr loc); + +XMLPUBFUN int XMLCALL + xmlSAX2GetLineNumber (void *ctx); +XMLPUBFUN int XMLCALL + xmlSAX2GetColumnNumber (void *ctx); + +XMLPUBFUN int XMLCALL + xmlSAX2IsStandalone (void *ctx); +XMLPUBFUN int XMLCALL + xmlSAX2HasInternalSubset (void *ctx); +XMLPUBFUN int XMLCALL + xmlSAX2HasExternalSubset (void *ctx); + +XMLPUBFUN void XMLCALL + xmlSAX2InternalSubset (void *ctx, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN void XMLCALL + xmlSAX2ExternalSubset (void *ctx, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlSAX2GetEntity (void *ctx, + const xmlChar *name); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlSAX2GetParameterEntity (void *ctx, + const xmlChar *name); +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlSAX2ResolveEntity (void *ctx, + const xmlChar *publicId, + const xmlChar *systemId); + +XMLPUBFUN void XMLCALL + xmlSAX2EntityDecl (void *ctx, + const xmlChar *name, + int type, + const xmlChar *publicId, + const xmlChar *systemId, + xmlChar *content); +XMLPUBFUN void XMLCALL + xmlSAX2AttributeDecl (void *ctx, + const xmlChar *elem, + const xmlChar *fullname, + int type, + int def, + const xmlChar *defaultValue, + xmlEnumerationPtr tree); +XMLPUBFUN void XMLCALL + xmlSAX2ElementDecl (void *ctx, + const xmlChar *name, + int type, + xmlElementContentPtr content); +XMLPUBFUN void XMLCALL + xmlSAX2NotationDecl (void *ctx, + const xmlChar *name, + const xmlChar *publicId, + const xmlChar *systemId); +XMLPUBFUN void XMLCALL + xmlSAX2UnparsedEntityDecl (void *ctx, + const xmlChar *name, + const xmlChar *publicId, + const xmlChar *systemId, + const xmlChar *notationName); + +XMLPUBFUN void XMLCALL + xmlSAX2StartDocument (void *ctx); +XMLPUBFUN void XMLCALL + xmlSAX2EndDocument (void *ctx); +#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) +XMLPUBFUN void XMLCALL + xmlSAX2StartElement (void *ctx, + const xmlChar *fullname, + const xmlChar **atts); +XMLPUBFUN void XMLCALL + xmlSAX2EndElement (void *ctx, + const xmlChar *name); +#endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED */ +XMLPUBFUN void XMLCALL + xmlSAX2StartElementNs (void *ctx, + const xmlChar *localname, + const xmlChar *prefix, + const xmlChar *URI, + int nb_namespaces, + const xmlChar **namespaces, + int nb_attributes, + int nb_defaulted, + const xmlChar **attributes); +XMLPUBFUN void XMLCALL + xmlSAX2EndElementNs (void *ctx, + const xmlChar *localname, + const xmlChar *prefix, + const xmlChar *URI); +XMLPUBFUN void XMLCALL + xmlSAX2Reference (void *ctx, + const xmlChar *name); +XMLPUBFUN void XMLCALL + xmlSAX2Characters (void *ctx, + const xmlChar *ch, + int len); +XMLPUBFUN void XMLCALL + xmlSAX2IgnorableWhitespace (void *ctx, + const xmlChar *ch, + int len); +XMLPUBFUN void XMLCALL + xmlSAX2ProcessingInstruction (void *ctx, + const xmlChar *target, + const xmlChar *data); +XMLPUBFUN void XMLCALL + xmlSAX2Comment (void *ctx, + const xmlChar *value); +XMLPUBFUN void XMLCALL + xmlSAX2CDataBlock (void *ctx, + const xmlChar *value, + int len); + +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN int XMLCALL + xmlSAXDefaultVersion (int version); +#endif /* LIBXML_SAX1_ENABLED */ + +XMLPUBFUN int XMLCALL + xmlSAXVersion (xmlSAXHandler *hdlr, + int version); +XMLPUBFUN void XMLCALL + xmlSAX2InitDefaultSAXHandler (xmlSAXHandler *hdlr, + int warning); +#ifdef LIBXML_HTML_ENABLED +XMLPUBFUN void XMLCALL + xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr); +XMLPUBFUN void XMLCALL + htmlDefaultSAXHandlerInit (void); +#endif +#ifdef LIBXML_DOCB_ENABLED +XMLPUBFUN void XMLCALL + xmlSAX2InitDocbDefaultSAXHandler(xmlSAXHandler *hdlr); +XMLPUBFUN void XMLCALL + docbDefaultSAXHandlerInit (void); +#endif +XMLPUBFUN void XMLCALL + xmlDefaultSAXHandlerInit (void); +#ifdef __cplusplus +} +#endif +#endif /* __XML_SAX2_H__ */ diff --git a/external-libs/libxml2/include/libxml/c14n.h b/external-libs/libxml2/include/libxml/c14n.h new file mode 100644 index 0000000..9f4c6c0 --- /dev/null +++ b/external-libs/libxml2/include/libxml/c14n.h @@ -0,0 +1,105 @@ +/* + * Summary: Provide Canonical XML and Exclusive XML Canonicalization + * Description: the c14n modules provides a + * + * "Canonical XML" implementation + * http://www.w3.org/TR/xml-c14n + * + * and an + * + * "Exclusive XML Canonicalization" implementation + * http://www.w3.org/TR/xml-exc-c14n + + * Copy: See Copyright for the status of this software. + * + * Author: Aleksey Sanin + */ +#ifndef __XML_C14N_H__ +#define __XML_C14N_H__ +#ifdef LIBXML_C14N_ENABLED +#ifdef LIBXML_OUTPUT_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include +#include +#include + +/* + * XML Canonicazation + * http://www.w3.org/TR/xml-c14n + * + * Exclusive XML Canonicazation + * http://www.w3.org/TR/xml-exc-c14n + * + * Canonical form of an XML document could be created if and only if + * a) default attributes (if any) are added to all nodes + * b) all character and parsed entity references are resolved + * In order to achive this in libxml2 the document MUST be loaded with + * following global setings: + * + * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; + * xmlSubstituteEntitiesDefault(1); + * + * or corresponding parser context setting: + * xmlParserCtxtPtr ctxt; + * + * ... + * ctxt->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS; + * ctxt->replaceEntities = 1; + * ... + */ + + +XMLPUBFUN int XMLCALL + xmlC14NDocSaveTo (xmlDocPtr doc, + xmlNodeSetPtr nodes, + int exclusive, + xmlChar **inclusive_ns_prefixes, + int with_comments, + xmlOutputBufferPtr buf); + +XMLPUBFUN int XMLCALL + xmlC14NDocDumpMemory (xmlDocPtr doc, + xmlNodeSetPtr nodes, + int exclusive, + xmlChar **inclusive_ns_prefixes, + int with_comments, + xmlChar **doc_txt_ptr); + +XMLPUBFUN int XMLCALL + xmlC14NDocSave (xmlDocPtr doc, + xmlNodeSetPtr nodes, + int exclusive, + xmlChar **inclusive_ns_prefixes, + int with_comments, + const char* filename, + int compression); + + +/** + * This is the core C14N function + */ +typedef int (*xmlC14NIsVisibleCallback) (void* user_data, + xmlNodePtr node, + xmlNodePtr parent); + +XMLPUBFUN int XMLCALL + xmlC14NExecute (xmlDocPtr doc, + xmlC14NIsVisibleCallback is_visible_callback, + void* user_data, + int exclusive, + xmlChar **inclusive_ns_prefixes, + int with_comments, + xmlOutputBufferPtr buf); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* LIBXML_OUTPUT_ENABLED */ +#endif /* LIBXML_C14N_ENABLED */ +#endif /* __XML_C14N_H__ */ + diff --git a/external-libs/libxml2/include/libxml/catalog.h b/external-libs/libxml2/include/libxml/catalog.h new file mode 100644 index 0000000..b444137 --- /dev/null +++ b/external-libs/libxml2/include/libxml/catalog.h @@ -0,0 +1,182 @@ +/** + * Summary: interfaces to the Catalog handling system + * Description: the catalog module implements the support for + * XML Catalogs and SGML catalogs + * + * SGML Open Technical Resolution TR9401:1997. + * http://www.jclark.com/sp/catalog.htm + * + * XML Catalogs Working Draft 06 August 2001 + * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_CATALOG_H__ +#define __XML_CATALOG_H__ + +#include + +#include +#include +#include + +#ifdef LIBXML_CATALOG_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * XML_CATALOGS_NAMESPACE: + * + * The namespace for the XML Catalogs elements. + */ +#define XML_CATALOGS_NAMESPACE \ + (const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog" +/** + * XML_CATALOG_PI: + * + * The specific XML Catalog Processing Instuction name. + */ +#define XML_CATALOG_PI \ + (const xmlChar *) "oasis-xml-catalog" + +/* + * The API is voluntarily limited to general cataloging. + */ +typedef enum { + XML_CATA_PREFER_NONE = 0, + XML_CATA_PREFER_PUBLIC = 1, + XML_CATA_PREFER_SYSTEM +} xmlCatalogPrefer; + +typedef enum { + XML_CATA_ALLOW_NONE = 0, + XML_CATA_ALLOW_GLOBAL = 1, + XML_CATA_ALLOW_DOCUMENT = 2, + XML_CATA_ALLOW_ALL = 3 +} xmlCatalogAllow; + +typedef struct _xmlCatalog xmlCatalog; +typedef xmlCatalog *xmlCatalogPtr; + +/* + * Operations on a given catalog. + */ +XMLPUBFUN xmlCatalogPtr XMLCALL + xmlNewCatalog (int sgml); +XMLPUBFUN xmlCatalogPtr XMLCALL + xmlLoadACatalog (const char *filename); +XMLPUBFUN xmlCatalogPtr XMLCALL + xmlLoadSGMLSuperCatalog (const char *filename); +XMLPUBFUN int XMLCALL + xmlConvertSGMLCatalog (xmlCatalogPtr catal); +XMLPUBFUN int XMLCALL + xmlACatalogAdd (xmlCatalogPtr catal, + const xmlChar *type, + const xmlChar *orig, + const xmlChar *replace); +XMLPUBFUN int XMLCALL + xmlACatalogRemove (xmlCatalogPtr catal, + const xmlChar *value); +XMLPUBFUN xmlChar * XMLCALL + xmlACatalogResolve (xmlCatalogPtr catal, + const xmlChar *pubID, + const xmlChar *sysID); +XMLPUBFUN xmlChar * XMLCALL + xmlACatalogResolveSystem(xmlCatalogPtr catal, + const xmlChar *sysID); +XMLPUBFUN xmlChar * XMLCALL + xmlACatalogResolvePublic(xmlCatalogPtr catal, + const xmlChar *pubID); +XMLPUBFUN xmlChar * XMLCALL + xmlACatalogResolveURI (xmlCatalogPtr catal, + const xmlChar *URI); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlACatalogDump (xmlCatalogPtr catal, + FILE *out); +#endif /* LIBXML_OUTPUT_ENABLED */ +XMLPUBFUN void XMLCALL + xmlFreeCatalog (xmlCatalogPtr catal); +XMLPUBFUN int XMLCALL + xmlCatalogIsEmpty (xmlCatalogPtr catal); + +/* + * Global operations. + */ +XMLPUBFUN void XMLCALL + xmlInitializeCatalog (void); +XMLPUBFUN int XMLCALL + xmlLoadCatalog (const char *filename); +XMLPUBFUN void XMLCALL + xmlLoadCatalogs (const char *paths); +XMLPUBFUN void XMLCALL + xmlCatalogCleanup (void); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlCatalogDump (FILE *out); +#endif /* LIBXML_OUTPUT_ENABLED */ +XMLPUBFUN xmlChar * XMLCALL + xmlCatalogResolve (const xmlChar *pubID, + const xmlChar *sysID); +XMLPUBFUN xmlChar * XMLCALL + xmlCatalogResolveSystem (const xmlChar *sysID); +XMLPUBFUN xmlChar * XMLCALL + xmlCatalogResolvePublic (const xmlChar *pubID); +XMLPUBFUN xmlChar * XMLCALL + xmlCatalogResolveURI (const xmlChar *URI); +XMLPUBFUN int XMLCALL + xmlCatalogAdd (const xmlChar *type, + const xmlChar *orig, + const xmlChar *replace); +XMLPUBFUN int XMLCALL + xmlCatalogRemove (const xmlChar *value); +XMLPUBFUN xmlDocPtr XMLCALL + xmlParseCatalogFile (const char *filename); +XMLPUBFUN int XMLCALL + xmlCatalogConvert (void); + +/* + * Strictly minimal interfaces for per-document catalogs used + * by the parser. + */ +XMLPUBFUN void XMLCALL + xmlCatalogFreeLocal (void *catalogs); +XMLPUBFUN void * XMLCALL + xmlCatalogAddLocal (void *catalogs, + const xmlChar *URL); +XMLPUBFUN xmlChar * XMLCALL + xmlCatalogLocalResolve (void *catalogs, + const xmlChar *pubID, + const xmlChar *sysID); +XMLPUBFUN xmlChar * XMLCALL + xmlCatalogLocalResolveURI(void *catalogs, + const xmlChar *URI); +/* + * Preference settings. + */ +XMLPUBFUN int XMLCALL + xmlCatalogSetDebug (int level); +XMLPUBFUN xmlCatalogPrefer XMLCALL + xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer); +XMLPUBFUN void XMLCALL + xmlCatalogSetDefaults (xmlCatalogAllow allow); +XMLPUBFUN xmlCatalogAllow XMLCALL + xmlCatalogGetDefaults (void); + + +/* DEPRECATED interfaces */ +XMLPUBFUN const xmlChar * XMLCALL + xmlCatalogGetSystem (const xmlChar *sysID); +XMLPUBFUN const xmlChar * XMLCALL + xmlCatalogGetPublic (const xmlChar *pubID); + +#ifdef __cplusplus +} +#endif +#endif /* LIBXML_CATALOG_ENABLED */ +#endif /* __XML_CATALOG_H__ */ diff --git a/external-libs/libxml2/include/libxml/chvalid.h b/external-libs/libxml2/include/libxml/chvalid.h new file mode 100644 index 0000000..fb43016 --- /dev/null +++ b/external-libs/libxml2/include/libxml/chvalid.h @@ -0,0 +1,230 @@ +/* + * Summary: Unicode character range checking + * Description: this module exports interfaces for the character + * range validation APIs + * + * This file is automatically generated from the cvs source + * definition files using the genChRanges.py Python script + * + * Generation date: Mon Mar 27 11:09:48 2006 + * Sources: chvalid.def + * Author: William Brack + */ + +#ifndef __XML_CHVALID_H__ +#define __XML_CHVALID_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Define our typedefs and structures + * + */ +typedef struct _xmlChSRange xmlChSRange; +typedef xmlChSRange *xmlChSRangePtr; +struct _xmlChSRange { + unsigned short low; + unsigned short high; +}; + +typedef struct _xmlChLRange xmlChLRange; +typedef xmlChLRange *xmlChLRangePtr; +struct _xmlChLRange { + unsigned int low; + unsigned int high; +}; + +typedef struct _xmlChRangeGroup xmlChRangeGroup; +typedef xmlChRangeGroup *xmlChRangeGroupPtr; +struct _xmlChRangeGroup { + int nbShortRange; + int nbLongRange; + const xmlChSRange *shortRange; /* points to an array of ranges */ + const xmlChLRange *longRange; +}; + +/** + * Range checking routine + */ +XMLPUBFUN int XMLCALL + xmlCharInRange(unsigned int val, const xmlChRangeGroup *group); + + +/** + * xmlIsBaseChar_ch: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsBaseChar_ch(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \ + ((0x61 <= (c)) && ((c) <= 0x7a)) || \ + ((0xc0 <= (c)) && ((c) <= 0xd6)) || \ + ((0xd8 <= (c)) && ((c) <= 0xf6)) || \ + (0xf8 <= (c))) + +/** + * xmlIsBaseCharQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsBaseCharQ(c) (((c) < 0x100) ? \ + xmlIsBaseChar_ch((c)) : \ + xmlCharInRange((c), &xmlIsBaseCharGroup)) + +XMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup; + +/** + * xmlIsBlank_ch: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsBlank_ch(c) (((c) == 0x20) || \ + ((0x9 <= (c)) && ((c) <= 0xa)) || \ + ((c) == 0xd)) + +/** + * xmlIsBlankQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsBlankQ(c) (((c) < 0x100) ? \ + xmlIsBlank_ch((c)) : 0) + + +/** + * xmlIsChar_ch: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \ + ((c) == 0xd) || \ + (0x20 <= (c))) + +/** + * xmlIsCharQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsCharQ(c) (((c) < 0x100) ? \ + xmlIsChar_ch((c)) :\ + (((0x100 <= (c)) && ((c) <= 0xd7ff)) || \ + ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \ + ((0x10000 <= (c)) && ((c) <= 0x10ffff)))) + +XMLPUBVAR const xmlChRangeGroup xmlIsCharGroup; + +/** + * xmlIsCombiningQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsCombiningQ(c) (((c) < 0x100) ? \ + 0 : \ + xmlCharInRange((c), &xmlIsCombiningGroup)) + +XMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup; + +/** + * xmlIsDigit_ch: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39))) + +/** + * xmlIsDigitQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsDigitQ(c) (((c) < 0x100) ? \ + xmlIsDigit_ch((c)) : \ + xmlCharInRange((c), &xmlIsDigitGroup)) + +XMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup; + +/** + * xmlIsExtender_ch: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsExtender_ch(c) (((c) == 0xb7)) + +/** + * xmlIsExtenderQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsExtenderQ(c) (((c) < 0x100) ? \ + xmlIsExtender_ch((c)) : \ + xmlCharInRange((c), &xmlIsExtenderGroup)) + +XMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup; + +/** + * xmlIsIdeographicQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsIdeographicQ(c) (((c) < 0x100) ? \ + 0 :\ + (((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \ + ((c) == 0x3007) || \ + ((0x3021 <= (c)) && ((c) <= 0x3029)))) + +XMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup; +XMLPUBVAR const unsigned char xmlIsPubidChar_tab[256]; + +/** + * xmlIsPubidChar_ch: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)]) + +/** + * xmlIsPubidCharQ: + * @c: char to validate + * + * Automatically generated by genChRanges.py + */ +#define xmlIsPubidCharQ(c) (((c) < 0x100) ? \ + xmlIsPubidChar_ch((c)) : 0) + +XMLPUBFUN int XMLCALL + xmlIsBaseChar(unsigned int ch); +XMLPUBFUN int XMLCALL + xmlIsBlank(unsigned int ch); +XMLPUBFUN int XMLCALL + xmlIsChar(unsigned int ch); +XMLPUBFUN int XMLCALL + xmlIsCombining(unsigned int ch); +XMLPUBFUN int XMLCALL + xmlIsDigit(unsigned int ch); +XMLPUBFUN int XMLCALL + xmlIsExtender(unsigned int ch); +XMLPUBFUN int XMLCALL + xmlIsIdeographic(unsigned int ch); +XMLPUBFUN int XMLCALL + xmlIsPubidChar(unsigned int ch); + +#ifdef __cplusplus +} +#endif +#endif /* __XML_CHVALID_H__ */ diff --git a/external-libs/libxml2/include/libxml/debugXML.h b/external-libs/libxml2/include/libxml/debugXML.h new file mode 100644 index 0000000..5a9d20b --- /dev/null +++ b/external-libs/libxml2/include/libxml/debugXML.h @@ -0,0 +1,217 @@ +/* + * Summary: Tree debugging APIs + * Description: Interfaces to a set of routines used for debugging the tree + * produced by the XML parser. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __DEBUG_XML__ +#define __DEBUG_XML__ +#include +#include +#include + +#ifdef LIBXML_DEBUG_ENABLED + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The standard Dump routines. + */ +XMLPUBFUN void XMLCALL + xmlDebugDumpString (FILE *output, + const xmlChar *str); +XMLPUBFUN void XMLCALL + xmlDebugDumpAttr (FILE *output, + xmlAttrPtr attr, + int depth); +XMLPUBFUN void XMLCALL + xmlDebugDumpAttrList (FILE *output, + xmlAttrPtr attr, + int depth); +XMLPUBFUN void XMLCALL + xmlDebugDumpOneNode (FILE *output, + xmlNodePtr node, + int depth); +XMLPUBFUN void XMLCALL + xmlDebugDumpNode (FILE *output, + xmlNodePtr node, + int depth); +XMLPUBFUN void XMLCALL + xmlDebugDumpNodeList (FILE *output, + xmlNodePtr node, + int depth); +XMLPUBFUN void XMLCALL + xmlDebugDumpDocumentHead(FILE *output, + xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlDebugDumpDocument (FILE *output, + xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlDebugDumpDTD (FILE *output, + xmlDtdPtr dtd); +XMLPUBFUN void XMLCALL + xmlDebugDumpEntities (FILE *output, + xmlDocPtr doc); + +/**************************************************************** + * * + * Checking routines * + * * + ****************************************************************/ + +XMLPUBFUN int XMLCALL + xmlDebugCheckDocument (FILE * output, + xmlDocPtr doc); + +/**************************************************************** + * * + * XML shell helpers * + * * + ****************************************************************/ + +XMLPUBFUN void XMLCALL + xmlLsOneNode (FILE *output, xmlNodePtr node); +XMLPUBFUN int XMLCALL + xmlLsCountNode (xmlNodePtr node); + +XMLPUBFUN const char * XMLCALL + xmlBoolToText (int boolval); + +/**************************************************************** + * * + * The XML shell related structures and functions * + * * + ****************************************************************/ + +#ifdef LIBXML_XPATH_ENABLED +/** + * xmlShellReadlineFunc: + * @prompt: a string prompt + * + * This is a generic signature for the XML shell input function. + * + * Returns a string which will be freed by the Shell. + */ +typedef char * (* xmlShellReadlineFunc)(char *prompt); + +/** + * xmlShellCtxt: + * + * A debugging shell context. + * TODO: add the defined function tables. + */ +typedef struct _xmlShellCtxt xmlShellCtxt; +typedef xmlShellCtxt *xmlShellCtxtPtr; +struct _xmlShellCtxt { + char *filename; + xmlDocPtr doc; + xmlNodePtr node; + xmlXPathContextPtr pctxt; + int loaded; + FILE *output; + xmlShellReadlineFunc input; +}; + +/** + * xmlShellCmd: + * @ctxt: a shell context + * @arg: a string argument + * @node: a first node + * @node2: a second node + * + * This is a generic signature for the XML shell functions. + * + * Returns an int, negative returns indicating errors. + */ +typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt, + char *arg, + xmlNodePtr node, + xmlNodePtr node2); + +XMLPUBFUN void XMLCALL + xmlShellPrintXPathError (int errorType, + const char *arg); +XMLPUBFUN void XMLCALL + xmlShellPrintXPathResult(xmlXPathObjectPtr list); +XMLPUBFUN int XMLCALL + xmlShellList (xmlShellCtxtPtr ctxt, + char *arg, + xmlNodePtr node, + xmlNodePtr node2); +XMLPUBFUN int XMLCALL + xmlShellBase (xmlShellCtxtPtr ctxt, + char *arg, + xmlNodePtr node, + xmlNodePtr node2); +XMLPUBFUN int XMLCALL + xmlShellDir (xmlShellCtxtPtr ctxt, + char *arg, + xmlNodePtr node, + xmlNodePtr node2); +XMLPUBFUN int XMLCALL + xmlShellLoad (xmlShellCtxtPtr ctxt, + char *filename, + xmlNodePtr node, + xmlNodePtr node2); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlShellPrintNode (xmlNodePtr node); +XMLPUBFUN int XMLCALL + xmlShellCat (xmlShellCtxtPtr ctxt, + char *arg, + xmlNodePtr node, + xmlNodePtr node2); +XMLPUBFUN int XMLCALL + xmlShellWrite (xmlShellCtxtPtr ctxt, + char *filename, + xmlNodePtr node, + xmlNodePtr node2); +XMLPUBFUN int XMLCALL + xmlShellSave (xmlShellCtxtPtr ctxt, + char *filename, + xmlNodePtr node, + xmlNodePtr node2); +#endif /* LIBXML_OUTPUT_ENABLED */ +#ifdef LIBXML_VALID_ENABLED +XMLPUBFUN int XMLCALL + xmlShellValidate (xmlShellCtxtPtr ctxt, + char *dtd, + xmlNodePtr node, + xmlNodePtr node2); +#endif /* LIBXML_VALID_ENABLED */ +XMLPUBFUN int XMLCALL + xmlShellDu (xmlShellCtxtPtr ctxt, + char *arg, + xmlNodePtr tree, + xmlNodePtr node2); +XMLPUBFUN int XMLCALL + xmlShellPwd (xmlShellCtxtPtr ctxt, + char *buffer, + xmlNodePtr node, + xmlNodePtr node2); + +/* + * The Shell interface. + */ +XMLPUBFUN void XMLCALL + xmlShell (xmlDocPtr doc, + char *filename, + xmlShellReadlineFunc input, + FILE *output); + +#endif /* LIBXML_XPATH_ENABLED */ + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_DEBUG_ENABLED */ +#endif /* __DEBUG_XML__ */ diff --git a/external-libs/libxml2/include/libxml/dict.h b/external-libs/libxml2/include/libxml/dict.h new file mode 100644 index 0000000..abb8339 --- /dev/null +++ b/external-libs/libxml2/include/libxml/dict.h @@ -0,0 +1,69 @@ +/* + * Summary: string dictionnary + * Description: dictionary of reusable strings, just used to avoid allocation + * and freeing operations. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_DICT_H__ +#define __XML_DICT_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The dictionnary. + */ +typedef struct _xmlDict xmlDict; +typedef xmlDict *xmlDictPtr; + +/* + * Constructor and destructor. + */ +XMLPUBFUN xmlDictPtr XMLCALL + xmlDictCreate (void); +XMLPUBFUN xmlDictPtr XMLCALL + xmlDictCreateSub(xmlDictPtr sub); +XMLPUBFUN int XMLCALL + xmlDictReference(xmlDictPtr dict); +XMLPUBFUN void XMLCALL + xmlDictFree (xmlDictPtr dict); + +/* + * Lookup of entry in the dictionnary. + */ +XMLPUBFUN const xmlChar * XMLCALL + xmlDictLookup (xmlDictPtr dict, + const xmlChar *name, + int len); +XMLPUBFUN const xmlChar * XMLCALL + xmlDictExists (xmlDictPtr dict, + const xmlChar *name, + int len); +XMLPUBFUN const xmlChar * XMLCALL + xmlDictQLookup (xmlDictPtr dict, + const xmlChar *prefix, + const xmlChar *name); +XMLPUBFUN int XMLCALL + xmlDictOwns (xmlDictPtr dict, + const xmlChar *str); +XMLPUBFUN int XMLCALL + xmlDictSize (xmlDictPtr dict); + +/* + * Cleanup function + */ +XMLPUBFUN void XMLCALL + xmlDictCleanup (void); + +#ifdef __cplusplus +} +#endif +#endif /* ! __XML_DICT_H__ */ diff --git a/external-libs/libxml2/include/libxml/encoding.h b/external-libs/libxml2/include/libxml/encoding.h new file mode 100644 index 0000000..c74b25f --- /dev/null +++ b/external-libs/libxml2/include/libxml/encoding.h @@ -0,0 +1,226 @@ +/* + * Summary: interface for the encoding conversion functions + * Description: interface for the encoding conversion functions needed for + * XML basic encoding and iconv() support. + * + * Related specs are + * rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies + * [ISO-10646] UTF-8 and UTF-16 in Annexes + * [ISO-8859-1] ISO Latin-1 characters codes. + * [UNICODE] The Unicode Consortium, "The Unicode Standard -- + * Worldwide Character Encoding -- Version 1.0", Addison- + * Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is + * described in Unicode Technical Report #4. + * [US-ASCII] Coded Character Set--7-bit American Standard Code for + * Information Interchange, ANSI X3.4-1986. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_CHAR_ENCODING_H__ +#define __XML_CHAR_ENCODING_H__ + +#include + +#ifdef LIBXML_ICONV_ENABLED +#include +#endif +#ifdef __cplusplus +extern "C" { +#endif + +/* + * xmlCharEncoding: + * + * Predefined values for some standard encodings. + * Libxml does not do beforehand translation on UTF8 and ISOLatinX. + * It also supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default. + * + * Anything else would have to be translated to UTF8 before being + * given to the parser itself. The BOM for UTF16 and the encoding + * declaration are looked at and a converter is looked for at that + * point. If not found the parser stops here as asked by the XML REC. A + * converter can be registered by the user using xmlRegisterCharEncodingHandler + * but the current form doesn't allow stateful transcoding (a serious + * problem agreed !). If iconv has been found it will be used + * automatically and allow stateful transcoding, the simplest is then + * to be sure to enable iconv and to provide iconv libs for the encoding + * support needed. + * + * Note that the generic "UTF-16" is not a predefined value. Instead, only + * the specific UTF-16LE and UTF-16BE are present. + */ +typedef enum { + XML_CHAR_ENCODING_ERROR= -1, /* No char encoding detected */ + XML_CHAR_ENCODING_NONE= 0, /* No char encoding detected */ + XML_CHAR_ENCODING_UTF8= 1, /* UTF-8 */ + XML_CHAR_ENCODING_UTF16LE= 2, /* UTF-16 little endian */ + XML_CHAR_ENCODING_UTF16BE= 3, /* UTF-16 big endian */ + XML_CHAR_ENCODING_UCS4LE= 4, /* UCS-4 little endian */ + XML_CHAR_ENCODING_UCS4BE= 5, /* UCS-4 big endian */ + XML_CHAR_ENCODING_EBCDIC= 6, /* EBCDIC uh! */ + XML_CHAR_ENCODING_UCS4_2143=7, /* UCS-4 unusual ordering */ + XML_CHAR_ENCODING_UCS4_3412=8, /* UCS-4 unusual ordering */ + XML_CHAR_ENCODING_UCS2= 9, /* UCS-2 */ + XML_CHAR_ENCODING_8859_1= 10,/* ISO-8859-1 ISO Latin 1 */ + XML_CHAR_ENCODING_8859_2= 11,/* ISO-8859-2 ISO Latin 2 */ + XML_CHAR_ENCODING_8859_3= 12,/* ISO-8859-3 */ + XML_CHAR_ENCODING_8859_4= 13,/* ISO-8859-4 */ + XML_CHAR_ENCODING_8859_5= 14,/* ISO-8859-5 */ + XML_CHAR_ENCODING_8859_6= 15,/* ISO-8859-6 */ + XML_CHAR_ENCODING_8859_7= 16,/* ISO-8859-7 */ + XML_CHAR_ENCODING_8859_8= 17,/* ISO-8859-8 */ + XML_CHAR_ENCODING_8859_9= 18,/* ISO-8859-9 */ + XML_CHAR_ENCODING_2022_JP= 19,/* ISO-2022-JP */ + XML_CHAR_ENCODING_SHIFT_JIS=20,/* Shift_JIS */ + XML_CHAR_ENCODING_EUC_JP= 21,/* EUC-JP */ + XML_CHAR_ENCODING_ASCII= 22 /* pure ASCII */ +} xmlCharEncoding; + +/** + * xmlCharEncodingInputFunc: + * @out: a pointer to an array of bytes to store the UTF-8 result + * @outlen: the length of @out + * @in: a pointer to an array of chars in the original encoding + * @inlen: the length of @in + * + * Take a block of chars in the original encoding and try to convert + * it to an UTF-8 block of chars out. + * + * Returns the number of bytes written, -1 if lack of space, or -2 + * if the transcoding failed. + * The value of @inlen after return is the number of octets consumed + * if the return value is positive, else unpredictiable. + * The value of @outlen after return is the number of octets consumed. + */ +typedef int (* xmlCharEncodingInputFunc)(unsigned char *out, int *outlen, + const unsigned char *in, int *inlen); + + +/** + * xmlCharEncodingOutputFunc: + * @out: a pointer to an array of bytes to store the result + * @outlen: the length of @out + * @in: a pointer to an array of UTF-8 chars + * @inlen: the length of @in + * + * Take a block of UTF-8 chars in and try to convert it to another + * encoding. + * Note: a first call designed to produce heading info is called with + * in = NULL. If stateful this should also initialize the encoder state. + * + * Returns the number of bytes written, -1 if lack of space, or -2 + * if the transcoding failed. + * The value of @inlen after return is the number of octets consumed + * if the return value is positive, else unpredictiable. + * The value of @outlen after return is the number of octets produced. + */ +typedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen, + const unsigned char *in, int *inlen); + + +/* + * Block defining the handlers for non UTF-8 encodings. + * If iconv is supported, there are two extra fields. + */ + +typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler; +typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr; +struct _xmlCharEncodingHandler { + char *name; + xmlCharEncodingInputFunc input; + xmlCharEncodingOutputFunc output; +#ifdef LIBXML_ICONV_ENABLED + iconv_t iconv_in; + iconv_t iconv_out; +#endif /* LIBXML_ICONV_ENABLED */ +}; + +#ifdef __cplusplus +} +#endif +#include +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Interfaces for encoding handlers. + */ +XMLPUBFUN void XMLCALL + xmlInitCharEncodingHandlers (void); +XMLPUBFUN void XMLCALL + xmlCleanupCharEncodingHandlers (void); +XMLPUBFUN void XMLCALL + xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler); +XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL + xmlGetCharEncodingHandler (xmlCharEncoding enc); +XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL + xmlFindCharEncodingHandler (const char *name); +XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL + xmlNewCharEncodingHandler (const char *name, + xmlCharEncodingInputFunc input, + xmlCharEncodingOutputFunc output); + +/* + * Interfaces for encoding names and aliases. + */ +XMLPUBFUN int XMLCALL + xmlAddEncodingAlias (const char *name, + const char *alias); +XMLPUBFUN int XMLCALL + xmlDelEncodingAlias (const char *alias); +XMLPUBFUN const char * XMLCALL + xmlGetEncodingAlias (const char *alias); +XMLPUBFUN void XMLCALL + xmlCleanupEncodingAliases (void); +XMLPUBFUN xmlCharEncoding XMLCALL + xmlParseCharEncoding (const char *name); +XMLPUBFUN const char * XMLCALL + xmlGetCharEncodingName (xmlCharEncoding enc); + +/* + * Interfaces directly used by the parsers. + */ +XMLPUBFUN xmlCharEncoding XMLCALL + xmlDetectCharEncoding (const unsigned char *in, + int len); + +XMLPUBFUN int XMLCALL + xmlCharEncOutFunc (xmlCharEncodingHandler *handler, + xmlBufferPtr out, + xmlBufferPtr in); + +XMLPUBFUN int XMLCALL + xmlCharEncInFunc (xmlCharEncodingHandler *handler, + xmlBufferPtr out, + xmlBufferPtr in); +XMLPUBFUN int XMLCALL + xmlCharEncFirstLine (xmlCharEncodingHandler *handler, + xmlBufferPtr out, + xmlBufferPtr in); +XMLPUBFUN int XMLCALL + xmlCharEncCloseFunc (xmlCharEncodingHandler *handler); + +/* + * Export a few useful functions + */ +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN int XMLCALL + UTF8Toisolat1 (unsigned char *out, + int *outlen, + const unsigned char *in, + int *inlen); +#endif /* LIBXML_OUTPUT_ENABLED */ +XMLPUBFUN int XMLCALL + isolat1ToUTF8 (unsigned char *out, + int *outlen, + const unsigned char *in, + int *inlen); +#ifdef __cplusplus +} +#endif + +#endif /* __XML_CHAR_ENCODING_H__ */ diff --git a/external-libs/libxml2/include/libxml/entities.h b/external-libs/libxml2/include/libxml/entities.h new file mode 100644 index 0000000..fdd7222 --- /dev/null +++ b/external-libs/libxml2/include/libxml/entities.h @@ -0,0 +1,140 @@ +/* + * Summary: interface for the XML entities handling + * Description: this module provides some of the entity API needed + * for the parser and applications. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_ENTITIES_H__ +#define __XML_ENTITIES_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The different valid entity types. + */ +typedef enum { + XML_INTERNAL_GENERAL_ENTITY = 1, + XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2, + XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3, + XML_INTERNAL_PARAMETER_ENTITY = 4, + XML_EXTERNAL_PARAMETER_ENTITY = 5, + XML_INTERNAL_PREDEFINED_ENTITY = 6 +} xmlEntityType; + +/* + * An unit of storage for an entity, contains the string, the value + * and the linkind data needed for the linking in the hash table. + */ + +struct _xmlEntity { + void *_private; /* application data */ + xmlElementType type; /* XML_ENTITY_DECL, must be second ! */ + const xmlChar *name; /* Entity name */ + struct _xmlNode *children; /* First child link */ + struct _xmlNode *last; /* Last child link */ + struct _xmlDtd *parent; /* -> DTD */ + struct _xmlNode *next; /* next sibling link */ + struct _xmlNode *prev; /* previous sibling link */ + struct _xmlDoc *doc; /* the containing document */ + + xmlChar *orig; /* content without ref substitution */ + xmlChar *content; /* content or ndata if unparsed */ + int length; /* the content length */ + xmlEntityType etype; /* The entity type */ + const xmlChar *ExternalID; /* External identifier for PUBLIC */ + const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */ + + struct _xmlEntity *nexte; /* unused */ + const xmlChar *URI; /* the full URI as computed */ + int owner; /* does the entity own the childrens */ + int checked; /* was the entity content checked */ +}; + +/* + * All entities are stored in an hash table. + * There is 2 separate hash tables for global and parameter entities. + */ + +typedef struct _xmlHashTable xmlEntitiesTable; +typedef xmlEntitiesTable *xmlEntitiesTablePtr; + +/* + * External functions: + */ + +#ifdef LIBXML_LEGACY_ENABLED +XMLPUBFUN void XMLCALL + xmlInitializePredefinedEntities (void); +#endif /* LIBXML_LEGACY_ENABLED */ +XMLPUBFUN xmlEntityPtr XMLCALL + xmlAddDocEntity (xmlDocPtr doc, + const xmlChar *name, + int type, + const xmlChar *ExternalID, + const xmlChar *SystemID, + const xmlChar *content); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlAddDtdEntity (xmlDocPtr doc, + const xmlChar *name, + int type, + const xmlChar *ExternalID, + const xmlChar *SystemID, + const xmlChar *content); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlGetPredefinedEntity (const xmlChar *name); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlGetDocEntity (xmlDocPtr doc, + const xmlChar *name); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlGetDtdEntity (xmlDocPtr doc, + const xmlChar *name); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlGetParameterEntity (xmlDocPtr doc, + const xmlChar *name); +#ifdef LIBXML_LEGACY_ENABLED +XMLPUBFUN const xmlChar * XMLCALL + xmlEncodeEntities (xmlDocPtr doc, + const xmlChar *input); +#endif /* LIBXML_LEGACY_ENABLED */ +XMLPUBFUN xmlChar * XMLCALL + xmlEncodeEntitiesReentrant(xmlDocPtr doc, + const xmlChar *input); +XMLPUBFUN xmlChar * XMLCALL + xmlEncodeSpecialChars (xmlDocPtr doc, + const xmlChar *input); +XMLPUBFUN xmlEntitiesTablePtr XMLCALL + xmlCreateEntitiesTable (void); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlEntitiesTablePtr XMLCALL + xmlCopyEntitiesTable (xmlEntitiesTablePtr table); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN void XMLCALL + xmlFreeEntitiesTable (xmlEntitiesTablePtr table); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlDumpEntitiesTable (xmlBufferPtr buf, + xmlEntitiesTablePtr table); +XMLPUBFUN void XMLCALL + xmlDumpEntityDecl (xmlBufferPtr buf, + xmlEntityPtr ent); +#endif /* LIBXML_OUTPUT_ENABLED */ +#ifdef LIBXML_LEGACY_ENABLED +XMLPUBFUN void XMLCALL + xmlCleanupPredefinedEntities(void); +#endif /* LIBXML_LEGACY_ENABLED */ + + +#ifdef __cplusplus +} +#endif + +# endif /* __XML_ENTITIES_H__ */ diff --git a/external-libs/libxml2/include/libxml/globals.h b/external-libs/libxml2/include/libxml/globals.h new file mode 100644 index 0000000..1173a8f --- /dev/null +++ b/external-libs/libxml2/include/libxml/globals.h @@ -0,0 +1,455 @@ +/* + * Summary: interface for all global variables of the library + * Description: all the global variables and thread handling for + * those variables is handled by this module. + * + * The bottom of this file is automatically generated by build_glob.py + * based on the description file global.data + * + * Copy: See Copyright for the status of this software. + * + * Author: Gary Pennington , Daniel Veillard + */ + +#ifndef __XML_GLOBALS_H +#define __XML_GLOBALS_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +XMLPUBFUN void XMLCALL xmlInitGlobals(void); +XMLPUBFUN void XMLCALL xmlCleanupGlobals(void); + +typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc); +typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression); +XMLPUBFUN xmlParserInputBufferCreateFilenameFunc +XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func); +XMLPUBFUN xmlOutputBufferCreateFilenameFunc +XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func); + +/* + * Externally global symbols which need to be protected for backwards + * compatibility support. + */ + +#undef docbDefaultSAXHandler +#undef htmlDefaultSAXHandler +#undef oldXMLWDcompatibility +#undef xmlBufferAllocScheme +#undef xmlDefaultBufferSize +#undef xmlDefaultSAXHandler +#undef xmlDefaultSAXLocator +#undef xmlDoValidityCheckingDefaultValue +#undef xmlFree +#undef xmlGenericError +#undef xmlStructuredError +#undef xmlGenericErrorContext +#undef xmlGetWarningsDefaultValue +#undef xmlIndentTreeOutput +#undef xmlTreeIndentString +#undef xmlKeepBlanksDefaultValue +#undef xmlLineNumbersDefaultValue +#undef xmlLoadExtDtdDefaultValue +#undef xmlMalloc +#undef xmlMallocAtomic +#undef xmlMemStrdup +#undef xmlParserDebugEntities +#undef xmlParserVersion +#undef xmlPedanticParserDefaultValue +#undef xmlRealloc +#undef xmlSaveNoEmptyTags +#undef xmlSubstituteEntitiesDefaultValue +#undef xmlRegisterNodeDefaultValue +#undef xmlDeregisterNodeDefaultValue +#undef xmlLastError +#undef xmlParserInputBufferCreateFilenameValue +#undef xmlOutputBufferCreateFilenameValue + +typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node); +typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node); + +typedef struct _xmlGlobalState xmlGlobalState; +typedef xmlGlobalState *xmlGlobalStatePtr; +struct _xmlGlobalState +{ + const char *xmlParserVersion; + + xmlSAXLocator xmlDefaultSAXLocator; + xmlSAXHandlerV1 xmlDefaultSAXHandler; + xmlSAXHandlerV1 docbDefaultSAXHandler; + xmlSAXHandlerV1 htmlDefaultSAXHandler; + + xmlFreeFunc xmlFree; + xmlMallocFunc xmlMalloc; + xmlStrdupFunc xmlMemStrdup; + xmlReallocFunc xmlRealloc; + + xmlGenericErrorFunc xmlGenericError; + xmlStructuredErrorFunc xmlStructuredError; + void *xmlGenericErrorContext; + + int oldXMLWDcompatibility; + + xmlBufferAllocationScheme xmlBufferAllocScheme; + int xmlDefaultBufferSize; + + int xmlSubstituteEntitiesDefaultValue; + int xmlDoValidityCheckingDefaultValue; + int xmlGetWarningsDefaultValue; + int xmlKeepBlanksDefaultValue; + int xmlLineNumbersDefaultValue; + int xmlLoadExtDtdDefaultValue; + int xmlParserDebugEntities; + int xmlPedanticParserDefaultValue; + + int xmlSaveNoEmptyTags; + int xmlIndentTreeOutput; + const char *xmlTreeIndentString; + + xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; + xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; + + xmlMallocFunc xmlMallocAtomic; + xmlError xmlLastError; + + xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; + xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; +}; + +#ifdef __cplusplus +} +#endif +#include +#ifdef __cplusplus +extern "C" { +#endif + +XMLPUBFUN void XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs); + +XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler); + +XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler); + +XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func); +XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func); +XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func); +XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func); + +XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL + xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func); +XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL + xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func); + +/** DOC_DISABLE */ +/* + * In general the memory allocation entry points are not kept + * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED + * - xmlMalloc + * - xmlMallocAtomic + * - xmlRealloc + * - xmlMemStrdup + * - xmlFree + */ + +#ifdef LIBXML_THREAD_ALLOC_ENABLED +#ifdef LIBXML_THREAD_ENABLED +XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void); +#define xmlMalloc \ +(*(__xmlMalloc())) +#else +XMLPUBVAR xmlMallocFunc xmlMalloc; +#endif + +#ifdef LIBXML_THREAD_ENABLED +XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void); +#define xmlMallocAtomic \ +(*(__xmlMallocAtomic())) +#else +XMLPUBVAR xmlMallocFunc xmlMallocAtomic; +#endif + +#ifdef LIBXML_THREAD_ENABLED +XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void); +#define xmlRealloc \ +(*(__xmlRealloc())) +#else +XMLPUBVAR xmlReallocFunc xmlRealloc; +#endif + +#ifdef LIBXML_THREAD_ENABLED +XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void); +#define xmlFree \ +(*(__xmlFree())) +#else +XMLPUBVAR xmlFreeFunc xmlFree; +#endif + +#ifdef LIBXML_THREAD_ENABLED +XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void); +#define xmlMemStrdup \ +(*(__xmlMemStrdup())) +#else +XMLPUBVAR xmlStrdupFunc xmlMemStrdup; +#endif + +#else /* !LIBXML_THREAD_ALLOC_ENABLED */ +XMLPUBVAR xmlMallocFunc xmlMalloc; +XMLPUBVAR xmlMallocFunc xmlMallocAtomic; +XMLPUBVAR xmlReallocFunc xmlRealloc; +XMLPUBVAR xmlFreeFunc xmlFree; +XMLPUBVAR xmlStrdupFunc xmlMemStrdup; +#endif /* LIBXML_THREAD_ALLOC_ENABLED */ + +#ifdef LIBXML_DOCB_ENABLED +XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void); +#ifdef LIBXML_THREAD_ENABLED +#define docbDefaultSAXHandler \ +(*(__docbDefaultSAXHandler())) +#else +XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler; +#endif +#endif + +#ifdef LIBXML_HTML_ENABLED +XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void); +#ifdef LIBXML_THREAD_ENABLED +#define htmlDefaultSAXHandler \ +(*(__htmlDefaultSAXHandler())) +#else +XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler; +#endif +#endif + +XMLPUBFUN xmlError * XMLCALL __xmlLastError(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlLastError \ +(*(__xmlLastError())) +#else +XMLPUBVAR xmlError xmlLastError; +#endif + +/* + * Everything starting from the line below is + * Automatically generated by build_glob.py. + * Do not modify the previous line. + */ + + +XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void); +#ifdef LIBXML_THREAD_ENABLED +#define oldXMLWDcompatibility \ +(*(__oldXMLWDcompatibility())) +#else +XMLPUBVAR int oldXMLWDcompatibility; +#endif + +XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlBufferAllocScheme \ +(*(__xmlBufferAllocScheme())) +#else +XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme; +#endif +XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); + +XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlDefaultBufferSize \ +(*(__xmlDefaultBufferSize())) +#else +XMLPUBVAR int xmlDefaultBufferSize; +#endif +XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v); + +XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlDefaultSAXHandler \ +(*(__xmlDefaultSAXHandler())) +#else +XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler; +#endif + +XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlDefaultSAXLocator \ +(*(__xmlDefaultSAXLocator())) +#else +XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator; +#endif + +XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlDoValidityCheckingDefaultValue \ +(*(__xmlDoValidityCheckingDefaultValue())) +#else +XMLPUBVAR int xmlDoValidityCheckingDefaultValue; +#endif +XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v); + +XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlGenericError \ +(*(__xmlGenericError())) +#else +XMLPUBVAR xmlGenericErrorFunc xmlGenericError; +#endif + +XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlStructuredError \ +(*(__xmlStructuredError())) +#else +XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError; +#endif + +XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlGenericErrorContext \ +(*(__xmlGenericErrorContext())) +#else +XMLPUBVAR void * xmlGenericErrorContext; +#endif + +XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlGetWarningsDefaultValue \ +(*(__xmlGetWarningsDefaultValue())) +#else +XMLPUBVAR int xmlGetWarningsDefaultValue; +#endif +XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v); + +XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlIndentTreeOutput \ +(*(__xmlIndentTreeOutput())) +#else +XMLPUBVAR int xmlIndentTreeOutput; +#endif +XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v); + +XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlTreeIndentString \ +(*(__xmlTreeIndentString())) +#else +XMLPUBVAR const char * xmlTreeIndentString; +#endif +XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v); + +XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlKeepBlanksDefaultValue \ +(*(__xmlKeepBlanksDefaultValue())) +#else +XMLPUBVAR int xmlKeepBlanksDefaultValue; +#endif +XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v); + +XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlLineNumbersDefaultValue \ +(*(__xmlLineNumbersDefaultValue())) +#else +XMLPUBVAR int xmlLineNumbersDefaultValue; +#endif +XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v); + +XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlLoadExtDtdDefaultValue \ +(*(__xmlLoadExtDtdDefaultValue())) +#else +XMLPUBVAR int xmlLoadExtDtdDefaultValue; +#endif +XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v); + +XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlParserDebugEntities \ +(*(__xmlParserDebugEntities())) +#else +XMLPUBVAR int xmlParserDebugEntities; +#endif +XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v); + +XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlParserVersion \ +(*(__xmlParserVersion())) +#else +XMLPUBVAR const char * xmlParserVersion; +#endif + +XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlPedanticParserDefaultValue \ +(*(__xmlPedanticParserDefaultValue())) +#else +XMLPUBVAR int xmlPedanticParserDefaultValue; +#endif +XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v); + +XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlSaveNoEmptyTags \ +(*(__xmlSaveNoEmptyTags())) +#else +XMLPUBVAR int xmlSaveNoEmptyTags; +#endif +XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v); + +XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlSubstituteEntitiesDefaultValue \ +(*(__xmlSubstituteEntitiesDefaultValue())) +#else +XMLPUBVAR int xmlSubstituteEntitiesDefaultValue; +#endif +XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v); + +XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlRegisterNodeDefaultValue \ +(*(__xmlRegisterNodeDefaultValue())) +#else +XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; +#endif + +XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlDeregisterNodeDefaultValue \ +(*(__xmlDeregisterNodeDefaultValue())) +#else +XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; +#endif + +XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlParserInputBufferCreateFilenameValue \ +(*(__xmlParserInputBufferCreateFilenameValue())) +#else +XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; +#endif + +XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void); +#ifdef LIBXML_THREAD_ENABLED +#define xmlOutputBufferCreateFilenameValue \ +(*(__xmlOutputBufferCreateFilenameValue())) +#else +XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __XML_GLOBALS_H */ diff --git a/external-libs/libxml2/include/libxml/hash.h b/external-libs/libxml2/include/libxml/hash.h new file mode 100644 index 0000000..7fe4be7 --- /dev/null +++ b/external-libs/libxml2/include/libxml/hash.h @@ -0,0 +1,233 @@ +/* + * Summary: Chained hash tables + * Description: This module implements the hash table support used in + * various places in the library. + * + * Copy: See Copyright for the status of this software. + * + * Author: Bjorn Reese + */ + +#ifndef __XML_HASH_H__ +#define __XML_HASH_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The hash table. + */ +typedef struct _xmlHashTable xmlHashTable; +typedef xmlHashTable *xmlHashTablePtr; + +#ifdef __cplusplus +} +#endif + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Recent version of gcc produce a warning when a function pointer is assigned + * to an object pointer, or vice versa. The following macro is a dirty hack + * to allow suppression of the warning. If your architecture has function + * pointers which are a different size than a void pointer, there may be some + * serious trouble within the library. + */ +/** + * XML_CAST_FPTR: + * @fptr: pointer to a function + * + * Macro to do a casting from an object pointer to a + * function pointer without encountering a warning from + * gcc + * + * #define XML_CAST_FPTR(fptr) (*(void **)(&fptr)) + * This macro violated ISO C aliasing rules (gcc4 on s390 broke) + * so it is disabled now + */ + +#define XML_CAST_FPTR(fptr) fptr + + +/* + * function types: + */ +/** + * xmlHashDeallocator: + * @payload: the data in the hash + * @name: the name associated + * + * Callback to free data from a hash. + */ +typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name); +/** + * xmlHashCopier: + * @payload: the data in the hash + * @name: the name associated + * + * Callback to copy data from a hash. + * + * Returns a copy of the data or NULL in case of error. + */ +typedef void *(*xmlHashCopier)(void *payload, xmlChar *name); +/** + * xmlHashScanner: + * @payload: the data in the hash + * @data: extra scannner data + * @name: the name associated + * + * Callback when scanning data in a hash with the simple scanner. + */ +typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name); +/** + * xmlHashScannerFull: + * @payload: the data in the hash + * @data: extra scannner data + * @name: the name associated + * @name2: the second name associated + * @name3: the third name associated + * + * Callback when scanning data in a hash with the full scanner. + */ +typedef void (*xmlHashScannerFull)(void *payload, void *data, + const xmlChar *name, const xmlChar *name2, + const xmlChar *name3); + +/* + * Constructor and destructor. + */ +XMLPUBFUN xmlHashTablePtr XMLCALL + xmlHashCreate (int size); +XMLPUBFUN xmlHashTablePtr XMLCALL + xmlHashCreateDict(int size, + xmlDictPtr dict); +XMLPUBFUN void XMLCALL + xmlHashFree (xmlHashTablePtr table, + xmlHashDeallocator f); + +/* + * Add a new entry to the hash table. + */ +XMLPUBFUN int XMLCALL + xmlHashAddEntry (xmlHashTablePtr table, + const xmlChar *name, + void *userdata); +XMLPUBFUN int XMLCALL + xmlHashUpdateEntry(xmlHashTablePtr table, + const xmlChar *name, + void *userdata, + xmlHashDeallocator f); +XMLPUBFUN int XMLCALL + xmlHashAddEntry2(xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2, + void *userdata); +XMLPUBFUN int XMLCALL + xmlHashUpdateEntry2(xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2, + void *userdata, + xmlHashDeallocator f); +XMLPUBFUN int XMLCALL + xmlHashAddEntry3(xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2, + const xmlChar *name3, + void *userdata); +XMLPUBFUN int XMLCALL + xmlHashUpdateEntry3(xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2, + const xmlChar *name3, + void *userdata, + xmlHashDeallocator f); + +/* + * Remove an entry from the hash table. + */ +XMLPUBFUN int XMLCALL + xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name, + xmlHashDeallocator f); +XMLPUBFUN int XMLCALL + xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name, + const xmlChar *name2, xmlHashDeallocator f); +XMLPUBFUN int XMLCALL + xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name, + const xmlChar *name2, const xmlChar *name3, + xmlHashDeallocator f); + +/* + * Retrieve the userdata. + */ +XMLPUBFUN void * XMLCALL + xmlHashLookup (xmlHashTablePtr table, + const xmlChar *name); +XMLPUBFUN void * XMLCALL + xmlHashLookup2 (xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2); +XMLPUBFUN void * XMLCALL + xmlHashLookup3 (xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2, + const xmlChar *name3); +XMLPUBFUN void * XMLCALL + xmlHashQLookup (xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *prefix); +XMLPUBFUN void * XMLCALL + xmlHashQLookup2 (xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *prefix, + const xmlChar *name2, + const xmlChar *prefix2); +XMLPUBFUN void * XMLCALL + xmlHashQLookup3 (xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *prefix, + const xmlChar *name2, + const xmlChar *prefix2, + const xmlChar *name3, + const xmlChar *prefix3); + +/* + * Helpers. + */ +XMLPUBFUN xmlHashTablePtr XMLCALL + xmlHashCopy (xmlHashTablePtr table, + xmlHashCopier f); +XMLPUBFUN int XMLCALL + xmlHashSize (xmlHashTablePtr table); +XMLPUBFUN void XMLCALL + xmlHashScan (xmlHashTablePtr table, + xmlHashScanner f, + void *data); +XMLPUBFUN void XMLCALL + xmlHashScan3 (xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2, + const xmlChar *name3, + xmlHashScanner f, + void *data); +XMLPUBFUN void XMLCALL + xmlHashScanFull (xmlHashTablePtr table, + xmlHashScannerFull f, + void *data); +XMLPUBFUN void XMLCALL + xmlHashScanFull3(xmlHashTablePtr table, + const xmlChar *name, + const xmlChar *name2, + const xmlChar *name3, + xmlHashScannerFull f, + void *data); +#ifdef __cplusplus +} +#endif +#endif /* ! __XML_HASH_H__ */ diff --git a/external-libs/libxml2/include/libxml/list.h b/external-libs/libxml2/include/libxml/list.h new file mode 100644 index 0000000..1d83482 --- /dev/null +++ b/external-libs/libxml2/include/libxml/list.h @@ -0,0 +1,137 @@ +/* + * Summary: lists interfaces + * Description: this module implement the list support used in + * various place in the library. + * + * Copy: See Copyright for the status of this software. + * + * Author: Gary Pennington + */ + +#ifndef __XML_LINK_INCLUDE__ +#define __XML_LINK_INCLUDE__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _xmlLink xmlLink; +typedef xmlLink *xmlLinkPtr; + +typedef struct _xmlList xmlList; +typedef xmlList *xmlListPtr; + +/** + * xmlListDeallocator: + * @lk: the data to deallocate + * + * Callback function used to free data from a list. + */ +typedef void (*xmlListDeallocator) (xmlLinkPtr lk); +/** + * xmlListDataCompare: + * @data0: the first data + * @data1: the second data + * + * Callback function used to compare 2 data. + * + * Returns 0 is equality, -1 or 1 otherwise depending on the ordering. + */ +typedef int (*xmlListDataCompare) (const void *data0, const void *data1); +/** + * xmlListWalker: + * @data: the data found in the list + * @user: extra user provided data to the walker + * + * Callback function used when walking a list with xmlListWalk(). + * + * Returns 0 to stop walking the list, 1 otherwise. + */ +typedef int (*xmlListWalker) (const void *data, const void *user); + +/* Creation/Deletion */ +XMLPUBFUN xmlListPtr XMLCALL + xmlListCreate (xmlListDeallocator deallocator, + xmlListDataCompare compare); +XMLPUBFUN void XMLCALL + xmlListDelete (xmlListPtr l); + +/* Basic Operators */ +XMLPUBFUN void * XMLCALL + xmlListSearch (xmlListPtr l, + void *data); +XMLPUBFUN void * XMLCALL + xmlListReverseSearch (xmlListPtr l, + void *data); +XMLPUBFUN int XMLCALL + xmlListInsert (xmlListPtr l, + void *data) ; +XMLPUBFUN int XMLCALL + xmlListAppend (xmlListPtr l, + void *data) ; +XMLPUBFUN int XMLCALL + xmlListRemoveFirst (xmlListPtr l, + void *data); +XMLPUBFUN int XMLCALL + xmlListRemoveLast (xmlListPtr l, + void *data); +XMLPUBFUN int XMLCALL + xmlListRemoveAll (xmlListPtr l, + void *data); +XMLPUBFUN void XMLCALL + xmlListClear (xmlListPtr l); +XMLPUBFUN int XMLCALL + xmlListEmpty (xmlListPtr l); +XMLPUBFUN xmlLinkPtr XMLCALL + xmlListFront (xmlListPtr l); +XMLPUBFUN xmlLinkPtr XMLCALL + xmlListEnd (xmlListPtr l); +XMLPUBFUN int XMLCALL + xmlListSize (xmlListPtr l); + +XMLPUBFUN void XMLCALL + xmlListPopFront (xmlListPtr l); +XMLPUBFUN void XMLCALL + xmlListPopBack (xmlListPtr l); +XMLPUBFUN int XMLCALL + xmlListPushFront (xmlListPtr l, + void *data); +XMLPUBFUN int XMLCALL + xmlListPushBack (xmlListPtr l, + void *data); + +/* Advanced Operators */ +XMLPUBFUN void XMLCALL + xmlListReverse (xmlListPtr l); +XMLPUBFUN void XMLCALL + xmlListSort (xmlListPtr l); +XMLPUBFUN void XMLCALL + xmlListWalk (xmlListPtr l, + xmlListWalker walker, + const void *user); +XMLPUBFUN void XMLCALL + xmlListReverseWalk (xmlListPtr l, + xmlListWalker walker, + const void *user); +XMLPUBFUN void XMLCALL + xmlListMerge (xmlListPtr l1, + xmlListPtr l2); +XMLPUBFUN xmlListPtr XMLCALL + xmlListDup (const xmlListPtr old); +XMLPUBFUN int XMLCALL + xmlListCopy (xmlListPtr cur, + const xmlListPtr old); +/* Link operators */ +XMLPUBFUN void * XMLCALL + xmlLinkGetData (xmlLinkPtr lk); + +/* xmlListUnique() */ +/* xmlListSwap */ + +#ifdef __cplusplus +} +#endif + +#endif /* __XML_LINK_INCLUDE__ */ diff --git a/external-libs/libxml2/include/libxml/nanoftp.h b/external-libs/libxml2/include/libxml/nanoftp.h new file mode 100644 index 0000000..e3c28a0 --- /dev/null +++ b/external-libs/libxml2/include/libxml/nanoftp.h @@ -0,0 +1,143 @@ +/* + * Summary: minimal FTP implementation + * Description: minimal FTP implementation allowing to fetch resources + * like external subset. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __NANO_FTP_H__ +#define __NANO_FTP_H__ + +#include + +#ifdef LIBXML_FTP_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * ftpListCallback: + * @userData: user provided data for the callback + * @filename: the file name (including "->" when links are shown) + * @attrib: the attribute string + * @owner: the owner string + * @group: the group string + * @size: the file size + * @links: the link count + * @year: the year + * @month: the month + * @day: the day + * @hour: the hour + * @minute: the minute + * + * A callback for the xmlNanoFTPList command. + * Note that only one of year and day:minute are specified. + */ +typedef void (*ftpListCallback) (void *userData, + const char *filename, const char *attrib, + const char *owner, const char *group, + unsigned long size, int links, int year, + const char *month, int day, int hour, + int minute); +/** + * ftpDataCallback: + * @userData: the user provided context + * @data: the data received + * @len: its size in bytes + * + * A callback for the xmlNanoFTPGet command. + */ +typedef void (*ftpDataCallback) (void *userData, + const char *data, + int len); + +/* + * Init + */ +XMLPUBFUN void XMLCALL + xmlNanoFTPInit (void); +XMLPUBFUN void XMLCALL + xmlNanoFTPCleanup (void); + +/* + * Creating/freeing contexts. + */ +XMLPUBFUN void * XMLCALL + xmlNanoFTPNewCtxt (const char *URL); +XMLPUBFUN void XMLCALL + xmlNanoFTPFreeCtxt (void * ctx); +XMLPUBFUN void * XMLCALL + xmlNanoFTPConnectTo (const char *server, + int port); +/* + * Opening/closing session connections. + */ +XMLPUBFUN void * XMLCALL + xmlNanoFTPOpen (const char *URL); +XMLPUBFUN int XMLCALL + xmlNanoFTPConnect (void *ctx); +XMLPUBFUN int XMLCALL + xmlNanoFTPClose (void *ctx); +XMLPUBFUN int XMLCALL + xmlNanoFTPQuit (void *ctx); +XMLPUBFUN void XMLCALL + xmlNanoFTPScanProxy (const char *URL); +XMLPUBFUN void XMLCALL + xmlNanoFTPProxy (const char *host, + int port, + const char *user, + const char *passwd, + int type); +XMLPUBFUN int XMLCALL + xmlNanoFTPUpdateURL (void *ctx, + const char *URL); + +/* + * Rather internal commands. + */ +XMLPUBFUN int XMLCALL + xmlNanoFTPGetResponse (void *ctx); +XMLPUBFUN int XMLCALL + xmlNanoFTPCheckResponse (void *ctx); + +/* + * CD/DIR/GET handlers. + */ +XMLPUBFUN int XMLCALL + xmlNanoFTPCwd (void *ctx, + const char *directory); +XMLPUBFUN int XMLCALL + xmlNanoFTPDele (void *ctx, + const char *file); + +XMLPUBFUN int XMLCALL + xmlNanoFTPGetConnection (void *ctx); +XMLPUBFUN int XMLCALL + xmlNanoFTPCloseConnection(void *ctx); +XMLPUBFUN int XMLCALL + xmlNanoFTPList (void *ctx, + ftpListCallback callback, + void *userData, + const char *filename); +XMLPUBFUN int XMLCALL + xmlNanoFTPGetSocket (void *ctx, + const char *filename); +XMLPUBFUN int XMLCALL + xmlNanoFTPGet (void *ctx, + ftpDataCallback callback, + void *userData, + const char *filename); +XMLPUBFUN int XMLCALL + xmlNanoFTPRead (void *ctx, + void *dest, + int len); + +#ifdef __cplusplus +} +#endif +#endif /* LIBXML_FTP_ENABLED */ +#endif /* __NANO_FTP_H__ */ diff --git a/external-libs/libxml2/include/libxml/nanohttp.h b/external-libs/libxml2/include/libxml/nanohttp.h new file mode 100644 index 0000000..1d8ac24 --- /dev/null +++ b/external-libs/libxml2/include/libxml/nanohttp.h @@ -0,0 +1,81 @@ +/* + * Summary: minimal HTTP implementation + * Description: minimal HTTP implementation allowing to fetch resources + * like external subset. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __NANO_HTTP_H__ +#define __NANO_HTTP_H__ + +#include + +#ifdef LIBXML_HTTP_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif +XMLPUBFUN void XMLCALL + xmlNanoHTTPInit (void); +XMLPUBFUN void XMLCALL + xmlNanoHTTPCleanup (void); +XMLPUBFUN void XMLCALL + xmlNanoHTTPScanProxy (const char *URL); +XMLPUBFUN int XMLCALL + xmlNanoHTTPFetch (const char *URL, + const char *filename, + char **contentType); +XMLPUBFUN void * XMLCALL + xmlNanoHTTPMethod (const char *URL, + const char *method, + const char *input, + char **contentType, + const char *headers, + int ilen); +XMLPUBFUN void * XMLCALL + xmlNanoHTTPMethodRedir (const char *URL, + const char *method, + const char *input, + char **contentType, + char **redir, + const char *headers, + int ilen); +XMLPUBFUN void * XMLCALL + xmlNanoHTTPOpen (const char *URL, + char **contentType); +XMLPUBFUN void * XMLCALL + xmlNanoHTTPOpenRedir (const char *URL, + char **contentType, + char **redir); +XMLPUBFUN int XMLCALL + xmlNanoHTTPReturnCode (void *ctx); +XMLPUBFUN const char * XMLCALL + xmlNanoHTTPAuthHeader (void *ctx); +XMLPUBFUN const char * XMLCALL + xmlNanoHTTPRedir (void *ctx); +XMLPUBFUN int XMLCALL + xmlNanoHTTPContentLength( void * ctx ); +XMLPUBFUN const char * XMLCALL + xmlNanoHTTPEncoding (void *ctx); +XMLPUBFUN const char * XMLCALL + xmlNanoHTTPMimeType (void *ctx); +XMLPUBFUN int XMLCALL + xmlNanoHTTPRead (void *ctx, + void *dest, + int len); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN int XMLCALL + xmlNanoHTTPSave (void *ctxt, + const char *filename); +#endif /* LIBXML_OUTPUT_ENABLED */ +XMLPUBFUN void XMLCALL + xmlNanoHTTPClose (void *ctx); +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_HTTP_ENABLED */ +#endif /* __NANO_HTTP_H__ */ diff --git a/external-libs/libxml2/include/libxml/parser.h b/external-libs/libxml2/include/libxml/parser.h new file mode 100644 index 0000000..fe63bda --- /dev/null +++ b/external-libs/libxml2/include/libxml/parser.h @@ -0,0 +1,1220 @@ +/* + * Summary: the core parser module + * Description: Interfaces, constants and types related to the XML parser + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_PARSER_H__ +#define __XML_PARSER_H__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * XML_DEFAULT_VERSION: + * + * The default version of XML used: 1.0 + */ +#define XML_DEFAULT_VERSION "1.0" + +/** + * xmlParserInput: + * + * An xmlParserInput is an input flow for the XML processor. + * Each entity parsed is associated an xmlParserInput (except the + * few predefined ones). This is the case both for internal entities + * - in which case the flow is already completely in memory - or + * external entities - in which case we use the buf structure for + * progressive reading and I18N conversions to the internal UTF-8 format. + */ + +/** + * xmlParserInputDeallocate: + * @str: the string to deallocate + * + * Callback for freeing some parser input allocations. + */ +typedef void (* xmlParserInputDeallocate)(xmlChar *str); + +struct _xmlParserInput { + /* Input buffer */ + xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */ + + const char *filename; /* The file analyzed, if any */ + const char *directory; /* the directory/base of the file */ + const xmlChar *base; /* Base of the array to parse */ + const xmlChar *cur; /* Current char being parsed */ + const xmlChar *end; /* end of the array to parse */ + int length; /* length if known */ + int line; /* Current line */ + int col; /* Current column */ + /* + * NOTE: consumed is only tested for equality in the parser code, + * so even if there is an overflow this should not give troubles + * for parsing very large instances. + */ + unsigned long consumed; /* How many xmlChars already consumed */ + xmlParserInputDeallocate free; /* function to deallocate the base */ + const xmlChar *encoding; /* the encoding string for entity */ + const xmlChar *version; /* the version string for entity */ + int standalone; /* Was that entity marked standalone */ + int id; /* an unique identifier for the entity */ +}; + +/** + * xmlParserNodeInfo: + * + * The parser can be asked to collect Node informations, i.e. at what + * place in the file they were detected. + * NOTE: This is off by default and not very well tested. + */ +typedef struct _xmlParserNodeInfo xmlParserNodeInfo; +typedef xmlParserNodeInfo *xmlParserNodeInfoPtr; + +struct _xmlParserNodeInfo { + const struct _xmlNode* node; + /* Position & line # that text that created the node begins & ends on */ + unsigned long begin_pos; + unsigned long begin_line; + unsigned long end_pos; + unsigned long end_line; +}; + +typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq; +typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr; +struct _xmlParserNodeInfoSeq { + unsigned long maximum; + unsigned long length; + xmlParserNodeInfo* buffer; +}; + +/** + * xmlParserInputState: + * + * The parser is now working also as a state based parser. + * The recursive one use the state info for entities processing. + */ +typedef enum { + XML_PARSER_EOF = -1, /* nothing is to be parsed */ + XML_PARSER_START = 0, /* nothing has been parsed */ + XML_PARSER_MISC, /* Misc* before int subset */ + XML_PARSER_PI, /* Within a processing instruction */ + XML_PARSER_DTD, /* within some DTD content */ + XML_PARSER_PROLOG, /* Misc* after internal subset */ + XML_PARSER_COMMENT, /* within a comment */ + XML_PARSER_START_TAG, /* within a start tag */ + XML_PARSER_CONTENT, /* within the content */ + XML_PARSER_CDATA_SECTION, /* within a CDATA section */ + XML_PARSER_END_TAG, /* within a closing tag */ + XML_PARSER_ENTITY_DECL, /* within an entity declaration */ + XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */ + XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */ + XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */ + XML_PARSER_EPILOG, /* the Misc* after the last end tag */ + XML_PARSER_IGNORE, /* within an IGNORED section */ + XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */ +} xmlParserInputState; + +/** + * XML_DETECT_IDS: + * + * Bit in the loadsubset context field to tell to do ID/REFs lookups. + * Use it to initialize xmlLoadExtDtdDefaultValue. + */ +#define XML_DETECT_IDS 2 + +/** + * XML_COMPLETE_ATTRS: + * + * Bit in the loadsubset context field to tell to do complete the + * elements attributes lists with the ones defaulted from the DTDs. + * Use it to initialize xmlLoadExtDtdDefaultValue. + */ +#define XML_COMPLETE_ATTRS 4 + +/** + * XML_SKIP_IDS: + * + * Bit in the loadsubset context field to tell to not do ID/REFs registration. + * Used to initialize xmlLoadExtDtdDefaultValue in some special cases. + */ +#define XML_SKIP_IDS 8 + +/** + * xmlParserMode: + * + * A parser can operate in various modes + */ +typedef enum { + XML_PARSE_UNKNOWN = 0, + XML_PARSE_DOM = 1, + XML_PARSE_SAX = 2, + XML_PARSE_PUSH_DOM = 3, + XML_PARSE_PUSH_SAX = 4, + XML_PARSE_READER = 5 +} xmlParserMode; + +/** + * xmlParserCtxt: + * + * The parser context. + * NOTE This doesn't completely define the parser state, the (current ?) + * design of the parser uses recursive function calls since this allow + * and easy mapping from the production rules of the specification + * to the actual code. The drawback is that the actual function call + * also reflect the parser state. However most of the parsing routines + * takes as the only argument the parser context pointer, so migrating + * to a state based parser for progressive parsing shouldn't be too hard. + */ +struct _xmlParserCtxt { + struct _xmlSAXHandler *sax; /* The SAX handler */ + void *userData; /* For SAX interface only, used by DOM build */ + xmlDocPtr myDoc; /* the document being built */ + int wellFormed; /* is the document well formed */ + int replaceEntities; /* shall we replace entities ? */ + const xmlChar *version; /* the XML version string */ + const xmlChar *encoding; /* the declared encoding, if any */ + int standalone; /* standalone document */ + int html; /* an HTML(1)/Docbook(2) document */ + + /* Input stream stack */ + xmlParserInputPtr input; /* Current input stream */ + int inputNr; /* Number of current input streams */ + int inputMax; /* Max number of input streams */ + xmlParserInputPtr *inputTab; /* stack of inputs */ + + /* Node analysis stack only used for DOM building */ + xmlNodePtr node; /* Current parsed Node */ + int nodeNr; /* Depth of the parsing stack */ + int nodeMax; /* Max depth of the parsing stack */ + xmlNodePtr *nodeTab; /* array of nodes */ + + int record_info; /* Whether node info should be kept */ + xmlParserNodeInfoSeq node_seq; /* info about each node parsed */ + + int errNo; /* error code */ + + int hasExternalSubset; /* reference and external subset */ + int hasPErefs; /* the internal subset has PE refs */ + int external; /* are we parsing an external entity */ + + int valid; /* is the document valid */ + int validate; /* shall we try to validate ? */ + xmlValidCtxt vctxt; /* The validity context */ + + xmlParserInputState instate; /* current type of input */ + int token; /* next char look-ahead */ + + char *directory; /* the data directory */ + + /* Node name stack */ + const xmlChar *name; /* Current parsed Node */ + int nameNr; /* Depth of the parsing stack */ + int nameMax; /* Max depth of the parsing stack */ + const xmlChar * *nameTab; /* array of nodes */ + + long nbChars; /* number of xmlChar processed */ + long checkIndex; /* used by progressive parsing lookup */ + int keepBlanks; /* ugly but ... */ + int disableSAX; /* SAX callbacks are disabled */ + int inSubset; /* Parsing is in int 1/ext 2 subset */ + const xmlChar * intSubName; /* name of subset */ + xmlChar * extSubURI; /* URI of external subset */ + xmlChar * extSubSystem; /* SYSTEM ID of external subset */ + + /* xml:space values */ + int * space; /* Should the parser preserve spaces */ + int spaceNr; /* Depth of the parsing stack */ + int spaceMax; /* Max depth of the parsing stack */ + int * spaceTab; /* array of space infos */ + + int depth; /* to prevent entity substitution loops */ + xmlParserInputPtr entity; /* used to check entities boundaries */ + int charset; /* encoding of the in-memory content + actually an xmlCharEncoding */ + int nodelen; /* Those two fields are there to */ + int nodemem; /* Speed up large node parsing */ + int pedantic; /* signal pedantic warnings */ + void *_private; /* For user data, libxml won't touch it */ + + int loadsubset; /* should the external subset be loaded */ + int linenumbers; /* set line number in element content */ + void *catalogs; /* document's own catalog */ + int recovery; /* run in recovery mode */ + int progressive; /* is this a progressive parsing */ + xmlDictPtr dict; /* dictionnary for the parser */ + const xmlChar * *atts; /* array for the attributes callbacks */ + int maxatts; /* the size of the array */ + int docdict; /* use strings from dict to build tree */ + + /* + * pre-interned strings + */ + const xmlChar *str_xml; + const xmlChar *str_xmlns; + const xmlChar *str_xml_ns; + + /* + * Everything below is used only by the new SAX mode + */ + int sax2; /* operating in the new SAX mode */ + int nsNr; /* the number of inherited namespaces */ + int nsMax; /* the size of the arrays */ + const xmlChar * *nsTab; /* the array of prefix/namespace name */ + int *attallocs; /* which attribute were allocated */ + void * *pushTab; /* array of data for push */ + xmlHashTablePtr attsDefault; /* defaulted attributes if any */ + xmlHashTablePtr attsSpecial; /* non-CDATA attributes if any */ + int nsWellFormed; /* is the document XML Nanespace okay */ + int options; /* Extra options */ + + /* + * Those fields are needed only for treaming parsing so far + */ + int dictNames; /* Use dictionary names for the tree */ + int freeElemsNr; /* number of freed element nodes */ + xmlNodePtr freeElems; /* List of freed element nodes */ + int freeAttrsNr; /* number of freed attributes nodes */ + xmlAttrPtr freeAttrs; /* List of freed attributes nodes */ + + /* + * the complete error informations for the last error. + */ + xmlError lastError; + xmlParserMode parseMode; /* the parser mode */ +}; + +/** + * xmlSAXLocator: + * + * A SAX Locator. + */ +struct _xmlSAXLocator { + const xmlChar *(*getPublicId)(void *ctx); + const xmlChar *(*getSystemId)(void *ctx); + int (*getLineNumber)(void *ctx); + int (*getColumnNumber)(void *ctx); +}; + +/** + * xmlSAXHandler: + * + * A SAX handler is bunch of callbacks called by the parser when processing + * of the input generate data or structure informations. + */ + +/** + * resolveEntitySAXFunc: + * @ctx: the user data (XML parser context) + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * + * Callback: + * The entity loader, to control the loading of external entities, + * the application can either: + * - override this resolveEntity() callback in the SAX block + * - or better use the xmlSetExternalEntityLoader() function to + * set up it's own entity resolution routine + * + * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. + */ +typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx, + const xmlChar *publicId, + const xmlChar *systemId); +/** + * internalSubsetSAXFunc: + * @ctx: the user data (XML parser context) + * @name: the root element name + * @ExternalID: the external ID + * @SystemID: the SYSTEM ID (e.g. filename or URL) + * + * Callback on internal subset declaration. + */ +typedef void (*internalSubsetSAXFunc) (void *ctx, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +/** + * externalSubsetSAXFunc: + * @ctx: the user data (XML parser context) + * @name: the root element name + * @ExternalID: the external ID + * @SystemID: the SYSTEM ID (e.g. filename or URL) + * + * Callback on external subset declaration. + */ +typedef void (*externalSubsetSAXFunc) (void *ctx, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +/** + * getEntitySAXFunc: + * @ctx: the user data (XML parser context) + * @name: The entity name + * + * Get an entity by name. + * + * Returns the xmlEntityPtr if found. + */ +typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx, + const xmlChar *name); +/** + * getParameterEntitySAXFunc: + * @ctx: the user data (XML parser context) + * @name: The entity name + * + * Get a parameter entity by name. + * + * Returns the xmlEntityPtr if found. + */ +typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx, + const xmlChar *name); +/** + * entityDeclSAXFunc: + * @ctx: the user data (XML parser context) + * @name: the entity name + * @type: the entity type + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * @content: the entity value (without processing). + * + * An entity definition has been parsed. + */ +typedef void (*entityDeclSAXFunc) (void *ctx, + const xmlChar *name, + int type, + const xmlChar *publicId, + const xmlChar *systemId, + xmlChar *content); +/** + * notationDeclSAXFunc: + * @ctx: the user data (XML parser context) + * @name: The name of the notation + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * + * What to do when a notation declaration has been parsed. + */ +typedef void (*notationDeclSAXFunc)(void *ctx, + const xmlChar *name, + const xmlChar *publicId, + const xmlChar *systemId); +/** + * attributeDeclSAXFunc: + * @ctx: the user data (XML parser context) + * @elem: the name of the element + * @fullname: the attribute name + * @type: the attribute type + * @def: the type of default value + * @defaultValue: the attribute default value + * @tree: the tree of enumerated value set + * + * An attribute definition has been parsed. + */ +typedef void (*attributeDeclSAXFunc)(void *ctx, + const xmlChar *elem, + const xmlChar *fullname, + int type, + int def, + const xmlChar *defaultValue, + xmlEnumerationPtr tree); +/** + * elementDeclSAXFunc: + * @ctx: the user data (XML parser context) + * @name: the element name + * @type: the element type + * @content: the element value tree + * + * An element definition has been parsed. + */ +typedef void (*elementDeclSAXFunc)(void *ctx, + const xmlChar *name, + int type, + xmlElementContentPtr content); +/** + * unparsedEntityDeclSAXFunc: + * @ctx: the user data (XML parser context) + * @name: The name of the entity + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * @notationName: the name of the notation + * + * What to do when an unparsed entity declaration is parsed. + */ +typedef void (*unparsedEntityDeclSAXFunc)(void *ctx, + const xmlChar *name, + const xmlChar *publicId, + const xmlChar *systemId, + const xmlChar *notationName); +/** + * setDocumentLocatorSAXFunc: + * @ctx: the user data (XML parser context) + * @loc: A SAX Locator + * + * Receive the document locator at startup, actually xmlDefaultSAXLocator. + * Everything is available on the context, so this is useless in our case. + */ +typedef void (*setDocumentLocatorSAXFunc) (void *ctx, + xmlSAXLocatorPtr loc); +/** + * startDocumentSAXFunc: + * @ctx: the user data (XML parser context) + * + * Called when the document start being processed. + */ +typedef void (*startDocumentSAXFunc) (void *ctx); +/** + * endDocumentSAXFunc: + * @ctx: the user data (XML parser context) + * + * Called when the document end has been detected. + */ +typedef void (*endDocumentSAXFunc) (void *ctx); +/** + * startElementSAXFunc: + * @ctx: the user data (XML parser context) + * @name: The element name, including namespace prefix + * @atts: An array of name/value attributes pairs, NULL terminated + * + * Called when an opening tag has been processed. + */ +typedef void (*startElementSAXFunc) (void *ctx, + const xmlChar *name, + const xmlChar **atts); +/** + * endElementSAXFunc: + * @ctx: the user data (XML parser context) + * @name: The element name + * + * Called when the end of an element has been detected. + */ +typedef void (*endElementSAXFunc) (void *ctx, + const xmlChar *name); +/** + * attributeSAXFunc: + * @ctx: the user data (XML parser context) + * @name: The attribute name, including namespace prefix + * @value: The attribute value + * + * Handle an attribute that has been read by the parser. + * The default handling is to convert the attribute into an + * DOM subtree and past it in a new xmlAttr element added to + * the element. + */ +typedef void (*attributeSAXFunc) (void *ctx, + const xmlChar *name, + const xmlChar *value); +/** + * referenceSAXFunc: + * @ctx: the user data (XML parser context) + * @name: The entity name + * + * Called when an entity reference is detected. + */ +typedef void (*referenceSAXFunc) (void *ctx, + const xmlChar *name); +/** + * charactersSAXFunc: + * @ctx: the user data (XML parser context) + * @ch: a xmlChar string + * @len: the number of xmlChar + * + * Receiving some chars from the parser. + */ +typedef void (*charactersSAXFunc) (void *ctx, + const xmlChar *ch, + int len); +/** + * ignorableWhitespaceSAXFunc: + * @ctx: the user data (XML parser context) + * @ch: a xmlChar string + * @len: the number of xmlChar + * + * Receiving some ignorable whitespaces from the parser. + * UNUSED: by default the DOM building will use characters. + */ +typedef void (*ignorableWhitespaceSAXFunc) (void *ctx, + const xmlChar *ch, + int len); +/** + * processingInstructionSAXFunc: + * @ctx: the user data (XML parser context) + * @target: the target name + * @data: the PI data's + * + * A processing instruction has been parsed. + */ +typedef void (*processingInstructionSAXFunc) (void *ctx, + const xmlChar *target, + const xmlChar *data); +/** + * commentSAXFunc: + * @ctx: the user data (XML parser context) + * @value: the comment content + * + * A comment has been parsed. + */ +typedef void (*commentSAXFunc) (void *ctx, + const xmlChar *value); +/** + * cdataBlockSAXFunc: + * @ctx: the user data (XML parser context) + * @value: The pcdata content + * @len: the block length + * + * Called when a pcdata block has been parsed. + */ +typedef void (*cdataBlockSAXFunc) ( + void *ctx, + const xmlChar *value, + int len); +/** + * warningSAXFunc: + * @ctx: an XML parser context + * @msg: the message to display/transmit + * @...: extra parameters for the message display + * + * Display and format a warning messages, callback. + */ +typedef void (XMLCDECL *warningSAXFunc) (void *ctx, + const char *msg, ...); +/** + * errorSAXFunc: + * @ctx: an XML parser context + * @msg: the message to display/transmit + * @...: extra parameters for the message display + * + * Display and format an error messages, callback. + */ +typedef void (XMLCDECL *errorSAXFunc) (void *ctx, + const char *msg, ...); +/** + * fatalErrorSAXFunc: + * @ctx: an XML parser context + * @msg: the message to display/transmit + * @...: extra parameters for the message display + * + * Display and format fatal error messages, callback. + * Note: so far fatalError() SAX callbacks are not used, error() + * get all the callbacks for errors. + */ +typedef void (XMLCDECL *fatalErrorSAXFunc) (void *ctx, + const char *msg, ...); +/** + * isStandaloneSAXFunc: + * @ctx: the user data (XML parser context) + * + * Is this document tagged standalone? + * + * Returns 1 if true + */ +typedef int (*isStandaloneSAXFunc) (void *ctx); +/** + * hasInternalSubsetSAXFunc: + * @ctx: the user data (XML parser context) + * + * Does this document has an internal subset. + * + * Returns 1 if true + */ +typedef int (*hasInternalSubsetSAXFunc) (void *ctx); + +/** + * hasExternalSubsetSAXFunc: + * @ctx: the user data (XML parser context) + * + * Does this document has an external subset? + * + * Returns 1 if true + */ +typedef int (*hasExternalSubsetSAXFunc) (void *ctx); + +/************************************************************************ + * * + * The SAX version 2 API extensions * + * * + ************************************************************************/ +/** + * XML_SAX2_MAGIC: + * + * Special constant found in SAX2 blocks initialized fields + */ +#define XML_SAX2_MAGIC 0xDEEDBEAF + +/** + * startElementNsSAX2Func: + * @ctx: the user data (XML parser context) + * @localname: the local name of the element + * @prefix: the element namespace prefix if available + * @URI: the element namespace name if available + * @nb_namespaces: number of namespace definitions on that node + * @namespaces: pointer to the array of prefix/URI pairs namespace definitions + * @nb_attributes: the number of attributes on that node + * @nb_defaulted: the number of defaulted attributes. The defaulted + * ones are at the end of the array + * @attributes: pointer to the array of (localname/prefix/URI/value/end) + * attribute values. + * + * SAX2 callback when an element start has been detected by the parser. + * It provides the namespace informations for the element, as well as + * the new namespace declarations on the element. + */ + +typedef void (*startElementNsSAX2Func) (void *ctx, + const xmlChar *localname, + const xmlChar *prefix, + const xmlChar *URI, + int nb_namespaces, + const xmlChar **namespaces, + int nb_attributes, + int nb_defaulted, + const xmlChar **attributes); + +/** + * endElementNsSAX2Func: + * @ctx: the user data (XML parser context) + * @localname: the local name of the element + * @prefix: the element namespace prefix if available + * @URI: the element namespace name if available + * + * SAX2 callback when an element end has been detected by the parser. + * It provides the namespace informations for the element. + */ + +typedef void (*endElementNsSAX2Func) (void *ctx, + const xmlChar *localname, + const xmlChar *prefix, + const xmlChar *URI); + + +struct _xmlSAXHandler { + internalSubsetSAXFunc internalSubset; + isStandaloneSAXFunc isStandalone; + hasInternalSubsetSAXFunc hasInternalSubset; + hasExternalSubsetSAXFunc hasExternalSubset; + resolveEntitySAXFunc resolveEntity; + getEntitySAXFunc getEntity; + entityDeclSAXFunc entityDecl; + notationDeclSAXFunc notationDecl; + attributeDeclSAXFunc attributeDecl; + elementDeclSAXFunc elementDecl; + unparsedEntityDeclSAXFunc unparsedEntityDecl; + setDocumentLocatorSAXFunc setDocumentLocator; + startDocumentSAXFunc startDocument; + endDocumentSAXFunc endDocument; + startElementSAXFunc startElement; + endElementSAXFunc endElement; + referenceSAXFunc reference; + charactersSAXFunc characters; + ignorableWhitespaceSAXFunc ignorableWhitespace; + processingInstructionSAXFunc processingInstruction; + commentSAXFunc comment; + warningSAXFunc warning; + errorSAXFunc error; + fatalErrorSAXFunc fatalError; /* unused error() get all the errors */ + getParameterEntitySAXFunc getParameterEntity; + cdataBlockSAXFunc cdataBlock; + externalSubsetSAXFunc externalSubset; + unsigned int initialized; + /* The following fields are extensions available only on version 2 */ + void *_private; + startElementNsSAX2Func startElementNs; + endElementNsSAX2Func endElementNs; + xmlStructuredErrorFunc serror; +}; + +/* + * SAX Version 1 + */ +typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1; +typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr; +struct _xmlSAXHandlerV1 { + internalSubsetSAXFunc internalSubset; + isStandaloneSAXFunc isStandalone; + hasInternalSubsetSAXFunc hasInternalSubset; + hasExternalSubsetSAXFunc hasExternalSubset; + resolveEntitySAXFunc resolveEntity; + getEntitySAXFunc getEntity; + entityDeclSAXFunc entityDecl; + notationDeclSAXFunc notationDecl; + attributeDeclSAXFunc attributeDecl; + elementDeclSAXFunc elementDecl; + unparsedEntityDeclSAXFunc unparsedEntityDecl; + setDocumentLocatorSAXFunc setDocumentLocator; + startDocumentSAXFunc startDocument; + endDocumentSAXFunc endDocument; + startElementSAXFunc startElement; + endElementSAXFunc endElement; + referenceSAXFunc reference; + charactersSAXFunc characters; + ignorableWhitespaceSAXFunc ignorableWhitespace; + processingInstructionSAXFunc processingInstruction; + commentSAXFunc comment; + warningSAXFunc warning; + errorSAXFunc error; + fatalErrorSAXFunc fatalError; /* unused error() get all the errors */ + getParameterEntitySAXFunc getParameterEntity; + cdataBlockSAXFunc cdataBlock; + externalSubsetSAXFunc externalSubset; + unsigned int initialized; +}; + + +/** + * xmlExternalEntityLoader: + * @URL: The System ID of the resource requested + * @ID: The Public ID of the resource requested + * @context: the XML parser context + * + * External entity loaders types. + * + * Returns the entity input parser. + */ +typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL, + const char *ID, + xmlParserCtxtPtr context); + +#ifdef __cplusplus +} +#endif + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* + * Init/Cleanup + */ +XMLPUBFUN void XMLCALL + xmlInitParser (void); +XMLPUBFUN void XMLCALL + xmlCleanupParser (void); + +/* + * Input functions + */ +XMLPUBFUN int XMLCALL + xmlParserInputRead (xmlParserInputPtr in, + int len); +XMLPUBFUN int XMLCALL + xmlParserInputGrow (xmlParserInputPtr in, + int len); + +/* + * Basic parsing Interfaces + */ +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN xmlDocPtr XMLCALL + xmlParseDoc (const xmlChar *cur); +XMLPUBFUN xmlDocPtr XMLCALL + xmlParseFile (const char *filename); +XMLPUBFUN xmlDocPtr XMLCALL + xmlParseMemory (const char *buffer, + int size); +#endif /* LIBXML_SAX1_ENABLED */ +XMLPUBFUN int XMLCALL + xmlSubstituteEntitiesDefault(int val); +XMLPUBFUN int XMLCALL + xmlKeepBlanksDefault (int val); +XMLPUBFUN void XMLCALL + xmlStopParser (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlPedanticParserDefault(int val); +XMLPUBFUN int XMLCALL + xmlLineNumbersDefault (int val); + +#ifdef LIBXML_SAX1_ENABLED +/* + * Recovery mode + */ +XMLPUBFUN xmlDocPtr XMLCALL + xmlRecoverDoc (xmlChar *cur); +XMLPUBFUN xmlDocPtr XMLCALL + xmlRecoverMemory (const char *buffer, + int size); +XMLPUBFUN xmlDocPtr XMLCALL + xmlRecoverFile (const char *filename); +#endif /* LIBXML_SAX1_ENABLED */ + +/* + * Less common routines and SAX interfaces + */ +XMLPUBFUN int XMLCALL + xmlParseDocument (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlParseExtParsedEnt (xmlParserCtxtPtr ctxt); +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN int XMLCALL + xmlSAXUserParseFile (xmlSAXHandlerPtr sax, + void *user_data, + const char *filename); +XMLPUBFUN int XMLCALL + xmlSAXUserParseMemory (xmlSAXHandlerPtr sax, + void *user_data, + const char *buffer, + int size); +XMLPUBFUN xmlDocPtr XMLCALL + xmlSAXParseDoc (xmlSAXHandlerPtr sax, + const xmlChar *cur, + int recovery); +XMLPUBFUN xmlDocPtr XMLCALL + xmlSAXParseMemory (xmlSAXHandlerPtr sax, + const char *buffer, + int size, + int recovery); +XMLPUBFUN xmlDocPtr XMLCALL + xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax, + const char *buffer, + int size, + int recovery, + void *data); +XMLPUBFUN xmlDocPtr XMLCALL + xmlSAXParseFile (xmlSAXHandlerPtr sax, + const char *filename, + int recovery); +XMLPUBFUN xmlDocPtr XMLCALL + xmlSAXParseFileWithData (xmlSAXHandlerPtr sax, + const char *filename, + int recovery, + void *data); +XMLPUBFUN xmlDocPtr XMLCALL + xmlSAXParseEntity (xmlSAXHandlerPtr sax, + const char *filename); +XMLPUBFUN xmlDocPtr XMLCALL + xmlParseEntity (const char *filename); +#endif /* LIBXML_SAX1_ENABLED */ + +#ifdef LIBXML_VALID_ENABLED +XMLPUBFUN xmlDtdPtr XMLCALL + xmlSAXParseDTD (xmlSAXHandlerPtr sax, + const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN xmlDtdPtr XMLCALL + xmlParseDTD (const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN xmlDtdPtr XMLCALL + xmlIOParseDTD (xmlSAXHandlerPtr sax, + xmlParserInputBufferPtr input, + xmlCharEncoding enc); +#endif /* LIBXML_VALID_ENABLE */ +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN int XMLCALL + xmlParseBalancedChunkMemory(xmlDocPtr doc, + xmlSAXHandlerPtr sax, + void *user_data, + int depth, + const xmlChar *string, + xmlNodePtr *lst); +#endif /* LIBXML_SAX1_ENABLED */ +XMLPUBFUN xmlParserErrors XMLCALL + xmlParseInNodeContext (xmlNodePtr node, + const char *data, + int datalen, + int options, + xmlNodePtr *lst); +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN int XMLCALL + xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc, + xmlSAXHandlerPtr sax, + void *user_data, + int depth, + const xmlChar *string, + xmlNodePtr *lst, + int recover); +XMLPUBFUN int XMLCALL + xmlParseExternalEntity (xmlDocPtr doc, + xmlSAXHandlerPtr sax, + void *user_data, + int depth, + const xmlChar *URL, + const xmlChar *ID, + xmlNodePtr *lst); +#endif /* LIBXML_SAX1_ENABLED */ +XMLPUBFUN int XMLCALL + xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, + const xmlChar *URL, + const xmlChar *ID, + xmlNodePtr *lst); + +/* + * Parser contexts handling. + */ +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlNewParserCtxt (void); +XMLPUBFUN int XMLCALL + xmlInitParserCtxt (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlClearParserCtxt (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlFreeParserCtxt (xmlParserCtxtPtr ctxt); +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN void XMLCALL + xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt, + const xmlChar* buffer, + const char *filename); +#endif /* LIBXML_SAX1_ENABLED */ +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlCreateDocParserCtxt (const xmlChar *cur); + +#ifdef LIBXML_LEGACY_ENABLED +/* + * Reading/setting optional parsing features. + */ +XMLPUBFUN int XMLCALL + xmlGetFeaturesList (int *len, + const char **result); +XMLPUBFUN int XMLCALL + xmlGetFeature (xmlParserCtxtPtr ctxt, + const char *name, + void *result); +XMLPUBFUN int XMLCALL + xmlSetFeature (xmlParserCtxtPtr ctxt, + const char *name, + void *value); +#endif /* LIBXML_LEGACY_ENABLED */ + +#ifdef LIBXML_PUSH_ENABLED +/* + * Interfaces for the Push mode. + */ +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, + void *user_data, + const char *chunk, + int size, + const char *filename); +XMLPUBFUN int XMLCALL + xmlParseChunk (xmlParserCtxtPtr ctxt, + const char *chunk, + int size, + int terminate); +#endif /* LIBXML_PUSH_ENABLED */ + +/* + * Special I/O mode. + */ + +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlCreateIOParserCtxt (xmlSAXHandlerPtr sax, + void *user_data, + xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + xmlCharEncoding enc); + +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlNewIOInputStream (xmlParserCtxtPtr ctxt, + xmlParserInputBufferPtr input, + xmlCharEncoding enc); + +/* + * Node infos. + */ +XMLPUBFUN const xmlParserNodeInfo* XMLCALL + xmlParserFindNodeInfo (const xmlParserCtxtPtr ctxt, + const xmlNodePtr node); +XMLPUBFUN void XMLCALL + xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq); +XMLPUBFUN void XMLCALL + xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq); +XMLPUBFUN unsigned long XMLCALL + xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq, + const xmlNodePtr node); +XMLPUBFUN void XMLCALL + xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt, + const xmlParserNodeInfoPtr info); + +/* + * External entities handling actually implemented in xmlIO. + */ + +XMLPUBFUN void XMLCALL + xmlSetExternalEntityLoader(xmlExternalEntityLoader f); +XMLPUBFUN xmlExternalEntityLoader XMLCALL + xmlGetExternalEntityLoader(void); +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlLoadExternalEntity (const char *URL, + const char *ID, + xmlParserCtxtPtr ctxt); + +/* + * Index lookup, actually implemented in the encoding module + */ +XMLPUBFUN long XMLCALL + xmlByteConsumed (xmlParserCtxtPtr ctxt); + +/* + * New set of simpler/more flexible APIs + */ +/** + * xmlParserOption: + * + * This is the set of XML parser options that can be passed down + * to the xmlReadDoc() and similar calls. + */ +typedef enum { + XML_PARSE_RECOVER = 1<<0, /* recover on errors */ + XML_PARSE_NOENT = 1<<1, /* substitute entities */ + XML_PARSE_DTDLOAD = 1<<2, /* load the external subset */ + XML_PARSE_DTDATTR = 1<<3, /* default DTD attributes */ + XML_PARSE_DTDVALID = 1<<4, /* validate with the DTD */ + XML_PARSE_NOERROR = 1<<5, /* suppress error reports */ + XML_PARSE_NOWARNING = 1<<6, /* suppress warning reports */ + XML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */ + XML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */ + XML_PARSE_SAX1 = 1<<9, /* use the SAX1 interface internally */ + XML_PARSE_XINCLUDE = 1<<10,/* Implement XInclude substitition */ + XML_PARSE_NONET = 1<<11,/* Forbid network access */ + XML_PARSE_NODICT = 1<<12,/* Do not reuse the context dictionnary */ + XML_PARSE_NSCLEAN = 1<<13,/* remove redundant namespaces declarations */ + XML_PARSE_NOCDATA = 1<<14,/* merge CDATA as text nodes */ + XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */ + XML_PARSE_COMPACT = 1<<16 /* compact small text nodes; no modification of + the tree allowed afterwards (will possibly + crash if you try to modify the tree) */ +} xmlParserOption; + +XMLPUBFUN void XMLCALL + xmlCtxtReset (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlCtxtResetPush (xmlParserCtxtPtr ctxt, + const char *chunk, + int size, + const char *filename, + const char *encoding); +XMLPUBFUN int XMLCALL + xmlCtxtUseOptions (xmlParserCtxtPtr ctxt, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlReadDoc (const xmlChar *cur, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlReadFile (const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlReadMemory (const char *buffer, + int size, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlReadFd (int fd, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlReadIO (xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlCtxtReadDoc (xmlParserCtxtPtr ctxt, + const xmlChar *cur, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlCtxtReadFile (xmlParserCtxtPtr ctxt, + const char *filename, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlCtxtReadMemory (xmlParserCtxtPtr ctxt, + const char *buffer, + int size, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlCtxtReadFd (xmlParserCtxtPtr ctxt, + int fd, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlDocPtr XMLCALL + xmlCtxtReadIO (xmlParserCtxtPtr ctxt, + xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + const char *URL, + const char *encoding, + int options); + +/* + * Library wide options + */ +/** + * xmlFeature: + * + * Used to examine the existance of features that can be enabled + * or disabled at compile-time. + * They used to be called XML_FEATURE_xxx but this clashed with Expat + */ +typedef enum { + XML_WITH_THREAD = 1, + XML_WITH_TREE = 2, + XML_WITH_OUTPUT = 3, + XML_WITH_PUSH = 4, + XML_WITH_READER = 5, + XML_WITH_PATTERN = 6, + XML_WITH_WRITER = 7, + XML_WITH_SAX1 = 8, + XML_WITH_FTP = 9, + XML_WITH_HTTP = 10, + XML_WITH_VALID = 11, + XML_WITH_HTML = 12, + XML_WITH_LEGACY = 13, + XML_WITH_C14N = 14, + XML_WITH_CATALOG = 15, + XML_WITH_XPATH = 16, + XML_WITH_XPTR = 17, + XML_WITH_XINCLUDE = 18, + XML_WITH_ICONV = 19, + XML_WITH_ISO8859X = 20, + XML_WITH_UNICODE = 21, + XML_WITH_REGEXP = 22, + XML_WITH_AUTOMATA = 23, + XML_WITH_EXPR = 24, + XML_WITH_SCHEMAS = 25, + XML_WITH_SCHEMATRON = 26, + XML_WITH_MODULES = 27, + XML_WITH_DEBUG = 28, + XML_WITH_DEBUG_MEM = 29, + XML_WITH_DEBUG_RUN = 30, + XML_WITH_ZLIB = 31, + XML_WITH_NONE = 99999 /* just to be sure of allocation size */ +} xmlFeature; + +XMLPUBFUN int XMLCALL + xmlHasFeature (xmlFeature feature); + +#ifdef __cplusplus +} +#endif +#endif /* __XML_PARSER_H__ */ + diff --git a/external-libs/libxml2/include/libxml/parserInternals.h b/external-libs/libxml2/include/libxml/parserInternals.h new file mode 100644 index 0000000..7ac0ce6 --- /dev/null +++ b/external-libs/libxml2/include/libxml/parserInternals.h @@ -0,0 +1,602 @@ +/* + * Summary: internals routines exported by the parser. + * Description: this module exports a number of internal parsing routines + * they are not really all intended for applications but + * can prove useful doing low level processing. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_PARSER_INTERNALS_H__ +#define __XML_PARSER_INTERNALS_H__ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlParserMaxDepth: + * + * arbitrary depth limit for the XML documents that we allow to + * process. This is not a limitation of the parser but a safety + * boundary feature. + */ +XMLPUBVAR unsigned int xmlParserMaxDepth; + + /** + * XML_MAX_NAMELEN: + * + * Identifiers can be longer, but this will be more costly + * at runtime. + */ +#define XML_MAX_NAMELEN 100 + +/** + * INPUT_CHUNK: + * + * The parser tries to always have that amount of input ready. + * One of the point is providing context when reporting errors. + */ +#define INPUT_CHUNK 250 + +/************************************************************************ + * * + * UNICODE version of the macros. * + * * + ************************************************************************/ +/** + * IS_BYTE_CHAR: + * @c: an byte value (int) + * + * Macro to check the following production in the XML spec: + * + * [2] Char ::= #x9 | #xA | #xD | [#x20...] + * any byte character in the accepted range + */ +#define IS_BYTE_CHAR(c) xmlIsChar_ch(c) + +/** + * IS_CHAR: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] + * | [#x10000-#x10FFFF] + * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. + */ +#define IS_CHAR(c) xmlIsCharQ(c) + +/** + * IS_CHAR_CH: + * @c: an xmlChar (usually an unsigned char) + * + * Behaves like IS_CHAR on single-byte value + */ +#define IS_CHAR_CH(c) xmlIsChar_ch(c) + +/** + * IS_BLANK: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * [3] S ::= (#x20 | #x9 | #xD | #xA)+ + */ +#define IS_BLANK(c) xmlIsBlankQ(c) + +/** + * IS_BLANK_CH: + * @c: an xmlChar value (normally unsigned char) + * + * Behaviour same as IS_BLANK + */ +#define IS_BLANK_CH(c) xmlIsBlank_ch(c) + +/** + * IS_BASECHAR: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * [85] BaseChar ::= ... long list see REC ... + */ +#define IS_BASECHAR(c) xmlIsBaseCharQ(c) + +/** + * IS_DIGIT: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * [88] Digit ::= ... long list see REC ... + */ +#define IS_DIGIT(c) xmlIsDigitQ(c) + +/** + * IS_DIGIT_CH: + * @c: an xmlChar value (usually an unsigned char) + * + * Behaves like IS_DIGIT but with a single byte argument + */ +#define IS_DIGIT_CH(c) xmlIsDigit_ch(c) + +/** + * IS_COMBINING: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * [87] CombiningChar ::= ... long list see REC ... + */ +#define IS_COMBINING(c) xmlIsCombiningQ(c) + +/** + * IS_COMBINING_CH: + * @c: an xmlChar (usually an unsigned char) + * + * Always false (all combining chars > 0xff) + */ +#define IS_COMBINING_CH(c) 0 + +/** + * IS_EXTENDER: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * + * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | + * #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | + * [#x309D-#x309E] | [#x30FC-#x30FE] + */ +#define IS_EXTENDER(c) xmlIsExtenderQ(c) + +/** + * IS_EXTENDER_CH: + * @c: an xmlChar value (usually an unsigned char) + * + * Behaves like IS_EXTENDER but with a single-byte argument + */ +#define IS_EXTENDER_CH(c) xmlIsExtender_ch(c) + +/** + * IS_IDEOGRAPHIC: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * + * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] + */ +#define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c) + +/** + * IS_LETTER: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * + * [84] Letter ::= BaseChar | Ideographic + */ +#define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c)) + +/** + * IS_LETTER_CH: + * @c: an xmlChar value (normally unsigned char) + * + * Macro behaves like IS_LETTER, but only check base chars + * + */ +#define IS_LETTER_CH(c) xmlIsBaseChar_ch(c) + +/** + * IS_ASCII_LETTER: + * @c: an xmlChar value + * + * Macro to check [a-zA-Z] + * + */ +#define IS_ASCII_LETTER(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \ + ((0x61 <= (c)) && ((c) <= 0x7a))) + +/** + * IS_ASCII_DIGIT: + * @c: an xmlChar value + * + * Macro to check [0-9] + * + */ +#define IS_ASCII_DIGIT(c) ((0x30 <= (c)) && ((c) <= 0x39)) + +/** + * IS_PUBIDCHAR: + * @c: an UNICODE value (int) + * + * Macro to check the following production in the XML spec: + * + * + * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%] + */ +#define IS_PUBIDCHAR(c) xmlIsPubidCharQ(c) + +/** + * IS_PUBIDCHAR_CH: + * @c: an xmlChar value (normally unsigned char) + * + * Same as IS_PUBIDCHAR but for single-byte value + */ +#define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c) + +/** + * SKIP_EOL: + * @p: and UTF8 string pointer + * + * Skips the end of line chars. + */ +#define SKIP_EOL(p) \ + if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; } \ + if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; } + +/** + * MOVETO_ENDTAG: + * @p: and UTF8 string pointer + * + * Skips to the next '>' char. + */ +#define MOVETO_ENDTAG(p) \ + while ((*p) && (*(p) != '>')) (p)++ + +/** + * MOVETO_STARTTAG: + * @p: and UTF8 string pointer + * + * Skips to the next '<' char. + */ +#define MOVETO_STARTTAG(p) \ + while ((*p) && (*(p) != '<')) (p)++ + +/** + * Global variables used for predefined strings. + */ +XMLPUBVAR const xmlChar xmlStringText[]; +XMLPUBVAR const xmlChar xmlStringTextNoenc[]; +XMLPUBVAR const xmlChar xmlStringComment[]; + +/* + * Function to finish the work of the macros where needed. + */ +XMLPUBFUN int XMLCALL xmlIsLetter (int c); + +/** + * Parser context. + */ +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlCreateFileParserCtxt (const char *filename); +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlCreateURLParserCtxt (const char *filename, + int options); +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlCreateMemoryParserCtxt(const char *buffer, + int size); +XMLPUBFUN xmlParserCtxtPtr XMLCALL + xmlCreateEntityParserCtxt(const xmlChar *URL, + const xmlChar *ID, + const xmlChar *base); +XMLPUBFUN int XMLCALL + xmlSwitchEncoding (xmlParserCtxtPtr ctxt, + xmlCharEncoding enc); +XMLPUBFUN int XMLCALL + xmlSwitchToEncoding (xmlParserCtxtPtr ctxt, + xmlCharEncodingHandlerPtr handler); +XMLPUBFUN int XMLCALL + xmlSwitchInputEncoding (xmlParserCtxtPtr ctxt, + xmlParserInputPtr input, + xmlCharEncodingHandlerPtr handler); + +#ifdef IN_LIBXML +/* internal error reporting */ +XMLPUBFUN void XMLCALL + __xmlErrEncoding (xmlParserCtxtPtr ctxt, + xmlParserErrors xmlerr, + const char *msg, + const xmlChar * str1, + const xmlChar * str2); +#endif + +/** + * Input Streams. + */ +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlNewStringInputStream (xmlParserCtxtPtr ctxt, + const xmlChar *buffer); +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlNewEntityInputStream (xmlParserCtxtPtr ctxt, + xmlEntityPtr entity); +XMLPUBFUN void XMLCALL + xmlPushInput (xmlParserCtxtPtr ctxt, + xmlParserInputPtr input); +XMLPUBFUN xmlChar XMLCALL + xmlPopInput (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlFreeInputStream (xmlParserInputPtr input); +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlNewInputFromFile (xmlParserCtxtPtr ctxt, + const char *filename); +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlNewInputStream (xmlParserCtxtPtr ctxt); + +/** + * Namespaces. + */ +XMLPUBFUN xmlChar * XMLCALL + xmlSplitQName (xmlParserCtxtPtr ctxt, + const xmlChar *name, + xmlChar **prefix); + +/** + * Generic production rules. + */ +XMLPUBFUN const xmlChar * XMLCALL + xmlParseName (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlParseNmtoken (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlParseEntityValue (xmlParserCtxtPtr ctxt, + xmlChar **orig); +XMLPUBFUN xmlChar * XMLCALL + xmlParseAttValue (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlParseSystemLiteral (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlParsePubidLiteral (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseCharData (xmlParserCtxtPtr ctxt, + int cdata); +XMLPUBFUN xmlChar * XMLCALL + xmlParseExternalID (xmlParserCtxtPtr ctxt, + xmlChar **publicID, + int strict); +XMLPUBFUN void XMLCALL + xmlParseComment (xmlParserCtxtPtr ctxt); +XMLPUBFUN const xmlChar * XMLCALL + xmlParsePITarget (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParsePI (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseNotationDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseEntityDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlParseDefaultDecl (xmlParserCtxtPtr ctxt, + xmlChar **value); +XMLPUBFUN xmlEnumerationPtr XMLCALL + xmlParseNotationType (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlEnumerationPtr XMLCALL + xmlParseEnumerationType (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlParseEnumeratedType (xmlParserCtxtPtr ctxt, + xmlEnumerationPtr *tree); +XMLPUBFUN int XMLCALL + xmlParseAttributeType (xmlParserCtxtPtr ctxt, + xmlEnumerationPtr *tree); +XMLPUBFUN void XMLCALL + xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlElementContentPtr XMLCALL + xmlParseElementMixedContentDecl + (xmlParserCtxtPtr ctxt, + int inputchk); +XMLPUBFUN xmlElementContentPtr XMLCALL + xmlParseElementChildrenContentDecl + (xmlParserCtxtPtr ctxt, + int inputchk); +XMLPUBFUN int XMLCALL + xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, + const xmlChar *name, + xmlElementContentPtr *result); +XMLPUBFUN int XMLCALL + xmlParseElementDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseMarkupDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlParseCharRef (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlEntityPtr XMLCALL + xmlParseEntityRef (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseReference (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParsePEReference (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseDocTypeDecl (xmlParserCtxtPtr ctxt); +#ifdef LIBXML_SAX1_ENABLED +XMLPUBFUN const xmlChar * XMLCALL + xmlParseAttribute (xmlParserCtxtPtr ctxt, + xmlChar **value); +XMLPUBFUN const xmlChar * XMLCALL + xmlParseStartTag (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseEndTag (xmlParserCtxtPtr ctxt); +#endif /* LIBXML_SAX1_ENABLED */ +XMLPUBFUN void XMLCALL + xmlParseCDSect (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseContent (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseElement (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlParseVersionNum (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlParseVersionInfo (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlParseEncName (xmlParserCtxtPtr ctxt); +XMLPUBFUN const xmlChar * XMLCALL + xmlParseEncodingDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlParseSDDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseXMLDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseTextDecl (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseMisc (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseExternalSubset (xmlParserCtxtPtr ctxt, + const xmlChar *ExternalID, + const xmlChar *SystemID); +/** + * XML_SUBSTITUTE_NONE: + * + * If no entities need to be substituted. + */ +#define XML_SUBSTITUTE_NONE 0 +/** + * XML_SUBSTITUTE_REF: + * + * Whether general entities need to be substituted. + */ +#define XML_SUBSTITUTE_REF 1 +/** + * XML_SUBSTITUTE_PEREF: + * + * Whether parameter entities need to be substituted. + */ +#define XML_SUBSTITUTE_PEREF 2 +/** + * XML_SUBSTITUTE_BOTH: + * + * Both general and parameter entities need to be substituted. + */ +#define XML_SUBSTITUTE_BOTH 3 + +XMLPUBFUN xmlChar * XMLCALL + xmlStringDecodeEntities (xmlParserCtxtPtr ctxt, + const xmlChar *str, + int what, + xmlChar end, + xmlChar end2, + xmlChar end3); +XMLPUBFUN xmlChar * XMLCALL + xmlStringLenDecodeEntities (xmlParserCtxtPtr ctxt, + const xmlChar *str, + int len, + int what, + xmlChar end, + xmlChar end2, + xmlChar end3); + +/* + * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP. + */ +XMLPUBFUN int XMLCALL nodePush (xmlParserCtxtPtr ctxt, + xmlNodePtr value); +XMLPUBFUN xmlNodePtr XMLCALL nodePop (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL inputPush (xmlParserCtxtPtr ctxt, + xmlParserInputPtr value); +XMLPUBFUN xmlParserInputPtr XMLCALL inputPop (xmlParserCtxtPtr ctxt); +XMLPUBFUN const xmlChar * XMLCALL namePop (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL namePush (xmlParserCtxtPtr ctxt, + const xmlChar *value); + +/* + * other commodities shared between parser.c and parserInternals. + */ +XMLPUBFUN int XMLCALL xmlSkipBlankChars (xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL xmlStringCurrentChar (xmlParserCtxtPtr ctxt, + const xmlChar *cur, + int *len); +XMLPUBFUN void XMLCALL xmlParserHandlePEReference(xmlParserCtxtPtr ctxt); +XMLPUBFUN int XMLCALL xmlCheckLanguageID (const xmlChar *lang); + +/* + * Really core function shared with HTML parser. + */ +XMLPUBFUN int XMLCALL xmlCurrentChar (xmlParserCtxtPtr ctxt, + int *len); +XMLPUBFUN int XMLCALL xmlCopyCharMultiByte (xmlChar *out, + int val); +XMLPUBFUN int XMLCALL xmlCopyChar (int len, + xmlChar *out, + int val); +XMLPUBFUN void XMLCALL xmlNextChar (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL xmlParserInputShrink (xmlParserInputPtr in); + +#ifdef LIBXML_HTML_ENABLED +/* + * Actually comes from the HTML parser but launched from the init stuff. + */ +XMLPUBFUN void XMLCALL htmlInitAutoClose (void); +XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreateFileParserCtxt(const char *filename, + const char *encoding); +#endif + +/* + * Specific function to keep track of entities references + * and used by the XSLT debugger. + */ +#ifdef LIBXML_LEGACY_ENABLED +/** + * xmlEntityReferenceFunc: + * @ent: the entity + * @firstNode: the fist node in the chunk + * @lastNode: the last nod in the chunk + * + * Callback function used when one needs to be able to track back the + * provenance of a chunk of nodes inherited from an entity replacement. + */ +typedef void (*xmlEntityReferenceFunc) (xmlEntityPtr ent, + xmlNodePtr firstNode, + xmlNodePtr lastNode); + +XMLPUBFUN void XMLCALL xmlSetEntityReferenceFunc (xmlEntityReferenceFunc func); + +XMLPUBFUN xmlChar * XMLCALL + xmlParseQuotedString (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlParseNamespace (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlNamespaceParseNSDef (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlScanName (xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL xmlParserHandleReference(xmlParserCtxtPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlNamespaceParseQName (xmlParserCtxtPtr ctxt, + xmlChar **prefix); +/** + * Entities + */ +XMLPUBFUN xmlChar * XMLCALL + xmlDecodeEntities (xmlParserCtxtPtr ctxt, + int len, + int what, + xmlChar end, + xmlChar end2, + xmlChar end3); +XMLPUBFUN void XMLCALL + xmlHandleEntity (xmlParserCtxtPtr ctxt, + xmlEntityPtr entity); + +#endif /* LIBXML_LEGACY_ENABLED */ + +#ifdef IN_LIBXML +/* + * internal only + */ +XMLPUBFUN void XMLCALL + xmlErrMemory (xmlParserCtxtPtr ctxt, + const char *extra); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* __XML_PARSER_INTERNALS_H__ */ diff --git a/external-libs/libxml2/include/libxml/pattern.h b/external-libs/libxml2/include/libxml/pattern.h new file mode 100644 index 0000000..97d2cd2 --- /dev/null +++ b/external-libs/libxml2/include/libxml/pattern.h @@ -0,0 +1,100 @@ +/* + * Summary: pattern expression handling + * Description: allows to compile and test pattern expressions for nodes + * either in a tree or based on a parser state. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_PATTERN_H__ +#define __XML_PATTERN_H__ + +#include +#include +#include + +#ifdef LIBXML_PATTERN_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlPattern: + * + * A compiled (XPath based) pattern to select nodes + */ +typedef struct _xmlPattern xmlPattern; +typedef xmlPattern *xmlPatternPtr; + +/** + * xmlPatternFlags: + * + * This is the set of options affecting the behaviour of pattern + * matching with this module + * + */ +typedef enum { + XML_PATTERN_DEFAULT = 0, /* simple pattern match */ + XML_PATTERN_XPATH = 1<<0, /* standard XPath pattern */ + XML_PATTERN_XSSEL = 1<<1, /* XPath subset for schema selector */ + XML_PATTERN_XSFIELD = 1<<2 /* XPath subset for schema field */ +} xmlPatternFlags; + +XMLPUBFUN void XMLCALL + xmlFreePattern (xmlPatternPtr comp); + +XMLPUBFUN void XMLCALL + xmlFreePatternList (xmlPatternPtr comp); + +XMLPUBFUN xmlPatternPtr XMLCALL + xmlPatterncompile (const xmlChar *pattern, + xmlDict *dict, + int flags, + const xmlChar **namespaces); +XMLPUBFUN int XMLCALL + xmlPatternMatch (xmlPatternPtr comp, + xmlNodePtr node); + +/* streaming interfaces */ +typedef struct _xmlStreamCtxt xmlStreamCtxt; +typedef xmlStreamCtxt *xmlStreamCtxtPtr; + +XMLPUBFUN int XMLCALL + xmlPatternStreamable (xmlPatternPtr comp); +XMLPUBFUN int XMLCALL + xmlPatternMaxDepth (xmlPatternPtr comp); +XMLPUBFUN int XMLCALL + xmlPatternMinDepth (xmlPatternPtr comp); +XMLPUBFUN int XMLCALL + xmlPatternFromRoot (xmlPatternPtr comp); +XMLPUBFUN xmlStreamCtxtPtr XMLCALL + xmlPatternGetStreamCtxt (xmlPatternPtr comp); +XMLPUBFUN void XMLCALL + xmlFreeStreamCtxt (xmlStreamCtxtPtr stream); +XMLPUBFUN int XMLCALL + xmlStreamPushNode (xmlStreamCtxtPtr stream, + const xmlChar *name, + const xmlChar *ns, + int nodeType); +XMLPUBFUN int XMLCALL + xmlStreamPush (xmlStreamCtxtPtr stream, + const xmlChar *name, + const xmlChar *ns); +XMLPUBFUN int XMLCALL + xmlStreamPushAttr (xmlStreamCtxtPtr stream, + const xmlChar *name, + const xmlChar *ns); +XMLPUBFUN int XMLCALL + xmlStreamPop (xmlStreamCtxtPtr stream); +XMLPUBFUN int XMLCALL + xmlStreamWantsAnyNode (xmlStreamCtxtPtr stream); +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_PATTERN_ENABLED */ + +#endif /* __XML_PATTERN_H__ */ diff --git a/external-libs/libxml2/include/libxml/relaxng.h b/external-libs/libxml2/include/libxml/relaxng.h new file mode 100644 index 0000000..6acd467 --- /dev/null +++ b/external-libs/libxml2/include/libxml/relaxng.h @@ -0,0 +1,196 @@ +/* + * Summary: implementation of the Relax-NG validation + * Description: implementation of the Relax-NG validation + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_RELAX_NG__ +#define __XML_RELAX_NG__ + +#include +#include +#include + +#ifdef LIBXML_SCHEMAS_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _xmlRelaxNG xmlRelaxNG; +typedef xmlRelaxNG *xmlRelaxNGPtr; + + +/** + * A schemas validation context + */ +typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...); +typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...); + +typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt; +typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr; + +typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt; +typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr; + +/* + * xmlRelaxNGValidErr: + * + * List of possible Relax NG validation errors + */ +typedef enum { + XML_RELAXNG_OK = 0, + XML_RELAXNG_ERR_MEMORY, + XML_RELAXNG_ERR_TYPE, + XML_RELAXNG_ERR_TYPEVAL, + XML_RELAXNG_ERR_DUPID, + XML_RELAXNG_ERR_TYPECMP, + XML_RELAXNG_ERR_NOSTATE, + XML_RELAXNG_ERR_NODEFINE, + XML_RELAXNG_ERR_LISTEXTRA, + XML_RELAXNG_ERR_LISTEMPTY, + XML_RELAXNG_ERR_INTERNODATA, + XML_RELAXNG_ERR_INTERSEQ, + XML_RELAXNG_ERR_INTEREXTRA, + XML_RELAXNG_ERR_ELEMNAME, + XML_RELAXNG_ERR_ATTRNAME, + XML_RELAXNG_ERR_ELEMNONS, + XML_RELAXNG_ERR_ATTRNONS, + XML_RELAXNG_ERR_ELEMWRONGNS, + XML_RELAXNG_ERR_ATTRWRONGNS, + XML_RELAXNG_ERR_ELEMEXTRANS, + XML_RELAXNG_ERR_ATTREXTRANS, + XML_RELAXNG_ERR_ELEMNOTEMPTY, + XML_RELAXNG_ERR_NOELEM, + XML_RELAXNG_ERR_NOTELEM, + XML_RELAXNG_ERR_ATTRVALID, + XML_RELAXNG_ERR_CONTENTVALID, + XML_RELAXNG_ERR_EXTRACONTENT, + XML_RELAXNG_ERR_INVALIDATTR, + XML_RELAXNG_ERR_DATAELEM, + XML_RELAXNG_ERR_VALELEM, + XML_RELAXNG_ERR_LISTELEM, + XML_RELAXNG_ERR_DATATYPE, + XML_RELAXNG_ERR_VALUE, + XML_RELAXNG_ERR_LIST, + XML_RELAXNG_ERR_NOGRAMMAR, + XML_RELAXNG_ERR_EXTRADATA, + XML_RELAXNG_ERR_LACKDATA, + XML_RELAXNG_ERR_INTERNAL, + XML_RELAXNG_ERR_ELEMWRONG, + XML_RELAXNG_ERR_TEXTWRONG +} xmlRelaxNGValidErr; + +/* + * xmlRelaxNGParserFlags: + * + * List of possible Relax NG Parser flags + */ +typedef enum { + XML_RELAXNGP_NONE = 0, + XML_RELAXNGP_FREE_DOC = 1, + XML_RELAXNGP_CRNG = 2 +} xmlRelaxNGParserFlag; + +XMLPUBFUN int XMLCALL + xmlRelaxNGInitTypes (void); +XMLPUBFUN void XMLCALL + xmlRelaxNGCleanupTypes (void); + +/* + * Interfaces for parsing. + */ +XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL + xmlRelaxNGNewParserCtxt (const char *URL); +XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL + xmlRelaxNGNewMemParserCtxt (const char *buffer, + int size); +XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL + xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc); + +XMLPUBFUN int XMLCALL + xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt, + int flag); + +XMLPUBFUN void XMLCALL + xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, + xmlRelaxNGValidityErrorFunc err, + xmlRelaxNGValidityWarningFunc warn, + void *ctx); +XMLPUBFUN int XMLCALL + xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, + xmlRelaxNGValidityErrorFunc *err, + xmlRelaxNGValidityWarningFunc *warn, + void **ctx); +XMLPUBFUN void XMLCALL + xmlRelaxNGSetParserStructuredErrors( + xmlRelaxNGParserCtxtPtr ctxt, + xmlStructuredErrorFunc serror, + void *ctx); +XMLPUBFUN xmlRelaxNGPtr XMLCALL + xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlRelaxNGFree (xmlRelaxNGPtr schema); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlRelaxNGDump (FILE *output, + xmlRelaxNGPtr schema); +XMLPUBFUN void XMLCALL + xmlRelaxNGDumpTree (FILE * output, + xmlRelaxNGPtr schema); +#endif /* LIBXML_OUTPUT_ENABLED */ +/* + * Interfaces for validating + */ +XMLPUBFUN void XMLCALL + xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, + xmlRelaxNGValidityErrorFunc err, + xmlRelaxNGValidityWarningFunc warn, + void *ctx); +XMLPUBFUN int XMLCALL + xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, + xmlRelaxNGValidityErrorFunc *err, + xmlRelaxNGValidityWarningFunc *warn, + void **ctx); +XMLPUBFUN void XMLCALL + xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt, + xmlStructuredErrorFunc serror, void *ctx); +XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL + xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema); +XMLPUBFUN void XMLCALL + xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt, + xmlDocPtr doc); +/* + * Interfaces for progressive validation when possible + */ +XMLPUBFUN int XMLCALL + xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem); +XMLPUBFUN int XMLCALL + xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt, + const xmlChar *data, + int len); +XMLPUBFUN int XMLCALL + xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem); +XMLPUBFUN int XMLCALL + xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_SCHEMAS_ENABLED */ + +#endif /* __XML_RELAX_NG__ */ diff --git a/external-libs/libxml2/include/libxml/schemasInternals.h b/external-libs/libxml2/include/libxml/schemasInternals.h new file mode 100644 index 0000000..b68a6e1 --- /dev/null +++ b/external-libs/libxml2/include/libxml/schemasInternals.h @@ -0,0 +1,958 @@ +/* + * Summary: internal interfaces for XML Schemas + * Description: internal interfaces for the XML Schemas handling + * and schema validity checking + * The Schemas development is a Work In Progress. + * Some of those interfaces are not garanteed to be API or ABI stable ! + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __XML_SCHEMA_INTERNALS_H__ +#define __XML_SCHEMA_INTERNALS_H__ + +#include + +#ifdef LIBXML_SCHEMAS_ENABLED + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + XML_SCHEMAS_UNKNOWN = 0, + XML_SCHEMAS_STRING, + XML_SCHEMAS_NORMSTRING, + XML_SCHEMAS_DECIMAL, + XML_SCHEMAS_TIME, + XML_SCHEMAS_GDAY, + XML_SCHEMAS_GMONTH, + XML_SCHEMAS_GMONTHDAY, + XML_SCHEMAS_GYEAR, + XML_SCHEMAS_GYEARMONTH, + XML_SCHEMAS_DATE, + XML_SCHEMAS_DATETIME, + XML_SCHEMAS_DURATION, + XML_SCHEMAS_FLOAT, + XML_SCHEMAS_DOUBLE, + XML_SCHEMAS_BOOLEAN, + XML_SCHEMAS_TOKEN, + XML_SCHEMAS_LANGUAGE, + XML_SCHEMAS_NMTOKEN, + XML_SCHEMAS_NMTOKENS, + XML_SCHEMAS_NAME, + XML_SCHEMAS_QNAME, + XML_SCHEMAS_NCNAME, + XML_SCHEMAS_ID, + XML_SCHEMAS_IDREF, + XML_SCHEMAS_IDREFS, + XML_SCHEMAS_ENTITY, + XML_SCHEMAS_ENTITIES, + XML_SCHEMAS_NOTATION, + XML_SCHEMAS_ANYURI, + XML_SCHEMAS_INTEGER, + XML_SCHEMAS_NPINTEGER, + XML_SCHEMAS_NINTEGER, + XML_SCHEMAS_NNINTEGER, + XML_SCHEMAS_PINTEGER, + XML_SCHEMAS_INT, + XML_SCHEMAS_UINT, + XML_SCHEMAS_LONG, + XML_SCHEMAS_ULONG, + XML_SCHEMAS_SHORT, + XML_SCHEMAS_USHORT, + XML_SCHEMAS_BYTE, + XML_SCHEMAS_UBYTE, + XML_SCHEMAS_HEXBINARY, + XML_SCHEMAS_BASE64BINARY, + XML_SCHEMAS_ANYTYPE, + XML_SCHEMAS_ANYSIMPLETYPE +} xmlSchemaValType; + +/* + * XML Schemas defines multiple type of types. + */ +typedef enum { + XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */ + XML_SCHEMA_TYPE_ANY, + XML_SCHEMA_TYPE_FACET, + XML_SCHEMA_TYPE_SIMPLE, + XML_SCHEMA_TYPE_COMPLEX, + XML_SCHEMA_TYPE_SEQUENCE = 6, + XML_SCHEMA_TYPE_CHOICE, + XML_SCHEMA_TYPE_ALL, + XML_SCHEMA_TYPE_SIMPLE_CONTENT, + XML_SCHEMA_TYPE_COMPLEX_CONTENT, + XML_SCHEMA_TYPE_UR, + XML_SCHEMA_TYPE_RESTRICTION, + XML_SCHEMA_TYPE_EXTENSION, + XML_SCHEMA_TYPE_ELEMENT, + XML_SCHEMA_TYPE_ATTRIBUTE, + XML_SCHEMA_TYPE_ATTRIBUTEGROUP, + XML_SCHEMA_TYPE_GROUP, + XML_SCHEMA_TYPE_NOTATION, + XML_SCHEMA_TYPE_LIST, + XML_SCHEMA_TYPE_UNION, + XML_SCHEMA_TYPE_ANY_ATTRIBUTE, + XML_SCHEMA_TYPE_IDC_UNIQUE, + XML_SCHEMA_TYPE_IDC_KEY, + XML_SCHEMA_TYPE_IDC_KEYREF, + XML_SCHEMA_TYPE_PARTICLE = 25, + XML_SCHEMA_TYPE_ATTRIBUTE_USE, + XML_SCHEMA_FACET_MININCLUSIVE = 1000, + XML_SCHEMA_FACET_MINEXCLUSIVE, + XML_SCHEMA_FACET_MAXINCLUSIVE, + XML_SCHEMA_FACET_MAXEXCLUSIVE, + XML_SCHEMA_FACET_TOTALDIGITS, + XML_SCHEMA_FACET_FRACTIONDIGITS, + XML_SCHEMA_FACET_PATTERN, + XML_SCHEMA_FACET_ENUMERATION, + XML_SCHEMA_FACET_WHITESPACE, + XML_SCHEMA_FACET_LENGTH, + XML_SCHEMA_FACET_MAXLENGTH, + XML_SCHEMA_FACET_MINLENGTH, + XML_SCHEMA_EXTRA_QNAMEREF = 2000, + XML_SCHEMA_EXTRA_ATTR_USE_PROHIB +} xmlSchemaTypeType; + +typedef enum { + XML_SCHEMA_CONTENT_UNKNOWN = 0, + XML_SCHEMA_CONTENT_EMPTY = 1, + XML_SCHEMA_CONTENT_ELEMENTS, + XML_SCHEMA_CONTENT_MIXED, + XML_SCHEMA_CONTENT_SIMPLE, + XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* Obsolete */ + XML_SCHEMA_CONTENT_BASIC, + XML_SCHEMA_CONTENT_ANY +} xmlSchemaContentType; + +typedef struct _xmlSchemaVal xmlSchemaVal; +typedef xmlSchemaVal *xmlSchemaValPtr; + +typedef struct _xmlSchemaType xmlSchemaType; +typedef xmlSchemaType *xmlSchemaTypePtr; + +typedef struct _xmlSchemaFacet xmlSchemaFacet; +typedef xmlSchemaFacet *xmlSchemaFacetPtr; + +/** + * Annotation + */ +typedef struct _xmlSchemaAnnot xmlSchemaAnnot; +typedef xmlSchemaAnnot *xmlSchemaAnnotPtr; +struct _xmlSchemaAnnot { + struct _xmlSchemaAnnot *next; + xmlNodePtr content; /* the annotation */ +}; + +/** + * XML_SCHEMAS_ANYATTR_SKIP: + * + * Skip unknown attribute from validation + * Obsolete, not used anymore. + */ +#define XML_SCHEMAS_ANYATTR_SKIP 1 +/** + * XML_SCHEMAS_ANYATTR_LAX: + * + * Ignore validation non definition on attributes + * Obsolete, not used anymore. + */ +#define XML_SCHEMAS_ANYATTR_LAX 2 +/** + * XML_SCHEMAS_ANYATTR_STRICT: + * + * Apply strict validation rules on attributes + * Obsolete, not used anymore. + */ +#define XML_SCHEMAS_ANYATTR_STRICT 3 +/** + * XML_SCHEMAS_ANY_SKIP: + * + * Skip unknown attribute from validation + */ +#define XML_SCHEMAS_ANY_SKIP 1 +/** + * XML_SCHEMAS_ANY_LAX: + * + * Used by wildcards. + * Validate if type found, don't worry if not found + */ +#define XML_SCHEMAS_ANY_LAX 2 +/** + * XML_SCHEMAS_ANY_STRICT: + * + * Used by wildcards. + * Apply strict validation rules + */ +#define XML_SCHEMAS_ANY_STRICT 3 +/** + * XML_SCHEMAS_ATTR_USE_PROHIBITED: + * + * Used by wildcards. + * The attribute is prohibited. + */ +#define XML_SCHEMAS_ATTR_USE_PROHIBITED 0 +/** + * XML_SCHEMAS_ATTR_USE_REQUIRED: + * + * The attribute is required. + */ +#define XML_SCHEMAS_ATTR_USE_REQUIRED 1 +/** + * XML_SCHEMAS_ATTR_USE_OPTIONAL: + * + * The attribute is optional. + */ +#define XML_SCHEMAS_ATTR_USE_OPTIONAL 2 +/** + * XML_SCHEMAS_ATTR_GLOBAL: + * + * allow elements in no namespace + */ +#define XML_SCHEMAS_ATTR_GLOBAL 1 << 0 +/** + * XML_SCHEMAS_ATTR_NSDEFAULT: + * + * allow elements in no namespace + */ +#define XML_SCHEMAS_ATTR_NSDEFAULT 1 << 7 +/** + * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED: + * + * this is set when the "type" and "ref" references + * have been resolved. + */ +#define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED 1 << 8 +/** + * XML_SCHEMAS_ATTR_FIXED: + * + * the attribute has a fixed value + */ +#define XML_SCHEMAS_ATTR_FIXED 1 << 9 + +/** + * xmlSchemaAttribute: + * An attribute definition. + */ + +typedef struct _xmlSchemaAttribute xmlSchemaAttribute; +typedef xmlSchemaAttribute *xmlSchemaAttributePtr; +struct _xmlSchemaAttribute { + xmlSchemaTypeType type; + struct _xmlSchemaAttribute *next; /* the next attribute (not used?) */ + const xmlChar *name; /* the name of the declaration */ + const xmlChar *id; /* Deprecated; not used */ + const xmlChar *ref; /* Deprecated; not used */ + const xmlChar *refNs; /* Deprecated; not used */ + const xmlChar *typeName; /* the local name of the type definition */ + const xmlChar *typeNs; /* the ns URI of the type definition */ + xmlSchemaAnnotPtr annot; + + xmlSchemaTypePtr base; /* Deprecated; not used */ + int occurs; /* Deprecated; not used */ + const xmlChar *defValue; /* The initial value of the value constraint */ + xmlSchemaTypePtr subtypes; /* the type definition */ + xmlNodePtr node; + const xmlChar *targetNamespace; + int flags; + const xmlChar *refPrefix; /* Deprecated; not used */ + xmlSchemaValPtr defVal; /* The compiled value constraint */ + xmlSchemaAttributePtr refDecl; /* Deprecated; not used */ +}; + +/** + * xmlSchemaAttributeLink: + * Used to build a list of attribute uses on complexType definitions. + * WARNING: Deprecated; not used. + */ +typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink; +typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr; +struct _xmlSchemaAttributeLink { + struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */ + struct _xmlSchemaAttribute *attr;/* the linked attribute */ +}; + +/** + * XML_SCHEMAS_WILDCARD_COMPLETE: + * + * If the wildcard is complete. + */ +#define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0 + +/** + * xmlSchemaCharValueLink: + * Used to build a list of namespaces on wildcards. + */ +typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs; +typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr; +struct _xmlSchemaWildcardNs { + struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */ + const xmlChar *value;/* the value */ +}; + +/** + * xmlSchemaWildcard. + * A wildcard. + */ +typedef struct _xmlSchemaWildcard xmlSchemaWildcard; +typedef xmlSchemaWildcard *xmlSchemaWildcardPtr; +struct _xmlSchemaWildcard { + xmlSchemaTypeType type; /* The kind of type */ + const xmlChar *id; /* Deprecated; not used */ + xmlSchemaAnnotPtr annot; + xmlNodePtr node; + int minOccurs; /* Deprecated; not used */ + int maxOccurs; /* Deprecated; not used */ + int processContents; + int any; /* Indicates if the ns constraint is of ##any */ + xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */ + xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */ + int flags; +}; + +/** + * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED: + * + * The attribute wildcard has been already builded. + */ +#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0 +/** + * XML_SCHEMAS_ATTRGROUP_GLOBAL: + * + * The attribute wildcard has been already builded. + */ +#define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1 +/** + * XML_SCHEMAS_ATTRGROUP_MARKED: + * + * Marks the attr group as marked; used for circular checks. + */ +#define XML_SCHEMAS_ATTRGROUP_MARKED 1 << 2 + +/** + * XML_SCHEMAS_ATTRGROUP_REDEFINED: + * + * The attr group was redefined. + */ +#define XML_SCHEMAS_ATTRGROUP_REDEFINED 1 << 3 +/** + * XML_SCHEMAS_ATTRGROUP_HAS_REFS: + * + * Whether this attr. group contains attr. group references. + */ +#define XML_SCHEMAS_ATTRGROUP_HAS_REFS 1 << 4 + +/** + * An attribute group definition. + * + * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures + * must be kept similar + */ +typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup; +typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr; +struct _xmlSchemaAttributeGroup { + xmlSchemaTypeType type; /* The kind of type */ + struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */ + const xmlChar *name; + const xmlChar *id; + const xmlChar *ref; /* Deprecated; not used */ + const xmlChar *refNs; /* Deprecated; not used */ + xmlSchemaAnnotPtr annot; + + xmlSchemaAttributePtr attributes; /* Deprecated; not used */ + xmlNodePtr node; + int flags; + xmlSchemaWildcardPtr attributeWildcard; + const xmlChar *refPrefix; /* Deprecated; not used */ + xmlSchemaAttributeGroupPtr refItem; /* Deprecated; not used */ + const xmlChar *targetNamespace; + void *attrUses; +}; + +/** + * xmlSchemaTypeLink: + * Used to build a list of types (e.g. member types of + * simpleType with variety "union"). + */ +typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink; +typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr; +struct _xmlSchemaTypeLink { + struct _xmlSchemaTypeLink *next;/* the next type link ... */ + xmlSchemaTypePtr type;/* the linked type */ +}; + +/** + * xmlSchemaFacetLink: + * Used to build a list of facets. + */ +typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink; +typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr; +struct _xmlSchemaFacetLink { + struct _xmlSchemaFacetLink *next;/* the next facet link ... */ + xmlSchemaFacetPtr facet;/* the linked facet */ +}; + +/** + * XML_SCHEMAS_TYPE_MIXED: + * + * the element content type is mixed + */ +#define XML_SCHEMAS_TYPE_MIXED 1 << 0 +/** + * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION: + * + * the simple or complex type has a derivation method of "extension". + */ +#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION 1 << 1 +/** + * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION: + * + * the simple or complex type has a derivation method of "restriction". + */ +#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION 1 << 2 +/** + * XML_SCHEMAS_TYPE_GLOBAL: + * + * the type is global + */ +#define XML_SCHEMAS_TYPE_GLOBAL 1 << 3 +/** + * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD: + * + * the complexType owns an attribute wildcard, i.e. + * it can be freed by the complexType + */ +#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD 1 << 4 /* Obsolete. */ +/** + * XML_SCHEMAS_TYPE_VARIETY_ABSENT: + * + * the simpleType has a variety of "absent". + * TODO: Actually not necessary :-/, since if + * none of the variety flags occur then it's + * automatically absent. + */ +#define XML_SCHEMAS_TYPE_VARIETY_ABSENT 1 << 5 +/** + * XML_SCHEMAS_TYPE_VARIETY_LIST: + * + * the simpleType has a variety of "list". + */ +#define XML_SCHEMAS_TYPE_VARIETY_LIST 1 << 6 +/** + * XML_SCHEMAS_TYPE_VARIETY_UNION: + * + * the simpleType has a variety of "union". + */ +#define XML_SCHEMAS_TYPE_VARIETY_UNION 1 << 7 +/** + * XML_SCHEMAS_TYPE_VARIETY_ATOMIC: + * + * the simpleType has a variety of "union". + */ +#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC 1 << 8 +/** + * XML_SCHEMAS_TYPE_FINAL_EXTENSION: + * + * the complexType has a final of "extension". + */ +#define XML_SCHEMAS_TYPE_FINAL_EXTENSION 1 << 9 +/** + * XML_SCHEMAS_TYPE_FINAL_RESTRICTION: + * + * the simpleType/complexType has a final of "restriction". + */ +#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION 1 << 10 +/** + * XML_SCHEMAS_TYPE_FINAL_LIST: + * + * the simpleType has a final of "list". + */ +#define XML_SCHEMAS_TYPE_FINAL_LIST 1 << 11 +/** + * XML_SCHEMAS_TYPE_FINAL_UNION: + * + * the simpleType has a final of "union". + */ +#define XML_SCHEMAS_TYPE_FINAL_UNION 1 << 12 +/** + * XML_SCHEMAS_TYPE_FINAL_DEFAULT: + * + * the simpleType has a final of "default". + */ +#define XML_SCHEMAS_TYPE_FINAL_DEFAULT 1 << 13 +/** + * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE: + * + * Marks the item as a builtin primitive. + */ +#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE 1 << 14 +/** + * XML_SCHEMAS_TYPE_MARKED: + * + * Marks the item as marked; used for circular checks. + */ +#define XML_SCHEMAS_TYPE_MARKED 1 << 16 +/** + * XML_SCHEMAS_TYPE_BLOCK_DEFAULT: + * + * the complexType did not specify 'block' so use the default of the + * item. + */ +#define XML_SCHEMAS_TYPE_BLOCK_DEFAULT 1 << 17 +/** + * XML_SCHEMAS_TYPE_BLOCK_EXTENSION: + * + * the complexType has a 'block' of "extension". + */ +#define XML_SCHEMAS_TYPE_BLOCK_EXTENSION 1 << 18 +/** + * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION: + * + * the complexType has a 'block' of "restriction". + */ +#define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION 1 << 19 +/** + * XML_SCHEMAS_TYPE_ABSTRACT: + * + * the simple/complexType is abstract. + */ +#define XML_SCHEMAS_TYPE_ABSTRACT 1 << 20 +/** + * XML_SCHEMAS_TYPE_FACETSNEEDVALUE: + * + * indicates if the facets need a computed value + */ +#define XML_SCHEMAS_TYPE_FACETSNEEDVALUE 1 << 21 +/** + * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED: + * + * indicates that the type was typefixed + */ +#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED 1 << 22 +/** + * XML_SCHEMAS_TYPE_INTERNAL_INVALID: + * + * indicates that the type is invalid + */ +#define XML_SCHEMAS_TYPE_INTERNAL_INVALID 1 << 23 +/** + * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE: + * + * a whitespace-facet value of "preserve" + */ +#define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE 1 << 24 +/** + * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE: + * + * a whitespace-facet value of "replace" + */ +#define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE 1 << 25 +/** + * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE: + * + * a whitespace-facet value of "collapse" + */ +#define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE 1 << 26 +/** + * XML_SCHEMAS_TYPE_HAS_FACETS: + * + * has facets + */ +#define XML_SCHEMAS_TYPE_HAS_FACETS 1 << 27 +/** + * XML_SCHEMAS_TYPE_NORMVALUENEEDED: + * + * indicates if the facets (pattern) need a normalized value + */ +#define XML_SCHEMAS_TYPE_NORMVALUENEEDED 1 << 28 + +/** + * XML_SCHEMAS_TYPE_FIXUP_1: + * + * First stage of fixup was done. + */ +#define XML_SCHEMAS_TYPE_FIXUP_1 1 << 29 + +/** + * XML_SCHEMAS_TYPE_REDEFINED: + * + * The type was redefined. + */ +#define XML_SCHEMAS_TYPE_REDEFINED 1 << 30 +/** + * XML_SCHEMAS_TYPE_REDEFINING: + * + * The type redefines an other type. + */ +/* #define XML_SCHEMAS_TYPE_REDEFINING 1 << 31 */ + +/** + * _xmlSchemaType: + * + * Schemas type definition. + */ +struct _xmlSchemaType { + xmlSchemaTypeType type; /* The kind of type */ + struct _xmlSchemaType *next; /* the next type if in a sequence ... */ + const xmlChar *name; + const xmlChar *id ; /* Deprecated; not used */ + const xmlChar *ref; /* Deprecated; not used */ + const xmlChar *refNs; /* Deprecated; not used */ + xmlSchemaAnnotPtr annot; + xmlSchemaTypePtr subtypes; + xmlSchemaAttributePtr attributes; /* Deprecated; not used */ + xmlNodePtr node; + int minOccurs; /* Deprecated; not used */ + int maxOccurs; /* Deprecated; not used */ + + int flags; + xmlSchemaContentType contentType; + const xmlChar *base; /* Base type's local name */ + const xmlChar *baseNs; /* Base type's target namespace */ + xmlSchemaTypePtr baseType; /* The base type component */ + xmlSchemaFacetPtr facets; /* Local facets */ + struct _xmlSchemaType *redef; /* Deprecated; not used */ + int recurse; /* Obsolete */ + xmlSchemaAttributeLinkPtr *attributeUses; /* Deprecated; not used */ + xmlSchemaWildcardPtr attributeWildcard; + int builtInType; /* Type of built-in types. */ + xmlSchemaTypeLinkPtr memberTypes; /* member-types if a union type. */ + xmlSchemaFacetLinkPtr facetSet; /* All facets (incl. inherited) */ + const xmlChar *refPrefix; /* Deprecated; not used */ + xmlSchemaTypePtr contentTypeDef; /* Used for the simple content of complex types. + Could we use @subtypes for this? */ + xmlRegexpPtr contModel; /* Holds the automaton of the content model */ + const xmlChar *targetNamespace; + void *attrUses; +}; + +/* + * xmlSchemaElement: + * An element definition. + * + * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of + * structures must be kept similar + */ +/** + * XML_SCHEMAS_ELEM_NILLABLE: + * + * the element is nillable + */ +#define XML_SCHEMAS_ELEM_NILLABLE 1 << 0 +/** + * XML_SCHEMAS_ELEM_GLOBAL: + * + * the element is global + */ +#define XML_SCHEMAS_ELEM_GLOBAL 1 << 1 +/** + * XML_SCHEMAS_ELEM_DEFAULT: + * + * the element has a default value + */ +#define XML_SCHEMAS_ELEM_DEFAULT 1 << 2 +/** + * XML_SCHEMAS_ELEM_FIXED: + * + * the element has a fixed value + */ +#define XML_SCHEMAS_ELEM_FIXED 1 << 3 +/** + * XML_SCHEMAS_ELEM_ABSTRACT: + * + * the element is abstract + */ +#define XML_SCHEMAS_ELEM_ABSTRACT 1 << 4 +/** + * XML_SCHEMAS_ELEM_TOPLEVEL: + * + * the element is top level + * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead + */ +#define XML_SCHEMAS_ELEM_TOPLEVEL 1 << 5 +/** + * XML_SCHEMAS_ELEM_REF: + * + * the element is a reference to a type + */ +#define XML_SCHEMAS_ELEM_REF 1 << 6 +/** + * XML_SCHEMAS_ELEM_NSDEFAULT: + * + * allow elements in no namespace + * Obsolete, not used anymore. + */ +#define XML_SCHEMAS_ELEM_NSDEFAULT 1 << 7 +/** + * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED: + * + * this is set when "type", "ref", "substitutionGroup" + * references have been resolved. + */ +#define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED 1 << 8 + /** + * XML_SCHEMAS_ELEM_CIRCULAR: + * + * a helper flag for the search of circular references. + */ +#define XML_SCHEMAS_ELEM_CIRCULAR 1 << 9 +/** + * XML_SCHEMAS_ELEM_BLOCK_ABSENT: + * + * the "block" attribute is absent + */ +#define XML_SCHEMAS_ELEM_BLOCK_ABSENT 1 << 10 +/** + * XML_SCHEMAS_ELEM_BLOCK_EXTENSION: + * + * disallowed substitutions are absent + */ +#define XML_SCHEMAS_ELEM_BLOCK_EXTENSION 1 << 11 +/** + * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION: + * + * disallowed substitutions: "restriction" + */ +#define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION 1 << 12 +/** + * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION: + * + * disallowed substitutions: "substituion" + */ +#define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION 1 << 13 +/** + * XML_SCHEMAS_ELEM_FINAL_ABSENT: + * + * substitution group exclusions are absent + */ +#define XML_SCHEMAS_ELEM_FINAL_ABSENT 1 << 14 +/** + * XML_SCHEMAS_ELEM_FINAL_EXTENSION: + * + * substitution group exclusions: "extension" + */ +#define XML_SCHEMAS_ELEM_FINAL_EXTENSION 1 << 15 +/** + * XML_SCHEMAS_ELEM_FINAL_RESTRICTION: + * + * substitution group exclusions: "restriction" + */ +#define XML_SCHEMAS_ELEM_FINAL_RESTRICTION 1 << 16 +/** + * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD: + * + * the declaration is a substitution group head + */ +#define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD 1 << 17 +/** + * XML_SCHEMAS_ELEM_INTERNAL_CHECKED: + * + * this is set when the elem decl has been checked against + * all constraints + */ +#define XML_SCHEMAS_ELEM_INTERNAL_CHECKED 1 << 18 + +typedef struct _xmlSchemaElement xmlSchemaElement; +typedef xmlSchemaElement *xmlSchemaElementPtr; +struct _xmlSchemaElement { + xmlSchemaTypeType type; /* The kind of type */ + struct _xmlSchemaType *next; /* Not used? */ + const xmlChar *name; + const xmlChar *id; /* Deprecated; not used */ + const xmlChar *ref; /* Deprecated; not used */ + const xmlChar *refNs; /* Deprecated; not used */ + xmlSchemaAnnotPtr annot; + xmlSchemaTypePtr subtypes; /* the type definition */ + xmlSchemaAttributePtr attributes; + xmlNodePtr node; + int minOccurs; /* Deprecated; not used */ + int maxOccurs; /* Deprecated; not used */ + + int flags; + const xmlChar *targetNamespace; + const xmlChar *namedType; + const xmlChar *namedTypeNs; + const xmlChar *substGroup; + const xmlChar *substGroupNs; + const xmlChar *scope; + const xmlChar *value; /* The original value of the value constraint. */ + struct _xmlSchemaElement *refDecl; /* This will now be used for the + substitution group affiliation */ + xmlRegexpPtr contModel; /* Obsolete for WXS, maybe used for RelaxNG */ + xmlSchemaContentType contentType; + const xmlChar *refPrefix; /* Deprecated; not used */ + xmlSchemaValPtr defVal; /* The compiled value contraint. */ + void *idcs; /* The identity-constraint defs */ +}; + +/* + * XML_SCHEMAS_FACET_UNKNOWN: + * + * unknown facet handling + */ +#define XML_SCHEMAS_FACET_UNKNOWN 0 +/* + * XML_SCHEMAS_FACET_PRESERVE: + * + * preserve the type of the facet + */ +#define XML_SCHEMAS_FACET_PRESERVE 1 +/* + * XML_SCHEMAS_FACET_REPLACE: + * + * replace the type of the facet + */ +#define XML_SCHEMAS_FACET_REPLACE 2 +/* + * XML_SCHEMAS_FACET_COLLAPSE: + * + * collapse the types of the facet + */ +#define XML_SCHEMAS_FACET_COLLAPSE 3 +/** + * A facet definition. + */ +struct _xmlSchemaFacet { + xmlSchemaTypeType type; /* The kind of type */ + struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */ + const xmlChar *value; /* The original value */ + const xmlChar *id; /* Obsolete */ + xmlSchemaAnnotPtr annot; + xmlNodePtr node; + int fixed; /* XML_SCHEMAS_FACET_PRESERVE, etc. */ + int whitespace; + xmlSchemaValPtr val; /* The compiled value */ + xmlRegexpPtr regexp; /* The regex for patterns */ +}; + +/** + * A notation definition. + */ +typedef struct _xmlSchemaNotation xmlSchemaNotation; +typedef xmlSchemaNotation *xmlSchemaNotationPtr; +struct _xmlSchemaNotation { + xmlSchemaTypeType type; /* The kind of type */ + const xmlChar *name; + xmlSchemaAnnotPtr annot; + const xmlChar *identifier; + const xmlChar *targetNamespace; +}; + +/* +* TODO: Actually all those flags used for the schema should sit +* on the schema parser context, since they are used only +* during parsing an XML schema document, and not available +* on the component level as per spec. +*/ +/** + * XML_SCHEMAS_QUALIF_ELEM: + * + * Reflects elementFormDefault == qualified in + * an XML schema document. + */ +#define XML_SCHEMAS_QUALIF_ELEM 1 << 0 +/** + * XML_SCHEMAS_QUALIF_ATTR: + * + * Reflects attributeFormDefault == qualified in + * an XML schema document. + */ +#define XML_SCHEMAS_QUALIF_ATTR 1 << 1 +/** + * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION: + * + * the schema has "extension" in the set of finalDefault. + */ +#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION 1 << 2 +/** + * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION: + * + * the schema has "restriction" in the set of finalDefault. + */ +#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION 1 << 3 +/** + * XML_SCHEMAS_FINAL_DEFAULT_LIST: + * + * the cshema has "list" in the set of finalDefault. + */ +#define XML_SCHEMAS_FINAL_DEFAULT_LIST 1 << 4 +/** + * XML_SCHEMAS_FINAL_DEFAULT_UNION: + * + * the schema has "union" in the set of finalDefault. + */ +#define XML_SCHEMAS_FINAL_DEFAULT_UNION 1 << 5 +/** + * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION: + * + * the schema has "extension" in the set of blockDefault. + */ +#define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION 1 << 6 +/** + * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION: + * + * the schema has "restriction" in the set of blockDefault. + */ +#define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION 1 << 7 +/** + * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION: + * + * the schema has "substitution" in the set of blockDefault. + */ +#define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION 1 << 8 +/** + * XML_SCHEMAS_INCLUDING_CONVERT_NS: + * + * the schema is currently including an other schema with + * no target namespace. + */ +#define XML_SCHEMAS_INCLUDING_CONVERT_NS 1 << 9 +/** + * _xmlSchema: + * + * A Schemas definition + */ +struct _xmlSchema { + const xmlChar *name; /* schema name */ + const xmlChar *targetNamespace; /* the target namespace */ + const xmlChar *version; + const xmlChar *id; /* Obsolete */ + xmlDocPtr doc; + xmlSchemaAnnotPtr annot; + int flags; + + xmlHashTablePtr typeDecl; + xmlHashTablePtr attrDecl; + xmlHashTablePtr attrgrpDecl; + xmlHashTablePtr elemDecl; + xmlHashTablePtr notaDecl; + + xmlHashTablePtr schemasImports; + + void *_private; /* unused by the library for users or bindings */ + xmlHashTablePtr groupDecl; + xmlDictPtr dict; + void *includes; /* the includes, this is opaque for now */ + int preserve; /* whether to free the document */ + int counter; /* used to give ononymous components unique names */ + xmlHashTablePtr idcDef; /* All identity-constraint defs. */ + void *volatiles; /* Obsolete */ +}; + +XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type); +XMLPUBFUN void XMLCALL xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_SCHEMAS_ENABLED */ +#endif /* __XML_SCHEMA_INTERNALS_H__ */ diff --git a/external-libs/libxml2/include/libxml/schematron.h b/external-libs/libxml2/include/libxml/schematron.h new file mode 100644 index 0000000..9e36c0e --- /dev/null +++ b/external-libs/libxml2/include/libxml/schematron.h @@ -0,0 +1,125 @@ +/* + * Summary: XML Schemastron implementation + * Description: interface to the XML Schematron validity checking. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __XML_SCHEMATRON_H__ +#define __XML_SCHEMATRON_H__ + +#include + +#ifdef LIBXML_SCHEMATRON_ENABLED + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + XML_SCHEMATRON_OUT_QUIET = 1 << 0, /* quiet no report */ + XML_SCHEMATRON_OUT_TEXT = 1 << 1, /* build a textual report */ + XML_SCHEMATRON_OUT_XML = 1 << 2, /* output SVRL */ + XML_SCHEMATRON_OUT_ERROR = 1 << 3, /* output via xmlStructuredErrorFunc */ + XML_SCHEMATRON_OUT_FILE = 1 << 8, /* output to a file descriptor */ + XML_SCHEMATRON_OUT_BUFFER = 1 << 9, /* output to a buffer */ + XML_SCHEMATRON_OUT_IO = 1 << 10 /* output to I/O mechanism */ +} xmlSchematronValidOptions; + +/** + * The schemas related types are kept internal + */ +typedef struct _xmlSchematron xmlSchematron; +typedef xmlSchematron *xmlSchematronPtr; + +/** + * A schemas validation context + */ +typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...); +typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...); + +typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt; +typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr; + +typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt; +typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr; + +/* + * Interfaces for parsing. + */ +XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL + xmlSchematronNewParserCtxt (const char *URL); +XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL + xmlSchematronNewMemParserCtxt(const char *buffer, + int size); +XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL + xmlSchematronNewDocParserCtxt(xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlSchematronFreeParserCtxt (xmlSchematronParserCtxtPtr ctxt); +/***** +XMLPUBFUN void XMLCALL + xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt, + xmlSchematronValidityErrorFunc err, + xmlSchematronValidityWarningFunc warn, + void *ctx); +XMLPUBFUN int XMLCALL + xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt, + xmlSchematronValidityErrorFunc * err, + xmlSchematronValidityWarningFunc * warn, + void **ctx); +XMLPUBFUN int XMLCALL + xmlSchematronIsValid (xmlSchematronValidCtxtPtr ctxt); + *****/ +XMLPUBFUN xmlSchematronPtr XMLCALL + xmlSchematronParse (xmlSchematronParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlSchematronFree (xmlSchematronPtr schema); +/* + * Interfaces for validating + */ +XMLPUBFUN void XMLCALL + xmlSchematronSetValidStructuredErrors( + xmlSchematronValidCtxtPtr ctxt, + xmlStructuredErrorFunc serror, + void *ctx); +/****** +XMLPUBFUN void XMLCALL + xmlSchematronSetValidErrors (xmlSchematronValidCtxtPtr ctxt, + xmlSchematronValidityErrorFunc err, + xmlSchematronValidityWarningFunc warn, + void *ctx); +XMLPUBFUN int XMLCALL + xmlSchematronGetValidErrors (xmlSchematronValidCtxtPtr ctxt, + xmlSchematronValidityErrorFunc *err, + xmlSchematronValidityWarningFunc *warn, + void **ctx); +XMLPUBFUN int XMLCALL + xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt, + int options); +XMLPUBFUN int XMLCALL + xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt, + xmlNodePtr elem); + *******/ + +XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL + xmlSchematronNewValidCtxt (xmlSchematronPtr schema, + int options); +XMLPUBFUN void XMLCALL + xmlSchematronFreeValidCtxt (xmlSchematronValidCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlSchematronValidateDoc (xmlSchematronValidCtxtPtr ctxt, + xmlDocPtr instance); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_SCHEMATRON_ENABLED */ +#endif /* __XML_SCHEMATRON_H__ */ diff --git a/external-libs/libxml2/include/libxml/threads.h b/external-libs/libxml2/include/libxml/threads.h new file mode 100644 index 0000000..d31f16a --- /dev/null +++ b/external-libs/libxml2/include/libxml/threads.h @@ -0,0 +1,84 @@ +/** + * Summary: interfaces for thread handling + * Description: set of generic threading related routines + * should work with pthreads, Windows native or TLS threads + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_THREADS_H__ +#define __XML_THREADS_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * xmlMutex are a simple mutual exception locks. + */ +typedef struct _xmlMutex xmlMutex; +typedef xmlMutex *xmlMutexPtr; + +/* + * xmlRMutex are reentrant mutual exception locks. + */ +typedef struct _xmlRMutex xmlRMutex; +typedef xmlRMutex *xmlRMutexPtr; + +#ifdef __cplusplus +} +#endif +#include +#ifdef __cplusplus +extern "C" { +#endif +XMLPUBFUN xmlMutexPtr XMLCALL + xmlNewMutex (void); +XMLPUBFUN void XMLCALL + xmlMutexLock (xmlMutexPtr tok); +XMLPUBFUN void XMLCALL + xmlMutexUnlock (xmlMutexPtr tok); +XMLPUBFUN void XMLCALL + xmlFreeMutex (xmlMutexPtr tok); + +XMLPUBFUN xmlRMutexPtr XMLCALL + xmlNewRMutex (void); +XMLPUBFUN void XMLCALL + xmlRMutexLock (xmlRMutexPtr tok); +XMLPUBFUN void XMLCALL + xmlRMutexUnlock (xmlRMutexPtr tok); +XMLPUBFUN void XMLCALL + xmlFreeRMutex (xmlRMutexPtr tok); + +/* + * Library wide APIs. + */ +XMLPUBFUN void XMLCALL + xmlInitThreads (void); +XMLPUBFUN void XMLCALL + xmlLockLibrary (void); +XMLPUBFUN void XMLCALL + xmlUnlockLibrary(void); +XMLPUBFUN int XMLCALL + xmlGetThreadId (void); +XMLPUBFUN int XMLCALL + xmlIsMainThread (void); +XMLPUBFUN void XMLCALL + xmlCleanupThreads(void); +XMLPUBFUN xmlGlobalStatePtr XMLCALL + xmlGetGlobalState(void); + +#if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL) +int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved); +#endif + +#ifdef __cplusplus +} +#endif + + +#endif /* __XML_THREADS_H__ */ diff --git a/external-libs/libxml2/include/libxml/tree.h b/external-libs/libxml2/include/libxml/tree.h new file mode 100644 index 0000000..0e1d47c --- /dev/null +++ b/external-libs/libxml2/include/libxml/tree.h @@ -0,0 +1,1213 @@ +/* + * Summary: interfaces for tree manipulation + * Description: this module describes the structures found in an tree resulting + * from an XML or HTML parsing, as well as the API provided for + * various processing on that tree + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_TREE_H__ +#define __XML_TREE_H__ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Some of the basic types pointer to structures: + */ +/* xmlIO.h */ +typedef struct _xmlParserInputBuffer xmlParserInputBuffer; +typedef xmlParserInputBuffer *xmlParserInputBufferPtr; + +typedef struct _xmlOutputBuffer xmlOutputBuffer; +typedef xmlOutputBuffer *xmlOutputBufferPtr; + +/* parser.h */ +typedef struct _xmlParserInput xmlParserInput; +typedef xmlParserInput *xmlParserInputPtr; + +typedef struct _xmlParserCtxt xmlParserCtxt; +typedef xmlParserCtxt *xmlParserCtxtPtr; + +typedef struct _xmlSAXLocator xmlSAXLocator; +typedef xmlSAXLocator *xmlSAXLocatorPtr; + +typedef struct _xmlSAXHandler xmlSAXHandler; +typedef xmlSAXHandler *xmlSAXHandlerPtr; + +/* entities.h */ +typedef struct _xmlEntity xmlEntity; +typedef xmlEntity *xmlEntityPtr; + +/** + * BASE_BUFFER_SIZE: + * + * default buffer size 4000. + */ +#define BASE_BUFFER_SIZE 4096 + +/** + * LIBXML_NAMESPACE_DICT: + * + * Defines experimental behaviour: + * 1) xmlNs gets an additional field @context (a xmlDoc) + * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc. + */ +/* #define LIBXML_NAMESPACE_DICT */ + +/** + * xmlBufferAllocationScheme: + * + * A buffer allocation scheme can be defined to either match exactly the + * need or double it's allocated size each time it is found too small. + */ + +typedef enum { + XML_BUFFER_ALLOC_DOUBLEIT, + XML_BUFFER_ALLOC_EXACT, + XML_BUFFER_ALLOC_IMMUTABLE +} xmlBufferAllocationScheme; + +/** + * xmlBuffer: + * + * A buffer structure. + */ +typedef struct _xmlBuffer xmlBuffer; +typedef xmlBuffer *xmlBufferPtr; +struct _xmlBuffer { + xmlChar *content; /* The buffer content UTF8 */ + unsigned int use; /* The buffer size used */ + unsigned int size; /* The buffer size */ + xmlBufferAllocationScheme alloc; /* The realloc method */ +}; + +/** + * XML_XML_NAMESPACE: + * + * This is the namespace for the special xml: prefix predefined in the + * XML Namespace specification. + */ +#define XML_XML_NAMESPACE \ + (const xmlChar *) "http://www.w3.org/XML/1998/namespace" + +/** + * XML_XML_ID: + * + * This is the name for the special xml:id attribute + */ +#define XML_XML_ID (const xmlChar *) "xml:id" + +/* + * The different element types carried by an XML tree. + * + * NOTE: This is synchronized with DOM Level1 values + * See http://www.w3.org/TR/REC-DOM-Level-1/ + * + * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should + * be deprecated to use an XML_DTD_NODE. + */ +typedef enum { + XML_ELEMENT_NODE= 1, + XML_ATTRIBUTE_NODE= 2, + XML_TEXT_NODE= 3, + XML_CDATA_SECTION_NODE= 4, + XML_ENTITY_REF_NODE= 5, + XML_ENTITY_NODE= 6, + XML_PI_NODE= 7, + XML_COMMENT_NODE= 8, + XML_DOCUMENT_NODE= 9, + XML_DOCUMENT_TYPE_NODE= 10, + XML_DOCUMENT_FRAG_NODE= 11, + XML_NOTATION_NODE= 12, + XML_HTML_DOCUMENT_NODE= 13, + XML_DTD_NODE= 14, + XML_ELEMENT_DECL= 15, + XML_ATTRIBUTE_DECL= 16, + XML_ENTITY_DECL= 17, + XML_NAMESPACE_DECL= 18, + XML_XINCLUDE_START= 19, + XML_XINCLUDE_END= 20 +#ifdef LIBXML_DOCB_ENABLED + ,XML_DOCB_DOCUMENT_NODE= 21 +#endif +} xmlElementType; + + +/** + * xmlNotation: + * + * A DTD Notation definition. + */ + +typedef struct _xmlNotation xmlNotation; +typedef xmlNotation *xmlNotationPtr; +struct _xmlNotation { + const xmlChar *name; /* Notation name */ + const xmlChar *PublicID; /* Public identifier, if any */ + const xmlChar *SystemID; /* System identifier, if any */ +}; + +/** + * xmlAttributeType: + * + * A DTD Attribute type definition. + */ + +typedef enum { + XML_ATTRIBUTE_CDATA = 1, + XML_ATTRIBUTE_ID, + XML_ATTRIBUTE_IDREF , + XML_ATTRIBUTE_IDREFS, + XML_ATTRIBUTE_ENTITY, + XML_ATTRIBUTE_ENTITIES, + XML_ATTRIBUTE_NMTOKEN, + XML_ATTRIBUTE_NMTOKENS, + XML_ATTRIBUTE_ENUMERATION, + XML_ATTRIBUTE_NOTATION +} xmlAttributeType; + +/** + * xmlAttributeDefault: + * + * A DTD Attribute default definition. + */ + +typedef enum { + XML_ATTRIBUTE_NONE = 1, + XML_ATTRIBUTE_REQUIRED, + XML_ATTRIBUTE_IMPLIED, + XML_ATTRIBUTE_FIXED +} xmlAttributeDefault; + +/** + * xmlEnumeration: + * + * List structure used when there is an enumeration in DTDs. + */ + +typedef struct _xmlEnumeration xmlEnumeration; +typedef xmlEnumeration *xmlEnumerationPtr; +struct _xmlEnumeration { + struct _xmlEnumeration *next; /* next one */ + const xmlChar *name; /* Enumeration name */ +}; + +/** + * xmlAttribute: + * + * An Attribute declaration in a DTD. + */ + +typedef struct _xmlAttribute xmlAttribute; +typedef xmlAttribute *xmlAttributePtr; +struct _xmlAttribute { + void *_private; /* application data */ + xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */ + const xmlChar *name; /* Attribute name */ + struct _xmlNode *children; /* NULL */ + struct _xmlNode *last; /* NULL */ + struct _xmlDtd *parent; /* -> DTD */ + struct _xmlNode *next; /* next sibling link */ + struct _xmlNode *prev; /* previous sibling link */ + struct _xmlDoc *doc; /* the containing document */ + + struct _xmlAttribute *nexth; /* next in hash table */ + xmlAttributeType atype; /* The attribute type */ + xmlAttributeDefault def; /* the default */ + const xmlChar *defaultValue; /* or the default value */ + xmlEnumerationPtr tree; /* or the enumeration tree if any */ + const xmlChar *prefix; /* the namespace prefix if any */ + const xmlChar *elem; /* Element holding the attribute */ +}; + +/** + * xmlElementContentType: + * + * Possible definitions of element content types. + */ +typedef enum { + XML_ELEMENT_CONTENT_PCDATA = 1, + XML_ELEMENT_CONTENT_ELEMENT, + XML_ELEMENT_CONTENT_SEQ, + XML_ELEMENT_CONTENT_OR +} xmlElementContentType; + +/** + * xmlElementContentOccur: + * + * Possible definitions of element content occurrences. + */ +typedef enum { + XML_ELEMENT_CONTENT_ONCE = 1, + XML_ELEMENT_CONTENT_OPT, + XML_ELEMENT_CONTENT_MULT, + XML_ELEMENT_CONTENT_PLUS +} xmlElementContentOccur; + +/** + * xmlElementContent: + * + * An XML Element content as stored after parsing an element definition + * in a DTD. + */ + +typedef struct _xmlElementContent xmlElementContent; +typedef xmlElementContent *xmlElementContentPtr; +struct _xmlElementContent { + xmlElementContentType type; /* PCDATA, ELEMENT, SEQ or OR */ + xmlElementContentOccur ocur; /* ONCE, OPT, MULT or PLUS */ + const xmlChar *name; /* Element name */ + struct _xmlElementContent *c1; /* first child */ + struct _xmlElementContent *c2; /* second child */ + struct _xmlElementContent *parent; /* parent */ + const xmlChar *prefix; /* Namespace prefix */ +}; + +/** + * xmlElementTypeVal: + * + * The different possibilities for an element content type. + */ + +typedef enum { + XML_ELEMENT_TYPE_UNDEFINED = 0, + XML_ELEMENT_TYPE_EMPTY = 1, + XML_ELEMENT_TYPE_ANY, + XML_ELEMENT_TYPE_MIXED, + XML_ELEMENT_TYPE_ELEMENT +} xmlElementTypeVal; + +#ifdef __cplusplus +} +#endif +#include +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlElement: + * + * An XML Element declaration from a DTD. + */ + +typedef struct _xmlElement xmlElement; +typedef xmlElement *xmlElementPtr; +struct _xmlElement { + void *_private; /* application data */ + xmlElementType type; /* XML_ELEMENT_DECL, must be second ! */ + const xmlChar *name; /* Element name */ + struct _xmlNode *children; /* NULL */ + struct _xmlNode *last; /* NULL */ + struct _xmlDtd *parent; /* -> DTD */ + struct _xmlNode *next; /* next sibling link */ + struct _xmlNode *prev; /* previous sibling link */ + struct _xmlDoc *doc; /* the containing document */ + + xmlElementTypeVal etype; /* The type */ + xmlElementContentPtr content; /* the allowed element content */ + xmlAttributePtr attributes; /* List of the declared attributes */ + const xmlChar *prefix; /* the namespace prefix if any */ +#ifdef LIBXML_REGEXP_ENABLED + xmlRegexpPtr contModel; /* the validating regexp */ +#else + void *contModel; +#endif +}; + + +/** + * XML_LOCAL_NAMESPACE: + * + * A namespace declaration node. + */ +#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL +typedef xmlElementType xmlNsType; + +/** + * xmlNs: + * + * An XML namespace. + * Note that prefix == NULL is valid, it defines the default namespace + * within the subtree (until overridden). + * + * xmlNsType is unified with xmlElementType. + */ + +typedef struct _xmlNs xmlNs; +typedef xmlNs *xmlNsPtr; +struct _xmlNs { + struct _xmlNs *next; /* next Ns link for this node */ + xmlNsType type; /* global or local */ + const xmlChar *href; /* URL for the namespace */ + const xmlChar *prefix; /* prefix for the namespace */ + void *_private; /* application data */ + struct _xmlDoc *context; /* normally an xmlDoc */ +}; + +/** + * xmlDtd: + * + * An XML DTD, as defined by parent link */ + struct _xmlNode *next; /* next sibling link */ + struct _xmlNode *prev; /* previous sibling link */ + struct _xmlDoc *doc; /* the containing document */ + + /* End of common part */ + void *notations; /* Hash table for notations if any */ + void *elements; /* Hash table for elements if any */ + void *attributes; /* Hash table for attributes if any */ + void *entities; /* Hash table for entities if any */ + const xmlChar *ExternalID; /* External identifier for PUBLIC DTD */ + const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC DTD */ + void *pentities; /* Hash table for param entities if any */ +}; + +/** + * xmlAttr: + * + * An attribute on an XML node. + */ +typedef struct _xmlAttr xmlAttr; +typedef xmlAttr *xmlAttrPtr; +struct _xmlAttr { + void *_private; /* application data */ + xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */ + const xmlChar *name; /* the name of the property */ + struct _xmlNode *children; /* the value of the property */ + struct _xmlNode *last; /* NULL */ + struct _xmlNode *parent; /* child->parent link */ + struct _xmlAttr *next; /* next sibling link */ + struct _xmlAttr *prev; /* previous sibling link */ + struct _xmlDoc *doc; /* the containing document */ + xmlNs *ns; /* pointer to the associated namespace */ + xmlAttributeType atype; /* the attribute type if validating */ + void *psvi; /* for type/PSVI informations */ +}; + +/** + * xmlID: + * + * An XML ID instance. + */ + +typedef struct _xmlID xmlID; +typedef xmlID *xmlIDPtr; +struct _xmlID { + struct _xmlID *next; /* next ID */ + const xmlChar *value; /* The ID name */ + xmlAttrPtr attr; /* The attribute holding it */ + const xmlChar *name; /* The attribute if attr is not available */ + int lineno; /* The line number if attr is not available */ + struct _xmlDoc *doc; /* The document holding the ID */ +}; + +/** + * xmlRef: + * + * An XML IDREF instance. + */ + +typedef struct _xmlRef xmlRef; +typedef xmlRef *xmlRefPtr; +struct _xmlRef { + struct _xmlRef *next; /* next Ref */ + const xmlChar *value; /* The Ref name */ + xmlAttrPtr attr; /* The attribute holding it */ + const xmlChar *name; /* The attribute if attr is not available */ + int lineno; /* The line number if attr is not available */ +}; + +/** + * xmlNode: + * + * A node in an XML tree. + */ +typedef struct _xmlNode xmlNode; +typedef xmlNode *xmlNodePtr; +struct _xmlNode { + void *_private; /* application data */ + xmlElementType type; /* type number, must be second ! */ + const xmlChar *name; /* the name of the node, or the entity */ + struct _xmlNode *children; /* parent->childs link */ + struct _xmlNode *last; /* last child link */ + struct _xmlNode *parent; /* child->parent link */ + struct _xmlNode *next; /* next sibling link */ + struct _xmlNode *prev; /* previous sibling link */ + struct _xmlDoc *doc; /* the containing document */ + + /* End of common part */ + xmlNs *ns; /* pointer to the associated namespace */ + xmlChar *content; /* the content */ + struct _xmlAttr *properties;/* properties list */ + xmlNs *nsDef; /* namespace definitions on this node */ + void *psvi; /* for type/PSVI informations */ + unsigned short line; /* line number */ + unsigned short extra; /* extra data for XPath/XSLT */ +}; + +/** + * XML_GET_CONTENT: + * + * Macro to extract the content pointer of a node. + */ +#define XML_GET_CONTENT(n) \ + ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content) + +/** + * XML_GET_LINE: + * + * Macro to extract the line number of an element node. + */ +#define XML_GET_LINE(n) \ + (xmlGetLineNo(n)) + + +/** + * xmlDoc: + * + * An XML document. + */ +typedef struct _xmlDoc xmlDoc; +typedef xmlDoc *xmlDocPtr; +struct _xmlDoc { + void *_private; /* application data */ + xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */ + char *name; /* name/filename/URI of the document */ + struct _xmlNode *children; /* the document tree */ + struct _xmlNode *last; /* last child link */ + struct _xmlNode *parent; /* child->parent link */ + struct _xmlNode *next; /* next sibling link */ + struct _xmlNode *prev; /* previous sibling link */ + struct _xmlDoc *doc; /* autoreference to itself */ + + /* End of common part */ + int compression;/* level of zlib compression */ + int standalone; /* standalone document (no external refs) + 1 if standalone="yes" + 0 if standalone="no" + -1 if there is no XML declaration + -2 if there is an XML declaration, but no + standalone attribute was specified */ + struct _xmlDtd *intSubset; /* the document internal subset */ + struct _xmlDtd *extSubset; /* the document external subset */ + struct _xmlNs *oldNs; /* Global namespace, the old way */ + const xmlChar *version; /* the XML version string */ + const xmlChar *encoding; /* external initial encoding, if any */ + void *ids; /* Hash table for ID attributes if any */ + void *refs; /* Hash table for IDREFs attributes if any */ + const xmlChar *URL; /* The URI for that document */ + int charset; /* encoding of the in-memory content + actually an xmlCharEncoding */ + struct _xmlDict *dict; /* dict used to allocate names or NULL */ + void *psvi; /* for type/PSVI informations */ +}; + + +typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt; +typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr; + +/** + * xmlDOMWrapAcquireNsFunction: + * @ctxt: a DOM wrapper context + * @node: the context node (element or attribute) + * @nsName: the requested namespace name + * @nsPrefix: the requested namespace prefix + * + * A function called to acquire namespaces (xmlNs) from the wrapper. + * + * Returns an xmlNsPtr or NULL in case of an error. + */ +typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt, + xmlNodePtr node, + const xmlChar *nsName, + const xmlChar *nsPrefix); + +/** + * xmlDOMWrapCtxt: + * + * Context for DOM wrapper-operations. + */ +struct _xmlDOMWrapCtxt { + void * _private; + /* + * The type of this context, just in case we need specialized + * contexts in the future. + */ + int type; + /* + * Internal namespace map used for various operations. + */ + void * namespaceMap; + /* + * Use this one to acquire an xmlNsPtr intended for node->ns. + * (Note that this is not intended for elem->nsDef). + */ + xmlDOMWrapAcquireNsFunction getNsForNodeFunc; +}; + +/** + * xmlChildrenNode: + * + * Macro for compatibility naming layer with libxml1. Maps + * to "children." + */ +#ifndef xmlChildrenNode +#define xmlChildrenNode children +#endif + +/** + * xmlRootNode: + * + * Macro for compatibility naming layer with libxml1. Maps + * to "children". + */ +#ifndef xmlRootNode +#define xmlRootNode children +#endif + +/* + * Variables. + */ + +/* + * Some helper functions + */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) +XMLPUBFUN int XMLCALL + xmlValidateNCName (const xmlChar *value, + int space); +#endif + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN int XMLCALL + xmlValidateQName (const xmlChar *value, + int space); +XMLPUBFUN int XMLCALL + xmlValidateName (const xmlChar *value, + int space); +XMLPUBFUN int XMLCALL + xmlValidateNMToken (const xmlChar *value, + int space); +#endif + +XMLPUBFUN xmlChar * XMLCALL + xmlBuildQName (const xmlChar *ncname, + const xmlChar *prefix, + xmlChar *memory, + int len); +XMLPUBFUN xmlChar * XMLCALL + xmlSplitQName2 (const xmlChar *name, + xmlChar **prefix); +XMLPUBFUN const xmlChar * XMLCALL + xmlSplitQName3 (const xmlChar *name, + int *len); + +/* + * Handling Buffers. + */ + +XMLPUBFUN void XMLCALL + xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme); +XMLPUBFUN xmlBufferAllocationScheme XMLCALL + xmlGetBufferAllocationScheme(void); + +XMLPUBFUN xmlBufferPtr XMLCALL + xmlBufferCreate (void); +XMLPUBFUN xmlBufferPtr XMLCALL + xmlBufferCreateSize (size_t size); +XMLPUBFUN xmlBufferPtr XMLCALL + xmlBufferCreateStatic (void *mem, + size_t size); +XMLPUBFUN int XMLCALL + xmlBufferResize (xmlBufferPtr buf, + unsigned int size); +XMLPUBFUN void XMLCALL + xmlBufferFree (xmlBufferPtr buf); +XMLPUBFUN int XMLCALL + xmlBufferDump (FILE *file, + xmlBufferPtr buf); +XMLPUBFUN int XMLCALL + xmlBufferAdd (xmlBufferPtr buf, + const xmlChar *str, + int len); +XMLPUBFUN int XMLCALL + xmlBufferAddHead (xmlBufferPtr buf, + const xmlChar *str, + int len); +XMLPUBFUN int XMLCALL + xmlBufferCat (xmlBufferPtr buf, + const xmlChar *str); +XMLPUBFUN int XMLCALL + xmlBufferCCat (xmlBufferPtr buf, + const char *str); +XMLPUBFUN int XMLCALL + xmlBufferShrink (xmlBufferPtr buf, + unsigned int len); +XMLPUBFUN int XMLCALL + xmlBufferGrow (xmlBufferPtr buf, + unsigned int len); +XMLPUBFUN void XMLCALL + xmlBufferEmpty (xmlBufferPtr buf); +XMLPUBFUN const xmlChar* XMLCALL + xmlBufferContent (const xmlBufferPtr buf); +XMLPUBFUN void XMLCALL + xmlBufferSetAllocationScheme(xmlBufferPtr buf, + xmlBufferAllocationScheme scheme); +XMLPUBFUN int XMLCALL + xmlBufferLength (const xmlBufferPtr buf); + +/* + * Creating/freeing new structures. + */ +XMLPUBFUN xmlDtdPtr XMLCALL + xmlCreateIntSubset (xmlDocPtr doc, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN xmlDtdPtr XMLCALL + xmlNewDtd (xmlDocPtr doc, + const xmlChar *name, + const xmlChar *ExternalID, + const xmlChar *SystemID); +XMLPUBFUN xmlDtdPtr XMLCALL + xmlGetIntSubset (xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlFreeDtd (xmlDtdPtr cur); +#ifdef LIBXML_LEGACY_ENABLED +XMLPUBFUN xmlNsPtr XMLCALL + xmlNewGlobalNs (xmlDocPtr doc, + const xmlChar *href, + const xmlChar *prefix); +#endif /* LIBXML_LEGACY_ENABLED */ +XMLPUBFUN xmlNsPtr XMLCALL + xmlNewNs (xmlNodePtr node, + const xmlChar *href, + const xmlChar *prefix); +XMLPUBFUN void XMLCALL + xmlFreeNs (xmlNsPtr cur); +XMLPUBFUN void XMLCALL + xmlFreeNsList (xmlNsPtr cur); +XMLPUBFUN xmlDocPtr XMLCALL + xmlNewDoc (const xmlChar *version); +XMLPUBFUN void XMLCALL + xmlFreeDoc (xmlDocPtr cur); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlNewDocProp (xmlDocPtr doc, + const xmlChar *name, + const xmlChar *value); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ + defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN xmlAttrPtr XMLCALL + xmlNewProp (xmlNodePtr node, + const xmlChar *name, + const xmlChar *value); +#endif +XMLPUBFUN xmlAttrPtr XMLCALL + xmlNewNsProp (xmlNodePtr node, + xmlNsPtr ns, + const xmlChar *name, + const xmlChar *value); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlNewNsPropEatName (xmlNodePtr node, + xmlNsPtr ns, + xmlChar *name, + const xmlChar *value); +XMLPUBFUN void XMLCALL + xmlFreePropList (xmlAttrPtr cur); +XMLPUBFUN void XMLCALL + xmlFreeProp (xmlAttrPtr cur); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlCopyProp (xmlNodePtr target, + xmlAttrPtr cur); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlCopyPropList (xmlNodePtr target, + xmlAttrPtr cur); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlDtdPtr XMLCALL + xmlCopyDtd (xmlDtdPtr dtd); +#endif /* LIBXML_TREE_ENABLED */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN xmlDocPtr XMLCALL + xmlCopyDoc (xmlDocPtr doc, + int recursive); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +/* + * Creating new nodes. + */ +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocNode (xmlDocPtr doc, + xmlNsPtr ns, + const xmlChar *name, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocNodeEatName (xmlDocPtr doc, + xmlNsPtr ns, + xmlChar *name, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewNode (xmlNsPtr ns, + const xmlChar *name); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewNodeEatName (xmlNsPtr ns, + xmlChar *name); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewChild (xmlNodePtr parent, + xmlNsPtr ns, + const xmlChar *name, + const xmlChar *content); +#endif +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocText (xmlDocPtr doc, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewText (const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocPI (xmlDocPtr doc, + const xmlChar *name, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewPI (const xmlChar *name, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocTextLen (xmlDocPtr doc, + const xmlChar *content, + int len); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewTextLen (const xmlChar *content, + int len); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocComment (xmlDocPtr doc, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewComment (const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewCDataBlock (xmlDocPtr doc, + const xmlChar *content, + int len); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewCharRef (xmlDocPtr doc, + const xmlChar *name); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewReference (xmlDocPtr doc, + const xmlChar *name); +XMLPUBFUN xmlNodePtr XMLCALL + xmlCopyNode (const xmlNodePtr node, + int recursive); +XMLPUBFUN xmlNodePtr XMLCALL + xmlDocCopyNode (const xmlNodePtr node, + xmlDocPtr doc, + int recursive); +XMLPUBFUN xmlNodePtr XMLCALL + xmlDocCopyNodeList (xmlDocPtr doc, + const xmlNodePtr node); +XMLPUBFUN xmlNodePtr XMLCALL + xmlCopyNodeList (const xmlNodePtr node); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewTextChild (xmlNodePtr parent, + xmlNsPtr ns, + const xmlChar *name, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocRawNode (xmlDocPtr doc, + xmlNsPtr ns, + const xmlChar *name, + const xmlChar *content); +XMLPUBFUN xmlNodePtr XMLCALL + xmlNewDocFragment (xmlDocPtr doc); +#endif /* LIBXML_TREE_ENABLED */ + +/* + * Navigating. + */ +XMLPUBFUN long XMLCALL + xmlGetLineNo (xmlNodePtr node); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) +XMLPUBFUN xmlChar * XMLCALL + xmlGetNodePath (xmlNodePtr node); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ +XMLPUBFUN xmlNodePtr XMLCALL + xmlDocGetRootElement (xmlDocPtr doc); +XMLPUBFUN xmlNodePtr XMLCALL + xmlGetLastChild (xmlNodePtr parent); +XMLPUBFUN int XMLCALL + xmlNodeIsText (xmlNodePtr node); +XMLPUBFUN int XMLCALL + xmlIsBlankNode (xmlNodePtr node); + +/* + * Changing the structure. + */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) +XMLPUBFUN xmlNodePtr XMLCALL + xmlDocSetRootElement (xmlDocPtr doc, + xmlNodePtr root); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN void XMLCALL + xmlNodeSetName (xmlNodePtr cur, + const xmlChar *name); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN xmlNodePtr XMLCALL + xmlAddChild (xmlNodePtr parent, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL + xmlAddChildList (xmlNodePtr parent, + xmlNodePtr cur); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) +XMLPUBFUN xmlNodePtr XMLCALL + xmlReplaceNode (xmlNodePtr old, + xmlNodePtr cur); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ + defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN xmlNodePtr XMLCALL + xmlAddPrevSibling (xmlNodePtr cur, + xmlNodePtr elem); +#endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */ +XMLPUBFUN xmlNodePtr XMLCALL + xmlAddSibling (xmlNodePtr cur, + xmlNodePtr elem); +XMLPUBFUN xmlNodePtr XMLCALL + xmlAddNextSibling (xmlNodePtr cur, + xmlNodePtr elem); +XMLPUBFUN void XMLCALL + xmlUnlinkNode (xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL + xmlTextMerge (xmlNodePtr first, + xmlNodePtr second); +XMLPUBFUN int XMLCALL + xmlTextConcat (xmlNodePtr node, + const xmlChar *content, + int len); +XMLPUBFUN void XMLCALL + xmlFreeNodeList (xmlNodePtr cur); +XMLPUBFUN void XMLCALL + xmlFreeNode (xmlNodePtr cur); +XMLPUBFUN void XMLCALL + xmlSetTreeDoc (xmlNodePtr tree, + xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlSetListDoc (xmlNodePtr list, + xmlDocPtr doc); +/* + * Namespaces. + */ +XMLPUBFUN xmlNsPtr XMLCALL + xmlSearchNs (xmlDocPtr doc, + xmlNodePtr node, + const xmlChar *nameSpace); +XMLPUBFUN xmlNsPtr XMLCALL + xmlSearchNsByHref (xmlDocPtr doc, + xmlNodePtr node, + const xmlChar *href); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN xmlNsPtr * XMLCALL + xmlGetNsList (xmlDocPtr doc, + xmlNodePtr node); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */ + +XMLPUBFUN void XMLCALL + xmlSetNs (xmlNodePtr node, + xmlNsPtr ns); +XMLPUBFUN xmlNsPtr XMLCALL + xmlCopyNamespace (xmlNsPtr cur); +XMLPUBFUN xmlNsPtr XMLCALL + xmlCopyNamespaceList (xmlNsPtr cur); + +/* + * Changing the content. + */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) +XMLPUBFUN xmlAttrPtr XMLCALL + xmlSetProp (xmlNodePtr node, + const xmlChar *name, + const xmlChar *value); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlSetNsProp (xmlNodePtr node, + xmlNsPtr ns, + const xmlChar *name, + const xmlChar *value); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ +XMLPUBFUN xmlChar * XMLCALL + xmlGetNoNsProp (xmlNodePtr node, + const xmlChar *name); +XMLPUBFUN xmlChar * XMLCALL + xmlGetProp (xmlNodePtr node, + const xmlChar *name); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlHasProp (xmlNodePtr node, + const xmlChar *name); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlHasNsProp (xmlNodePtr node, + const xmlChar *name, + const xmlChar *nameSpace); +XMLPUBFUN xmlChar * XMLCALL + xmlGetNsProp (xmlNodePtr node, + const xmlChar *name, + const xmlChar *nameSpace); +XMLPUBFUN xmlNodePtr XMLCALL + xmlStringGetNodeList (xmlDocPtr doc, + const xmlChar *value); +XMLPUBFUN xmlNodePtr XMLCALL + xmlStringLenGetNodeList (xmlDocPtr doc, + const xmlChar *value, + int len); +XMLPUBFUN xmlChar * XMLCALL + xmlNodeListGetString (xmlDocPtr doc, + xmlNodePtr list, + int inLine); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlChar * XMLCALL + xmlNodeListGetRawString (xmlDocPtr doc, + xmlNodePtr list, + int inLine); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN void XMLCALL + xmlNodeSetContent (xmlNodePtr cur, + const xmlChar *content); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN void XMLCALL + xmlNodeSetContentLen (xmlNodePtr cur, + const xmlChar *content, + int len); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN void XMLCALL + xmlNodeAddContent (xmlNodePtr cur, + const xmlChar *content); +XMLPUBFUN void XMLCALL + xmlNodeAddContentLen (xmlNodePtr cur, + const xmlChar *content, + int len); +XMLPUBFUN xmlChar * XMLCALL + xmlNodeGetContent (xmlNodePtr cur); +XMLPUBFUN int XMLCALL + xmlNodeBufGetContent (xmlBufferPtr buffer, + xmlNodePtr cur); +XMLPUBFUN xmlChar * XMLCALL + xmlNodeGetLang (xmlNodePtr cur); +XMLPUBFUN int XMLCALL + xmlNodeGetSpacePreserve (xmlNodePtr cur); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN void XMLCALL + xmlNodeSetLang (xmlNodePtr cur, + const xmlChar *lang); +XMLPUBFUN void XMLCALL + xmlNodeSetSpacePreserve (xmlNodePtr cur, + int val); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN xmlChar * XMLCALL + xmlNodeGetBase (xmlDocPtr doc, + xmlNodePtr cur); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) +XMLPUBFUN void XMLCALL + xmlNodeSetBase (xmlNodePtr cur, + const xmlChar *uri); +#endif + +/* + * Removing content. + */ +XMLPUBFUN int XMLCALL + xmlRemoveProp (xmlAttrPtr cur); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN int XMLCALL + xmlUnsetNsProp (xmlNodePtr node, + xmlNsPtr ns, + const xmlChar *name); +XMLPUBFUN int XMLCALL + xmlUnsetProp (xmlNodePtr node, + const xmlChar *name); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ + +/* + * Internal, don't use. + */ +XMLPUBFUN void XMLCALL + xmlBufferWriteCHAR (xmlBufferPtr buf, + const xmlChar *string); +XMLPUBFUN void XMLCALL + xmlBufferWriteChar (xmlBufferPtr buf, + const char *string); +XMLPUBFUN void XMLCALL + xmlBufferWriteQuotedString(xmlBufferPtr buf, + const xmlChar *string); + +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf, + xmlDocPtr doc, + xmlAttrPtr attr, + const xmlChar *string); +#endif /* LIBXML_OUTPUT_ENABLED */ + +#ifdef LIBXML_TREE_ENABLED +/* + * Namespace handling. + */ +XMLPUBFUN int XMLCALL + xmlReconciliateNs (xmlDocPtr doc, + xmlNodePtr tree); +#endif + +#ifdef LIBXML_OUTPUT_ENABLED +/* + * Saving. + */ +XMLPUBFUN void XMLCALL + xmlDocDumpFormatMemory (xmlDocPtr cur, + xmlChar **mem, + int *size, + int format); +XMLPUBFUN void XMLCALL + xmlDocDumpMemory (xmlDocPtr cur, + xmlChar **mem, + int *size); +XMLPUBFUN void XMLCALL + xmlDocDumpMemoryEnc (xmlDocPtr out_doc, + xmlChar **doc_txt_ptr, + int * doc_txt_len, + const char *txt_encoding); +XMLPUBFUN void XMLCALL + xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, + xmlChar **doc_txt_ptr, + int * doc_txt_len, + const char *txt_encoding, + int format); +XMLPUBFUN int XMLCALL + xmlDocFormatDump (FILE *f, + xmlDocPtr cur, + int format); +XMLPUBFUN int XMLCALL + xmlDocDump (FILE *f, + xmlDocPtr cur); +XMLPUBFUN void XMLCALL + xmlElemDump (FILE *f, + xmlDocPtr doc, + xmlNodePtr cur); +XMLPUBFUN int XMLCALL + xmlSaveFile (const char *filename, + xmlDocPtr cur); +XMLPUBFUN int XMLCALL + xmlSaveFormatFile (const char *filename, + xmlDocPtr cur, + int format); +XMLPUBFUN int XMLCALL + xmlNodeDump (xmlBufferPtr buf, + xmlDocPtr doc, + xmlNodePtr cur, + int level, + int format); + +XMLPUBFUN int XMLCALL + xmlSaveFileTo (xmlOutputBufferPtr buf, + xmlDocPtr cur, + const char *encoding); +XMLPUBFUN int XMLCALL + xmlSaveFormatFileTo (xmlOutputBufferPtr buf, + xmlDocPtr cur, + const char *encoding, + int format); +XMLPUBFUN void XMLCALL + xmlNodeDumpOutput (xmlOutputBufferPtr buf, + xmlDocPtr doc, + xmlNodePtr cur, + int level, + int format, + const char *encoding); + +XMLPUBFUN int XMLCALL + xmlSaveFormatFileEnc (const char *filename, + xmlDocPtr cur, + const char *encoding, + int format); + +XMLPUBFUN int XMLCALL + xmlSaveFileEnc (const char *filename, + xmlDocPtr cur, + const char *encoding); + +#endif /* LIBXML_OUTPUT_ENABLED */ +/* + * XHTML + */ +XMLPUBFUN int XMLCALL + xmlIsXHTML (const xmlChar *systemID, + const xmlChar *publicID); + +/* + * Compression. + */ +XMLPUBFUN int XMLCALL + xmlGetDocCompressMode (xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlSetDocCompressMode (xmlDocPtr doc, + int mode); +XMLPUBFUN int XMLCALL + xmlGetCompressMode (void); +XMLPUBFUN void XMLCALL + xmlSetCompressMode (int mode); + +/* +* DOM-wrapper helper functions. +*/ +XMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL + xmlDOMWrapNewCtxt (void); +XMLPUBFUN void XMLCALL + xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt, + xmlNodePtr elem, + int options); +XMLPUBFUN int XMLCALL + xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt, + xmlDocPtr sourceDoc, + xmlNodePtr node, + xmlDocPtr destDoc, + xmlNodePtr destParent, + int options); +XMLPUBFUN int XMLCALL + xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr node, + int options); +XMLPUBFUN int XMLCALL + xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt, + xmlDocPtr sourceDoc, + xmlNodePtr node, + xmlNodePtr *clonedNode, + xmlDocPtr destDoc, + xmlNodePtr destParent, + int deep, + int options); + +#ifdef __cplusplus +} +#endif +#ifndef __XML_PARSER_H__ +#include +#endif + +#endif /* __XML_TREE_H__ */ + diff --git a/external-libs/libxml2/include/libxml/uri.h b/external-libs/libxml2/include/libxml/uri.h new file mode 100644 index 0000000..49ed105 --- /dev/null +++ b/external-libs/libxml2/include/libxml/uri.h @@ -0,0 +1,94 @@ +/** + * Summary: library of generic URI related routines + * Description: library of generic URI related routines + * Implements RFC 2396 + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_URI_H__ +#define __XML_URI_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlURI: + * + * A parsed URI reference. This is a struct containing the various fields + * as described in RFC 2396 but separated for further processing. + * + * Note: query is a deprecated field which is incorrectly unescaped. + * query_raw takes precedence over query if the former is set. + * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127 + */ +typedef struct _xmlURI xmlURI; +typedef xmlURI *xmlURIPtr; +struct _xmlURI { + char *scheme; /* the URI scheme */ + char *opaque; /* opaque part */ + char *authority; /* the authority part */ + char *server; /* the server part */ + char *user; /* the user part */ + int port; /* the port number */ + char *path; /* the path string */ + char *query; /* the query string (deprecated - use with caution) */ + char *fragment; /* the fragment identifier */ + int cleanup; /* parsing potentially unclean URI */ + char *query_raw; /* the query string (as it appears in the URI) */ +}; + +/* + * This function is in tree.h: + * xmlChar * xmlNodeGetBase (xmlDocPtr doc, + * xmlNodePtr cur); + */ +XMLPUBFUN xmlURIPtr XMLCALL + xmlCreateURI (void); +XMLPUBFUN xmlChar * XMLCALL + xmlBuildURI (const xmlChar *URI, + const xmlChar *base); +XMLPUBFUN xmlChar * XMLCALL + xmlBuildRelativeURI (const xmlChar *URI, + const xmlChar *base); +XMLPUBFUN xmlURIPtr XMLCALL + xmlParseURI (const char *str); +XMLPUBFUN xmlURIPtr XMLCALL + xmlParseURIRaw (const char *str, + int raw); +XMLPUBFUN int XMLCALL + xmlParseURIReference (xmlURIPtr uri, + const char *str); +XMLPUBFUN xmlChar * XMLCALL + xmlSaveUri (xmlURIPtr uri); +XMLPUBFUN void XMLCALL + xmlPrintURI (FILE *stream, + xmlURIPtr uri); +XMLPUBFUN xmlChar * XMLCALL + xmlURIEscapeStr (const xmlChar *str, + const xmlChar *list); +XMLPUBFUN char * XMLCALL + xmlURIUnescapeString (const char *str, + int len, + char *target); +XMLPUBFUN int XMLCALL + xmlNormalizeURIPath (char *path); +XMLPUBFUN xmlChar * XMLCALL + xmlURIEscape (const xmlChar *str); +XMLPUBFUN void XMLCALL + xmlFreeURI (xmlURIPtr uri); +XMLPUBFUN xmlChar* XMLCALL + xmlCanonicPath (const xmlChar *path); +XMLPUBFUN xmlChar* XMLCALL + xmlPathToURI (const xmlChar *path); + +#ifdef __cplusplus +} +#endif +#endif /* __XML_URI_H__ */ diff --git a/external-libs/libxml2/include/libxml/valid.h b/external-libs/libxml2/include/libxml/valid.h new file mode 100644 index 0000000..7492d28 --- /dev/null +++ b/external-libs/libxml2/include/libxml/valid.h @@ -0,0 +1,458 @@ +/* + * Summary: The DTD validation + * Description: API for the DTD handling and the validity checking + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __XML_VALID_H__ +#define __XML_VALID_H__ + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Validation state added for non-determinist content model. + */ +typedef struct _xmlValidState xmlValidState; +typedef xmlValidState *xmlValidStatePtr; + +/** + * xmlValidityErrorFunc: + * @ctx: usually an xmlValidCtxtPtr to a validity error context, + * but comes from ctxt->userData (which normally contains such + * a pointer); ctxt->userData can be changed by the user. + * @msg: the string to format *printf like vararg + * @...: remaining arguments to the format + * + * Callback called when a validity error is found. This is a message + * oriented function similar to an *printf function. + */ +typedef void (XMLCDECL *xmlValidityErrorFunc) (void *ctx, + const char *msg, + ...); + +/** + * xmlValidityWarningFunc: + * @ctx: usually an xmlValidCtxtPtr to a validity error context, + * but comes from ctxt->userData (which normally contains such + * a pointer); ctxt->userData can be changed by the user. + * @msg: the string to format *printf like vararg + * @...: remaining arguments to the format + * + * Callback called when a validity warning is found. This is a message + * oriented function similar to an *printf function. + */ +typedef void (XMLCDECL *xmlValidityWarningFunc) (void *ctx, + const char *msg, + ...); + +#ifdef IN_LIBXML +/** + * XML_CTXT_FINISH_DTD_0: + * + * Special value for finishDtd field when embedded in an xmlParserCtxt + */ +#define XML_CTXT_FINISH_DTD_0 0xabcd1234 +/** + * XML_CTXT_FINISH_DTD_1: + * + * Special value for finishDtd field when embedded in an xmlParserCtxt + */ +#define XML_CTXT_FINISH_DTD_1 0xabcd1235 +#endif + +/* + * xmlValidCtxt: + * An xmlValidCtxt is used for error reporting when validating. + */ +typedef struct _xmlValidCtxt xmlValidCtxt; +typedef xmlValidCtxt *xmlValidCtxtPtr; +struct _xmlValidCtxt { + void *userData; /* user specific data block */ + xmlValidityErrorFunc error; /* the callback in case of errors */ + xmlValidityWarningFunc warning; /* the callback in case of warning */ + + /* Node analysis stack used when validating within entities */ + xmlNodePtr node; /* Current parsed Node */ + int nodeNr; /* Depth of the parsing stack */ + int nodeMax; /* Max depth of the parsing stack */ + xmlNodePtr *nodeTab; /* array of nodes */ + + unsigned int finishDtd; /* finished validating the Dtd ? */ + xmlDocPtr doc; /* the document */ + int valid; /* temporary validity check result */ + + /* state state used for non-determinist content validation */ + xmlValidState *vstate; /* current state */ + int vstateNr; /* Depth of the validation stack */ + int vstateMax; /* Max depth of the validation stack */ + xmlValidState *vstateTab; /* array of validation states */ + +#ifdef LIBXML_REGEXP_ENABLED + xmlAutomataPtr am; /* the automata */ + xmlAutomataStatePtr state; /* used to build the automata */ +#else + void *am; + void *state; +#endif +}; + +/* + * ALL notation declarations are stored in a table. + * There is one table per DTD. + */ + +typedef struct _xmlHashTable xmlNotationTable; +typedef xmlNotationTable *xmlNotationTablePtr; + +/* + * ALL element declarations are stored in a table. + * There is one table per DTD. + */ + +typedef struct _xmlHashTable xmlElementTable; +typedef xmlElementTable *xmlElementTablePtr; + +/* + * ALL attribute declarations are stored in a table. + * There is one table per DTD. + */ + +typedef struct _xmlHashTable xmlAttributeTable; +typedef xmlAttributeTable *xmlAttributeTablePtr; + +/* + * ALL IDs attributes are stored in a table. + * There is one table per document. + */ + +typedef struct _xmlHashTable xmlIDTable; +typedef xmlIDTable *xmlIDTablePtr; + +/* + * ALL Refs attributes are stored in a table. + * There is one table per document. + */ + +typedef struct _xmlHashTable xmlRefTable; +typedef xmlRefTable *xmlRefTablePtr; + +/* Notation */ +XMLPUBFUN xmlNotationPtr XMLCALL + xmlAddNotationDecl (xmlValidCtxtPtr ctxt, + xmlDtdPtr dtd, + const xmlChar *name, + const xmlChar *PublicID, + const xmlChar *SystemID); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlNotationTablePtr XMLCALL + xmlCopyNotationTable (xmlNotationTablePtr table); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN void XMLCALL + xmlFreeNotationTable (xmlNotationTablePtr table); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlDumpNotationDecl (xmlBufferPtr buf, + xmlNotationPtr nota); +XMLPUBFUN void XMLCALL + xmlDumpNotationTable (xmlBufferPtr buf, + xmlNotationTablePtr table); +#endif /* LIBXML_OUTPUT_ENABLED */ + +/* Element Content */ +/* the non Doc version are being deprecated */ +XMLPUBFUN xmlElementContentPtr XMLCALL + xmlNewElementContent (const xmlChar *name, + xmlElementContentType type); +XMLPUBFUN xmlElementContentPtr XMLCALL + xmlCopyElementContent (xmlElementContentPtr content); +XMLPUBFUN void XMLCALL + xmlFreeElementContent (xmlElementContentPtr cur); +/* the new versions with doc argument */ +XMLPUBFUN xmlElementContentPtr XMLCALL + xmlNewDocElementContent (xmlDocPtr doc, + const xmlChar *name, + xmlElementContentType type); +XMLPUBFUN xmlElementContentPtr XMLCALL + xmlCopyDocElementContent(xmlDocPtr doc, + xmlElementContentPtr content); +XMLPUBFUN void XMLCALL + xmlFreeDocElementContent(xmlDocPtr doc, + xmlElementContentPtr cur); +XMLPUBFUN void XMLCALL + xmlSnprintfElementContent(char *buf, + int size, + xmlElementContentPtr content, + int englob); +#ifdef LIBXML_OUTPUT_ENABLED +/* DEPRECATED */ +XMLPUBFUN void XMLCALL + xmlSprintfElementContent(char *buf, + xmlElementContentPtr content, + int englob); +#endif /* LIBXML_OUTPUT_ENABLED */ +/* DEPRECATED */ + +/* Element */ +XMLPUBFUN xmlElementPtr XMLCALL + xmlAddElementDecl (xmlValidCtxtPtr ctxt, + xmlDtdPtr dtd, + const xmlChar *name, + xmlElementTypeVal type, + xmlElementContentPtr content); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlElementTablePtr XMLCALL + xmlCopyElementTable (xmlElementTablePtr table); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN void XMLCALL + xmlFreeElementTable (xmlElementTablePtr table); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlDumpElementTable (xmlBufferPtr buf, + xmlElementTablePtr table); +XMLPUBFUN void XMLCALL + xmlDumpElementDecl (xmlBufferPtr buf, + xmlElementPtr elem); +#endif /* LIBXML_OUTPUT_ENABLED */ + +/* Enumeration */ +XMLPUBFUN xmlEnumerationPtr XMLCALL + xmlCreateEnumeration (const xmlChar *name); +XMLPUBFUN void XMLCALL + xmlFreeEnumeration (xmlEnumerationPtr cur); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlEnumerationPtr XMLCALL + xmlCopyEnumeration (xmlEnumerationPtr cur); +#endif /* LIBXML_TREE_ENABLED */ + +/* Attribute */ +XMLPUBFUN xmlAttributePtr XMLCALL + xmlAddAttributeDecl (xmlValidCtxtPtr ctxt, + xmlDtdPtr dtd, + const xmlChar *elem, + const xmlChar *name, + const xmlChar *ns, + xmlAttributeType type, + xmlAttributeDefault def, + const xmlChar *defaultValue, + xmlEnumerationPtr tree); +#ifdef LIBXML_TREE_ENABLED +XMLPUBFUN xmlAttributeTablePtr XMLCALL + xmlCopyAttributeTable (xmlAttributeTablePtr table); +#endif /* LIBXML_TREE_ENABLED */ +XMLPUBFUN void XMLCALL + xmlFreeAttributeTable (xmlAttributeTablePtr table); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlDumpAttributeTable (xmlBufferPtr buf, + xmlAttributeTablePtr table); +XMLPUBFUN void XMLCALL + xmlDumpAttributeDecl (xmlBufferPtr buf, + xmlAttributePtr attr); +#endif /* LIBXML_OUTPUT_ENABLED */ + +/* IDs */ +XMLPUBFUN xmlIDPtr XMLCALL + xmlAddID (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + const xmlChar *value, + xmlAttrPtr attr); +XMLPUBFUN void XMLCALL + xmlFreeIDTable (xmlIDTablePtr table); +XMLPUBFUN xmlAttrPtr XMLCALL + xmlGetID (xmlDocPtr doc, + const xmlChar *ID); +XMLPUBFUN int XMLCALL + xmlIsID (xmlDocPtr doc, + xmlNodePtr elem, + xmlAttrPtr attr); +XMLPUBFUN int XMLCALL + xmlRemoveID (xmlDocPtr doc, + xmlAttrPtr attr); + +/* IDREFs */ +XMLPUBFUN xmlRefPtr XMLCALL + xmlAddRef (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + const xmlChar *value, + xmlAttrPtr attr); +XMLPUBFUN void XMLCALL + xmlFreeRefTable (xmlRefTablePtr table); +XMLPUBFUN int XMLCALL + xmlIsRef (xmlDocPtr doc, + xmlNodePtr elem, + xmlAttrPtr attr); +XMLPUBFUN int XMLCALL + xmlRemoveRef (xmlDocPtr doc, + xmlAttrPtr attr); +XMLPUBFUN xmlListPtr XMLCALL + xmlGetRefs (xmlDocPtr doc, + const xmlChar *ID); + +/** + * The public function calls related to validity checking. + */ +#ifdef LIBXML_VALID_ENABLED +/* Allocate/Release Validation Contexts */ +XMLPUBFUN xmlValidCtxtPtr XMLCALL + xmlNewValidCtxt(void); +XMLPUBFUN void XMLCALL + xmlFreeValidCtxt(xmlValidCtxtPtr); + +XMLPUBFUN int XMLCALL + xmlValidateRoot (xmlValidCtxtPtr ctxt, + xmlDocPtr doc); +XMLPUBFUN int XMLCALL + xmlValidateElementDecl (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlElementPtr elem); +XMLPUBFUN xmlChar * XMLCALL + xmlValidNormalizeAttributeValue(xmlDocPtr doc, + xmlNodePtr elem, + const xmlChar *name, + const xmlChar *value); +XMLPUBFUN xmlChar * XMLCALL + xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem, + const xmlChar *name, + const xmlChar *value); +XMLPUBFUN int XMLCALL + xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlAttributePtr attr); +XMLPUBFUN int XMLCALL + xmlValidateAttributeValue(xmlAttributeType type, + const xmlChar *value); +XMLPUBFUN int XMLCALL + xmlValidateNotationDecl (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNotationPtr nota); +XMLPUBFUN int XMLCALL + xmlValidateDtd (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlDtdPtr dtd); +XMLPUBFUN int XMLCALL + xmlValidateDtdFinal (xmlValidCtxtPtr ctxt, + xmlDocPtr doc); +XMLPUBFUN int XMLCALL + xmlValidateDocument (xmlValidCtxtPtr ctxt, + xmlDocPtr doc); +XMLPUBFUN int XMLCALL + xmlValidateElement (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem); +XMLPUBFUN int XMLCALL + xmlValidateOneElement (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem); +XMLPUBFUN int XMLCALL + xmlValidateOneAttribute (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem, + xmlAttrPtr attr, + const xmlChar *value); +XMLPUBFUN int XMLCALL + xmlValidateOneNamespace (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem, + const xmlChar *prefix, + xmlNsPtr ns, + const xmlChar *value); +XMLPUBFUN int XMLCALL + xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt, + xmlDocPtr doc); +#endif /* LIBXML_VALID_ENABLED */ + +#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN int XMLCALL + xmlValidateNotationUse (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + const xmlChar *notationName); +#endif /* LIBXML_VALID_ENABLED or LIBXML_SCHEMAS_ENABLED */ + +XMLPUBFUN int XMLCALL + xmlIsMixedElement (xmlDocPtr doc, + const xmlChar *name); +XMLPUBFUN xmlAttributePtr XMLCALL + xmlGetDtdAttrDesc (xmlDtdPtr dtd, + const xmlChar *elem, + const xmlChar *name); +XMLPUBFUN xmlAttributePtr XMLCALL + xmlGetDtdQAttrDesc (xmlDtdPtr dtd, + const xmlChar *elem, + const xmlChar *name, + const xmlChar *prefix); +XMLPUBFUN xmlNotationPtr XMLCALL + xmlGetDtdNotationDesc (xmlDtdPtr dtd, + const xmlChar *name); +XMLPUBFUN xmlElementPtr XMLCALL + xmlGetDtdQElementDesc (xmlDtdPtr dtd, + const xmlChar *name, + const xmlChar *prefix); +XMLPUBFUN xmlElementPtr XMLCALL + xmlGetDtdElementDesc (xmlDtdPtr dtd, + const xmlChar *name); + +#ifdef LIBXML_VALID_ENABLED + +XMLPUBFUN int XMLCALL + xmlValidGetPotentialChildren(xmlElementContent *ctree, + const xmlChar **names, + int *len, + int max); + +XMLPUBFUN int XMLCALL + xmlValidGetValidElements(xmlNode *prev, + xmlNode *next, + const xmlChar **names, + int max); +XMLPUBFUN int XMLCALL + xmlValidateNameValue (const xmlChar *value); +XMLPUBFUN int XMLCALL + xmlValidateNamesValue (const xmlChar *value); +XMLPUBFUN int XMLCALL + xmlValidateNmtokenValue (const xmlChar *value); +XMLPUBFUN int XMLCALL + xmlValidateNmtokensValue(const xmlChar *value); + +#ifdef LIBXML_REGEXP_ENABLED +/* + * Validation based on the regexp support + */ +XMLPUBFUN int XMLCALL + xmlValidBuildContentModel(xmlValidCtxtPtr ctxt, + xmlElementPtr elem); + +XMLPUBFUN int XMLCALL + xmlValidatePushElement (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem, + const xmlChar *qname); +XMLPUBFUN int XMLCALL + xmlValidatePushCData (xmlValidCtxtPtr ctxt, + const xmlChar *data, + int len); +XMLPUBFUN int XMLCALL + xmlValidatePopElement (xmlValidCtxtPtr ctxt, + xmlDocPtr doc, + xmlNodePtr elem, + const xmlChar *qname); +#endif /* LIBXML_REGEXP_ENABLED */ +#endif /* LIBXML_VALID_ENABLED */ +#ifdef __cplusplus +} +#endif +#endif /* __XML_VALID_H__ */ diff --git a/external-libs/libxml2/include/libxml/xinclude.h b/external-libs/libxml2/include/libxml/xinclude.h new file mode 100644 index 0000000..ba9c9b5 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xinclude.h @@ -0,0 +1,125 @@ +/* + * Summary: implementation of XInclude + * Description: API to handle XInclude processing, + * implements the + * World Wide Web Consortium Last Call Working Draft 10 November 2003 + * http://www.w3.org/TR/2003/WD-xinclude-20031110 + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_XINCLUDE_H__ +#define __XML_XINCLUDE_H__ + +#include +#include + +#ifdef LIBXML_XINCLUDE_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * XINCLUDE_NS: + * + * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude + */ +#define XINCLUDE_NS (const xmlChar *) "http://www.w3.org/2003/XInclude" +/** + * XINCLUDE_OLD_NS: + * + * Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude + */ +#define XINCLUDE_OLD_NS (const xmlChar *) "http://www.w3.org/2001/XInclude" +/** + * XINCLUDE_NODE: + * + * Macro defining "include" + */ +#define XINCLUDE_NODE (const xmlChar *) "include" +/** + * XINCLUDE_FALLBACK: + * + * Macro defining "fallback" + */ +#define XINCLUDE_FALLBACK (const xmlChar *) "fallback" +/** + * XINCLUDE_HREF: + * + * Macro defining "href" + */ +#define XINCLUDE_HREF (const xmlChar *) "href" +/** + * XINCLUDE_PARSE: + * + * Macro defining "parse" + */ +#define XINCLUDE_PARSE (const xmlChar *) "parse" +/** + * XINCLUDE_PARSE_XML: + * + * Macro defining "xml" + */ +#define XINCLUDE_PARSE_XML (const xmlChar *) "xml" +/** + * XINCLUDE_PARSE_TEXT: + * + * Macro defining "text" + */ +#define XINCLUDE_PARSE_TEXT (const xmlChar *) "text" +/** + * XINCLUDE_PARSE_ENCODING: + * + * Macro defining "encoding" + */ +#define XINCLUDE_PARSE_ENCODING (const xmlChar *) "encoding" +/** + * XINCLUDE_PARSE_XPOINTER: + * + * Macro defining "xpointer" + */ +#define XINCLUDE_PARSE_XPOINTER (const xmlChar *) "xpointer" + +typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt; +typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr; + +/* + * standalone processing + */ +XMLPUBFUN int XMLCALL + xmlXIncludeProcess (xmlDocPtr doc); +XMLPUBFUN int XMLCALL + xmlXIncludeProcessFlags (xmlDocPtr doc, + int flags); +XMLPUBFUN int XMLCALL + xmlXIncludeProcessFlagsData(xmlDocPtr doc, + int flags, + void *data); +XMLPUBFUN int XMLCALL + xmlXIncludeProcessTree (xmlNodePtr tree); +XMLPUBFUN int XMLCALL + xmlXIncludeProcessTreeFlags(xmlNodePtr tree, + int flags); +/* + * contextual processing + */ +XMLPUBFUN xmlXIncludeCtxtPtr XMLCALL + xmlXIncludeNewContext (xmlDocPtr doc); +XMLPUBFUN int XMLCALL + xmlXIncludeSetFlags (xmlXIncludeCtxtPtr ctxt, + int flags); +XMLPUBFUN void XMLCALL + xmlXIncludeFreeContext (xmlXIncludeCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlXIncludeProcessNode (xmlXIncludeCtxtPtr ctxt, + xmlNodePtr tree); +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_XINCLUDE_ENABLED */ + +#endif /* __XML_XINCLUDE_H__ */ diff --git a/external-libs/libxml2/include/libxml/xlink.h b/external-libs/libxml2/include/libxml/xlink.h new file mode 100644 index 0000000..083c7ed --- /dev/null +++ b/external-libs/libxml2/include/libxml/xlink.h @@ -0,0 +1,189 @@ +/* + * Summary: unfinished XLink detection module + * Description: unfinished XLink detection module + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_XLINK_H__ +#define __XML_XLINK_H__ + +#include +#include + +#ifdef LIBXML_XPTR_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Various defines for the various Link properties. + * + * NOTE: the link detection layer will try to resolve QName expansion + * of namespaces. If "foo" is the prefix for "http://foo.com/" + * then the link detection layer will expand role="foo:myrole" + * to "http://foo.com/:myrole". + * NOTE: the link detection layer will expand URI-Refences found on + * href attributes by using the base mechanism if found. + */ +typedef xmlChar *xlinkHRef; +typedef xmlChar *xlinkRole; +typedef xmlChar *xlinkTitle; + +typedef enum { + XLINK_TYPE_NONE = 0, + XLINK_TYPE_SIMPLE, + XLINK_TYPE_EXTENDED, + XLINK_TYPE_EXTENDED_SET +} xlinkType; + +typedef enum { + XLINK_SHOW_NONE = 0, + XLINK_SHOW_NEW, + XLINK_SHOW_EMBED, + XLINK_SHOW_REPLACE +} xlinkShow; + +typedef enum { + XLINK_ACTUATE_NONE = 0, + XLINK_ACTUATE_AUTO, + XLINK_ACTUATE_ONREQUEST +} xlinkActuate; + +/** + * xlinkNodeDetectFunc: + * @ctx: user data pointer + * @node: the node to check + * + * This is the prototype for the link detection routine. + * It calls the default link detection callbacks upon link detection. + */ +typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node); + +/* + * The link detection module interact with the upper layers using + * a set of callback registered at parsing time. + */ + +/** + * xlinkSimpleLinkFunk: + * @ctx: user data pointer + * @node: the node carrying the link + * @href: the target of the link + * @role: the role string + * @title: the link title + * + * This is the prototype for a simple link detection callback. + */ +typedef void +(*xlinkSimpleLinkFunk) (void *ctx, + xmlNodePtr node, + const xlinkHRef href, + const xlinkRole role, + const xlinkTitle title); + +/** + * xlinkExtendedLinkFunk: + * @ctx: user data pointer + * @node: the node carrying the link + * @nbLocators: the number of locators detected on the link + * @hrefs: pointer to the array of locator hrefs + * @roles: pointer to the array of locator roles + * @nbArcs: the number of arcs detected on the link + * @from: pointer to the array of source roles found on the arcs + * @to: pointer to the array of target roles found on the arcs + * @show: array of values for the show attributes found on the arcs + * @actuate: array of values for the actuate attributes found on the arcs + * @nbTitles: the number of titles detected on the link + * @title: array of titles detected on the link + * @langs: array of xml:lang values for the titles + * + * This is the prototype for a extended link detection callback. + */ +typedef void +(*xlinkExtendedLinkFunk)(void *ctx, + xmlNodePtr node, + int nbLocators, + const xlinkHRef *hrefs, + const xlinkRole *roles, + int nbArcs, + const xlinkRole *from, + const xlinkRole *to, + xlinkShow *show, + xlinkActuate *actuate, + int nbTitles, + const xlinkTitle *titles, + const xmlChar **langs); + +/** + * xlinkExtendedLinkSetFunk: + * @ctx: user data pointer + * @node: the node carrying the link + * @nbLocators: the number of locators detected on the link + * @hrefs: pointer to the array of locator hrefs + * @roles: pointer to the array of locator roles + * @nbTitles: the number of titles detected on the link + * @title: array of titles detected on the link + * @langs: array of xml:lang values for the titles + * + * This is the prototype for a extended link set detection callback. + */ +typedef void +(*xlinkExtendedLinkSetFunk) (void *ctx, + xmlNodePtr node, + int nbLocators, + const xlinkHRef *hrefs, + const xlinkRole *roles, + int nbTitles, + const xlinkTitle *titles, + const xmlChar **langs); + +/** + * This is the structure containing a set of Links detection callbacks. + * + * There is no default xlink callbacks, if one want to get link + * recognition activated, those call backs must be provided before parsing. + */ +typedef struct _xlinkHandler xlinkHandler; +typedef xlinkHandler *xlinkHandlerPtr; +struct _xlinkHandler { + xlinkSimpleLinkFunk simple; + xlinkExtendedLinkFunk extended; + xlinkExtendedLinkSetFunk set; +}; + +/* + * The default detection routine, can be overridden, they call the default + * detection callbacks. + */ + +XMLPUBFUN xlinkNodeDetectFunc XMLCALL + xlinkGetDefaultDetect (void); +XMLPUBFUN void XMLCALL + xlinkSetDefaultDetect (xlinkNodeDetectFunc func); + +/* + * Routines to set/get the default handlers. + */ +XMLPUBFUN xlinkHandlerPtr XMLCALL + xlinkGetDefaultHandler (void); +XMLPUBFUN void XMLCALL + xlinkSetDefaultHandler (xlinkHandlerPtr handler); + +/* + * Link detection module itself. + */ +XMLPUBFUN xlinkType XMLCALL + xlinkIsLink (xmlDocPtr doc, + xmlNodePtr node); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_XPTR_ENABLED */ + +#endif /* __XML_XLINK_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlIO.h b/external-libs/libxml2/include/libxml/xmlIO.h new file mode 100644 index 0000000..eea9ed6 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlIO.h @@ -0,0 +1,360 @@ +/* + * Summary: interface for the I/O interfaces used by the parser + * Description: interface for the I/O interfaces used by the parser + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_IO_H__ +#define __XML_IO_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Those are the functions and datatypes for the parser input + * I/O structures. + */ + +/** + * xmlInputMatchCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Input API to detect if the current handler + * can provide input fonctionnalities for this resource. + * + * Returns 1 if yes and 0 if another Input module should be used + */ +typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename); +/** + * xmlInputOpenCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Input API to open the resource + * + * Returns an Input context or NULL in case or error + */ +typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename); +/** + * xmlInputReadCallback: + * @context: an Input context + * @buffer: the buffer to store data read + * @len: the length of the buffer in bytes + * + * Callback used in the I/O Input API to read the resource + * + * Returns the number of bytes read or -1 in case of error + */ +typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len); +/** + * xmlInputCloseCallback: + * @context: an Input context + * + * Callback used in the I/O Input API to close the resource + * + * Returns 0 or -1 in case of error + */ +typedef int (XMLCALL *xmlInputCloseCallback) (void * context); + +#ifdef LIBXML_OUTPUT_ENABLED +/* + * Those are the functions and datatypes for the library output + * I/O structures. + */ + +/** + * xmlOutputMatchCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Output API to detect if the current handler + * can provide output fonctionnalities for this resource. + * + * Returns 1 if yes and 0 if another Output module should be used + */ +typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename); +/** + * xmlOutputOpenCallback: + * @filename: the filename or URI + * + * Callback used in the I/O Output API to open the resource + * + * Returns an Output context or NULL in case or error + */ +typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename); +/** + * xmlOutputWriteCallback: + * @context: an Output context + * @buffer: the buffer of data to write + * @len: the length of the buffer in bytes + * + * Callback used in the I/O Output API to write to the resource + * + * Returns the number of bytes written or -1 in case of error + */ +typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer, + int len); +/** + * xmlOutputCloseCallback: + * @context: an Output context + * + * Callback used in the I/O Output API to close the resource + * + * Returns 0 or -1 in case of error + */ +typedef int (XMLCALL *xmlOutputCloseCallback) (void * context); +#endif /* LIBXML_OUTPUT_ENABLED */ + +#ifdef __cplusplus +} +#endif + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif +struct _xmlParserInputBuffer { + void* context; + xmlInputReadCallback readcallback; + xmlInputCloseCallback closecallback; + + xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ + + xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */ + xmlBufferPtr raw; /* if encoder != NULL buffer for raw input */ + int compressed; /* -1=unknown, 0=not compressed, 1=compressed */ + int error; + unsigned long rawconsumed;/* amount consumed from raw */ +}; + + +#ifdef LIBXML_OUTPUT_ENABLED +struct _xmlOutputBuffer { + void* context; + xmlOutputWriteCallback writecallback; + xmlOutputCloseCallback closecallback; + + xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ + + xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */ + xmlBufferPtr conv; /* if encoder != NULL buffer for output */ + int written; /* total number of byte written */ + int error; +}; +#endif /* LIBXML_OUTPUT_ENABLED */ + +/* + * Interfaces for input + */ +XMLPUBFUN void XMLCALL + xmlCleanupInputCallbacks (void); + +XMLPUBFUN int XMLCALL + xmlPopInputCallbacks (void); + +XMLPUBFUN void XMLCALL + xmlRegisterDefaultInputCallbacks (void); +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlAllocParserInputBuffer (xmlCharEncoding enc); + +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlParserInputBufferCreateFilename (const char *URI, + xmlCharEncoding enc); +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlParserInputBufferCreateFile (FILE *file, + xmlCharEncoding enc); +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlParserInputBufferCreateFd (int fd, + xmlCharEncoding enc); +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlParserInputBufferCreateMem (const char *mem, int size, + xmlCharEncoding enc); +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlParserInputBufferCreateStatic (const char *mem, int size, + xmlCharEncoding enc); +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlParserInputBufferCreateIO (xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + xmlCharEncoding enc); +XMLPUBFUN int XMLCALL + xmlParserInputBufferRead (xmlParserInputBufferPtr in, + int len); +XMLPUBFUN int XMLCALL + xmlParserInputBufferGrow (xmlParserInputBufferPtr in, + int len); +XMLPUBFUN int XMLCALL + xmlParserInputBufferPush (xmlParserInputBufferPtr in, + int len, + const char *buf); +XMLPUBFUN void XMLCALL + xmlFreeParserInputBuffer (xmlParserInputBufferPtr in); +XMLPUBFUN char * XMLCALL + xmlParserGetDirectory (const char *filename); + +XMLPUBFUN int XMLCALL + xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc, + xmlInputOpenCallback openFunc, + xmlInputReadCallback readFunc, + xmlInputCloseCallback closeFunc); + +xmlParserInputBufferPtr + __xmlParserInputBufferCreateFilename(const char *URI, + xmlCharEncoding enc); + +#ifdef LIBXML_OUTPUT_ENABLED +/* + * Interfaces for output + */ +XMLPUBFUN void XMLCALL + xmlCleanupOutputCallbacks (void); +XMLPUBFUN void XMLCALL + xmlRegisterDefaultOutputCallbacks(void); +XMLPUBFUN xmlOutputBufferPtr XMLCALL + xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder); + +XMLPUBFUN xmlOutputBufferPtr XMLCALL + xmlOutputBufferCreateFilename (const char *URI, + xmlCharEncodingHandlerPtr encoder, + int compression); + +XMLPUBFUN xmlOutputBufferPtr XMLCALL + xmlOutputBufferCreateFile (FILE *file, + xmlCharEncodingHandlerPtr encoder); + +XMLPUBFUN xmlOutputBufferPtr XMLCALL + xmlOutputBufferCreateBuffer (xmlBufferPtr buffer, + xmlCharEncodingHandlerPtr encoder); + +XMLPUBFUN xmlOutputBufferPtr XMLCALL + xmlOutputBufferCreateFd (int fd, + xmlCharEncodingHandlerPtr encoder); + +XMLPUBFUN xmlOutputBufferPtr XMLCALL + xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite, + xmlOutputCloseCallback ioclose, + void *ioctx, + xmlCharEncodingHandlerPtr encoder); + +XMLPUBFUN int XMLCALL + xmlOutputBufferWrite (xmlOutputBufferPtr out, + int len, + const char *buf); +XMLPUBFUN int XMLCALL + xmlOutputBufferWriteString (xmlOutputBufferPtr out, + const char *str); +XMLPUBFUN int XMLCALL + xmlOutputBufferWriteEscape (xmlOutputBufferPtr out, + const xmlChar *str, + xmlCharEncodingOutputFunc escaping); + +XMLPUBFUN int XMLCALL + xmlOutputBufferFlush (xmlOutputBufferPtr out); +XMLPUBFUN int XMLCALL + xmlOutputBufferClose (xmlOutputBufferPtr out); + +XMLPUBFUN int XMLCALL + xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc, + xmlOutputOpenCallback openFunc, + xmlOutputWriteCallback writeFunc, + xmlOutputCloseCallback closeFunc); + +xmlOutputBufferPtr + __xmlOutputBufferCreateFilename(const char *URI, + xmlCharEncodingHandlerPtr encoder, + int compression); + +#ifdef LIBXML_HTTP_ENABLED +/* This function only exists if HTTP support built into the library */ +XMLPUBFUN void XMLCALL + xmlRegisterHTTPPostCallbacks (void ); +#endif /* LIBXML_HTTP_ENABLED */ + +#endif /* LIBXML_OUTPUT_ENABLED */ + +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlCheckHTTPInput (xmlParserCtxtPtr ctxt, + xmlParserInputPtr ret); + +/* + * A predefined entity loader disabling network accesses + */ +XMLPUBFUN xmlParserInputPtr XMLCALL + xmlNoNetExternalEntityLoader (const char *URL, + const char *ID, + xmlParserCtxtPtr ctxt); + +/* + * xmlNormalizeWindowsPath is obsolete, don't use it. + * Check xmlCanonicPath in uri.h for a better alternative. + */ +XMLPUBFUN xmlChar * XMLCALL + xmlNormalizeWindowsPath (const xmlChar *path); + +XMLPUBFUN int XMLCALL + xmlCheckFilename (const char *path); +/** + * Default 'file://' protocol callbacks + */ +XMLPUBFUN int XMLCALL + xmlFileMatch (const char *filename); +XMLPUBFUN void * XMLCALL + xmlFileOpen (const char *filename); +XMLPUBFUN int XMLCALL + xmlFileRead (void * context, + char * buffer, + int len); +XMLPUBFUN int XMLCALL + xmlFileClose (void * context); + +/** + * Default 'http://' protocol callbacks + */ +#ifdef LIBXML_HTTP_ENABLED +XMLPUBFUN int XMLCALL + xmlIOHTTPMatch (const char *filename); +XMLPUBFUN void * XMLCALL + xmlIOHTTPOpen (const char *filename); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void * XMLCALL + xmlIOHTTPOpenW (const char * post_uri, + int compression ); +#endif /* LIBXML_OUTPUT_ENABLED */ +XMLPUBFUN int XMLCALL + xmlIOHTTPRead (void * context, + char * buffer, + int len); +XMLPUBFUN int XMLCALL + xmlIOHTTPClose (void * context); +#endif /* LIBXML_HTTP_ENABLED */ + +/** + * Default 'ftp://' protocol callbacks + */ +#ifdef LIBXML_FTP_ENABLED +XMLPUBFUN int XMLCALL + xmlIOFTPMatch (const char *filename); +XMLPUBFUN void * XMLCALL + xmlIOFTPOpen (const char *filename); +XMLPUBFUN int XMLCALL + xmlIOFTPRead (void * context, + char * buffer, + int len); +XMLPUBFUN int XMLCALL + xmlIOFTPClose (void * context); +#endif /* LIBXML_FTP_ENABLED */ + +#ifdef __cplusplus +} +#endif + +#endif /* __XML_IO_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlautomata.h b/external-libs/libxml2/include/libxml/xmlautomata.h new file mode 100644 index 0000000..f98b55e --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlautomata.h @@ -0,0 +1,146 @@ +/* + * Summary: API to build regexp automata + * Description: the API to build regexp automata + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_AUTOMATA_H__ +#define __XML_AUTOMATA_H__ + +#include +#include + +#ifdef LIBXML_REGEXP_ENABLED +#ifdef LIBXML_AUTOMATA_ENABLED +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlAutomataPtr: + * + * A libxml automata description, It can be compiled into a regexp + */ +typedef struct _xmlAutomata xmlAutomata; +typedef xmlAutomata *xmlAutomataPtr; + +/** + * xmlAutomataStatePtr: + * + * A state int the automata description, + */ +typedef struct _xmlAutomataState xmlAutomataState; +typedef xmlAutomataState *xmlAutomataStatePtr; + +/* + * Building API + */ +XMLPUBFUN xmlAutomataPtr XMLCALL + xmlNewAutomata (void); +XMLPUBFUN void XMLCALL + xmlFreeAutomata (xmlAutomataPtr am); + +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataGetInitState (xmlAutomataPtr am); +XMLPUBFUN int XMLCALL + xmlAutomataSetFinalState (xmlAutomataPtr am, + xmlAutomataStatePtr state); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewState (xmlAutomataPtr am); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewTransition (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + const xmlChar *token, + void *data); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewTransition2 (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + const xmlChar *token, + const xmlChar *token2, + void *data); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewNegTrans (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + const xmlChar *token, + const xmlChar *token2, + void *data); + +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewCountTrans (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + const xmlChar *token, + int min, + int max, + void *data); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewCountTrans2 (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + const xmlChar *token, + const xmlChar *token2, + int min, + int max, + void *data); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewOnceTrans (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + const xmlChar *token, + int min, + int max, + void *data); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewOnceTrans2 (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + const xmlChar *token, + const xmlChar *token2, + int min, + int max, + void *data); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewAllTrans (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + int lax); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewEpsilon (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewCountedTrans (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + int counter); +XMLPUBFUN xmlAutomataStatePtr XMLCALL + xmlAutomataNewCounterTrans (xmlAutomataPtr am, + xmlAutomataStatePtr from, + xmlAutomataStatePtr to, + int counter); +XMLPUBFUN int XMLCALL + xmlAutomataNewCounter (xmlAutomataPtr am, + int min, + int max); + +XMLPUBFUN xmlRegexpPtr XMLCALL + xmlAutomataCompile (xmlAutomataPtr am); +XMLPUBFUN int XMLCALL + xmlAutomataIsDeterminist (xmlAutomataPtr am); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_AUTOMATA_ENABLED */ +#endif /* LIBXML_REGEXP_ENABLED */ + +#endif /* __XML_AUTOMATA_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlerror.h b/external-libs/libxml2/include/libxml/xmlerror.h new file mode 100644 index 0000000..8cbab5e --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlerror.h @@ -0,0 +1,940 @@ +/* + * Summary: error handling + * Description: the API used to report errors + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#include + +#ifndef __XML_ERROR_H__ +#define __XML_ERROR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlErrorLevel: + * + * Indicates the level of an error + */ +typedef enum { + XML_ERR_NONE = 0, + XML_ERR_WARNING = 1, /* A simple warning */ + XML_ERR_ERROR = 2, /* A recoverable error */ + XML_ERR_FATAL = 3 /* A fatal error */ +} xmlErrorLevel; + +/** + * xmlErrorDomain: + * + * Indicates where an error may have come from + */ +typedef enum { + XML_FROM_NONE = 0, + XML_FROM_PARSER, /* The XML parser */ + XML_FROM_TREE, /* The tree module */ + XML_FROM_NAMESPACE, /* The XML Namespace module */ + XML_FROM_DTD, /* The XML DTD validation with parser context*/ + XML_FROM_HTML, /* The HTML parser */ + XML_FROM_MEMORY, /* The memory allocator */ + XML_FROM_OUTPUT, /* The serialization code */ + XML_FROM_IO, /* The Input/Output stack */ + XML_FROM_FTP, /* The FTP module */ + XML_FROM_HTTP, /* The HTTP module */ + XML_FROM_XINCLUDE, /* The XInclude processing */ + XML_FROM_XPATH, /* The XPath module */ + XML_FROM_XPOINTER, /* The XPointer module */ + XML_FROM_REGEXP, /* The regular expressions module */ + XML_FROM_DATATYPE, /* The W3C XML Schemas Datatype module */ + XML_FROM_SCHEMASP, /* The W3C XML Schemas parser module */ + XML_FROM_SCHEMASV, /* The W3C XML Schemas validation module */ + XML_FROM_RELAXNGP, /* The Relax-NG parser module */ + XML_FROM_RELAXNGV, /* The Relax-NG validator module */ + XML_FROM_CATALOG, /* The Catalog module */ + XML_FROM_C14N, /* The Canonicalization module */ + XML_FROM_XSLT, /* The XSLT engine from libxslt */ + XML_FROM_VALID, /* The XML DTD validation with valid context */ + XML_FROM_CHECK, /* The error checking module */ + XML_FROM_WRITER, /* The xmlwriter module */ + XML_FROM_MODULE, /* The dynamically loaded module module*/ + XML_FROM_I18N, /* The module handling character conversion */ + XML_FROM_SCHEMATRONV /* The Schematron validator module */ +} xmlErrorDomain; + +/** + * xmlError: + * + * An XML Error instance. + */ + +typedef struct _xmlError xmlError; +typedef xmlError *xmlErrorPtr; +struct _xmlError { + int domain; /* What part of the library raised this error */ + int code; /* The error code, e.g. an xmlParserError */ + char *message;/* human-readable informative error message */ + xmlErrorLevel level;/* how consequent is the error */ + char *file; /* the filename */ + int line; /* the line number if available */ + char *str1; /* extra string information */ + char *str2; /* extra string information */ + char *str3; /* extra string information */ + int int1; /* extra number information */ + int int2; /* column number of the error or 0 if N/A (todo: rename this field when we would break ABI) */ + void *ctxt; /* the parser context if available */ + void *node; /* the node in the tree */ +}; + +/** + * xmlParserError: + * + * This is an error that the XML (or HTML) parser can generate + */ +typedef enum { + XML_ERR_OK = 0, + XML_ERR_INTERNAL_ERROR, /* 1 */ + XML_ERR_NO_MEMORY, /* 2 */ + XML_ERR_DOCUMENT_START, /* 3 */ + XML_ERR_DOCUMENT_EMPTY, /* 4 */ + XML_ERR_DOCUMENT_END, /* 5 */ + XML_ERR_INVALID_HEX_CHARREF, /* 6 */ + XML_ERR_INVALID_DEC_CHARREF, /* 7 */ + XML_ERR_INVALID_CHARREF, /* 8 */ + XML_ERR_INVALID_CHAR, /* 9 */ + XML_ERR_CHARREF_AT_EOF, /* 10 */ + XML_ERR_CHARREF_IN_PROLOG, /* 11 */ + XML_ERR_CHARREF_IN_EPILOG, /* 12 */ + XML_ERR_CHARREF_IN_DTD, /* 13 */ + XML_ERR_ENTITYREF_AT_EOF, /* 14 */ + XML_ERR_ENTITYREF_IN_PROLOG, /* 15 */ + XML_ERR_ENTITYREF_IN_EPILOG, /* 16 */ + XML_ERR_ENTITYREF_IN_DTD, /* 17 */ + XML_ERR_PEREF_AT_EOF, /* 18 */ + XML_ERR_PEREF_IN_PROLOG, /* 19 */ + XML_ERR_PEREF_IN_EPILOG, /* 20 */ + XML_ERR_PEREF_IN_INT_SUBSET, /* 21 */ + XML_ERR_ENTITYREF_NO_NAME, /* 22 */ + XML_ERR_ENTITYREF_SEMICOL_MISSING, /* 23 */ + XML_ERR_PEREF_NO_NAME, /* 24 */ + XML_ERR_PEREF_SEMICOL_MISSING, /* 25 */ + XML_ERR_UNDECLARED_ENTITY, /* 26 */ + XML_WAR_UNDECLARED_ENTITY, /* 27 */ + XML_ERR_UNPARSED_ENTITY, /* 28 */ + XML_ERR_ENTITY_IS_EXTERNAL, /* 29 */ + XML_ERR_ENTITY_IS_PARAMETER, /* 30 */ + XML_ERR_UNKNOWN_ENCODING, /* 31 */ + XML_ERR_UNSUPPORTED_ENCODING, /* 32 */ + XML_ERR_STRING_NOT_STARTED, /* 33 */ + XML_ERR_STRING_NOT_CLOSED, /* 34 */ + XML_ERR_NS_DECL_ERROR, /* 35 */ + XML_ERR_ENTITY_NOT_STARTED, /* 36 */ + XML_ERR_ENTITY_NOT_FINISHED, /* 37 */ + XML_ERR_LT_IN_ATTRIBUTE, /* 38 */ + XML_ERR_ATTRIBUTE_NOT_STARTED, /* 39 */ + XML_ERR_ATTRIBUTE_NOT_FINISHED, /* 40 */ + XML_ERR_ATTRIBUTE_WITHOUT_VALUE, /* 41 */ + XML_ERR_ATTRIBUTE_REDEFINED, /* 42 */ + XML_ERR_LITERAL_NOT_STARTED, /* 43 */ + XML_ERR_LITERAL_NOT_FINISHED, /* 44 */ + XML_ERR_COMMENT_NOT_FINISHED, /* 45 */ + XML_ERR_PI_NOT_STARTED, /* 46 */ + XML_ERR_PI_NOT_FINISHED, /* 47 */ + XML_ERR_NOTATION_NOT_STARTED, /* 48 */ + XML_ERR_NOTATION_NOT_FINISHED, /* 49 */ + XML_ERR_ATTLIST_NOT_STARTED, /* 50 */ + XML_ERR_ATTLIST_NOT_FINISHED, /* 51 */ + XML_ERR_MIXED_NOT_STARTED, /* 52 */ + XML_ERR_MIXED_NOT_FINISHED, /* 53 */ + XML_ERR_ELEMCONTENT_NOT_STARTED, /* 54 */ + XML_ERR_ELEMCONTENT_NOT_FINISHED, /* 55 */ + XML_ERR_XMLDECL_NOT_STARTED, /* 56 */ + XML_ERR_XMLDECL_NOT_FINISHED, /* 57 */ + XML_ERR_CONDSEC_NOT_STARTED, /* 58 */ + XML_ERR_CONDSEC_NOT_FINISHED, /* 59 */ + XML_ERR_EXT_SUBSET_NOT_FINISHED, /* 60 */ + XML_ERR_DOCTYPE_NOT_FINISHED, /* 61 */ + XML_ERR_MISPLACED_CDATA_END, /* 62 */ + XML_ERR_CDATA_NOT_FINISHED, /* 63 */ + XML_ERR_RESERVED_XML_NAME, /* 64 */ + XML_ERR_SPACE_REQUIRED, /* 65 */ + XML_ERR_SEPARATOR_REQUIRED, /* 66 */ + XML_ERR_NMTOKEN_REQUIRED, /* 67 */ + XML_ERR_NAME_REQUIRED, /* 68 */ + XML_ERR_PCDATA_REQUIRED, /* 69 */ + XML_ERR_URI_REQUIRED, /* 70 */ + XML_ERR_PUBID_REQUIRED, /* 71 */ + XML_ERR_LT_REQUIRED, /* 72 */ + XML_ERR_GT_REQUIRED, /* 73 */ + XML_ERR_LTSLASH_REQUIRED, /* 74 */ + XML_ERR_EQUAL_REQUIRED, /* 75 */ + XML_ERR_TAG_NAME_MISMATCH, /* 76 */ + XML_ERR_TAG_NOT_FINISHED, /* 77 */ + XML_ERR_STANDALONE_VALUE, /* 78 */ + XML_ERR_ENCODING_NAME, /* 79 */ + XML_ERR_HYPHEN_IN_COMMENT, /* 80 */ + XML_ERR_INVALID_ENCODING, /* 81 */ + XML_ERR_EXT_ENTITY_STANDALONE, /* 82 */ + XML_ERR_CONDSEC_INVALID, /* 83 */ + XML_ERR_VALUE_REQUIRED, /* 84 */ + XML_ERR_NOT_WELL_BALANCED, /* 85 */ + XML_ERR_EXTRA_CONTENT, /* 86 */ + XML_ERR_ENTITY_CHAR_ERROR, /* 87 */ + XML_ERR_ENTITY_PE_INTERNAL, /* 88 */ + XML_ERR_ENTITY_LOOP, /* 89 */ + XML_ERR_ENTITY_BOUNDARY, /* 90 */ + XML_ERR_INVALID_URI, /* 91 */ + XML_ERR_URI_FRAGMENT, /* 92 */ + XML_WAR_CATALOG_PI, /* 93 */ + XML_ERR_NO_DTD, /* 94 */ + XML_ERR_CONDSEC_INVALID_KEYWORD, /* 95 */ + XML_ERR_VERSION_MISSING, /* 96 */ + XML_WAR_UNKNOWN_VERSION, /* 97 */ + XML_WAR_LANG_VALUE, /* 98 */ + XML_WAR_NS_URI, /* 99 */ + XML_WAR_NS_URI_RELATIVE, /* 100 */ + XML_ERR_MISSING_ENCODING, /* 101 */ + XML_WAR_SPACE_VALUE, /* 102 */ + XML_ERR_NOT_STANDALONE, /* 103 */ + XML_ERR_ENTITY_PROCESSING, /* 104 */ + XML_ERR_NOTATION_PROCESSING, /* 105 */ + XML_WAR_NS_COLUMN, /* 106 */ + XML_WAR_ENTITY_REDEFINED, /* 107 */ + XML_NS_ERR_XML_NAMESPACE = 200, + XML_NS_ERR_UNDEFINED_NAMESPACE, /* 201 */ + XML_NS_ERR_QNAME, /* 202 */ + XML_NS_ERR_ATTRIBUTE_REDEFINED, /* 203 */ + XML_NS_ERR_EMPTY, /* 204 */ + XML_DTD_ATTRIBUTE_DEFAULT = 500, + XML_DTD_ATTRIBUTE_REDEFINED, /* 501 */ + XML_DTD_ATTRIBUTE_VALUE, /* 502 */ + XML_DTD_CONTENT_ERROR, /* 503 */ + XML_DTD_CONTENT_MODEL, /* 504 */ + XML_DTD_CONTENT_NOT_DETERMINIST, /* 505 */ + XML_DTD_DIFFERENT_PREFIX, /* 506 */ + XML_DTD_ELEM_DEFAULT_NAMESPACE, /* 507 */ + XML_DTD_ELEM_NAMESPACE, /* 508 */ + XML_DTD_ELEM_REDEFINED, /* 509 */ + XML_DTD_EMPTY_NOTATION, /* 510 */ + XML_DTD_ENTITY_TYPE, /* 511 */ + XML_DTD_ID_FIXED, /* 512 */ + XML_DTD_ID_REDEFINED, /* 513 */ + XML_DTD_ID_SUBSET, /* 514 */ + XML_DTD_INVALID_CHILD, /* 515 */ + XML_DTD_INVALID_DEFAULT, /* 516 */ + XML_DTD_LOAD_ERROR, /* 517 */ + XML_DTD_MISSING_ATTRIBUTE, /* 518 */ + XML_DTD_MIXED_CORRUPT, /* 519 */ + XML_DTD_MULTIPLE_ID, /* 520 */ + XML_DTD_NO_DOC, /* 521 */ + XML_DTD_NO_DTD, /* 522 */ + XML_DTD_NO_ELEM_NAME, /* 523 */ + XML_DTD_NO_PREFIX, /* 524 */ + XML_DTD_NO_ROOT, /* 525 */ + XML_DTD_NOTATION_REDEFINED, /* 526 */ + XML_DTD_NOTATION_VALUE, /* 527 */ + XML_DTD_NOT_EMPTY, /* 528 */ + XML_DTD_NOT_PCDATA, /* 529 */ + XML_DTD_NOT_STANDALONE, /* 530 */ + XML_DTD_ROOT_NAME, /* 531 */ + XML_DTD_STANDALONE_WHITE_SPACE, /* 532 */ + XML_DTD_UNKNOWN_ATTRIBUTE, /* 533 */ + XML_DTD_UNKNOWN_ELEM, /* 534 */ + XML_DTD_UNKNOWN_ENTITY, /* 535 */ + XML_DTD_UNKNOWN_ID, /* 536 */ + XML_DTD_UNKNOWN_NOTATION, /* 537 */ + XML_DTD_STANDALONE_DEFAULTED, /* 538 */ + XML_DTD_XMLID_VALUE, /* 539 */ + XML_DTD_XMLID_TYPE, /* 540 */ + XML_HTML_STRUCURE_ERROR = 800, + XML_HTML_UNKNOWN_TAG, /* 801 */ + XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000, + XML_RNGP_ATTR_CONFLICT, /* 1001 */ + XML_RNGP_ATTRIBUTE_CHILDREN, /* 1002 */ + XML_RNGP_ATTRIBUTE_CONTENT, /* 1003 */ + XML_RNGP_ATTRIBUTE_EMPTY, /* 1004 */ + XML_RNGP_ATTRIBUTE_NOOP, /* 1005 */ + XML_RNGP_CHOICE_CONTENT, /* 1006 */ + XML_RNGP_CHOICE_EMPTY, /* 1007 */ + XML_RNGP_CREATE_FAILURE, /* 1008 */ + XML_RNGP_DATA_CONTENT, /* 1009 */ + XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, /* 1010 */ + XML_RNGP_DEFINE_CREATE_FAILED, /* 1011 */ + XML_RNGP_DEFINE_EMPTY, /* 1012 */ + XML_RNGP_DEFINE_MISSING, /* 1013 */ + XML_RNGP_DEFINE_NAME_MISSING, /* 1014 */ + XML_RNGP_ELEM_CONTENT_EMPTY, /* 1015 */ + XML_RNGP_ELEM_CONTENT_ERROR, /* 1016 */ + XML_RNGP_ELEMENT_EMPTY, /* 1017 */ + XML_RNGP_ELEMENT_CONTENT, /* 1018 */ + XML_RNGP_ELEMENT_NAME, /* 1019 */ + XML_RNGP_ELEMENT_NO_CONTENT, /* 1020 */ + XML_RNGP_ELEM_TEXT_CONFLICT, /* 1021 */ + XML_RNGP_EMPTY, /* 1022 */ + XML_RNGP_EMPTY_CONSTRUCT, /* 1023 */ + XML_RNGP_EMPTY_CONTENT, /* 1024 */ + XML_RNGP_EMPTY_NOT_EMPTY, /* 1025 */ + XML_RNGP_ERROR_TYPE_LIB, /* 1026 */ + XML_RNGP_EXCEPT_EMPTY, /* 1027 */ + XML_RNGP_EXCEPT_MISSING, /* 1028 */ + XML_RNGP_EXCEPT_MULTIPLE, /* 1029 */ + XML_RNGP_EXCEPT_NO_CONTENT, /* 1030 */ + XML_RNGP_EXTERNALREF_EMTPY, /* 1031 */ + XML_RNGP_EXTERNAL_REF_FAILURE, /* 1032 */ + XML_RNGP_EXTERNALREF_RECURSE, /* 1033 */ + XML_RNGP_FORBIDDEN_ATTRIBUTE, /* 1034 */ + XML_RNGP_FOREIGN_ELEMENT, /* 1035 */ + XML_RNGP_GRAMMAR_CONTENT, /* 1036 */ + XML_RNGP_GRAMMAR_EMPTY, /* 1037 */ + XML_RNGP_GRAMMAR_MISSING, /* 1038 */ + XML_RNGP_GRAMMAR_NO_START, /* 1039 */ + XML_RNGP_GROUP_ATTR_CONFLICT, /* 1040 */ + XML_RNGP_HREF_ERROR, /* 1041 */ + XML_RNGP_INCLUDE_EMPTY, /* 1042 */ + XML_RNGP_INCLUDE_FAILURE, /* 1043 */ + XML_RNGP_INCLUDE_RECURSE, /* 1044 */ + XML_RNGP_INTERLEAVE_ADD, /* 1045 */ + XML_RNGP_INTERLEAVE_CREATE_FAILED, /* 1046 */ + XML_RNGP_INTERLEAVE_EMPTY, /* 1047 */ + XML_RNGP_INTERLEAVE_NO_CONTENT, /* 1048 */ + XML_RNGP_INVALID_DEFINE_NAME, /* 1049 */ + XML_RNGP_INVALID_URI, /* 1050 */ + XML_RNGP_INVALID_VALUE, /* 1051 */ + XML_RNGP_MISSING_HREF, /* 1052 */ + XML_RNGP_NAME_MISSING, /* 1053 */ + XML_RNGP_NEED_COMBINE, /* 1054 */ + XML_RNGP_NOTALLOWED_NOT_EMPTY, /* 1055 */ + XML_RNGP_NSNAME_ATTR_ANCESTOR, /* 1056 */ + XML_RNGP_NSNAME_NO_NS, /* 1057 */ + XML_RNGP_PARAM_FORBIDDEN, /* 1058 */ + XML_RNGP_PARAM_NAME_MISSING, /* 1059 */ + XML_RNGP_PARENTREF_CREATE_FAILED, /* 1060 */ + XML_RNGP_PARENTREF_NAME_INVALID, /* 1061 */ + XML_RNGP_PARENTREF_NO_NAME, /* 1062 */ + XML_RNGP_PARENTREF_NO_PARENT, /* 1063 */ + XML_RNGP_PARENTREF_NOT_EMPTY, /* 1064 */ + XML_RNGP_PARSE_ERROR, /* 1065 */ + XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME, /* 1066 */ + XML_RNGP_PAT_ATTR_ATTR, /* 1067 */ + XML_RNGP_PAT_ATTR_ELEM, /* 1068 */ + XML_RNGP_PAT_DATA_EXCEPT_ATTR, /* 1069 */ + XML_RNGP_PAT_DATA_EXCEPT_ELEM, /* 1070 */ + XML_RNGP_PAT_DATA_EXCEPT_EMPTY, /* 1071 */ + XML_RNGP_PAT_DATA_EXCEPT_GROUP, /* 1072 */ + XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, /* 1073 */ + XML_RNGP_PAT_DATA_EXCEPT_LIST, /* 1074 */ + XML_RNGP_PAT_DATA_EXCEPT_ONEMORE, /* 1075 */ + XML_RNGP_PAT_DATA_EXCEPT_REF, /* 1076 */ + XML_RNGP_PAT_DATA_EXCEPT_TEXT, /* 1077 */ + XML_RNGP_PAT_LIST_ATTR, /* 1078 */ + XML_RNGP_PAT_LIST_ELEM, /* 1079 */ + XML_RNGP_PAT_LIST_INTERLEAVE, /* 1080 */ + XML_RNGP_PAT_LIST_LIST, /* 1081 */ + XML_RNGP_PAT_LIST_REF, /* 1082 */ + XML_RNGP_PAT_LIST_TEXT, /* 1083 */ + XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME, /* 1084 */ + XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME, /* 1085 */ + XML_RNGP_PAT_ONEMORE_GROUP_ATTR, /* 1086 */ + XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR, /* 1087 */ + XML_RNGP_PAT_START_ATTR, /* 1088 */ + XML_RNGP_PAT_START_DATA, /* 1089 */ + XML_RNGP_PAT_START_EMPTY, /* 1090 */ + XML_RNGP_PAT_START_GROUP, /* 1091 */ + XML_RNGP_PAT_START_INTERLEAVE, /* 1092 */ + XML_RNGP_PAT_START_LIST, /* 1093 */ + XML_RNGP_PAT_START_ONEMORE, /* 1094 */ + XML_RNGP_PAT_START_TEXT, /* 1095 */ + XML_RNGP_PAT_START_VALUE, /* 1096 */ + XML_RNGP_PREFIX_UNDEFINED, /* 1097 */ + XML_RNGP_REF_CREATE_FAILED, /* 1098 */ + XML_RNGP_REF_CYCLE, /* 1099 */ + XML_RNGP_REF_NAME_INVALID, /* 1100 */ + XML_RNGP_REF_NO_DEF, /* 1101 */ + XML_RNGP_REF_NO_NAME, /* 1102 */ + XML_RNGP_REF_NOT_EMPTY, /* 1103 */ + XML_RNGP_START_CHOICE_AND_INTERLEAVE, /* 1104 */ + XML_RNGP_START_CONTENT, /* 1105 */ + XML_RNGP_START_EMPTY, /* 1106 */ + XML_RNGP_START_MISSING, /* 1107 */ + XML_RNGP_TEXT_EXPECTED, /* 1108 */ + XML_RNGP_TEXT_HAS_CHILD, /* 1109 */ + XML_RNGP_TYPE_MISSING, /* 1110 */ + XML_RNGP_TYPE_NOT_FOUND, /* 1111 */ + XML_RNGP_TYPE_VALUE, /* 1112 */ + XML_RNGP_UNKNOWN_ATTRIBUTE, /* 1113 */ + XML_RNGP_UNKNOWN_COMBINE, /* 1114 */ + XML_RNGP_UNKNOWN_CONSTRUCT, /* 1115 */ + XML_RNGP_UNKNOWN_TYPE_LIB, /* 1116 */ + XML_RNGP_URI_FRAGMENT, /* 1117 */ + XML_RNGP_URI_NOT_ABSOLUTE, /* 1118 */ + XML_RNGP_VALUE_EMPTY, /* 1119 */ + XML_RNGP_VALUE_NO_CONTENT, /* 1120 */ + XML_RNGP_XMLNS_NAME, /* 1121 */ + XML_RNGP_XML_NS, /* 1122 */ + XML_XPATH_EXPRESSION_OK = 1200, + XML_XPATH_NUMBER_ERROR, /* 1201 */ + XML_XPATH_UNFINISHED_LITERAL_ERROR, /* 1202 */ + XML_XPATH_START_LITERAL_ERROR, /* 1203 */ + XML_XPATH_VARIABLE_REF_ERROR, /* 1204 */ + XML_XPATH_UNDEF_VARIABLE_ERROR, /* 1205 */ + XML_XPATH_INVALID_PREDICATE_ERROR, /* 1206 */ + XML_XPATH_EXPR_ERROR, /* 1207 */ + XML_XPATH_UNCLOSED_ERROR, /* 1208 */ + XML_XPATH_UNKNOWN_FUNC_ERROR, /* 1209 */ + XML_XPATH_INVALID_OPERAND, /* 1210 */ + XML_XPATH_INVALID_TYPE, /* 1211 */ + XML_XPATH_INVALID_ARITY, /* 1212 */ + XML_XPATH_INVALID_CTXT_SIZE, /* 1213 */ + XML_XPATH_INVALID_CTXT_POSITION, /* 1214 */ + XML_XPATH_MEMORY_ERROR, /* 1215 */ + XML_XPTR_SYNTAX_ERROR, /* 1216 */ + XML_XPTR_RESOURCE_ERROR, /* 1217 */ + XML_XPTR_SUB_RESOURCE_ERROR, /* 1218 */ + XML_XPATH_UNDEF_PREFIX_ERROR, /* 1219 */ + XML_XPATH_ENCODING_ERROR, /* 1220 */ + XML_XPATH_INVALID_CHAR_ERROR, /* 1221 */ + XML_TREE_INVALID_HEX = 1300, + XML_TREE_INVALID_DEC, /* 1301 */ + XML_TREE_UNTERMINATED_ENTITY, /* 1302 */ + XML_TREE_NOT_UTF8, /* 1303 */ + XML_SAVE_NOT_UTF8 = 1400, + XML_SAVE_CHAR_INVALID, /* 1401 */ + XML_SAVE_NO_DOCTYPE, /* 1402 */ + XML_SAVE_UNKNOWN_ENCODING, /* 1403 */ + XML_REGEXP_COMPILE_ERROR = 1450, + XML_IO_UNKNOWN = 1500, + XML_IO_EACCES, /* 1501 */ + XML_IO_EAGAIN, /* 1502 */ + XML_IO_EBADF, /* 1503 */ + XML_IO_EBADMSG, /* 1504 */ + XML_IO_EBUSY, /* 1505 */ + XML_IO_ECANCELED, /* 1506 */ + XML_IO_ECHILD, /* 1507 */ + XML_IO_EDEADLK, /* 1508 */ + XML_IO_EDOM, /* 1509 */ + XML_IO_EEXIST, /* 1510 */ + XML_IO_EFAULT, /* 1511 */ + XML_IO_EFBIG, /* 1512 */ + XML_IO_EINPROGRESS, /* 1513 */ + XML_IO_EINTR, /* 1514 */ + XML_IO_EINVAL, /* 1515 */ + XML_IO_EIO, /* 1516 */ + XML_IO_EISDIR, /* 1517 */ + XML_IO_EMFILE, /* 1518 */ + XML_IO_EMLINK, /* 1519 */ + XML_IO_EMSGSIZE, /* 1520 */ + XML_IO_ENAMETOOLONG, /* 1521 */ + XML_IO_ENFILE, /* 1522 */ + XML_IO_ENODEV, /* 1523 */ + XML_IO_ENOENT, /* 1524 */ + XML_IO_ENOEXEC, /* 1525 */ + XML_IO_ENOLCK, /* 1526 */ + XML_IO_ENOMEM, /* 1527 */ + XML_IO_ENOSPC, /* 1528 */ + XML_IO_ENOSYS, /* 1529 */ + XML_IO_ENOTDIR, /* 1530 */ + XML_IO_ENOTEMPTY, /* 1531 */ + XML_IO_ENOTSUP, /* 1532 */ + XML_IO_ENOTTY, /* 1533 */ + XML_IO_ENXIO, /* 1534 */ + XML_IO_EPERM, /* 1535 */ + XML_IO_EPIPE, /* 1536 */ + XML_IO_ERANGE, /* 1537 */ + XML_IO_EROFS, /* 1538 */ + XML_IO_ESPIPE, /* 1539 */ + XML_IO_ESRCH, /* 1540 */ + XML_IO_ETIMEDOUT, /* 1541 */ + XML_IO_EXDEV, /* 1542 */ + XML_IO_NETWORK_ATTEMPT, /* 1543 */ + XML_IO_ENCODER, /* 1544 */ + XML_IO_FLUSH, /* 1545 */ + XML_IO_WRITE, /* 1546 */ + XML_IO_NO_INPUT, /* 1547 */ + XML_IO_BUFFER_FULL, /* 1548 */ + XML_IO_LOAD_ERROR, /* 1549 */ + XML_IO_ENOTSOCK, /* 1550 */ + XML_IO_EISCONN, /* 1551 */ + XML_IO_ECONNREFUSED, /* 1552 */ + XML_IO_ENETUNREACH, /* 1553 */ + XML_IO_EADDRINUSE, /* 1554 */ + XML_IO_EALREADY, /* 1555 */ + XML_IO_EAFNOSUPPORT, /* 1556 */ + XML_XINCLUDE_RECURSION=1600, + XML_XINCLUDE_PARSE_VALUE, /* 1601 */ + XML_XINCLUDE_ENTITY_DEF_MISMATCH, /* 1602 */ + XML_XINCLUDE_NO_HREF, /* 1603 */ + XML_XINCLUDE_NO_FALLBACK, /* 1604 */ + XML_XINCLUDE_HREF_URI, /* 1605 */ + XML_XINCLUDE_TEXT_FRAGMENT, /* 1606 */ + XML_XINCLUDE_TEXT_DOCUMENT, /* 1607 */ + XML_XINCLUDE_INVALID_CHAR, /* 1608 */ + XML_XINCLUDE_BUILD_FAILED, /* 1609 */ + XML_XINCLUDE_UNKNOWN_ENCODING, /* 1610 */ + XML_XINCLUDE_MULTIPLE_ROOT, /* 1611 */ + XML_XINCLUDE_XPTR_FAILED, /* 1612 */ + XML_XINCLUDE_XPTR_RESULT, /* 1613 */ + XML_XINCLUDE_INCLUDE_IN_INCLUDE, /* 1614 */ + XML_XINCLUDE_FALLBACKS_IN_INCLUDE, /* 1615 */ + XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE, /* 1616 */ + XML_XINCLUDE_DEPRECATED_NS, /* 1617 */ + XML_XINCLUDE_FRAGMENT_ID, /* 1618 */ + XML_CATALOG_MISSING_ATTR = 1650, + XML_CATALOG_ENTRY_BROKEN, /* 1651 */ + XML_CATALOG_PREFER_VALUE, /* 1652 */ + XML_CATALOG_NOT_CATALOG, /* 1653 */ + XML_CATALOG_RECURSION, /* 1654 */ + XML_SCHEMAP_PREFIX_UNDEFINED = 1700, + XML_SCHEMAP_ATTRFORMDEFAULT_VALUE, /* 1701 */ + XML_SCHEMAP_ATTRGRP_NONAME_NOREF, /* 1702 */ + XML_SCHEMAP_ATTR_NONAME_NOREF, /* 1703 */ + XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF, /* 1704 */ + XML_SCHEMAP_ELEMFORMDEFAULT_VALUE, /* 1705 */ + XML_SCHEMAP_ELEM_NONAME_NOREF, /* 1706 */ + XML_SCHEMAP_EXTENSION_NO_BASE, /* 1707 */ + XML_SCHEMAP_FACET_NO_VALUE, /* 1708 */ + XML_SCHEMAP_FAILED_BUILD_IMPORT, /* 1709 */ + XML_SCHEMAP_GROUP_NONAME_NOREF, /* 1710 */ + XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI, /* 1711 */ + XML_SCHEMAP_IMPORT_REDEFINE_NSNAME, /* 1712 */ + XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI, /* 1713 */ + XML_SCHEMAP_INVALID_BOOLEAN, /* 1714 */ + XML_SCHEMAP_INVALID_ENUM, /* 1715 */ + XML_SCHEMAP_INVALID_FACET, /* 1716 */ + XML_SCHEMAP_INVALID_FACET_VALUE, /* 1717 */ + XML_SCHEMAP_INVALID_MAXOCCURS, /* 1718 */ + XML_SCHEMAP_INVALID_MINOCCURS, /* 1719 */ + XML_SCHEMAP_INVALID_REF_AND_SUBTYPE, /* 1720 */ + XML_SCHEMAP_INVALID_WHITE_SPACE, /* 1721 */ + XML_SCHEMAP_NOATTR_NOREF, /* 1722 */ + XML_SCHEMAP_NOTATION_NO_NAME, /* 1723 */ + XML_SCHEMAP_NOTYPE_NOREF, /* 1724 */ + XML_SCHEMAP_REF_AND_SUBTYPE, /* 1725 */ + XML_SCHEMAP_RESTRICTION_NONAME_NOREF, /* 1726 */ + XML_SCHEMAP_SIMPLETYPE_NONAME, /* 1727 */ + XML_SCHEMAP_TYPE_AND_SUBTYPE, /* 1728 */ + XML_SCHEMAP_UNKNOWN_ALL_CHILD, /* 1729 */ + XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD, /* 1730 */ + XML_SCHEMAP_UNKNOWN_ATTR_CHILD, /* 1731 */ + XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD, /* 1732 */ + XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP, /* 1733 */ + XML_SCHEMAP_UNKNOWN_BASE_TYPE, /* 1734 */ + XML_SCHEMAP_UNKNOWN_CHOICE_CHILD, /* 1735 */ + XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD, /* 1736 */ + XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD, /* 1737 */ + XML_SCHEMAP_UNKNOWN_ELEM_CHILD, /* 1738 */ + XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD, /* 1739 */ + XML_SCHEMAP_UNKNOWN_FACET_CHILD, /* 1740 */ + XML_SCHEMAP_UNKNOWN_FACET_TYPE, /* 1741 */ + XML_SCHEMAP_UNKNOWN_GROUP_CHILD, /* 1742 */ + XML_SCHEMAP_UNKNOWN_IMPORT_CHILD, /* 1743 */ + XML_SCHEMAP_UNKNOWN_LIST_CHILD, /* 1744 */ + XML_SCHEMAP_UNKNOWN_NOTATION_CHILD, /* 1745 */ + XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD, /* 1746 */ + XML_SCHEMAP_UNKNOWN_REF, /* 1747 */ + XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD, /* 1748 */ + XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD, /* 1749 */ + XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD, /* 1750 */ + XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD, /* 1751 */ + XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD, /* 1752 */ + XML_SCHEMAP_UNKNOWN_TYPE, /* 1753 */ + XML_SCHEMAP_UNKNOWN_UNION_CHILD, /* 1754 */ + XML_SCHEMAP_ELEM_DEFAULT_FIXED, /* 1755 */ + XML_SCHEMAP_REGEXP_INVALID, /* 1756 */ + XML_SCHEMAP_FAILED_LOAD, /* 1757 */ + XML_SCHEMAP_NOTHING_TO_PARSE, /* 1758 */ + XML_SCHEMAP_NOROOT, /* 1759 */ + XML_SCHEMAP_REDEFINED_GROUP, /* 1760 */ + XML_SCHEMAP_REDEFINED_TYPE, /* 1761 */ + XML_SCHEMAP_REDEFINED_ELEMENT, /* 1762 */ + XML_SCHEMAP_REDEFINED_ATTRGROUP, /* 1763 */ + XML_SCHEMAP_REDEFINED_ATTR, /* 1764 */ + XML_SCHEMAP_REDEFINED_NOTATION, /* 1765 */ + XML_SCHEMAP_FAILED_PARSE, /* 1766 */ + XML_SCHEMAP_UNKNOWN_PREFIX, /* 1767 */ + XML_SCHEMAP_DEF_AND_PREFIX, /* 1768 */ + XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD, /* 1769 */ + XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI, /* 1770 */ + XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI, /* 1771 */ + XML_SCHEMAP_NOT_SCHEMA, /* 1772 */ + XML_SCHEMAP_UNKNOWN_MEMBER_TYPE, /* 1773 */ + XML_SCHEMAP_INVALID_ATTR_USE, /* 1774 */ + XML_SCHEMAP_RECURSIVE, /* 1775 */ + XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE, /* 1776 */ + XML_SCHEMAP_INVALID_ATTR_COMBINATION, /* 1777 */ + XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION, /* 1778 */ + XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD, /* 1779 */ + XML_SCHEMAP_INVALID_ATTR_NAME, /* 1780 */ + XML_SCHEMAP_REF_AND_CONTENT, /* 1781 */ + XML_SCHEMAP_CT_PROPS_CORRECT_1, /* 1782 */ + XML_SCHEMAP_CT_PROPS_CORRECT_2, /* 1783 */ + XML_SCHEMAP_CT_PROPS_CORRECT_3, /* 1784 */ + XML_SCHEMAP_CT_PROPS_CORRECT_4, /* 1785 */ + XML_SCHEMAP_CT_PROPS_CORRECT_5, /* 1786 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1, /* 1787 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1, /* 1788 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2, /* 1789 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2, /* 1790 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3, /* 1791 */ + XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER, /* 1792 */ + XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE, /* 1793 */ + XML_SCHEMAP_UNION_NOT_EXPRESSIBLE, /* 1794 */ + XML_SCHEMAP_SRC_IMPORT_3_1, /* 1795 */ + XML_SCHEMAP_SRC_IMPORT_3_2, /* 1796 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1, /* 1797 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2, /* 1798 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3, /* 1799 */ + XML_SCHEMAP_COS_CT_EXTENDS_1_3, /* 1800 */ + XML_SCHEMAV_NOROOT = 1801, + XML_SCHEMAV_UNDECLAREDELEM, /* 1802 */ + XML_SCHEMAV_NOTTOPLEVEL, /* 1803 */ + XML_SCHEMAV_MISSING, /* 1804 */ + XML_SCHEMAV_WRONGELEM, /* 1805 */ + XML_SCHEMAV_NOTYPE, /* 1806 */ + XML_SCHEMAV_NOROLLBACK, /* 1807 */ + XML_SCHEMAV_ISABSTRACT, /* 1808 */ + XML_SCHEMAV_NOTEMPTY, /* 1809 */ + XML_SCHEMAV_ELEMCONT, /* 1810 */ + XML_SCHEMAV_HAVEDEFAULT, /* 1811 */ + XML_SCHEMAV_NOTNILLABLE, /* 1812 */ + XML_SCHEMAV_EXTRACONTENT, /* 1813 */ + XML_SCHEMAV_INVALIDATTR, /* 1814 */ + XML_SCHEMAV_INVALIDELEM, /* 1815 */ + XML_SCHEMAV_NOTDETERMINIST, /* 1816 */ + XML_SCHEMAV_CONSTRUCT, /* 1817 */ + XML_SCHEMAV_INTERNAL, /* 1818 */ + XML_SCHEMAV_NOTSIMPLE, /* 1819 */ + XML_SCHEMAV_ATTRUNKNOWN, /* 1820 */ + XML_SCHEMAV_ATTRINVALID, /* 1821 */ + XML_SCHEMAV_VALUE, /* 1822 */ + XML_SCHEMAV_FACET, /* 1823 */ + XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1, /* 1824 */ + XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2, /* 1825 */ + XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3, /* 1826 */ + XML_SCHEMAV_CVC_TYPE_3_1_1, /* 1827 */ + XML_SCHEMAV_CVC_TYPE_3_1_2, /* 1828 */ + XML_SCHEMAV_CVC_FACET_VALID, /* 1829 */ + XML_SCHEMAV_CVC_LENGTH_VALID, /* 1830 */ + XML_SCHEMAV_CVC_MINLENGTH_VALID, /* 1831 */ + XML_SCHEMAV_CVC_MAXLENGTH_VALID, /* 1832 */ + XML_SCHEMAV_CVC_MININCLUSIVE_VALID, /* 1833 */ + XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID, /* 1834 */ + XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID, /* 1835 */ + XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID, /* 1836 */ + XML_SCHEMAV_CVC_TOTALDIGITS_VALID, /* 1837 */ + XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID, /* 1838 */ + XML_SCHEMAV_CVC_PATTERN_VALID, /* 1839 */ + XML_SCHEMAV_CVC_ENUMERATION_VALID, /* 1840 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1, /* 1841 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2, /* 1842 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3, /* 1843 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4, /* 1844 */ + XML_SCHEMAV_CVC_ELT_1, /* 1845 */ + XML_SCHEMAV_CVC_ELT_2, /* 1846 */ + XML_SCHEMAV_CVC_ELT_3_1, /* 1847 */ + XML_SCHEMAV_CVC_ELT_3_2_1, /* 1848 */ + XML_SCHEMAV_CVC_ELT_3_2_2, /* 1849 */ + XML_SCHEMAV_CVC_ELT_4_1, /* 1850 */ + XML_SCHEMAV_CVC_ELT_4_2, /* 1851 */ + XML_SCHEMAV_CVC_ELT_4_3, /* 1852 */ + XML_SCHEMAV_CVC_ELT_5_1_1, /* 1853 */ + XML_SCHEMAV_CVC_ELT_5_1_2, /* 1854 */ + XML_SCHEMAV_CVC_ELT_5_2_1, /* 1855 */ + XML_SCHEMAV_CVC_ELT_5_2_2_1, /* 1856 */ + XML_SCHEMAV_CVC_ELT_5_2_2_2_1, /* 1857 */ + XML_SCHEMAV_CVC_ELT_5_2_2_2_2, /* 1858 */ + XML_SCHEMAV_CVC_ELT_6, /* 1859 */ + XML_SCHEMAV_CVC_ELT_7, /* 1860 */ + XML_SCHEMAV_CVC_ATTRIBUTE_1, /* 1861 */ + XML_SCHEMAV_CVC_ATTRIBUTE_2, /* 1862 */ + XML_SCHEMAV_CVC_ATTRIBUTE_3, /* 1863 */ + XML_SCHEMAV_CVC_ATTRIBUTE_4, /* 1864 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1, /* 1865 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1, /* 1866 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2, /* 1867 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_4, /* 1868 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1, /* 1869 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2, /* 1870 */ + XML_SCHEMAV_ELEMENT_CONTENT, /* 1871 */ + XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING, /* 1872 */ + XML_SCHEMAV_CVC_COMPLEX_TYPE_1, /* 1873 */ + XML_SCHEMAV_CVC_AU, /* 1874 */ + XML_SCHEMAV_CVC_TYPE_1, /* 1875 */ + XML_SCHEMAV_CVC_TYPE_2, /* 1876 */ + XML_SCHEMAV_CVC_IDC, /* 1877 */ + XML_SCHEMAV_CVC_WILDCARD, /* 1878 */ + XML_SCHEMAV_MISC, /* 1879 */ + XML_XPTR_UNKNOWN_SCHEME = 1900, + XML_XPTR_CHILDSEQ_START, /* 1901 */ + XML_XPTR_EVAL_FAILED, /* 1902 */ + XML_XPTR_EXTRA_OBJECTS, /* 1903 */ + XML_C14N_CREATE_CTXT = 1950, + XML_C14N_REQUIRES_UTF8, /* 1951 */ + XML_C14N_CREATE_STACK, /* 1952 */ + XML_C14N_INVALID_NODE, /* 1953 */ + XML_C14N_UNKNOW_NODE, /* 1954 */ + XML_C14N_RELATIVE_NAMESPACE, /* 1955 */ + XML_FTP_PASV_ANSWER = 2000, + XML_FTP_EPSV_ANSWER, /* 2001 */ + XML_FTP_ACCNT, /* 2002 */ + XML_FTP_URL_SYNTAX, /* 2003 */ + XML_HTTP_URL_SYNTAX = 2020, + XML_HTTP_USE_IP, /* 2021 */ + XML_HTTP_UNKNOWN_HOST, /* 2022 */ + XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000, + XML_SCHEMAP_SRC_SIMPLE_TYPE_2, /* 3001 */ + XML_SCHEMAP_SRC_SIMPLE_TYPE_3, /* 3002 */ + XML_SCHEMAP_SRC_SIMPLE_TYPE_4, /* 3003 */ + XML_SCHEMAP_SRC_RESOLVE, /* 3004 */ + XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE, /* 3005 */ + XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE, /* 3006 */ + XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES, /* 3007 */ + XML_SCHEMAP_ST_PROPS_CORRECT_1, /* 3008 */ + XML_SCHEMAP_ST_PROPS_CORRECT_2, /* 3009 */ + XML_SCHEMAP_ST_PROPS_CORRECT_3, /* 3010 */ + XML_SCHEMAP_COS_ST_RESTRICTS_1_1, /* 3011 */ + XML_SCHEMAP_COS_ST_RESTRICTS_1_2, /* 3012 */ + XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1, /* 3013 */ + XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2, /* 3014 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_1, /* 3015 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1, /* 3016 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2, /* 3017 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1, /* 3018 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2, /* 3019 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3, /* 3020 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4, /* 3021 */ + XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5, /* 3022 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_1, /* 3023 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1, /* 3024 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2, /* 3025 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2, /* 3026 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1, /* 3027 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3, /* 3028 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4, /* 3029 */ + XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5, /* 3030 */ + XML_SCHEMAP_COS_ST_DERIVED_OK_2_1, /* 3031 */ + XML_SCHEMAP_COS_ST_DERIVED_OK_2_2, /* 3032 */ + XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED, /* 3033 */ + XML_SCHEMAP_S4S_ELEM_MISSING, /* 3034 */ + XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED, /* 3035 */ + XML_SCHEMAP_S4S_ATTR_MISSING, /* 3036 */ + XML_SCHEMAP_S4S_ATTR_INVALID_VALUE, /* 3037 */ + XML_SCHEMAP_SRC_ELEMENT_1, /* 3038 */ + XML_SCHEMAP_SRC_ELEMENT_2_1, /* 3039 */ + XML_SCHEMAP_SRC_ELEMENT_2_2, /* 3040 */ + XML_SCHEMAP_SRC_ELEMENT_3, /* 3041 */ + XML_SCHEMAP_P_PROPS_CORRECT_1, /* 3042 */ + XML_SCHEMAP_P_PROPS_CORRECT_2_1, /* 3043 */ + XML_SCHEMAP_P_PROPS_CORRECT_2_2, /* 3044 */ + XML_SCHEMAP_E_PROPS_CORRECT_2, /* 3045 */ + XML_SCHEMAP_E_PROPS_CORRECT_3, /* 3046 */ + XML_SCHEMAP_E_PROPS_CORRECT_4, /* 3047 */ + XML_SCHEMAP_E_PROPS_CORRECT_5, /* 3048 */ + XML_SCHEMAP_E_PROPS_CORRECT_6, /* 3049 */ + XML_SCHEMAP_SRC_INCLUDE, /* 3050 */ + XML_SCHEMAP_SRC_ATTRIBUTE_1, /* 3051 */ + XML_SCHEMAP_SRC_ATTRIBUTE_2, /* 3052 */ + XML_SCHEMAP_SRC_ATTRIBUTE_3_1, /* 3053 */ + XML_SCHEMAP_SRC_ATTRIBUTE_3_2, /* 3054 */ + XML_SCHEMAP_SRC_ATTRIBUTE_4, /* 3055 */ + XML_SCHEMAP_NO_XMLNS, /* 3056 */ + XML_SCHEMAP_NO_XSI, /* 3057 */ + XML_SCHEMAP_COS_VALID_DEFAULT_1, /* 3058 */ + XML_SCHEMAP_COS_VALID_DEFAULT_2_1, /* 3059 */ + XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1, /* 3060 */ + XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2, /* 3061 */ + XML_SCHEMAP_CVC_SIMPLE_TYPE, /* 3062 */ + XML_SCHEMAP_COS_CT_EXTENDS_1_1, /* 3063 */ + XML_SCHEMAP_SRC_IMPORT_1_1, /* 3064 */ + XML_SCHEMAP_SRC_IMPORT_1_2, /* 3065 */ + XML_SCHEMAP_SRC_IMPORT_2, /* 3066 */ + XML_SCHEMAP_SRC_IMPORT_2_1, /* 3067 */ + XML_SCHEMAP_SRC_IMPORT_2_2, /* 3068 */ + XML_SCHEMAP_INTERNAL, /* 3069 non-W3C */ + XML_SCHEMAP_NOT_DETERMINISTIC, /* 3070 non-W3C */ + XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1, /* 3071 */ + XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2, /* 3072 */ + XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3, /* 3073 */ + XML_SCHEMAP_MG_PROPS_CORRECT_1, /* 3074 */ + XML_SCHEMAP_MG_PROPS_CORRECT_2, /* 3075 */ + XML_SCHEMAP_SRC_CT_1, /* 3076 */ + XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3, /* 3077 */ + XML_SCHEMAP_AU_PROPS_CORRECT_2, /* 3078 */ + XML_SCHEMAP_A_PROPS_CORRECT_2, /* 3079 */ + XML_SCHEMAP_C_PROPS_CORRECT, /* 3080 */ + XML_SCHEMAP_SRC_REDEFINE, /* 3081 */ + XML_SCHEMAP_SRC_IMPORT, /* 3082 */ + XML_SCHEMAP_WARN_SKIP_SCHEMA, /* 3083 */ + XML_SCHEMAP_WARN_UNLOCATED_SCHEMA, /* 3084 */ + XML_SCHEMAP_WARN_ATTR_REDECL_PROH, /* 3085 */ + XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH, /* 3085 */ + XML_SCHEMAP_AG_PROPS_CORRECT, /* 3086 */ + XML_SCHEMAP_COS_CT_EXTENDS_1_2, /* 3087 */ + XML_SCHEMAP_AU_PROPS_CORRECT, /* 3088 */ + XML_SCHEMAP_A_PROPS_CORRECT_3, /* 3089 */ + XML_SCHEMAP_COS_ALL_LIMITED, /* 3090 */ + XML_SCHEMATRONV_ASSERT = 4000, /* 4000 */ + XML_SCHEMATRONV_REPORT, + XML_MODULE_OPEN = 4900, /* 4900 */ + XML_MODULE_CLOSE, /* 4901 */ + XML_CHECK_FOUND_ELEMENT = 5000, + XML_CHECK_FOUND_ATTRIBUTE, /* 5001 */ + XML_CHECK_FOUND_TEXT, /* 5002 */ + XML_CHECK_FOUND_CDATA, /* 5003 */ + XML_CHECK_FOUND_ENTITYREF, /* 5004 */ + XML_CHECK_FOUND_ENTITY, /* 5005 */ + XML_CHECK_FOUND_PI, /* 5006 */ + XML_CHECK_FOUND_COMMENT, /* 5007 */ + XML_CHECK_FOUND_DOCTYPE, /* 5008 */ + XML_CHECK_FOUND_FRAGMENT, /* 5009 */ + XML_CHECK_FOUND_NOTATION, /* 5010 */ + XML_CHECK_UNKNOWN_NODE, /* 5011 */ + XML_CHECK_ENTITY_TYPE, /* 5012 */ + XML_CHECK_NO_PARENT, /* 5013 */ + XML_CHECK_NO_DOC, /* 5014 */ + XML_CHECK_NO_NAME, /* 5015 */ + XML_CHECK_NO_ELEM, /* 5016 */ + XML_CHECK_WRONG_DOC, /* 5017 */ + XML_CHECK_NO_PREV, /* 5018 */ + XML_CHECK_WRONG_PREV, /* 5019 */ + XML_CHECK_NO_NEXT, /* 5020 */ + XML_CHECK_WRONG_NEXT, /* 5021 */ + XML_CHECK_NOT_DTD, /* 5022 */ + XML_CHECK_NOT_ATTR, /* 5023 */ + XML_CHECK_NOT_ATTR_DECL, /* 5024 */ + XML_CHECK_NOT_ELEM_DECL, /* 5025 */ + XML_CHECK_NOT_ENTITY_DECL, /* 5026 */ + XML_CHECK_NOT_NS_DECL, /* 5027 */ + XML_CHECK_NO_HREF, /* 5028 */ + XML_CHECK_WRONG_PARENT,/* 5029 */ + XML_CHECK_NS_SCOPE, /* 5030 */ + XML_CHECK_NS_ANCESTOR, /* 5031 */ + XML_CHECK_NOT_UTF8, /* 5032 */ + XML_CHECK_NO_DICT, /* 5033 */ + XML_CHECK_NOT_NCNAME, /* 5034 */ + XML_CHECK_OUTSIDE_DICT, /* 5035 */ + XML_CHECK_WRONG_NAME, /* 5036 */ + XML_CHECK_NAME_NOT_NULL, /* 5037 */ + XML_I18N_NO_NAME = 6000, + XML_I18N_NO_HANDLER, /* 6001 */ + XML_I18N_EXCESS_HANDLER, /* 6002 */ + XML_I18N_CONV_FAILED, /* 6003 */ + XML_I18N_NO_OUTPUT /* 6004 */ +#if 0 + XML_CHECK_, /* 5033 */ + XML_CHECK_X /* 503 */ +#endif +} xmlParserErrors; + +/** + * xmlGenericErrorFunc: + * @ctx: a parsing context + * @msg: the message + * @...: the extra arguments of the varags to format the message + * + * Signature of the function to use when there is an error and + * no parsing or validity context available . + */ +typedef void (XMLCDECL *xmlGenericErrorFunc) (void *ctx, + const char *msg, + ...); +/** + * xmlStructuredErrorFunc: + * @userData: user provided data for the error callback + * @error: the error being raised. + * + * Signature of the function to use when there is an error and + * the module handles the new error reporting mechanism. + */ +typedef void (XMLCALL *xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error); + +/* + * Use the following function to reset the two global variables + * xmlGenericError and xmlGenericErrorContext. + */ +XMLPUBFUN void XMLCALL + xmlSetGenericErrorFunc (void *ctx, + xmlGenericErrorFunc handler); +XMLPUBFUN void XMLCALL + initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler); + +XMLPUBFUN void XMLCALL + xmlSetStructuredErrorFunc (void *ctx, + xmlStructuredErrorFunc handler); +/* + * Default message routines used by SAX and Valid context for error + * and warning reporting. + */ +XMLPUBFUN void XMLCDECL + xmlParserError (void *ctx, + const char *msg, + ...); +XMLPUBFUN void XMLCDECL + xmlParserWarning (void *ctx, + const char *msg, + ...); +XMLPUBFUN void XMLCDECL + xmlParserValidityError (void *ctx, + const char *msg, + ...); +XMLPUBFUN void XMLCDECL + xmlParserValidityWarning (void *ctx, + const char *msg, + ...); +XMLPUBFUN void XMLCALL + xmlParserPrintFileInfo (xmlParserInputPtr input); +XMLPUBFUN void XMLCALL + xmlParserPrintFileContext (xmlParserInputPtr input); + +/* + * Extended error information routines + */ +XMLPUBFUN xmlErrorPtr XMLCALL + xmlGetLastError (void); +XMLPUBFUN void XMLCALL + xmlResetLastError (void); +XMLPUBFUN xmlErrorPtr XMLCALL + xmlCtxtGetLastError (void *ctx); +XMLPUBFUN void XMLCALL + xmlCtxtResetLastError (void *ctx); +XMLPUBFUN void XMLCALL + xmlResetError (xmlErrorPtr err); +XMLPUBFUN int XMLCALL + xmlCopyError (xmlErrorPtr from, + xmlErrorPtr to); + +#ifdef IN_LIBXML +/* + * Internal callback reporting routine + */ +XMLPUBFUN void XMLCALL + __xmlRaiseError (xmlStructuredErrorFunc schannel, + xmlGenericErrorFunc channel, + void *data, + void *ctx, + void *node, + int domain, + int code, + xmlErrorLevel level, + const char *file, + int line, + const char *str1, + const char *str2, + const char *str3, + int int1, + int col, + const char *msg, + ...); +XMLPUBFUN void XMLCALL + __xmlSimpleError (int domain, + int code, + xmlNodePtr node, + const char *msg, + const char *extra); +#endif +#ifdef __cplusplus +} +#endif +#endif /* __XML_ERROR_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlexports.h b/external-libs/libxml2/include/libxml/xmlexports.h new file mode 100644 index 0000000..29a6f54 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlexports.h @@ -0,0 +1,157 @@ +/* + * Summary: macros for marking symbols as exportable/importable. + * Description: macros for marking symbols as exportable/importable. + * + * Copy: See Copyright for the status of this software. + * + * Author: Igor Zlatovic + */ + +#ifndef __XML_EXPORTS_H__ +#define __XML_EXPORTS_H__ + +/** + * XMLPUBFUN, XMLPUBVAR, XMLCALL + * + * Macros which declare an exportable function, an exportable variable and + * the calling convention used for functions. + * + * Please use an extra block for every platform/compiler combination when + * modifying this, rather than overlong #ifdef lines. This helps + * readability as well as the fact that different compilers on the same + * platform might need different definitions. + */ + +/** + * XMLPUBFUN: + * + * Macros which declare an exportable function + */ +#define XMLPUBFUN +/** + * XMLPUBVAR: + * + * Macros which declare an exportable variable + */ +#define XMLPUBVAR extern +/** + * XMLCALL: + * + * Macros which declare the called convention for exported functions + */ +#define XMLCALL +/** + * XMLCDECL: + * + * Macro which declares the calling convention for exported functions that + * use '...'. + */ +#define XMLCDECL + +/** DOC_DISABLE */ + +/* Windows platform with MS compiler */ +#if defined(_WIN32) && defined(_MSC_VER) + #undef XMLPUBFUN + #undef XMLPUBVAR + #undef XMLCALL + #undef XMLCDECL + #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) + #define XMLPUBFUN __declspec(dllexport) + #define XMLPUBVAR __declspec(dllexport) + #else + #define XMLPUBFUN + #if !defined(LIBXML_STATIC) + #define XMLPUBVAR __declspec(dllimport) extern + #else + #define XMLPUBVAR extern + #endif + #endif + #if defined(LIBXML_FASTCALL) + #define XMLCALL __fastcall + #else + #define XMLCALL __cdecl + #endif + #define XMLCDECL __cdecl + #if !defined _REENTRANT + #define _REENTRANT + #endif +#endif + +/* Windows platform with Borland compiler */ +#if defined(_WIN32) && defined(__BORLANDC__) + #undef XMLPUBFUN + #undef XMLPUBVAR + #undef XMLCALL + #undef XMLCDECL + #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) + #define XMLPUBFUN __declspec(dllexport) + #define XMLPUBVAR __declspec(dllexport) extern + #else + #define XMLPUBFUN + #if !defined(LIBXML_STATIC) + #define XMLPUBVAR __declspec(dllimport) extern + #else + #define XMLPUBVAR extern + #endif + #endif + #define XMLCALL __cdecl + #define XMLCDECL __cdecl + #if !defined _REENTRANT + #define _REENTRANT + #endif +#endif + +/* Windows platform with GNU compiler (Mingw) */ +#if defined(_WIN32) && defined(__MINGW32__) + #undef XMLPUBFUN + #undef XMLPUBVAR + #undef XMLCALL + #undef XMLCDECL + #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) + #define XMLPUBFUN __declspec(dllexport) + #define XMLPUBVAR __declspec(dllexport) + #else + #define XMLPUBFUN + #if !defined(LIBXML_STATIC) + #define XMLPUBVAR __declspec(dllimport) extern + #else + #define XMLPUBVAR extern + #endif + #endif + #define XMLCALL __cdecl + #define XMLCDECL __cdecl + #if !defined _REENTRANT + #define _REENTRANT + #endif +#endif + +/* Cygwin platform, GNU compiler */ +#if defined(_WIN32) && defined(__CYGWIN__) + #undef XMLPUBFUN + #undef XMLPUBVAR + #undef XMLCALL + #undef XMLCDECL + #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) + #define XMLPUBFUN __declspec(dllexport) + #define XMLPUBVAR __declspec(dllexport) + #else + #define XMLPUBFUN + #if !defined(LIBXML_STATIC) + #define XMLPUBVAR __declspec(dllimport) extern + #else + #define XMLPUBVAR + #endif + #endif + #define XMLCALL __cdecl + #define XMLCDECL __cdecl +#endif + +/* Compatibility */ +#if !defined(LIBXML_DLL_IMPORT) +#define LIBXML_DLL_IMPORT XMLPUBVAR +#endif + +#endif /* __XML_EXPORTS_H__ */ + + diff --git a/external-libs/libxml2/include/libxml/xmlmemory.h b/external-libs/libxml2/include/libxml/xmlmemory.h new file mode 100644 index 0000000..235721c --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlmemory.h @@ -0,0 +1,222 @@ +/* + * Summary: interface for the memory allocator + * Description: provides interfaces for the memory allocator, + * including debugging capabilities. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __DEBUG_MEMORY_ALLOC__ +#define __DEBUG_MEMORY_ALLOC__ + +#include +#include + +/** + * DEBUG_MEMORY: + * + * DEBUG_MEMORY replaces the allocator with a collect and debug + * shell to the libc allocator. + * DEBUG_MEMORY should only be activated when debugging + * libxml i.e. if libxml has been configured with --with-debug-mem too. + */ +/* #define DEBUG_MEMORY_FREED */ +/* #define DEBUG_MEMORY_LOCATION */ + +#ifdef DEBUG +#ifndef DEBUG_MEMORY +#define DEBUG_MEMORY +#endif +#endif + +/** + * DEBUG_MEMORY_LOCATION: + * + * DEBUG_MEMORY_LOCATION should be activated only when debugging + * libxml i.e. if libxml has been configured with --with-debug-mem too. + */ +#ifdef DEBUG_MEMORY_LOCATION +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The XML memory wrapper support 4 basic overloadable functions. + */ +/** + * xmlFreeFunc: + * @mem: an already allocated block of memory + * + * Signature for a free() implementation. + */ +typedef void (XMLCALL *xmlFreeFunc)(void *mem); +/** + * xmlMallocFunc: + * @size: the size requested in bytes + * + * Signature for a malloc() implementation. + * + * Returns a pointer to the newly allocated block or NULL in case of error. + */ +typedef void *(XMLCALL *xmlMallocFunc)(size_t size); + +/** + * xmlReallocFunc: + * @mem: an already allocated block of memory + * @size: the new size requested in bytes + * + * Signature for a realloc() implementation. + * + * Returns a pointer to the newly reallocated block or NULL in case of error. + */ +typedef void *(XMLCALL *xmlReallocFunc)(void *mem, size_t size); + +/** + * xmlStrdupFunc: + * @str: a zero terminated string + * + * Signature for an strdup() implementation. + * + * Returns the copy of the string or NULL in case of error. + */ +typedef char *(XMLCALL *xmlStrdupFunc)(const char *str); + +/* + * The 4 interfaces used for all memory handling within libxml. +LIBXML_DLL_IMPORT extern xmlFreeFunc xmlFree; +LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMalloc; +LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMallocAtomic; +LIBXML_DLL_IMPORT extern xmlReallocFunc xmlRealloc; +LIBXML_DLL_IMPORT extern xmlStrdupFunc xmlMemStrdup; + */ + +/* + * The way to overload the existing functions. + * The xmlGc function have an extra entry for atomic block + * allocations useful for garbage collected memory allocators + */ +XMLPUBFUN int XMLCALL + xmlMemSetup (xmlFreeFunc freeFunc, + xmlMallocFunc mallocFunc, + xmlReallocFunc reallocFunc, + xmlStrdupFunc strdupFunc); +XMLPUBFUN int XMLCALL + xmlMemGet (xmlFreeFunc *freeFunc, + xmlMallocFunc *mallocFunc, + xmlReallocFunc *reallocFunc, + xmlStrdupFunc *strdupFunc); +XMLPUBFUN int XMLCALL + xmlGcMemSetup (xmlFreeFunc freeFunc, + xmlMallocFunc mallocFunc, + xmlMallocFunc mallocAtomicFunc, + xmlReallocFunc reallocFunc, + xmlStrdupFunc strdupFunc); +XMLPUBFUN int XMLCALL + xmlGcMemGet (xmlFreeFunc *freeFunc, + xmlMallocFunc *mallocFunc, + xmlMallocFunc *mallocAtomicFunc, + xmlReallocFunc *reallocFunc, + xmlStrdupFunc *strdupFunc); + +/* + * Initialization of the memory layer. + */ +XMLPUBFUN int XMLCALL + xmlInitMemory (void); + +/* + * Cleanup of the memory layer. + */ +XMLPUBFUN void XMLCALL + xmlCleanupMemory (void); +/* + * These are specific to the XML debug memory wrapper. + */ +XMLPUBFUN int XMLCALL + xmlMemUsed (void); +XMLPUBFUN int XMLCALL + xmlMemBlocks (void); +XMLPUBFUN void XMLCALL + xmlMemDisplay (FILE *fp); +XMLPUBFUN void XMLCALL + xmlMemShow (FILE *fp, int nr); +XMLPUBFUN void XMLCALL + xmlMemoryDump (void); +XMLPUBFUN void * XMLCALL + xmlMemMalloc (size_t size); +XMLPUBFUN void * XMLCALL + xmlMemRealloc (void *ptr,size_t size); +XMLPUBFUN void XMLCALL + xmlMemFree (void *ptr); +XMLPUBFUN char * XMLCALL + xmlMemoryStrdup (const char *str); +XMLPUBFUN void * XMLCALL + xmlMallocLoc (size_t size, const char *file, int line); +XMLPUBFUN void * XMLCALL + xmlReallocLoc (void *ptr, size_t size, const char *file, int line); +XMLPUBFUN void * XMLCALL + xmlMallocAtomicLoc (size_t size, const char *file, int line); +XMLPUBFUN char * XMLCALL + xmlMemStrdupLoc (const char *str, const char *file, int line); + + +#ifdef DEBUG_MEMORY_LOCATION +/** + * xmlMalloc: + * @size: number of bytes to allocate + * + * Wrapper for the malloc() function used in the XML library. + * + * Returns the pointer to the allocated area or NULL in case of error. + */ +#define xmlMalloc(size) xmlMallocLoc((size), __FILE__, __LINE__) +/** + * xmlMallocAtomic: + * @size: number of bytes to allocate + * + * Wrapper for the malloc() function used in the XML library for allocation + * of block not containing pointers to other areas. + * + * Returns the pointer to the allocated area or NULL in case of error. + */ +#define xmlMallocAtomic(size) xmlMallocAtomicLoc((size), __FILE__, __LINE__) +/** + * xmlRealloc: + * @ptr: pointer to the existing allocated area + * @size: number of bytes to allocate + * + * Wrapper for the realloc() function used in the XML library. + * + * Returns the pointer to the allocated area or NULL in case of error. + */ +#define xmlRealloc(ptr, size) xmlReallocLoc((ptr), (size), __FILE__, __LINE__) +/** + * xmlMemStrdup: + * @str: pointer to the existing string + * + * Wrapper for the strdup() function, xmlStrdup() is usually preferred. + * + * Returns the pointer to the allocated area or NULL in case of error. + */ +#define xmlMemStrdup(str) xmlMemStrdupLoc((str), __FILE__, __LINE__) + +#endif /* DEBUG_MEMORY_LOCATION */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#ifndef __XML_GLOBALS_H +#ifndef __XML_THREADS_H__ +#include +#include +#endif +#endif + +#endif /* __DEBUG_MEMORY_ALLOC__ */ + diff --git a/external-libs/libxml2/include/libxml/xmlmodule.h b/external-libs/libxml2/include/libxml/xmlmodule.h new file mode 100644 index 0000000..8f4a560 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlmodule.h @@ -0,0 +1,57 @@ +/* + * Summary: dynamic module loading + * Description: basic API for dynamic module loading, used by + * libexslt added in 2.6.17 + * + * Copy: See Copyright for the status of this software. + * + * Author: Joel W. Reed + */ + +#ifndef __XML_MODULE_H__ +#define __XML_MODULE_H__ + +#include + +#ifdef LIBXML_MODULES_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlModulePtr: + * + * A handle to a dynamically loaded module + */ +typedef struct _xmlModule xmlModule; +typedef xmlModule *xmlModulePtr; + +/** + * xmlModuleOption: + * + * enumeration of options that can be passed down to xmlModuleOpen() + */ +typedef enum { + XML_MODULE_LAZY = 1, /* lazy binding */ + XML_MODULE_LOCAL= 2 /* local binding */ +} xmlModuleOption; + +XMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen (const char *filename, + int options); + +XMLPUBFUN int XMLCALL xmlModuleSymbol (xmlModulePtr module, + const char* name, + void **result); + +XMLPUBFUN int XMLCALL xmlModuleClose (xmlModulePtr module); + +XMLPUBFUN int XMLCALL xmlModuleFree (xmlModulePtr module); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_MODULES_ENABLED */ + +#endif /*__XML_MODULE_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlreader.h b/external-libs/libxml2/include/libxml/xmlreader.h new file mode 100644 index 0000000..dfe51a3 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlreader.h @@ -0,0 +1,414 @@ +/* + * Summary: the XMLReader implementation + * Description: API of the XML streaming API based on C# interfaces. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_XMLREADER_H__ +#define __XML_XMLREADER_H__ + +#include +#include +#include +#ifdef LIBXML_SCHEMAS_ENABLED +#include +#include +#endif + +#ifdef LIBXML_READER_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlTextReaderMode: + * + * Internal state values for the reader. + */ +typedef enum { + XML_TEXTREADER_MODE_INITIAL = 0, + XML_TEXTREADER_MODE_INTERACTIVE = 1, + XML_TEXTREADER_MODE_ERROR = 2, + XML_TEXTREADER_MODE_EOF =3, + XML_TEXTREADER_MODE_CLOSED = 4, + XML_TEXTREADER_MODE_READING = 5 +} xmlTextReaderMode; + +/** + * xmlParserProperties: + * + * Some common options to use with xmlTextReaderSetParserProp, but it + * is better to use xmlParserOption and the xmlReaderNewxxx and + * xmlReaderForxxx APIs now. + */ +typedef enum { + XML_PARSER_LOADDTD = 1, + XML_PARSER_DEFAULTATTRS = 2, + XML_PARSER_VALIDATE = 3, + XML_PARSER_SUBST_ENTITIES = 4 +} xmlParserProperties; + +/** + * xmlParserSeverities: + * + * How severe an error callback is when the per-reader error callback API + * is used. + */ +typedef enum { + XML_PARSER_SEVERITY_VALIDITY_WARNING = 1, + XML_PARSER_SEVERITY_VALIDITY_ERROR = 2, + XML_PARSER_SEVERITY_WARNING = 3, + XML_PARSER_SEVERITY_ERROR = 4 +} xmlParserSeverities; + +/** + * xmlReaderTypes: + * + * Predefined constants for the different types of nodes. + */ +typedef enum { + XML_READER_TYPE_NONE = 0, + XML_READER_TYPE_ELEMENT = 1, + XML_READER_TYPE_ATTRIBUTE = 2, + XML_READER_TYPE_TEXT = 3, + XML_READER_TYPE_CDATA = 4, + XML_READER_TYPE_ENTITY_REFERENCE = 5, + XML_READER_TYPE_ENTITY = 6, + XML_READER_TYPE_PROCESSING_INSTRUCTION = 7, + XML_READER_TYPE_COMMENT = 8, + XML_READER_TYPE_DOCUMENT = 9, + XML_READER_TYPE_DOCUMENT_TYPE = 10, + XML_READER_TYPE_DOCUMENT_FRAGMENT = 11, + XML_READER_TYPE_NOTATION = 12, + XML_READER_TYPE_WHITESPACE = 13, + XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14, + XML_READER_TYPE_END_ELEMENT = 15, + XML_READER_TYPE_END_ENTITY = 16, + XML_READER_TYPE_XML_DECLARATION = 17 +} xmlReaderTypes; + +/** + * xmlTextReader: + * + * Structure for an xmlReader context. + */ +typedef struct _xmlTextReader xmlTextReader; + +/** + * xmlTextReaderPtr: + * + * Pointer to an xmlReader context. + */ +typedef xmlTextReader *xmlTextReaderPtr; + +/* + * Constructors & Destructor + */ +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlNewTextReader (xmlParserInputBufferPtr input, + const char *URI); +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlNewTextReaderFilename(const char *URI); + +XMLPUBFUN void XMLCALL + xmlFreeTextReader (xmlTextReaderPtr reader); + +XMLPUBFUN int XMLCALL + xmlTextReaderSetup(xmlTextReaderPtr reader, + xmlParserInputBufferPtr input, const char *URL, + const char *encoding, int options); + +/* + * Iterators + */ +XMLPUBFUN int XMLCALL + xmlTextReaderRead (xmlTextReaderPtr reader); + +#ifdef LIBXML_WRITER_ENABLED +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); + +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); +#endif + +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderReadString (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); + +/* + * Attributes of the node + */ +XMLPUBFUN int XMLCALL + xmlTextReaderAttributeCount(xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderDepth (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderHasAttributes(xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderHasValue(xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderIsDefault (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderNodeType (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderQuoteChar (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderReadState (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader); + +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstBaseUri (xmlTextReaderPtr reader); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstLocalName (xmlTextReaderPtr reader); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstName (xmlTextReaderPtr reader); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstPrefix (xmlTextReaderPtr reader); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstXmlLang (xmlTextReaderPtr reader); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstString (xmlTextReaderPtr reader, + const xmlChar *str); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstValue (xmlTextReaderPtr reader); + +/* + * use the Const version of the routine for + * better performance and simpler code + */ +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderBaseUri (xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderLocalName (xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderName (xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderNamespaceUri(xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderPrefix (xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderXmlLang (xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderValue (xmlTextReaderPtr reader); + +/* + * Methods of the XmlTextReader + */ +XMLPUBFUN int XMLCALL + xmlTextReaderClose (xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader, + int no); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderGetAttribute (xmlTextReaderPtr reader, + const xmlChar *name); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader, + const xmlChar *localName, + const xmlChar *namespaceURI); +XMLPUBFUN xmlParserInputBufferPtr XMLCALL + xmlTextReaderGetRemainder (xmlTextReaderPtr reader); +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderLookupNamespace(xmlTextReaderPtr reader, + const xmlChar *prefix); +XMLPUBFUN int XMLCALL + xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader, + int no); +XMLPUBFUN int XMLCALL + xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader, + const xmlChar *name); +XMLPUBFUN int XMLCALL + xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader, + const xmlChar *localName, + const xmlChar *namespaceURI); +XMLPUBFUN int XMLCALL + xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderMoveToElement (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderNormalization (xmlTextReaderPtr reader); +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstEncoding (xmlTextReaderPtr reader); + +/* + * Extensions + */ +XMLPUBFUN int XMLCALL + xmlTextReaderSetParserProp (xmlTextReaderPtr reader, + int prop, + int value); +XMLPUBFUN int XMLCALL + xmlTextReaderGetParserProp (xmlTextReaderPtr reader, + int prop); +XMLPUBFUN xmlNodePtr XMLCALL + xmlTextReaderCurrentNode (xmlTextReaderPtr reader); + +XMLPUBFUN int XMLCALL + xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader); + +XMLPUBFUN int XMLCALL + xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader); + +XMLPUBFUN xmlNodePtr XMLCALL + xmlTextReaderPreserve (xmlTextReaderPtr reader); +#ifdef LIBXML_PATTERN_ENABLED +XMLPUBFUN int XMLCALL + xmlTextReaderPreservePattern(xmlTextReaderPtr reader, + const xmlChar *pattern, + const xmlChar **namespaces); +#endif /* LIBXML_PATTERN_ENABLED */ +XMLPUBFUN xmlDocPtr XMLCALL + xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); +XMLPUBFUN xmlNodePtr XMLCALL + xmlTextReaderExpand (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderNext (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderNextSibling (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderIsValid (xmlTextReaderPtr reader); +#ifdef LIBXML_SCHEMAS_ENABLED +XMLPUBFUN int XMLCALL + xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, + const char *rng); +XMLPUBFUN int XMLCALL + xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, + xmlRelaxNGPtr schema); +XMLPUBFUN int XMLCALL + xmlTextReaderSchemaValidate (xmlTextReaderPtr reader, + const char *xsd); +XMLPUBFUN int XMLCALL + xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader, + xmlSchemaValidCtxtPtr ctxt, + int options); +XMLPUBFUN int XMLCALL + xmlTextReaderSetSchema (xmlTextReaderPtr reader, + xmlSchemaPtr schema); +#endif +XMLPUBFUN const xmlChar * XMLCALL + xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderStandalone (xmlTextReaderPtr reader); + + +/* + * Index lookup + */ +XMLPUBFUN long XMLCALL + xmlTextReaderByteConsumed (xmlTextReaderPtr reader); + +/* + * New more complete APIs for simpler creation and reuse of readers + */ +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlReaderWalker (xmlDocPtr doc); +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlReaderForDoc (const xmlChar * cur, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlReaderForFile (const char *filename, + const char *encoding, + int options); +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlReaderForMemory (const char *buffer, + int size, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlReaderForFd (int fd, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN xmlTextReaderPtr XMLCALL + xmlReaderForIO (xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + const char *URL, + const char *encoding, + int options); + +XMLPUBFUN int XMLCALL + xmlReaderNewWalker (xmlTextReaderPtr reader, + xmlDocPtr doc); +XMLPUBFUN int XMLCALL + xmlReaderNewDoc (xmlTextReaderPtr reader, + const xmlChar * cur, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN int XMLCALL + xmlReaderNewFile (xmlTextReaderPtr reader, + const char *filename, + const char *encoding, + int options); +XMLPUBFUN int XMLCALL + xmlReaderNewMemory (xmlTextReaderPtr reader, + const char *buffer, + int size, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN int XMLCALL + xmlReaderNewFd (xmlTextReaderPtr reader, + int fd, + const char *URL, + const char *encoding, + int options); +XMLPUBFUN int XMLCALL + xmlReaderNewIO (xmlTextReaderPtr reader, + xmlInputReadCallback ioread, + xmlInputCloseCallback ioclose, + void *ioctx, + const char *URL, + const char *encoding, + int options); +/* + * Error handling extensions + */ +typedef void * xmlTextReaderLocatorPtr; +typedef void (XMLCALL *xmlTextReaderErrorFunc) (void *arg, + const char *msg, + xmlParserSeverities severity, + xmlTextReaderLocatorPtr locator); +XMLPUBFUN int XMLCALL + xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator); +/*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/ +XMLPUBFUN xmlChar * XMLCALL + xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); +XMLPUBFUN void XMLCALL + xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, + xmlTextReaderErrorFunc f, + void *arg); +XMLPUBFUN void XMLCALL + xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, + xmlStructuredErrorFunc f, + void *arg); +XMLPUBFUN void XMLCALL + xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, + xmlTextReaderErrorFunc *f, + void **arg); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_READER_ENABLED */ + +#endif /* __XML_XMLREADER_H__ */ + diff --git a/external-libs/libxml2/include/libxml/xmlregexp.h b/external-libs/libxml2/include/libxml/xmlregexp.h new file mode 100644 index 0000000..022cd6a --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlregexp.h @@ -0,0 +1,216 @@ +/* + * Summary: regular expressions handling + * Description: basic API for libxml regular expressions handling used + * for XML Schemas and validation. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_REGEXP_H__ +#define __XML_REGEXP_H__ + +#include + +#ifdef LIBXML_REGEXP_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlRegexpPtr: + * + * A libxml regular expression, they can actually be far more complex + * thank the POSIX regex expressions. + */ +typedef struct _xmlRegexp xmlRegexp; +typedef xmlRegexp *xmlRegexpPtr; + +/** + * xmlRegExecCtxtPtr: + * + * A libxml progressive regular expression evaluation context + */ +typedef struct _xmlRegExecCtxt xmlRegExecCtxt; +typedef xmlRegExecCtxt *xmlRegExecCtxtPtr; + +#ifdef __cplusplus +} +#endif +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The POSIX like API + */ +XMLPUBFUN xmlRegexpPtr XMLCALL + xmlRegexpCompile (const xmlChar *regexp); +XMLPUBFUN void XMLCALL xmlRegFreeRegexp(xmlRegexpPtr regexp); +XMLPUBFUN int XMLCALL + xmlRegexpExec (xmlRegexpPtr comp, + const xmlChar *value); +XMLPUBFUN void XMLCALL + xmlRegexpPrint (FILE *output, + xmlRegexpPtr regexp); +XMLPUBFUN int XMLCALL + xmlRegexpIsDeterminist(xmlRegexpPtr comp); + +/* + * Callback function when doing a transition in the automata + */ +typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec, + const xmlChar *token, + void *transdata, + void *inputdata); + +/* + * The progressive API + */ +XMLPUBFUN xmlRegExecCtxtPtr XMLCALL + xmlRegNewExecCtxt (xmlRegexpPtr comp, + xmlRegExecCallbacks callback, + void *data); +XMLPUBFUN void XMLCALL + xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec); +XMLPUBFUN int XMLCALL + xmlRegExecPushString(xmlRegExecCtxtPtr exec, + const xmlChar *value, + void *data); +XMLPUBFUN int XMLCALL + xmlRegExecPushString2(xmlRegExecCtxtPtr exec, + const xmlChar *value, + const xmlChar *value2, + void *data); + +XMLPUBFUN int XMLCALL + xmlRegExecNextValues(xmlRegExecCtxtPtr exec, + int *nbval, + int *nbneg, + xmlChar **values, + int *terminal); +XMLPUBFUN int XMLCALL + xmlRegExecErrInfo (xmlRegExecCtxtPtr exec, + const xmlChar **string, + int *nbval, + int *nbneg, + xmlChar **values, + int *terminal); +#ifdef LIBXML_EXPR_ENABLED +/* + * Formal regular expression handling + * Its goal is to do some formal work on content models + */ + +/* expressions are used within a context */ +typedef struct _xmlExpCtxt xmlExpCtxt; +typedef xmlExpCtxt *xmlExpCtxtPtr; + +XMLPUBFUN void XMLCALL + xmlExpFreeCtxt (xmlExpCtxtPtr ctxt); +XMLPUBFUN xmlExpCtxtPtr XMLCALL + xmlExpNewCtxt (int maxNodes, + xmlDictPtr dict); + +XMLPUBFUN int XMLCALL + xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt); + +/* Expressions are trees but the tree is opaque */ +typedef struct _xmlExpNode xmlExpNode; +typedef xmlExpNode *xmlExpNodePtr; + +typedef enum { + XML_EXP_EMPTY = 0, + XML_EXP_FORBID = 1, + XML_EXP_ATOM = 2, + XML_EXP_SEQ = 3, + XML_EXP_OR = 4, + XML_EXP_COUNT = 5 +} xmlExpNodeType; + +/* + * 2 core expressions shared by all for the empty language set + * and for the set with just the empty token + */ +XMLPUBVAR xmlExpNodePtr forbiddenExp; +XMLPUBVAR xmlExpNodePtr emptyExp; + +/* + * Expressions are reference counted internally + */ +XMLPUBFUN void XMLCALL + xmlExpFree (xmlExpCtxtPtr ctxt, + xmlExpNodePtr expr); +XMLPUBFUN void XMLCALL + xmlExpRef (xmlExpNodePtr expr); + +/* + * constructors can be either manual or from a string + */ +XMLPUBFUN xmlExpNodePtr XMLCALL + xmlExpParse (xmlExpCtxtPtr ctxt, + const char *expr); +XMLPUBFUN xmlExpNodePtr XMLCALL + xmlExpNewAtom (xmlExpCtxtPtr ctxt, + const xmlChar *name, + int len); +XMLPUBFUN xmlExpNodePtr XMLCALL + xmlExpNewOr (xmlExpCtxtPtr ctxt, + xmlExpNodePtr left, + xmlExpNodePtr right); +XMLPUBFUN xmlExpNodePtr XMLCALL + xmlExpNewSeq (xmlExpCtxtPtr ctxt, + xmlExpNodePtr left, + xmlExpNodePtr right); +XMLPUBFUN xmlExpNodePtr XMLCALL + xmlExpNewRange (xmlExpCtxtPtr ctxt, + xmlExpNodePtr subset, + int min, + int max); +/* + * The really interesting APIs + */ +XMLPUBFUN int XMLCALL + xmlExpIsNillable(xmlExpNodePtr expr); +XMLPUBFUN int XMLCALL + xmlExpMaxToken (xmlExpNodePtr expr); +XMLPUBFUN int XMLCALL + xmlExpGetLanguage(xmlExpCtxtPtr ctxt, + xmlExpNodePtr expr, + const xmlChar**langList, + int len); +XMLPUBFUN int XMLCALL + xmlExpGetStart (xmlExpCtxtPtr ctxt, + xmlExpNodePtr expr, + const xmlChar**tokList, + int len); +XMLPUBFUN xmlExpNodePtr XMLCALL + xmlExpStringDerive(xmlExpCtxtPtr ctxt, + xmlExpNodePtr expr, + const xmlChar *str, + int len); +XMLPUBFUN xmlExpNodePtr XMLCALL + xmlExpExpDerive (xmlExpCtxtPtr ctxt, + xmlExpNodePtr expr, + xmlExpNodePtr sub); +XMLPUBFUN int XMLCALL + xmlExpSubsume (xmlExpCtxtPtr ctxt, + xmlExpNodePtr expr, + xmlExpNodePtr sub); +XMLPUBFUN void XMLCALL + xmlExpDump (xmlBufferPtr buf, + xmlExpNodePtr expr); +#endif /* LIBXML_EXPR_ENABLED */ +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_REGEXP_ENABLED */ + +#endif /*__XML_REGEXP_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlsave.h b/external-libs/libxml2/include/libxml/xmlsave.h new file mode 100644 index 0000000..c71c71a --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlsave.h @@ -0,0 +1,84 @@ +/* + * Summary: the XML document serializer + * Description: API to save document or subtree of document + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_XMLSAVE_H__ +#define __XML_XMLSAVE_H__ + +#include +#include +#include +#include + +#ifdef LIBXML_OUTPUT_ENABLED +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlSaveOption: + * + * This is the set of XML save options that can be passed down + * to the xmlSaveToFd() and similar calls. + */ +typedef enum { + XML_SAVE_FORMAT = 1<<0, /* format save output */ + XML_SAVE_NO_DECL = 1<<1, /* drop the xml declaration */ + XML_SAVE_NO_EMPTY = 1<<2, /* no empty tags */ + XML_SAVE_NO_XHTML = 1<<3 /* disable XHTML1 specific rules */ +} xmlSaveOption; + + +typedef struct _xmlSaveCtxt xmlSaveCtxt; +typedef xmlSaveCtxt *xmlSaveCtxtPtr; + +XMLPUBFUN xmlSaveCtxtPtr XMLCALL + xmlSaveToFd (int fd, + const char *encoding, + int options); +XMLPUBFUN xmlSaveCtxtPtr XMLCALL + xmlSaveToFilename (const char *filename, + const char *encoding, + int options); + +XMLPUBFUN xmlSaveCtxtPtr XMLCALL + xmlSaveToBuffer (xmlBufferPtr buffer, + const char *encoding, + int options); + +XMLPUBFUN xmlSaveCtxtPtr XMLCALL + xmlSaveToIO (xmlOutputWriteCallback iowrite, + xmlOutputCloseCallback ioclose, + void *ioctx, + const char *encoding, + int options); + +XMLPUBFUN long XMLCALL + xmlSaveDoc (xmlSaveCtxtPtr ctxt, + xmlDocPtr doc); +XMLPUBFUN long XMLCALL + xmlSaveTree (xmlSaveCtxtPtr ctxt, + xmlNodePtr node); + +XMLPUBFUN int XMLCALL + xmlSaveFlush (xmlSaveCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlSaveClose (xmlSaveCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlSaveSetEscape (xmlSaveCtxtPtr ctxt, + xmlCharEncodingOutputFunc escape); +XMLPUBFUN int XMLCALL + xmlSaveSetAttrEscape (xmlSaveCtxtPtr ctxt, + xmlCharEncodingOutputFunc escape); +#ifdef __cplusplus +} +#endif +#endif /* LIBXML_OUTPUT_ENABLED */ +#endif /* __XML_XMLSAVE_H__ */ + + diff --git a/external-libs/libxml2/include/libxml/xmlschemas.h b/external-libs/libxml2/include/libxml/xmlschemas.h new file mode 100644 index 0000000..15faef5 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlschemas.h @@ -0,0 +1,198 @@ +/* + * Summary: incomplete XML Schemas structure implementation + * Description: interface to the XML Schemas handling and schema validity + * checking, it is incomplete right now. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __XML_SCHEMA_H__ +#define __XML_SCHEMA_H__ + +#include + +#ifdef LIBXML_SCHEMAS_ENABLED + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * This error codes are obsolete; not used any more. + */ +typedef enum { + XML_SCHEMAS_ERR_OK = 0, + XML_SCHEMAS_ERR_NOROOT = 1, + XML_SCHEMAS_ERR_UNDECLAREDELEM, + XML_SCHEMAS_ERR_NOTTOPLEVEL, + XML_SCHEMAS_ERR_MISSING, + XML_SCHEMAS_ERR_WRONGELEM, + XML_SCHEMAS_ERR_NOTYPE, + XML_SCHEMAS_ERR_NOROLLBACK, + XML_SCHEMAS_ERR_ISABSTRACT, + XML_SCHEMAS_ERR_NOTEMPTY, + XML_SCHEMAS_ERR_ELEMCONT, + XML_SCHEMAS_ERR_HAVEDEFAULT, + XML_SCHEMAS_ERR_NOTNILLABLE, + XML_SCHEMAS_ERR_EXTRACONTENT, + XML_SCHEMAS_ERR_INVALIDATTR, + XML_SCHEMAS_ERR_INVALIDELEM, + XML_SCHEMAS_ERR_NOTDETERMINIST, + XML_SCHEMAS_ERR_CONSTRUCT, + XML_SCHEMAS_ERR_INTERNAL, + XML_SCHEMAS_ERR_NOTSIMPLE, + XML_SCHEMAS_ERR_ATTRUNKNOWN, + XML_SCHEMAS_ERR_ATTRINVALID, + XML_SCHEMAS_ERR_VALUE, + XML_SCHEMAS_ERR_FACET, + XML_SCHEMAS_ERR_, + XML_SCHEMAS_ERR_XXX +} xmlSchemaValidError; + +/* +* ATTENTION: Change xmlSchemaSetValidOptions's check +* for invalid values, if adding to the validation +* options below. +*/ +/** + * xmlSchemaValidOption: + * + * This is the set of XML Schema validation options. + */ +typedef enum { + XML_SCHEMA_VAL_VC_I_CREATE = 1<<0 + /* Default/fixed: create an attribute node + * or an element's text node on the instance. + */ +} xmlSchemaValidOption; + +/* + XML_SCHEMA_VAL_XSI_ASSEMBLE = 1<<1, + * assemble schemata using + * xsi:schemaLocation and + * xsi:noNamespaceSchemaLocation +*/ + +/** + * The schemas related types are kept internal + */ +typedef struct _xmlSchema xmlSchema; +typedef xmlSchema *xmlSchemaPtr; + +/** + * A schemas validation context + */ +typedef void (XMLCDECL *xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...); +typedef void (XMLCDECL *xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...); + +typedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt; +typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr; + +typedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt; +typedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr; + +/* + * Interfaces for parsing. + */ +XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL + xmlSchemaNewParserCtxt (const char *URL); +XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL + xmlSchemaNewMemParserCtxt (const char *buffer, + int size); +XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL + xmlSchemaNewDocParserCtxt (xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlSchemaFreeParserCtxt (xmlSchemaParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlSchemaSetParserErrors (xmlSchemaParserCtxtPtr ctxt, + xmlSchemaValidityErrorFunc err, + xmlSchemaValidityWarningFunc warn, + void *ctx); +XMLPUBFUN void XMLCALL + xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxtPtr ctxt, + xmlStructuredErrorFunc serror, + void *ctx); +XMLPUBFUN int XMLCALL + xmlSchemaGetParserErrors(xmlSchemaParserCtxtPtr ctxt, + xmlSchemaValidityErrorFunc * err, + xmlSchemaValidityWarningFunc * warn, + void **ctx); +XMLPUBFUN int XMLCALL + xmlSchemaIsValid (xmlSchemaValidCtxtPtr ctxt); + +XMLPUBFUN xmlSchemaPtr XMLCALL + xmlSchemaParse (xmlSchemaParserCtxtPtr ctxt); +XMLPUBFUN void XMLCALL + xmlSchemaFree (xmlSchemaPtr schema); +#ifdef LIBXML_OUTPUT_ENABLED +XMLPUBFUN void XMLCALL + xmlSchemaDump (FILE *output, + xmlSchemaPtr schema); +#endif /* LIBXML_OUTPUT_ENABLED */ +/* + * Interfaces for validating + */ +XMLPUBFUN void XMLCALL + xmlSchemaSetValidErrors (xmlSchemaValidCtxtPtr ctxt, + xmlSchemaValidityErrorFunc err, + xmlSchemaValidityWarningFunc warn, + void *ctx); +XMLPUBFUN void XMLCALL + xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt, + xmlStructuredErrorFunc serror, + void *ctx); +XMLPUBFUN int XMLCALL + xmlSchemaGetValidErrors (xmlSchemaValidCtxtPtr ctxt, + xmlSchemaValidityErrorFunc *err, + xmlSchemaValidityWarningFunc *warn, + void **ctx); +XMLPUBFUN int XMLCALL + xmlSchemaSetValidOptions (xmlSchemaValidCtxtPtr ctxt, + int options); +XMLPUBFUN int XMLCALL + xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt); + +XMLPUBFUN xmlSchemaValidCtxtPtr XMLCALL + xmlSchemaNewValidCtxt (xmlSchemaPtr schema); +XMLPUBFUN void XMLCALL + xmlSchemaFreeValidCtxt (xmlSchemaValidCtxtPtr ctxt); +XMLPUBFUN int XMLCALL + xmlSchemaValidateDoc (xmlSchemaValidCtxtPtr ctxt, + xmlDocPtr instance); +XMLPUBFUN int XMLCALL + xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt, + xmlNodePtr elem); +XMLPUBFUN int XMLCALL + xmlSchemaValidateStream (xmlSchemaValidCtxtPtr ctxt, + xmlParserInputBufferPtr input, + xmlCharEncoding enc, + xmlSAXHandlerPtr sax, + void *user_data); +XMLPUBFUN int XMLCALL + xmlSchemaValidateFile (xmlSchemaValidCtxtPtr ctxt, + const char * filename, + int options); + +/* + * Interface to insert Schemas SAX velidation in a SAX stream + */ +typedef struct _xmlSchemaSAXPlug xmlSchemaSAXPlugStruct; +typedef xmlSchemaSAXPlugStruct *xmlSchemaSAXPlugPtr; + +XMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL + xmlSchemaSAXPlug (xmlSchemaValidCtxtPtr ctxt, + xmlSAXHandlerPtr *sax, + void **user_data); +XMLPUBFUN int XMLCALL + xmlSchemaSAXUnplug (xmlSchemaSAXPlugPtr plug); +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_SCHEMAS_ENABLED */ +#endif /* __XML_SCHEMA_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlschemastypes.h b/external-libs/libxml2/include/libxml/xmlschemastypes.h new file mode 100644 index 0000000..9a3a7a1 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlschemastypes.h @@ -0,0 +1,151 @@ +/* + * Summary: implementation of XML Schema Datatypes + * Description: module providing the XML Schema Datatypes implementation + * both definition and validity checking + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + + +#ifndef __XML_SCHEMA_TYPES_H__ +#define __XML_SCHEMA_TYPES_H__ + +#include + +#ifdef LIBXML_SCHEMAS_ENABLED + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + XML_SCHEMA_WHITESPACE_UNKNOWN = 0, + XML_SCHEMA_WHITESPACE_PRESERVE = 1, + XML_SCHEMA_WHITESPACE_REPLACE = 2, + XML_SCHEMA_WHITESPACE_COLLAPSE = 3 +} xmlSchemaWhitespaceValueType; + +XMLPUBFUN void XMLCALL + xmlSchemaInitTypes (void); +XMLPUBFUN void XMLCALL + xmlSchemaCleanupTypes (void); +XMLPUBFUN xmlSchemaTypePtr XMLCALL + xmlSchemaGetPredefinedType (const xmlChar *name, + const xmlChar *ns); +XMLPUBFUN int XMLCALL + xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type, + const xmlChar *value, + xmlSchemaValPtr *val); +XMLPUBFUN int XMLCALL + xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type, + const xmlChar *value, + xmlSchemaValPtr *val, + xmlNodePtr node); +XMLPUBFUN int XMLCALL + xmlSchemaValidateFacet (xmlSchemaTypePtr base, + xmlSchemaFacetPtr facet, + const xmlChar *value, + xmlSchemaValPtr val); +XMLPUBFUN int XMLCALL + xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet, + xmlSchemaWhitespaceValueType fws, + xmlSchemaValType valType, + const xmlChar *value, + xmlSchemaValPtr val, + xmlSchemaWhitespaceValueType ws); +XMLPUBFUN void XMLCALL + xmlSchemaFreeValue (xmlSchemaValPtr val); +XMLPUBFUN xmlSchemaFacetPtr XMLCALL + xmlSchemaNewFacet (void); +XMLPUBFUN int XMLCALL + xmlSchemaCheckFacet (xmlSchemaFacetPtr facet, + xmlSchemaTypePtr typeDecl, + xmlSchemaParserCtxtPtr ctxt, + const xmlChar *name); +XMLPUBFUN void XMLCALL + xmlSchemaFreeFacet (xmlSchemaFacetPtr facet); +XMLPUBFUN int XMLCALL + xmlSchemaCompareValues (xmlSchemaValPtr x, + xmlSchemaValPtr y); +XMLPUBFUN xmlSchemaTypePtr XMLCALL + xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type); +XMLPUBFUN int XMLCALL + xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet, + const xmlChar *value, + unsigned long actualLen, + unsigned long *expectedLen); +XMLPUBFUN xmlSchemaTypePtr XMLCALL + xmlSchemaGetBuiltInType (xmlSchemaValType type); +XMLPUBFUN int XMLCALL + xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type, + int facetType); +XMLPUBFUN xmlChar * XMLCALL + xmlSchemaCollapseString (const xmlChar *value); +XMLPUBFUN xmlChar * XMLCALL + xmlSchemaWhiteSpaceReplace (const xmlChar *value); +XMLPUBFUN unsigned long XMLCALL + xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet); +XMLPUBFUN int XMLCALL + xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type, + xmlSchemaFacetPtr facet, + const xmlChar *value, + xmlSchemaValPtr val, + unsigned long *length); +XMLPUBFUN int XMLCALL + xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet, + xmlSchemaValType valType, + const xmlChar *value, + xmlSchemaValPtr val, + unsigned long *length, + xmlSchemaWhitespaceValueType ws); +XMLPUBFUN int XMLCALL + xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type, + const xmlChar *value, + xmlSchemaValPtr *val, + xmlNodePtr node); +XMLPUBFUN int XMLCALL + xmlSchemaGetCanonValue (xmlSchemaValPtr val, + const xmlChar **retValue); +XMLPUBFUN int XMLCALL + xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val, + const xmlChar **retValue, + xmlSchemaWhitespaceValueType ws); +XMLPUBFUN int XMLCALL + xmlSchemaValueAppend (xmlSchemaValPtr prev, + xmlSchemaValPtr cur); +XMLPUBFUN xmlSchemaValPtr XMLCALL + xmlSchemaValueGetNext (xmlSchemaValPtr cur); +XMLPUBFUN const xmlChar * XMLCALL + xmlSchemaValueGetAsString (xmlSchemaValPtr val); +XMLPUBFUN int XMLCALL + xmlSchemaValueGetAsBoolean (xmlSchemaValPtr val); +XMLPUBFUN xmlSchemaValPtr XMLCALL + xmlSchemaNewStringValue (xmlSchemaValType type, + const xmlChar *value); +XMLPUBFUN xmlSchemaValPtr XMLCALL + xmlSchemaNewNOTATIONValue (const xmlChar *name, + const xmlChar *ns); +XMLPUBFUN xmlSchemaValPtr XMLCALL + xmlSchemaNewQNameValue (const xmlChar *namespaceName, + const xmlChar *localName); +XMLPUBFUN int XMLCALL + xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x, + xmlSchemaWhitespaceValueType xws, + xmlSchemaValPtr y, + xmlSchemaWhitespaceValueType yws); +XMLPUBFUN xmlSchemaValPtr XMLCALL + xmlSchemaCopyValue (xmlSchemaValPtr val); +XMLPUBFUN xmlSchemaValType XMLCALL + xmlSchemaGetValType (xmlSchemaValPtr val); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_SCHEMAS_ENABLED */ +#endif /* __XML_SCHEMA_TYPES_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlstring.h b/external-libs/libxml2/include/libxml/xmlstring.h new file mode 100644 index 0000000..1dfc5ea --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlstring.h @@ -0,0 +1,140 @@ +/* + * Summary: set of routines to process strings + * Description: type and interfaces needed for the internal string handling + * of the library, especially UTF8 processing. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_STRING_H__ +#define __XML_STRING_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xmlChar: + * + * This is a basic byte in an UTF-8 encoded string. + * It's unsigned allowing to pinpoint case where char * are assigned + * to xmlChar * (possibly making serialization back impossible). + */ +typedef unsigned char xmlChar; + +/** + * BAD_CAST: + * + * Macro to cast a string to an xmlChar * when one know its safe. + */ +#define BAD_CAST (xmlChar *) + +/* + * xmlChar handling + */ +XMLPUBFUN xmlChar * XMLCALL + xmlStrdup (const xmlChar *cur); +XMLPUBFUN xmlChar * XMLCALL + xmlStrndup (const xmlChar *cur, + int len); +XMLPUBFUN xmlChar * XMLCALL + xmlCharStrndup (const char *cur, + int len); +XMLPUBFUN xmlChar * XMLCALL + xmlCharStrdup (const char *cur); +XMLPUBFUN xmlChar * XMLCALL + xmlStrsub (const xmlChar *str, + int start, + int len); +XMLPUBFUN const xmlChar * XMLCALL + xmlStrchr (const xmlChar *str, + xmlChar val); +XMLPUBFUN const xmlChar * XMLCALL + xmlStrstr (const xmlChar *str, + const xmlChar *val); +XMLPUBFUN const xmlChar * XMLCALL + xmlStrcasestr (const xmlChar *str, + xmlChar *val); +XMLPUBFUN int XMLCALL + xmlStrcmp (const xmlChar *str1, + const xmlChar *str2); +XMLPUBFUN int XMLCALL + xmlStrncmp (const xmlChar *str1, + const xmlChar *str2, + int len); +XMLPUBFUN int XMLCALL + xmlStrcasecmp (const xmlChar *str1, + const xmlChar *str2); +XMLPUBFUN int XMLCALL + xmlStrncasecmp (const xmlChar *str1, + const xmlChar *str2, + int len); +XMLPUBFUN int XMLCALL + xmlStrEqual (const xmlChar *str1, + const xmlChar *str2); +XMLPUBFUN int XMLCALL + xmlStrQEqual (const xmlChar *pref, + const xmlChar *name, + const xmlChar *str); +XMLPUBFUN int XMLCALL + xmlStrlen (const xmlChar *str); +XMLPUBFUN xmlChar * XMLCALL + xmlStrcat (xmlChar *cur, + const xmlChar *add); +XMLPUBFUN xmlChar * XMLCALL + xmlStrncat (xmlChar *cur, + const xmlChar *add, + int len); +XMLPUBFUN xmlChar * XMLCALL + xmlStrncatNew (const xmlChar *str1, + const xmlChar *str2, + int len); +XMLPUBFUN int XMLCALL + xmlStrPrintf (xmlChar *buf, + int len, + const xmlChar *msg, + ...); +XMLPUBFUN int XMLCALL + xmlStrVPrintf (xmlChar *buf, + int len, + const xmlChar *msg, + va_list ap); + +XMLPUBFUN int XMLCALL + xmlGetUTF8Char (const unsigned char *utf, + int *len); +XMLPUBFUN int XMLCALL + xmlCheckUTF8 (const unsigned char *utf); +XMLPUBFUN int XMLCALL + xmlUTF8Strsize (const xmlChar *utf, + int len); +XMLPUBFUN xmlChar * XMLCALL + xmlUTF8Strndup (const xmlChar *utf, + int len); +XMLPUBFUN const xmlChar * XMLCALL + xmlUTF8Strpos (const xmlChar *utf, + int pos); +XMLPUBFUN int XMLCALL + xmlUTF8Strloc (const xmlChar *utf, + const xmlChar *utfchar); +XMLPUBFUN xmlChar * XMLCALL + xmlUTF8Strsub (const xmlChar *utf, + int start, + int len); +XMLPUBFUN int XMLCALL + xmlUTF8Strlen (const xmlChar *utf); +XMLPUBFUN int XMLCALL + xmlUTF8Size (const xmlChar *utf); +XMLPUBFUN int XMLCALL + xmlUTF8Charcmp (const xmlChar *utf1, + const xmlChar *utf2); + +#ifdef __cplusplus +} +#endif +#endif /* __XML_STRING_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlunicode.h b/external-libs/libxml2/include/libxml/xmlunicode.h new file mode 100644 index 0000000..01ac8b6 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlunicode.h @@ -0,0 +1,202 @@ +/* + * Summary: Unicode character APIs + * Description: API for the Unicode character APIs + * + * This file is automatically generated from the + * UCS description files of the Unicode Character Database + * http://www.unicode.org/Public/4.0-Update1/UCD-4.0.1.html + * using the genUnicode.py Python script. + * + * Generation date: Mon Mar 27 11:09:52 2006 + * Sources: Blocks-4.0.1.txt UnicodeData-4.0.1.txt + * Author: Daniel Veillard + */ + +#ifndef __XML_UNICODE_H__ +#define __XML_UNICODE_H__ + +#include + +#ifdef LIBXML_UNICODE_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +XMLPUBFUN int XMLCALL xmlUCSIsAegeanNumbers (int code); +XMLPUBFUN int XMLCALL xmlUCSIsAlphabeticPresentationForms (int code); +XMLPUBFUN int XMLCALL xmlUCSIsArabic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsArabicPresentationFormsA (int code); +XMLPUBFUN int XMLCALL xmlUCSIsArabicPresentationFormsB (int code); +XMLPUBFUN int XMLCALL xmlUCSIsArmenian (int code); +XMLPUBFUN int XMLCALL xmlUCSIsArrows (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBasicLatin (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBengali (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBlockElements (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBopomofo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBopomofoExtended (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBoxDrawing (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBraillePatterns (int code); +XMLPUBFUN int XMLCALL xmlUCSIsBuhid (int code); +XMLPUBFUN int XMLCALL xmlUCSIsByzantineMusicalSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibility (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityForms (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityIdeographs (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityIdeographsSupplement (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKRadicalsSupplement (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKSymbolsandPunctuation (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographs (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographsExtensionA (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographsExtensionB (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCherokee (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCombiningDiacriticalMarks (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCombiningDiacriticalMarksforSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCombiningHalfMarks (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCombiningMarksforSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsControlPictures (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCurrencySymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCypriotSyllabary (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCyrillic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCyrillicSupplement (int code); +XMLPUBFUN int XMLCALL xmlUCSIsDeseret (int code); +XMLPUBFUN int XMLCALL xmlUCSIsDevanagari (int code); +XMLPUBFUN int XMLCALL xmlUCSIsDingbats (int code); +XMLPUBFUN int XMLCALL xmlUCSIsEnclosedAlphanumerics (int code); +XMLPUBFUN int XMLCALL xmlUCSIsEnclosedCJKLettersandMonths (int code); +XMLPUBFUN int XMLCALL xmlUCSIsEthiopic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGeneralPunctuation (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGeometricShapes (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGeorgian (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGothic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGreek (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGreekExtended (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGreekandCoptic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGujarati (int code); +XMLPUBFUN int XMLCALL xmlUCSIsGurmukhi (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHalfwidthandFullwidthForms (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHangulCompatibilityJamo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHangulJamo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHangulSyllables (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHanunoo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHebrew (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHighPrivateUseSurrogates (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHighSurrogates (int code); +XMLPUBFUN int XMLCALL xmlUCSIsHiragana (int code); +XMLPUBFUN int XMLCALL xmlUCSIsIPAExtensions (int code); +XMLPUBFUN int XMLCALL xmlUCSIsIdeographicDescriptionCharacters (int code); +XMLPUBFUN int XMLCALL xmlUCSIsKanbun (int code); +XMLPUBFUN int XMLCALL xmlUCSIsKangxiRadicals (int code); +XMLPUBFUN int XMLCALL xmlUCSIsKannada (int code); +XMLPUBFUN int XMLCALL xmlUCSIsKatakana (int code); +XMLPUBFUN int XMLCALL xmlUCSIsKatakanaPhoneticExtensions (int code); +XMLPUBFUN int XMLCALL xmlUCSIsKhmer (int code); +XMLPUBFUN int XMLCALL xmlUCSIsKhmerSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLao (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLatin1Supplement (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedA (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedB (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedAdditional (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLetterlikeSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLimbu (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLinearBIdeograms (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLinearBSyllabary (int code); +XMLPUBFUN int XMLCALL xmlUCSIsLowSurrogates (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMalayalam (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMathematicalAlphanumericSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMathematicalOperators (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousMathematicalSymbolsA (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousMathematicalSymbolsB (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousSymbolsandArrows (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousTechnical (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMongolian (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMusicalSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsMyanmar (int code); +XMLPUBFUN int XMLCALL xmlUCSIsNumberForms (int code); +XMLPUBFUN int XMLCALL xmlUCSIsOgham (int code); +XMLPUBFUN int XMLCALL xmlUCSIsOldItalic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsOpticalCharacterRecognition (int code); +XMLPUBFUN int XMLCALL xmlUCSIsOriya (int code); +XMLPUBFUN int XMLCALL xmlUCSIsOsmanya (int code); +XMLPUBFUN int XMLCALL xmlUCSIsPhoneticExtensions (int code); +XMLPUBFUN int XMLCALL xmlUCSIsPrivateUse (int code); +XMLPUBFUN int XMLCALL xmlUCSIsPrivateUseArea (int code); +XMLPUBFUN int XMLCALL xmlUCSIsRunic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsShavian (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSinhala (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSmallFormVariants (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSpacingModifierLetters (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSpecials (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSuperscriptsandSubscripts (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSupplementalArrowsA (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSupplementalArrowsB (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSupplementalMathematicalOperators (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSupplementaryPrivateUseAreaA (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSupplementaryPrivateUseAreaB (int code); +XMLPUBFUN int XMLCALL xmlUCSIsSyriac (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTagalog (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTagbanwa (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTags (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTaiLe (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTaiXuanJingSymbols (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTamil (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTelugu (int code); +XMLPUBFUN int XMLCALL xmlUCSIsThaana (int code); +XMLPUBFUN int XMLCALL xmlUCSIsThai (int code); +XMLPUBFUN int XMLCALL xmlUCSIsTibetan (int code); +XMLPUBFUN int XMLCALL xmlUCSIsUgaritic (int code); +XMLPUBFUN int XMLCALL xmlUCSIsUnifiedCanadianAboriginalSyllabics (int code); +XMLPUBFUN int XMLCALL xmlUCSIsVariationSelectors (int code); +XMLPUBFUN int XMLCALL xmlUCSIsVariationSelectorsSupplement (int code); +XMLPUBFUN int XMLCALL xmlUCSIsYiRadicals (int code); +XMLPUBFUN int XMLCALL xmlUCSIsYiSyllables (int code); +XMLPUBFUN int XMLCALL xmlUCSIsYijingHexagramSymbols (int code); + +XMLPUBFUN int XMLCALL xmlUCSIsBlock (int code, const char *block); + +XMLPUBFUN int XMLCALL xmlUCSIsCatC (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatCc (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatCf (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatCo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatCs (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatL (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatLl (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatLm (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatLo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatLt (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatLu (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatM (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatMc (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatMe (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatMn (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatN (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatNd (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatNl (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatNo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatP (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatPc (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatPd (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatPe (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatPf (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatPi (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatPo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatPs (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatS (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatSc (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatSk (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatSm (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatSo (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatZ (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatZl (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatZp (int code); +XMLPUBFUN int XMLCALL xmlUCSIsCatZs (int code); + +XMLPUBFUN int XMLCALL xmlUCSIsCat (int code, const char *cat); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_UNICODE_ENABLED */ + +#endif /* __XML_UNICODE_H__ */ diff --git a/external-libs/libxml2/include/libxml/xmlversion.h b/external-libs/libxml2/include/libxml/xmlversion.h new file mode 100644 index 0000000..194cdff --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlversion.h @@ -0,0 +1,406 @@ +/* + * Summary: compile-time version informations + * Description: compile-time version informations for the XML library + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_VERSION_H__ +#define __XML_VERSION_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * use those to be sure nothing nasty will happen if + * your library and includes mismatch + */ +#ifndef LIBXML2_COMPILING_MSCCDEF +XMLPUBFUN void XMLCALL xmlCheckVersion(int version); +#endif /* LIBXML2_COMPILING_MSCCDEF */ + +/** + * LIBXML_DOTTED_VERSION: + * + * the version string like "1.2.3" + */ +#define LIBXML_DOTTED_VERSION "2.6.32" + +/** + * LIBXML_VERSION: + * + * the version number: 1.2.3 value is 10203 + */ +#define LIBXML_VERSION 20632 + +/** + * LIBXML_VERSION_STRING: + * + * the version number string, 1.2.3 value is "10203" + */ +#define LIBXML_VERSION_STRING "20632" + +/** + * LIBXML_VERSION_EXTRA: + * + * extra version information, used to show a CVS compilation + */ +#define LIBXML_VERSION_EXTRA "" + +/** + * LIBXML_TEST_VERSION: + * + * Macro to check that the libxml version in use is compatible with + * the version the software has been compiled against + */ +#define LIBXML_TEST_VERSION xmlCheckVersion(20632); + +#ifndef VMS +#if 0 +/** + * WITH_TRIO: + * + * defined if the trio support need to be configured in + */ +#define WITH_TRIO +#else +/** + * WITHOUT_TRIO: + * + * defined if the trio support should not be configured in + */ +#define WITHOUT_TRIO +#endif +#else /* VMS */ +/** + * WITH_TRIO: + * + * defined if the trio support need to be configured in + */ +#define WITH_TRIO 1 +#endif /* VMS */ + +/** + * LIBXML_THREAD_ENABLED: + * + * Whether the thread support is configured in + */ +#if 0 +#if defined(_REENTRANT) || defined(__MT__) || \ + (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L)) +#define LIBXML_THREAD_ENABLED +#endif +#endif + +/** + * LIBXML_TREE_ENABLED: + * + * Whether the DOM like tree manipulation API support is configured in + */ +#if 1 +#define LIBXML_TREE_ENABLED +#endif + +/** + * LIBXML_OUTPUT_ENABLED: + * + * Whether the serialization/saving support is configured in + */ +#if 1 +#define LIBXML_OUTPUT_ENABLED +#endif + +/** + * LIBXML_PUSH_ENABLED: + * + * Whether the push parsing interfaces are configured in + */ +#if 1 +#define LIBXML_PUSH_ENABLED +#endif + +/** + * LIBXML_READER_ENABLED: + * + * Whether the xmlReader parsing interface is configured in + */ +#if 1 +#define LIBXML_READER_ENABLED +#endif + +/** + * LIBXML_PATTERN_ENABLED: + * + * Whether the xmlPattern node selection interface is configured in + */ +#if 1 +#define LIBXML_PATTERN_ENABLED +#endif + +/** + * LIBXML_WRITER_ENABLED: + * + * Whether the xmlWriter saving interface is configured in + */ +#if 1 +#define LIBXML_WRITER_ENABLED +#endif + +/** + * LIBXML_SAX1_ENABLED: + * + * Whether the older SAX1 interface is configured in + */ +#if 1 +#define LIBXML_SAX1_ENABLED +#endif + +/** + * LIBXML_FTP_ENABLED: + * + * Whether the FTP support is configured in + */ +#if 1 +#define LIBXML_FTP_ENABLED +#endif + +/** + * LIBXML_HTTP_ENABLED: + * + * Whether the HTTP support is configured in + */ +#if 1 +#define LIBXML_HTTP_ENABLED +#endif + +/** + * LIBXML_VALID_ENABLED: + * + * Whether the DTD validation support is configured in + */ +#if 1 +#define LIBXML_VALID_ENABLED +#endif + +/** + * LIBXML_HTML_ENABLED: + * + * Whether the HTML support is configured in + */ +#if 1 +#define LIBXML_HTML_ENABLED +#endif + +/** + * LIBXML_LEGACY_ENABLED: + * + * Whether the deprecated APIs are compiled in for compatibility + */ +#if 1 +#define LIBXML_LEGACY_ENABLED +#endif + +/** + * LIBXML_C14N_ENABLED: + * + * Whether the Canonicalization support is configured in + */ +#if 1 +#define LIBXML_C14N_ENABLED +#endif + +/** + * LIBXML_CATALOG_ENABLED: + * + * Whether the Catalog support is configured in + */ +#if 1 +#define LIBXML_CATALOG_ENABLED +#endif + +/** + * LIBXML_DOCB_ENABLED: + * + * Whether the SGML Docbook support is configured in + */ +#if 1 +#define LIBXML_DOCB_ENABLED +#endif + +/** + * LIBXML_XPATH_ENABLED: + * + * Whether XPath is configured in + */ +#if 1 +#define LIBXML_XPATH_ENABLED +#endif + +/** + * LIBXML_XPTR_ENABLED: + * + * Whether XPointer is configured in + */ +#if 1 +#define LIBXML_XPTR_ENABLED +#endif + +/** + * LIBXML_XINCLUDE_ENABLED: + * + * Whether XInclude is configured in + */ +#if 1 +#define LIBXML_XINCLUDE_ENABLED +#endif + +/** + * LIBXML_ICONV_ENABLED: + * + * Whether iconv support is available + */ +#if 0 +#define LIBXML_ICONV_ENABLED +#endif + +/** + * LIBXML_ISO8859X_ENABLED: + * + * Whether ISO-8859-* support is made available in case iconv is not + */ +#if 1 +#define LIBXML_ISO8859X_ENABLED +#endif + +/** + * LIBXML_DEBUG_ENABLED: + * + * Whether Debugging module is configured in + */ +#if 1 +#define LIBXML_DEBUG_ENABLED +#endif + +/** + * DEBUG_MEMORY_LOCATION: + * + * Whether the memory debugging is configured in + */ +#if 0 +#define DEBUG_MEMORY_LOCATION +#endif + +/** + * LIBXML_DEBUG_RUNTIME: + * + * Whether the runtime debugging is configured in + */ +#if 0 +#define LIBXML_DEBUG_RUNTIME +#endif + +/** + * LIBXML_UNICODE_ENABLED: + * + * Whether the Unicode related interfaces are compiled in + */ +#if 1 +#define LIBXML_UNICODE_ENABLED +#endif + +/** + * LIBXML_REGEXP_ENABLED: + * + * Whether the regular expressions interfaces are compiled in + */ +#if 1 +#define LIBXML_REGEXP_ENABLED +#endif + +/** + * LIBXML_AUTOMATA_ENABLED: + * + * Whether the automata interfaces are compiled in + */ +#if 1 +#define LIBXML_AUTOMATA_ENABLED +#endif + +/** + * LIBXML_EXPR_ENABLED: + * + * Whether the formal expressions interfaces are compiled in + */ +#if 1 +#define LIBXML_EXPR_ENABLED +#endif + +/** + * LIBXML_SCHEMAS_ENABLED: + * + * Whether the Schemas validation interfaces are compiled in + */ +#if 1 +#define LIBXML_SCHEMAS_ENABLED +#endif + +/** + * LIBXML_SCHEMATRON_ENABLED: + * + * Whether the Schematron validation interfaces are compiled in + */ +#if 1 +#define LIBXML_SCHEMATRON_ENABLED +#endif + +/** + * LIBXML_MODULES_ENABLED: + * + * Whether the module interfaces are compiled in + */ +#if 0 +#define LIBXML_MODULES_ENABLED +/** + * LIBXML_MODULE_EXTENSION: + * + * the string suffix used by dynamic modules (usually shared libraries) + */ +#define LIBXML_MODULE_EXTENSION ".dll" +#endif + +/** + * LIBXML_ZLIB_ENABLED: + * + * Whether the Zlib support is compiled in + */ +#if 1 +#define LIBXML_ZLIB_ENABLED +#endif + +/** + * ATTRIBUTE_UNUSED: + * + * Macro used to signal to GCC unused function parameters + */ +#ifdef __GNUC__ +#ifdef HAVE_ANSIDECL_H +#include +#endif +#ifndef ATTRIBUTE_UNUSED +#define ATTRIBUTE_UNUSED __attribute__((unused)) +#endif +#else +#define ATTRIBUTE_UNUSED +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif + + diff --git a/external-libs/libxml2/include/libxml/xmlversion.h.in b/external-libs/libxml2/include/libxml/xmlversion.h.in new file mode 100644 index 0000000..29cef74 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlversion.h.in @@ -0,0 +1,406 @@ +/* + * Summary: compile-time version informations + * Description: compile-time version informations for the XML library + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_VERSION_H__ +#define __XML_VERSION_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * use those to be sure nothing nasty will happen if + * your library and includes mismatch + */ +#ifndef LIBXML2_COMPILING_MSCCDEF +XMLPUBFUN void XMLCALL xmlCheckVersion(int version); +#endif /* LIBXML2_COMPILING_MSCCDEF */ + +/** + * LIBXML_DOTTED_VERSION: + * + * the version string like "1.2.3" + */ +#define LIBXML_DOTTED_VERSION "@VERSION@" + +/** + * LIBXML_VERSION: + * + * the version number: 1.2.3 value is 10203 + */ +#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@ + +/** + * LIBXML_VERSION_STRING: + * + * the version number string, 1.2.3 value is "10203" + */ +#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@" + +/** + * LIBXML_VERSION_EXTRA: + * + * extra version information, used to show a CVS compilation + */ +#define LIBXML_VERSION_EXTRA "@LIBXML_VERSION_EXTRA@" + +/** + * LIBXML_TEST_VERSION: + * + * Macro to check that the libxml version in use is compatible with + * the version the software has been compiled against + */ +#define LIBXML_TEST_VERSION xmlCheckVersion(@LIBXML_VERSION_NUMBER@); + +#ifndef VMS +#if @WITH_TRIO@ +/** + * WITH_TRIO: + * + * defined if the trio support need to be configured in + */ +#define WITH_TRIO +#else +/** + * WITHOUT_TRIO: + * + * defined if the trio support should not be configured in + */ +#define WITHOUT_TRIO +#endif +#else /* VMS */ +/** + * WITH_TRIO: + * + * defined if the trio support need to be configured in + */ +#define WITH_TRIO 1 +#endif /* VMS */ + +/** + * LIBXML_THREAD_ENABLED: + * + * Whether the thread support is configured in + */ +#if @WITH_THREADS@ +#if defined(_REENTRANT) || defined(__MT__) || \ + (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L)) +#define LIBXML_THREAD_ENABLED +#endif +#endif + +/** + * LIBXML_TREE_ENABLED: + * + * Whether the DOM like tree manipulation API support is configured in + */ +#if @WITH_TREE@ +#define LIBXML_TREE_ENABLED +#endif + +/** + * LIBXML_OUTPUT_ENABLED: + * + * Whether the serialization/saving support is configured in + */ +#if @WITH_OUTPUT@ +#define LIBXML_OUTPUT_ENABLED +#endif + +/** + * LIBXML_PUSH_ENABLED: + * + * Whether the push parsing interfaces are configured in + */ +#if @WITH_PUSH@ +#define LIBXML_PUSH_ENABLED +#endif + +/** + * LIBXML_READER_ENABLED: + * + * Whether the xmlReader parsing interface is configured in + */ +#if @WITH_READER@ +#define LIBXML_READER_ENABLED +#endif + +/** + * LIBXML_PATTERN_ENABLED: + * + * Whether the xmlPattern node selection interface is configured in + */ +#if @WITH_PATTERN@ +#define LIBXML_PATTERN_ENABLED +#endif + +/** + * LIBXML_WRITER_ENABLED: + * + * Whether the xmlWriter saving interface is configured in + */ +#if @WITH_WRITER@ +#define LIBXML_WRITER_ENABLED +#endif + +/** + * LIBXML_SAX1_ENABLED: + * + * Whether the older SAX1 interface is configured in + */ +#if @WITH_SAX1@ +#define LIBXML_SAX1_ENABLED +#endif + +/** + * LIBXML_FTP_ENABLED: + * + * Whether the FTP support is configured in + */ +#if @WITH_FTP@ +#define LIBXML_FTP_ENABLED +#endif + +/** + * LIBXML_HTTP_ENABLED: + * + * Whether the HTTP support is configured in + */ +#if @WITH_HTTP@ +#define LIBXML_HTTP_ENABLED +#endif + +/** + * LIBXML_VALID_ENABLED: + * + * Whether the DTD validation support is configured in + */ +#if @WITH_VALID@ +#define LIBXML_VALID_ENABLED +#endif + +/** + * LIBXML_HTML_ENABLED: + * + * Whether the HTML support is configured in + */ +#if @WITH_HTML@ +#define LIBXML_HTML_ENABLED +#endif + +/** + * LIBXML_LEGACY_ENABLED: + * + * Whether the deprecated APIs are compiled in for compatibility + */ +#if @WITH_LEGACY@ +#define LIBXML_LEGACY_ENABLED +#endif + +/** + * LIBXML_C14N_ENABLED: + * + * Whether the Canonicalization support is configured in + */ +#if @WITH_C14N@ +#define LIBXML_C14N_ENABLED +#endif + +/** + * LIBXML_CATALOG_ENABLED: + * + * Whether the Catalog support is configured in + */ +#if @WITH_CATALOG@ +#define LIBXML_CATALOG_ENABLED +#endif + +/** + * LIBXML_DOCB_ENABLED: + * + * Whether the SGML Docbook support is configured in + */ +#if @WITH_DOCB@ +#define LIBXML_DOCB_ENABLED +#endif + +/** + * LIBXML_XPATH_ENABLED: + * + * Whether XPath is configured in + */ +#if @WITH_XPATH@ +#define LIBXML_XPATH_ENABLED +#endif + +/** + * LIBXML_XPTR_ENABLED: + * + * Whether XPointer is configured in + */ +#if @WITH_XPTR@ +#define LIBXML_XPTR_ENABLED +#endif + +/** + * LIBXML_XINCLUDE_ENABLED: + * + * Whether XInclude is configured in + */ +#if @WITH_XINCLUDE@ +#define LIBXML_XINCLUDE_ENABLED +#endif + +/** + * LIBXML_ICONV_ENABLED: + * + * Whether iconv support is available + */ +#if @WITH_ICONV@ +#define LIBXML_ICONV_ENABLED +#endif + +/** + * LIBXML_ISO8859X_ENABLED: + * + * Whether ISO-8859-* support is made available in case iconv is not + */ +#if @WITH_ISO8859X@ +#define LIBXML_ISO8859X_ENABLED +#endif + +/** + * LIBXML_DEBUG_ENABLED: + * + * Whether Debugging module is configured in + */ +#if @WITH_DEBUG@ +#define LIBXML_DEBUG_ENABLED +#endif + +/** + * DEBUG_MEMORY_LOCATION: + * + * Whether the memory debugging is configured in + */ +#if @WITH_MEM_DEBUG@ +#define DEBUG_MEMORY_LOCATION +#endif + +/** + * LIBXML_DEBUG_RUNTIME: + * + * Whether the runtime debugging is configured in + */ +#if @WITH_RUN_DEBUG@ +#define LIBXML_DEBUG_RUNTIME +#endif + +/** + * LIBXML_UNICODE_ENABLED: + * + * Whether the Unicode related interfaces are compiled in + */ +#if @WITH_REGEXPS@ +#define LIBXML_UNICODE_ENABLED +#endif + +/** + * LIBXML_REGEXP_ENABLED: + * + * Whether the regular expressions interfaces are compiled in + */ +#if @WITH_REGEXPS@ +#define LIBXML_REGEXP_ENABLED +#endif + +/** + * LIBXML_AUTOMATA_ENABLED: + * + * Whether the automata interfaces are compiled in + */ +#if @WITH_REGEXPS@ +#define LIBXML_AUTOMATA_ENABLED +#endif + +/** + * LIBXML_EXPR_ENABLED: + * + * Whether the formal expressions interfaces are compiled in + */ +#if @WITH_SCHEMAS@ +#define LIBXML_EXPR_ENABLED +#endif + +/** + * LIBXML_SCHEMAS_ENABLED: + * + * Whether the Schemas validation interfaces are compiled in + */ +#if @WITH_SCHEMAS@ +#define LIBXML_SCHEMAS_ENABLED +#endif + +/** + * LIBXML_SCHEMATRON_ENABLED: + * + * Whether the Schematron validation interfaces are compiled in + */ +#if @WITH_SCHEMATRON@ +#define LIBXML_SCHEMATRON_ENABLED +#endif + +/** + * LIBXML_MODULES_ENABLED: + * + * Whether the module interfaces are compiled in + */ +#if @WITH_MODULES@ +#define LIBXML_MODULES_ENABLED +/** + * LIBXML_MODULE_EXTENSION: + * + * the string suffix used by dynamic modules (usually shared libraries) + */ +#define LIBXML_MODULE_EXTENSION "@MODULE_EXTENSION@" +#endif + +/** + * LIBXML_ZLIB_ENABLED: + * + * Whether the Zlib support is compiled in + */ +#if @WITH_ZLIB@ +#define LIBXML_ZLIB_ENABLED +#endif + +/** + * ATTRIBUTE_UNUSED: + * + * Macro used to signal to GCC unused function parameters + */ +#ifdef __GNUC__ +#ifdef HAVE_ANSIDECL_H +#include +#endif +#ifndef ATTRIBUTE_UNUSED +#define ATTRIBUTE_UNUSED __attribute__((unused)) +#endif +#else +#define ATTRIBUTE_UNUSED +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif + + diff --git a/external-libs/libxml2/include/libxml/xmlwriter.h b/external-libs/libxml2/include/libxml/xmlwriter.h new file mode 100644 index 0000000..31ceb5f --- /dev/null +++ b/external-libs/libxml2/include/libxml/xmlwriter.h @@ -0,0 +1,459 @@ + +/* + * Summary: text writing API for XML + * Description: text writing API for XML + * + * Copy: See Copyright for the status of this software. + * + * Author: Alfred Mickautsch + */ + +#ifndef __XML_XMLWRITER_H__ +#define __XML_XMLWRITER_H__ + +#include + +#ifdef LIBXML_WRITER_ENABLED + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + typedef struct _xmlTextWriter xmlTextWriter; + typedef xmlTextWriter *xmlTextWriterPtr; + +/* + * Constructors & Destructor + */ + XMLPUBFUN xmlTextWriterPtr XMLCALL + xmlNewTextWriter(xmlOutputBufferPtr out); + XMLPUBFUN xmlTextWriterPtr XMLCALL + xmlNewTextWriterFilename(const char *uri, int compression); + XMLPUBFUN xmlTextWriterPtr XMLCALL + xmlNewTextWriterMemory(xmlBufferPtr buf, int compression); + XMLPUBFUN xmlTextWriterPtr XMLCALL + xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression); + XMLPUBFUN xmlTextWriterPtr XMLCALL + xmlNewTextWriterDoc(xmlDocPtr * doc, int compression); + XMLPUBFUN xmlTextWriterPtr XMLCALL + xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node, + int compression); + XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer); + +/* + * Functions + */ + + +/* + * Document + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartDocument(xmlTextWriterPtr writer, + const char *version, + const char *encoding, + const char *standalone); + XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr + writer); + +/* + * Comments + */ + XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr + writer); + XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr + writer, + const xmlChar * + content); + +/* + * Elements + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartElement(xmlTextWriterPtr writer, + const xmlChar * name); + XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr + writer, + const xmlChar * + prefix, + const xmlChar * name, + const xmlChar * + namespaceURI); + XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer); + XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr + writer); + +/* + * Elements conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr + writer, + const xmlChar * name, + const xmlChar * + content); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer, + const xmlChar * prefix, + const xmlChar * name, + const xmlChar * namespaceURI, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer, + const xmlChar * prefix, + const xmlChar * name, + const xmlChar * namespaceURI, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr + writer, + const xmlChar * + prefix, + const xmlChar * name, + const xmlChar * + namespaceURI, + const xmlChar * + content); + +/* + * Text + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer, + const char *format, va_list argptr); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteRawLen(xmlTextWriterPtr writer, + const xmlChar * content, int len); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteRaw(xmlTextWriterPtr writer, + const xmlChar * content); + XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr + writer, + const char + *format, ...); + XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr + writer, + const char + *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer, + const xmlChar * + content); + XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer, + const char *data, + int start, int len); + XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer, + const char *data, + int start, int len); + +/* + * Attributes + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartAttribute(xmlTextWriterPtr writer, + const xmlChar * name); + XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr + writer, + const xmlChar * + prefix, + const xmlChar * + name, + const xmlChar * + namespaceURI); + XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr + writer); + +/* + * Attributes conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr + writer, + const xmlChar * name, + const xmlChar * + content); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer, + const xmlChar * prefix, + const xmlChar * name, + const xmlChar * namespaceURI, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer, + const xmlChar * prefix, + const xmlChar * name, + const xmlChar * namespaceURI, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr + writer, + const xmlChar * + prefix, + const xmlChar * + name, + const xmlChar * + namespaceURI, + const xmlChar * + content); + +/* + * PI's + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartPI(xmlTextWriterPtr writer, + const xmlChar * target); + XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer); + +/* + * PI conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer, + const xmlChar * target, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer, + const xmlChar * target, + const char *format, va_list argptr); + XMLPUBFUN int XMLCALL + xmlTextWriterWritePI(xmlTextWriterPtr writer, + const xmlChar * target, + const xmlChar * content); + +/** + * xmlTextWriterWriteProcessingInstruction: + * + * This macro maps to xmlTextWriterWritePI + */ +#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI + +/* + * CDATA + */ + XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer); + XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer); + +/* + * CDATA conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer, + const char *format, va_list argptr); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteCDATA(xmlTextWriterPtr writer, + const xmlChar * content); + +/* + * DTD + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartDTD(xmlTextWriterPtr writer, + const xmlChar * name, + const xmlChar * pubid, + const xmlChar * sysid); + XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer); + +/* + * DTD conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer, + const xmlChar * name, + const xmlChar * pubid, + const xmlChar * sysid, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer, + const xmlChar * name, + const xmlChar * pubid, + const xmlChar * sysid, + const char *format, va_list argptr); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteDTD(xmlTextWriterPtr writer, + const xmlChar * name, + const xmlChar * pubid, + const xmlChar * sysid, + const xmlChar * subset); + +/** + * xmlTextWriterWriteDocType: + * + * this macro maps to xmlTextWriterWriteDTD + */ +#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD + +/* + * DTD element definition + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartDTDElement(xmlTextWriterPtr writer, + const xmlChar * name); + XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr + writer); + +/* + * DTD element definition conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr + writer, + const xmlChar * + name, + const xmlChar * + content); + +/* + * DTD attribute list definition + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer, + const xmlChar * name); + XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr + writer); + +/* + * DTD attribute list definition conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer, + const xmlChar * name, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr + writer, + const xmlChar * + name, + const xmlChar * + content); + +/* + * DTD entity definition + */ + XMLPUBFUN int XMLCALL + xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer, + int pe, const xmlChar * name); + XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr + writer); + +/* + * DTD entity definition conveniency functions + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer, + int pe, + const xmlChar * name, + const char *format, ...); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer, + int pe, + const xmlChar * name, + const char *format, + va_list argptr); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer, + int pe, + const xmlChar * name, + const xmlChar * content); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer, + int pe, + const xmlChar * name, + const xmlChar * pubid, + const xmlChar * sysid, + const xmlChar * ndataid); + XMLPUBFUN int XMLCALL + xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr + writer, + const xmlChar * pubid, + const xmlChar * sysid, + const xmlChar * + ndataid); + XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr + writer, int pe, + const xmlChar * name, + const xmlChar * + pubid, + const xmlChar * + sysid, + const xmlChar * + ndataid, + const xmlChar * + content); + +/* + * DTD notation definition + */ + XMLPUBFUN int XMLCALL + xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer, + const xmlChar * name, + const xmlChar * pubid, + const xmlChar * sysid); + +/* + * Indentation + */ + XMLPUBFUN int XMLCALL + xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent); + XMLPUBFUN int XMLCALL + xmlTextWriterSetIndentString(xmlTextWriterPtr writer, + const xmlChar * str); + +/* + * misc + */ + XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_WRITER_ENABLED */ + +#endif /* __XML_XMLWRITER_H__ */ diff --git a/external-libs/libxml2/include/libxml/xpath.h b/external-libs/libxml2/include/libxml/xpath.h new file mode 100644 index 0000000..1a9e30e --- /dev/null +++ b/external-libs/libxml2/include/libxml/xpath.h @@ -0,0 +1,546 @@ +/* + * Summary: XML Path Language implementation + * Description: API for the XML Path Language implementation + * + * XML Path Language implementation + * XPath is a language for addressing parts of an XML document, + * designed to be used by both XSLT and XPointer + * http://www.w3.org/TR/xpath + * + * Implements + * W3C Recommendation 16 November 1999 + * http://www.w3.org/TR/1999/REC-xpath-19991116 + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_XPATH_H__ +#define __XML_XPATH_H__ + +#include + +#ifdef LIBXML_XPATH_ENABLED + +#include +#include +#include +#endif /* LIBXML_XPATH_ENABLED */ + +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +#ifdef __cplusplus +extern "C" { +#endif +#endif /* LIBXML_XPATH_ENABLED or LIBXML_SCHEMAS_ENABLED */ + +#ifdef LIBXML_XPATH_ENABLED + +typedef struct _xmlXPathContext xmlXPathContext; +typedef xmlXPathContext *xmlXPathContextPtr; +typedef struct _xmlXPathParserContext xmlXPathParserContext; +typedef xmlXPathParserContext *xmlXPathParserContextPtr; + +/** + * The set of XPath error codes. + */ + +typedef enum { + XPATH_EXPRESSION_OK = 0, + XPATH_NUMBER_ERROR, + XPATH_UNFINISHED_LITERAL_ERROR, + XPATH_START_LITERAL_ERROR, + XPATH_VARIABLE_REF_ERROR, + XPATH_UNDEF_VARIABLE_ERROR, + XPATH_INVALID_PREDICATE_ERROR, + XPATH_EXPR_ERROR, + XPATH_UNCLOSED_ERROR, + XPATH_UNKNOWN_FUNC_ERROR, + XPATH_INVALID_OPERAND, + XPATH_INVALID_TYPE, + XPATH_INVALID_ARITY, + XPATH_INVALID_CTXT_SIZE, + XPATH_INVALID_CTXT_POSITION, + XPATH_MEMORY_ERROR, + XPTR_SYNTAX_ERROR, + XPTR_RESOURCE_ERROR, + XPTR_SUB_RESOURCE_ERROR, + XPATH_UNDEF_PREFIX_ERROR, + XPATH_ENCODING_ERROR, + XPATH_INVALID_CHAR_ERROR, + XPATH_INVALID_CTXT +} xmlXPathError; + +/* + * A node-set (an unordered collection of nodes without duplicates). + */ +typedef struct _xmlNodeSet xmlNodeSet; +typedef xmlNodeSet *xmlNodeSetPtr; +struct _xmlNodeSet { + int nodeNr; /* number of nodes in the set */ + int nodeMax; /* size of the array as allocated */ + xmlNodePtr *nodeTab; /* array of nodes in no particular order */ + /* @@ with_ns to check wether namespace nodes should be looked at @@ */ +}; + +/* + * An expression is evaluated to yield an object, which + * has one of the following four basic types: + * - node-set + * - boolean + * - number + * - string + * + * @@ XPointer will add more types ! + */ + +typedef enum { + XPATH_UNDEFINED = 0, + XPATH_NODESET = 1, + XPATH_BOOLEAN = 2, + XPATH_NUMBER = 3, + XPATH_STRING = 4, + XPATH_POINT = 5, + XPATH_RANGE = 6, + XPATH_LOCATIONSET = 7, + XPATH_USERS = 8, + XPATH_XSLT_TREE = 9 /* An XSLT value tree, non modifiable */ +} xmlXPathObjectType; + +typedef struct _xmlXPathObject xmlXPathObject; +typedef xmlXPathObject *xmlXPathObjectPtr; +struct _xmlXPathObject { + xmlXPathObjectType type; + xmlNodeSetPtr nodesetval; + int boolval; + double floatval; + xmlChar *stringval; + void *user; + int index; + void *user2; + int index2; +}; + +/** + * xmlXPathConvertFunc: + * @obj: an XPath object + * @type: the number of the target type + * + * A conversion function is associated to a type and used to cast + * the new type to primitive values. + * + * Returns -1 in case of error, 0 otherwise + */ +typedef int (*xmlXPathConvertFunc) (xmlXPathObjectPtr obj, int type); + +/* + * Extra type: a name and a conversion function. + */ + +typedef struct _xmlXPathType xmlXPathType; +typedef xmlXPathType *xmlXPathTypePtr; +struct _xmlXPathType { + const xmlChar *name; /* the type name */ + xmlXPathConvertFunc func; /* the conversion function */ +}; + +/* + * Extra variable: a name and a value. + */ + +typedef struct _xmlXPathVariable xmlXPathVariable; +typedef xmlXPathVariable *xmlXPathVariablePtr; +struct _xmlXPathVariable { + const xmlChar *name; /* the variable name */ + xmlXPathObjectPtr value; /* the value */ +}; + +/** + * xmlXPathEvalFunc: + * @ctxt: an XPath parser context + * @nargs: the number of arguments passed to the function + * + * An XPath evaluation function, the parameters are on the XPath context stack. + */ + +typedef void (*xmlXPathEvalFunc)(xmlXPathParserContextPtr ctxt, + int nargs); + +/* + * Extra function: a name and a evaluation function. + */ + +typedef struct _xmlXPathFunct xmlXPathFunct; +typedef xmlXPathFunct *xmlXPathFuncPtr; +struct _xmlXPathFunct { + const xmlChar *name; /* the function name */ + xmlXPathEvalFunc func; /* the evaluation function */ +}; + +/** + * xmlXPathAxisFunc: + * @ctxt: the XPath interpreter context + * @cur: the previous node being explored on that axis + * + * An axis traversal function. To traverse an axis, the engine calls + * the first time with cur == NULL and repeat until the function returns + * NULL indicating the end of the axis traversal. + * + * Returns the next node in that axis or NULL if at the end of the axis. + */ + +typedef xmlXPathObjectPtr (*xmlXPathAxisFunc) (xmlXPathParserContextPtr ctxt, + xmlXPathObjectPtr cur); + +/* + * Extra axis: a name and an axis function. + */ + +typedef struct _xmlXPathAxis xmlXPathAxis; +typedef xmlXPathAxis *xmlXPathAxisPtr; +struct _xmlXPathAxis { + const xmlChar *name; /* the axis name */ + xmlXPathAxisFunc func; /* the search function */ +}; + +/** + * xmlXPathFunction: + * @ctxt: the XPath interprestation context + * @nargs: the number of arguments + * + * An XPath function. + * The arguments (if any) are popped out from the context stack + * and the result is pushed on the stack. + */ + +typedef void (*xmlXPathFunction) (xmlXPathParserContextPtr ctxt, int nargs); + +/* + * Function and Variable Lookup. + */ + +/** + * xmlXPathVariableLookupFunc: + * @ctxt: an XPath context + * @name: name of the variable + * @ns_uri: the namespace name hosting this variable + * + * Prototype for callbacks used to plug variable lookup in the XPath + * engine. + * + * Returns the XPath object value or NULL if not found. + */ +typedef xmlXPathObjectPtr (*xmlXPathVariableLookupFunc) (void *ctxt, + const xmlChar *name, + const xmlChar *ns_uri); + +/** + * xmlXPathFuncLookupFunc: + * @ctxt: an XPath context + * @name: name of the function + * @ns_uri: the namespace name hosting this function + * + * Prototype for callbacks used to plug function lookup in the XPath + * engine. + * + * Returns the XPath function or NULL if not found. + */ +typedef xmlXPathFunction (*xmlXPathFuncLookupFunc) (void *ctxt, + const xmlChar *name, + const xmlChar *ns_uri); + +/** + * xmlXPathFlags: + * Flags for XPath engine compilation and runtime + */ +/** + * XML_XPATH_CHECKNS: + * + * check namespaces at compilation + */ +#define XML_XPATH_CHECKNS (1<<0) +/** + * XML_XPATH_NOVAR: + * + * forbid variables in expression + */ +#define XML_XPATH_NOVAR (1<<1) + +/** + * xmlXPathContext: + * + * Expression evaluation occurs with respect to a context. + * he context consists of: + * - a node (the context node) + * - a node list (the context node list) + * - a set of variable bindings + * - a function library + * - the set of namespace declarations in scope for the expression + * Following the switch to hash tables, this need to be trimmed up at + * the next binary incompatible release. + * The node may be modified when the context is passed to libxml2 + * for an XPath evaluation so you may need to initialize it again + * before the next call. + */ + +struct _xmlXPathContext { + xmlDocPtr doc; /* The current document */ + xmlNodePtr node; /* The current node */ + + int nb_variables_unused; /* unused (hash table) */ + int max_variables_unused; /* unused (hash table) */ + xmlHashTablePtr varHash; /* Hash table of defined variables */ + + int nb_types; /* number of defined types */ + int max_types; /* max number of types */ + xmlXPathTypePtr types; /* Array of defined types */ + + int nb_funcs_unused; /* unused (hash table) */ + int max_funcs_unused; /* unused (hash table) */ + xmlHashTablePtr funcHash; /* Hash table of defined funcs */ + + int nb_axis; /* number of defined axis */ + int max_axis; /* max number of axis */ + xmlXPathAxisPtr axis; /* Array of defined axis */ + + /* the namespace nodes of the context node */ + xmlNsPtr *namespaces; /* Array of namespaces */ + int nsNr; /* number of namespace in scope */ + void *user; /* function to free */ + + /* extra variables */ + int contextSize; /* the context size */ + int proximityPosition; /* the proximity position */ + + /* extra stuff for XPointer */ + int xptr; /* is this an XPointer context? */ + xmlNodePtr here; /* for here() */ + xmlNodePtr origin; /* for origin() */ + + /* the set of namespace declarations in scope for the expression */ + xmlHashTablePtr nsHash; /* The namespaces hash table */ + xmlXPathVariableLookupFunc varLookupFunc;/* variable lookup func */ + void *varLookupData; /* variable lookup data */ + + /* Possibility to link in an extra item */ + void *extra; /* needed for XSLT */ + + /* The function name and URI when calling a function */ + const xmlChar *function; + const xmlChar *functionURI; + + /* function lookup function and data */ + xmlXPathFuncLookupFunc funcLookupFunc;/* function lookup func */ + void *funcLookupData; /* function lookup data */ + + /* temporary namespace lists kept for walking the namespace axis */ + xmlNsPtr *tmpNsList; /* Array of namespaces */ + int tmpNsNr; /* number of namespaces in scope */ + + /* error reporting mechanism */ + void *userData; /* user specific data block */ + xmlStructuredErrorFunc error; /* the callback in case of errors */ + xmlError lastError; /* the last error */ + xmlNodePtr debugNode; /* the source node XSLT */ + + /* dictionary */ + xmlDictPtr dict; /* dictionary if any */ + + int flags; /* flags to control compilation */ + + /* Cache for reusal of XPath objects */ + void *cache; +}; + +/* + * The structure of a compiled expression form is not public. + */ + +typedef struct _xmlXPathCompExpr xmlXPathCompExpr; +typedef xmlXPathCompExpr *xmlXPathCompExprPtr; + +/** + * xmlXPathParserContext: + * + * An XPath parser context. It contains pure parsing informations, + * an xmlXPathContext, and the stack of objects. + */ +struct _xmlXPathParserContext { + const xmlChar *cur; /* the current char being parsed */ + const xmlChar *base; /* the full expression */ + + int error; /* error code */ + + xmlXPathContextPtr context; /* the evaluation context */ + xmlXPathObjectPtr value; /* the current value */ + int valueNr; /* number of values stacked */ + int valueMax; /* max number of values stacked */ + xmlXPathObjectPtr *valueTab; /* stack of values */ + + xmlXPathCompExprPtr comp; /* the precompiled expression */ + int xptr; /* it this an XPointer expression */ + xmlNodePtr ancestor; /* used for walking preceding axis */ +}; + +/************************************************************************ + * * + * Public API * + * * + ************************************************************************/ + +/** + * Objects and Nodesets handling + */ + +XMLPUBVAR double xmlXPathNAN; +XMLPUBVAR double xmlXPathPINF; +XMLPUBVAR double xmlXPathNINF; + +/* These macros may later turn into functions */ +/** + * xmlXPathNodeSetGetLength: + * @ns: a node-set + * + * Implement a functionality similar to the DOM NodeList.length. + * + * Returns the number of nodes in the node-set. + */ +#define xmlXPathNodeSetGetLength(ns) ((ns) ? (ns)->nodeNr : 0) +/** + * xmlXPathNodeSetItem: + * @ns: a node-set + * @index: index of a node in the set + * + * Implements a functionality similar to the DOM NodeList.item(). + * + * Returns the xmlNodePtr at the given @index in @ns or NULL if + * @index is out of range (0 to length-1) + */ +#define xmlXPathNodeSetItem(ns, index) \ + ((((ns) != NULL) && \ + ((index) >= 0) && ((index) < (ns)->nodeNr)) ? \ + (ns)->nodeTab[(index)] \ + : NULL) +/** + * xmlXPathNodeSetIsEmpty: + * @ns: a node-set + * + * Checks whether @ns is empty or not. + * + * Returns %TRUE if @ns is an empty node-set. + */ +#define xmlXPathNodeSetIsEmpty(ns) \ + (((ns) == NULL) || ((ns)->nodeNr == 0) || ((ns)->nodeTab == NULL)) + + +XMLPUBFUN void XMLCALL + xmlXPathFreeObject (xmlXPathObjectPtr obj); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathNodeSetCreate (xmlNodePtr val); +XMLPUBFUN void XMLCALL + xmlXPathFreeNodeSetList (xmlXPathObjectPtr obj); +XMLPUBFUN void XMLCALL + xmlXPathFreeNodeSet (xmlNodeSetPtr obj); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathObjectCopy (xmlXPathObjectPtr val); +XMLPUBFUN int XMLCALL + xmlXPathCmpNodes (xmlNodePtr node1, + xmlNodePtr node2); +/** + * Conversion functions to basic types. + */ +XMLPUBFUN int XMLCALL + xmlXPathCastNumberToBoolean (double val); +XMLPUBFUN int XMLCALL + xmlXPathCastStringToBoolean (const xmlChar * val); +XMLPUBFUN int XMLCALL + xmlXPathCastNodeSetToBoolean(xmlNodeSetPtr ns); +XMLPUBFUN int XMLCALL + xmlXPathCastToBoolean (xmlXPathObjectPtr val); + +XMLPUBFUN double XMLCALL + xmlXPathCastBooleanToNumber (int val); +XMLPUBFUN double XMLCALL + xmlXPathCastStringToNumber (const xmlChar * val); +XMLPUBFUN double XMLCALL + xmlXPathCastNodeToNumber (xmlNodePtr node); +XMLPUBFUN double XMLCALL + xmlXPathCastNodeSetToNumber (xmlNodeSetPtr ns); +XMLPUBFUN double XMLCALL + xmlXPathCastToNumber (xmlXPathObjectPtr val); + +XMLPUBFUN xmlChar * XMLCALL + xmlXPathCastBooleanToString (int val); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathCastNumberToString (double val); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathCastNodeToString (xmlNodePtr node); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathCastNodeSetToString (xmlNodeSetPtr ns); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathCastToString (xmlXPathObjectPtr val); + +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathConvertBoolean (xmlXPathObjectPtr val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathConvertNumber (xmlXPathObjectPtr val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathConvertString (xmlXPathObjectPtr val); + +/** + * Context handling. + */ +XMLPUBFUN xmlXPathContextPtr XMLCALL + xmlXPathNewContext (xmlDocPtr doc); +XMLPUBFUN void XMLCALL + xmlXPathFreeContext (xmlXPathContextPtr ctxt); +XMLPUBFUN int XMLCALL + xmlXPathContextSetCache(xmlXPathContextPtr ctxt, + int active, + int value, + int options); +/** + * Evaluation functions. + */ +XMLPUBFUN long XMLCALL + xmlXPathOrderDocElems (xmlDocPtr doc); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathEval (const xmlChar *str, + xmlXPathContextPtr ctx); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathEvalExpression (const xmlChar *str, + xmlXPathContextPtr ctxt); +XMLPUBFUN int XMLCALL + xmlXPathEvalPredicate (xmlXPathContextPtr ctxt, + xmlXPathObjectPtr res); +/** + * Separate compilation/evaluation entry points. + */ +XMLPUBFUN xmlXPathCompExprPtr XMLCALL + xmlXPathCompile (const xmlChar *str); +XMLPUBFUN xmlXPathCompExprPtr XMLCALL + xmlXPathCtxtCompile (xmlXPathContextPtr ctxt, + const xmlChar *str); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathCompiledEval (xmlXPathCompExprPtr comp, + xmlXPathContextPtr ctx); +XMLPUBFUN int XMLCALL + xmlXPathCompiledEvalToBoolean(xmlXPathCompExprPtr comp, + xmlXPathContextPtr ctxt); +XMLPUBFUN void XMLCALL + xmlXPathFreeCompExpr (xmlXPathCompExprPtr comp); +#endif /* LIBXML_XPATH_ENABLED */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +XMLPUBFUN void XMLCALL + xmlXPathInit (void); +XMLPUBFUN int XMLCALL + xmlXPathIsNaN (double val); +XMLPUBFUN int XMLCALL + xmlXPathIsInf (double val); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_XPATH_ENABLED or LIBXML_SCHEMAS_ENABLED*/ +#endif /* ! __XML_XPATH_H__ */ diff --git a/external-libs/libxml2/include/libxml/xpathInternals.h b/external-libs/libxml2/include/libxml/xpathInternals.h new file mode 100644 index 0000000..dcd5243 --- /dev/null +++ b/external-libs/libxml2/include/libxml/xpathInternals.h @@ -0,0 +1,630 @@ +/* + * Summary: internal interfaces for XML Path Language implementation + * Description: internal interfaces for XML Path Language implementation + * used to build new modules on top of XPath like XPointer and + * XSLT + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_XPATH_INTERNALS_H__ +#define __XML_XPATH_INTERNALS_H__ + +#include +#include + +#ifdef LIBXML_XPATH_ENABLED + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************ + * * + * Helpers * + * * + ************************************************************************/ + +/* + * Many of these macros may later turn into functions. They + * shouldn't be used in #ifdef's preprocessor instructions. + */ +/** + * xmlXPathSetError: + * @ctxt: an XPath parser context + * @err: an xmlXPathError code + * + * Raises an error. + */ +#define xmlXPathSetError(ctxt, err) \ + { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \ + if ((ctxt) != NULL) (ctxt)->error = (err); } + +/** + * xmlXPathSetArityError: + * @ctxt: an XPath parser context + * + * Raises an XPATH_INVALID_ARITY error. + */ +#define xmlXPathSetArityError(ctxt) \ + xmlXPathSetError((ctxt), XPATH_INVALID_ARITY) + +/** + * xmlXPathSetTypeError: + * @ctxt: an XPath parser context + * + * Raises an XPATH_INVALID_TYPE error. + */ +#define xmlXPathSetTypeError(ctxt) \ + xmlXPathSetError((ctxt), XPATH_INVALID_TYPE) + +/** + * xmlXPathGetError: + * @ctxt: an XPath parser context + * + * Get the error code of an XPath context. + * + * Returns the context error. + */ +#define xmlXPathGetError(ctxt) ((ctxt)->error) + +/** + * xmlXPathCheckError: + * @ctxt: an XPath parser context + * + * Check if an XPath error was raised. + * + * Returns true if an error has been raised, false otherwise. + */ +#define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK) + +/** + * xmlXPathGetDocument: + * @ctxt: an XPath parser context + * + * Get the document of an XPath context. + * + * Returns the context document. + */ +#define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc) + +/** + * xmlXPathGetContextNode: + * @ctxt: an XPath parser context + * + * Get the context node of an XPath context. + * + * Returns the context node. + */ +#define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node) + +XMLPUBFUN int XMLCALL + xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt); +XMLPUBFUN double XMLCALL + xmlXPathPopNumber (xmlXPathParserContextPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathPopString (xmlXPathParserContextPtr ctxt); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt); +XMLPUBFUN void * XMLCALL + xmlXPathPopExternal (xmlXPathParserContextPtr ctxt); + +/** + * xmlXPathReturnBoolean: + * @ctxt: an XPath parser context + * @val: a boolean + * + * Pushes the boolean @val on the context stack. + */ +#define xmlXPathReturnBoolean(ctxt, val) \ + valuePush((ctxt), xmlXPathNewBoolean(val)) + +/** + * xmlXPathReturnTrue: + * @ctxt: an XPath parser context + * + * Pushes true on the context stack. + */ +#define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1) + +/** + * xmlXPathReturnFalse: + * @ctxt: an XPath parser context + * + * Pushes false on the context stack. + */ +#define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0) + +/** + * xmlXPathReturnNumber: + * @ctxt: an XPath parser context + * @val: a double + * + * Pushes the double @val on the context stack. + */ +#define xmlXPathReturnNumber(ctxt, val) \ + valuePush((ctxt), xmlXPathNewFloat(val)) + +/** + * xmlXPathReturnString: + * @ctxt: an XPath parser context + * @str: a string + * + * Pushes the string @str on the context stack. + */ +#define xmlXPathReturnString(ctxt, str) \ + valuePush((ctxt), xmlXPathWrapString(str)) + +/** + * xmlXPathReturnEmptyString: + * @ctxt: an XPath parser context + * + * Pushes an empty string on the stack. + */ +#define xmlXPathReturnEmptyString(ctxt) \ + valuePush((ctxt), xmlXPathNewCString("")) + +/** + * xmlXPathReturnNodeSet: + * @ctxt: an XPath parser context + * @ns: a node-set + * + * Pushes the node-set @ns on the context stack. + */ +#define xmlXPathReturnNodeSet(ctxt, ns) \ + valuePush((ctxt), xmlXPathWrapNodeSet(ns)) + +/** + * xmlXPathReturnEmptyNodeSet: + * @ctxt: an XPath parser context + * + * Pushes an empty node-set on the context stack. + */ +#define xmlXPathReturnEmptyNodeSet(ctxt) \ + valuePush((ctxt), xmlXPathNewNodeSet(NULL)) + +/** + * xmlXPathReturnExternal: + * @ctxt: an XPath parser context + * @val: user data + * + * Pushes user data on the context stack. + */ +#define xmlXPathReturnExternal(ctxt, val) \ + valuePush((ctxt), xmlXPathWrapExternal(val)) + +/** + * xmlXPathStackIsNodeSet: + * @ctxt: an XPath parser context + * + * Check if the current value on the XPath stack is a node set or + * an XSLT value tree. + * + * Returns true if the current object on the stack is a node-set. + */ +#define xmlXPathStackIsNodeSet(ctxt) \ + (((ctxt)->value != NULL) \ + && (((ctxt)->value->type == XPATH_NODESET) \ + || ((ctxt)->value->type == XPATH_XSLT_TREE))) + +/** + * xmlXPathStackIsExternal: + * @ctxt: an XPath parser context + * + * Checks if the current value on the XPath stack is an external + * object. + * + * Returns true if the current object on the stack is an external + * object. + */ +#define xmlXPathStackIsExternal(ctxt) \ + ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS)) + +/** + * xmlXPathEmptyNodeSet: + * @ns: a node-set + * + * Empties a node-set. + */ +#define xmlXPathEmptyNodeSet(ns) \ + { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; } + +/** + * CHECK_ERROR: + * + * Macro to return from the function if an XPath error was detected. + */ +#define CHECK_ERROR \ + if (ctxt->error != XPATH_EXPRESSION_OK) return + +/** + * CHECK_ERROR0: + * + * Macro to return 0 from the function if an XPath error was detected. + */ +#define CHECK_ERROR0 \ + if (ctxt->error != XPATH_EXPRESSION_OK) return(0) + +/** + * XP_ERROR: + * @X: the error code + * + * Macro to raise an XPath error and return. + */ +#define XP_ERROR(X) \ + { xmlXPathErr(ctxt, X); return; } + +/** + * XP_ERROR0: + * @X: the error code + * + * Macro to raise an XPath error and return 0. + */ +#define XP_ERROR0(X) \ + { xmlXPathErr(ctxt, X); return(0); } + +/** + * CHECK_TYPE: + * @typeval: the XPath type + * + * Macro to check that the value on top of the XPath stack is of a given + * type. + */ +#define CHECK_TYPE(typeval) \ + if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \ + XP_ERROR(XPATH_INVALID_TYPE) + +/** + * CHECK_TYPE0: + * @typeval: the XPath type + * + * Macro to check that the value on top of the XPath stack is of a given + * type. Return(0) in case of failure + */ +#define CHECK_TYPE0(typeval) \ + if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \ + XP_ERROR0(XPATH_INVALID_TYPE) + +/** + * CHECK_ARITY: + * @x: the number of expected args + * + * Macro to check that the number of args passed to an XPath function matches. + */ +#define CHECK_ARITY(x) \ + if (ctxt == NULL) return; \ + if (nargs != (x)) \ + XP_ERROR(XPATH_INVALID_ARITY); + +/** + * CAST_TO_STRING: + * + * Macro to try to cast the value on the top of the XPath stack to a string. + */ +#define CAST_TO_STRING \ + if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \ + xmlXPathStringFunction(ctxt, 1); + +/** + * CAST_TO_NUMBER: + * + * Macro to try to cast the value on the top of the XPath stack to a number. + */ +#define CAST_TO_NUMBER \ + if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \ + xmlXPathNumberFunction(ctxt, 1); + +/** + * CAST_TO_BOOLEAN: + * + * Macro to try to cast the value on the top of the XPath stack to a boolean. + */ +#define CAST_TO_BOOLEAN \ + if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \ + xmlXPathBooleanFunction(ctxt, 1); + +/* + * Variable Lookup forwarding. + */ + +XMLPUBFUN void XMLCALL + xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt, + xmlXPathVariableLookupFunc f, + void *data); + +/* + * Function Lookup forwarding. + */ + +XMLPUBFUN void XMLCALL + xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt, + xmlXPathFuncLookupFunc f, + void *funcCtxt); + +/* + * Error reporting. + */ +XMLPUBFUN void XMLCALL + xmlXPatherror (xmlXPathParserContextPtr ctxt, + const char *file, + int line, + int no); + +XMLPUBFUN void XMLCALL + xmlXPathErr (xmlXPathParserContextPtr ctxt, + int error); + +#ifdef LIBXML_DEBUG_ENABLED +XMLPUBFUN void XMLCALL + xmlXPathDebugDumpObject (FILE *output, + xmlXPathObjectPtr cur, + int depth); +XMLPUBFUN void XMLCALL + xmlXPathDebugDumpCompExpr(FILE *output, + xmlXPathCompExprPtr comp, + int depth); +#endif +/** + * NodeSet handling. + */ +XMLPUBFUN int XMLCALL + xmlXPathNodeSetContains (xmlNodeSetPtr cur, + xmlNodePtr val); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathDifference (xmlNodeSetPtr nodes1, + xmlNodeSetPtr nodes2); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathIntersection (xmlNodeSetPtr nodes1, + xmlNodeSetPtr nodes2); + +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathDistinctSorted (xmlNodeSetPtr nodes); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathDistinct (xmlNodeSetPtr nodes); + +XMLPUBFUN int XMLCALL + xmlXPathHasSameNodes (xmlNodeSetPtr nodes1, + xmlNodeSetPtr nodes2); + +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes, + xmlNodePtr node); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathLeadingSorted (xmlNodeSetPtr nodes1, + xmlNodeSetPtr nodes2); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathNodeLeading (xmlNodeSetPtr nodes, + xmlNodePtr node); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathLeading (xmlNodeSetPtr nodes1, + xmlNodeSetPtr nodes2); + +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes, + xmlNodePtr node); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathTrailingSorted (xmlNodeSetPtr nodes1, + xmlNodeSetPtr nodes2); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathNodeTrailing (xmlNodeSetPtr nodes, + xmlNodePtr node); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathTrailing (xmlNodeSetPtr nodes1, + xmlNodeSetPtr nodes2); + + +/** + * Extending a context. + */ + +XMLPUBFUN int XMLCALL + xmlXPathRegisterNs (xmlXPathContextPtr ctxt, + const xmlChar *prefix, + const xmlChar *ns_uri); +XMLPUBFUN const xmlChar * XMLCALL + xmlXPathNsLookup (xmlXPathContextPtr ctxt, + const xmlChar *prefix); +XMLPUBFUN void XMLCALL + xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt); + +XMLPUBFUN int XMLCALL + xmlXPathRegisterFunc (xmlXPathContextPtr ctxt, + const xmlChar *name, + xmlXPathFunction f); +XMLPUBFUN int XMLCALL + xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt, + const xmlChar *name, + const xmlChar *ns_uri, + xmlXPathFunction f); +XMLPUBFUN int XMLCALL + xmlXPathRegisterVariable (xmlXPathContextPtr ctxt, + const xmlChar *name, + xmlXPathObjectPtr value); +XMLPUBFUN int XMLCALL + xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt, + const xmlChar *name, + const xmlChar *ns_uri, + xmlXPathObjectPtr value); +XMLPUBFUN xmlXPathFunction XMLCALL + xmlXPathFunctionLookup (xmlXPathContextPtr ctxt, + const xmlChar *name); +XMLPUBFUN xmlXPathFunction XMLCALL + xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt, + const xmlChar *name, + const xmlChar *ns_uri); +XMLPUBFUN void XMLCALL + xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathVariableLookup (xmlXPathContextPtr ctxt, + const xmlChar *name); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt, + const xmlChar *name, + const xmlChar *ns_uri); +XMLPUBFUN void XMLCALL + xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt); + +/** + * Utilities to extend XPath. + */ +XMLPUBFUN xmlXPathParserContextPtr XMLCALL + xmlXPathNewParserContext (const xmlChar *str, + xmlXPathContextPtr ctxt); +XMLPUBFUN void XMLCALL + xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt); + +/* TODO: remap to xmlXPathValuePop and Push. */ +XMLPUBFUN xmlXPathObjectPtr XMLCALL + valuePop (xmlXPathParserContextPtr ctxt); +XMLPUBFUN int XMLCALL + valuePush (xmlXPathParserContextPtr ctxt, + xmlXPathObjectPtr value); + +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathNewString (const xmlChar *val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathNewCString (const char *val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathWrapString (xmlChar *val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathWrapCString (char * val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathNewFloat (double val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathNewBoolean (int val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathNewNodeSet (xmlNodePtr val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathNewValueTree (xmlNodePtr val); +XMLPUBFUN void XMLCALL + xmlXPathNodeSetAdd (xmlNodeSetPtr cur, + xmlNodePtr val); +XMLPUBFUN void XMLCALL + xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur, + xmlNodePtr val); +XMLPUBFUN void XMLCALL + xmlXPathNodeSetAddNs (xmlNodeSetPtr cur, + xmlNodePtr node, + xmlNsPtr ns); +XMLPUBFUN void XMLCALL + xmlXPathNodeSetSort (xmlNodeSetPtr set); + +XMLPUBFUN void XMLCALL + xmlXPathRoot (xmlXPathParserContextPtr ctxt); +XMLPUBFUN void XMLCALL + xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathParseName (xmlXPathParserContextPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathParseNCName (xmlXPathParserContextPtr ctxt); + +/* + * Existing functions. + */ +XMLPUBFUN double XMLCALL + xmlXPathStringEvalNumber (const xmlChar *str); +XMLPUBFUN int XMLCALL + xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, + xmlXPathObjectPtr res); +XMLPUBFUN void XMLCALL + xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathNodeSetMerge (xmlNodeSetPtr val1, + xmlNodeSetPtr val2); +XMLPUBFUN void XMLCALL + xmlXPathNodeSetDel (xmlNodeSetPtr cur, + xmlNodePtr val); +XMLPUBFUN void XMLCALL + xmlXPathNodeSetRemove (xmlNodeSetPtr cur, + int val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathNewNodeSetList (xmlNodeSetPtr val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathWrapNodeSet (xmlNodeSetPtr val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPathWrapExternal (void *val); + +XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt); +XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt); +XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict); +XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt); +XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt); +XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt); +XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt); +XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt); +XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt); + +XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name); + +/* + * Some of the axis navigation routines. + */ +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt, + xmlNodePtr cur); +/* + * The official core of XPath functions. + */ +XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs); +XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs); + +/** + * Really internal functions + */ +XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_XPATH_ENABLED */ +#endif /* ! __XML_XPATH_INTERNALS_H__ */ diff --git a/external-libs/libxml2/include/libxml/xpointer.h b/external-libs/libxml2/include/libxml/xpointer.h new file mode 100644 index 0000000..dde1dfb --- /dev/null +++ b/external-libs/libxml2/include/libxml/xpointer.h @@ -0,0 +1,114 @@ +/* + * Summary: API to handle XML Pointers + * Description: API to handle XML Pointers + * Base implementation was made accordingly to + * W3C Candidate Recommendation 7 June 2000 + * http://www.w3.org/TR/2000/CR-xptr-20000607 + * + * Added support for the element() scheme described in: + * W3C Proposed Recommendation 13 November 2002 + * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_XPTR_H__ +#define __XML_XPTR_H__ + +#include + +#ifdef LIBXML_XPTR_ENABLED + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * A Location Set + */ +typedef struct _xmlLocationSet xmlLocationSet; +typedef xmlLocationSet *xmlLocationSetPtr; +struct _xmlLocationSet { + int locNr; /* number of locations in the set */ + int locMax; /* size of the array as allocated */ + xmlXPathObjectPtr *locTab;/* array of locations */ +}; + +/* + * Handling of location sets. + */ + +XMLPUBFUN xmlLocationSetPtr XMLCALL + xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); +XMLPUBFUN void XMLCALL + xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); +XMLPUBFUN xmlLocationSetPtr XMLCALL + xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, + xmlLocationSetPtr val2); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewRange (xmlNodePtr start, + int startindex, + xmlNodePtr end, + int endindex); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewRangePoints (xmlXPathObjectPtr start, + xmlXPathObjectPtr end); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewRangeNodePoint (xmlNodePtr start, + xmlXPathObjectPtr end); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, + xmlNodePtr end); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewRangeNodes (xmlNodePtr start, + xmlNodePtr end); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewLocationSetNodes (xmlNodePtr start, + xmlNodePtr end); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewRangeNodeObject (xmlNodePtr start, + xmlXPathObjectPtr end); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrNewCollapsedRange (xmlNodePtr start); +XMLPUBFUN void XMLCALL + xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, + xmlXPathObjectPtr val); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrWrapLocationSet (xmlLocationSetPtr val); +XMLPUBFUN void XMLCALL + xmlXPtrLocationSetDel (xmlLocationSetPtr cur, + xmlXPathObjectPtr val); +XMLPUBFUN void XMLCALL + xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, + int val); + +/* + * Functions. + */ +XMLPUBFUN xmlXPathContextPtr XMLCALL + xmlXPtrNewContext (xmlDocPtr doc, + xmlNodePtr here, + xmlNodePtr origin); +XMLPUBFUN xmlXPathObjectPtr XMLCALL + xmlXPtrEval (const xmlChar *str, + xmlXPathContextPtr ctx); +XMLPUBFUN void XMLCALL + xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, + int nargs); +XMLPUBFUN xmlNodePtr XMLCALL + xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); +XMLPUBFUN void XMLCALL + xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt); +#ifdef __cplusplus +} +#endif + +#endif /* LIBXML_XPTR_ENABLED */ +#endif /* __XML_XPTR_H__ */ diff --git a/external-libs/libxml2/include/zconf.h b/external-libs/libxml2/include/zconf.h new file mode 100644 index 0000000..ea2db4b --- /dev/null +++ b/external-libs/libxml2/include/zconf.h @@ -0,0 +1,332 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#ifndef ZCONF_H +#define ZCONF_H + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + */ +#ifdef Z_PREFIX +# define deflateInit_ z_deflateInit_ +# define deflate z_deflate +# define deflateEnd z_deflateEnd +# define inflateInit_ z_inflateInit_ +# define inflate z_inflate +# define inflateEnd z_inflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateSetDictionary z_deflateSetDictionary +# define deflateCopy z_deflateCopy +# define deflateReset z_deflateReset +# define deflateParams z_deflateParams +# define deflateBound z_deflateBound +# define deflatePrime z_deflatePrime +# define inflateInit2_ z_inflateInit2_ +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateCopy z_inflateCopy +# define inflateReset z_inflateReset +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# define uncompress z_uncompress +# define adler32 z_adler32 +# define crc32 z_crc32 +# define get_crc_table z_get_crc_table +# define zError z_zError + +# define alloc_func z_alloc_func +# define free_func z_free_func +# define in_func z_in_func +# define out_func z_out_func +# define Byte z_Byte +# define uInt z_uInt +# define uLong z_uLong +# define Bytef z_Bytef +# define charf z_charf +# define intf z_intf +# define uIntf z_uIntf +# define uLongf z_uLongf +# define voidpf z_voidpf +# define voidp z_voidp +#endif + +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) +# define OS2 +#endif +#if defined(_WINDOWS) && !defined(WINDOWS) +# define WINDOWS +#endif +#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) +# ifndef WIN32 +# define WIN32 +# endif +#endif +#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) +# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) +# ifndef SYS16BIT +# define SYS16BIT +# endif +# endif +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#ifdef SYS16BIT +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#ifdef __STDC_VERSION__ +# ifndef STDC +# define STDC +# endif +# if __STDC_VERSION__ >= 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) +# define STDC +#endif + +#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#if 1 /* HAVE_UNISTD_H -- this line is updated by ./configure */ +# include /* for off_t */ +# include /* for SEEK_* and off_t */ +# ifdef VMS +# include /* for off_t */ +# endif +# define z_off_t off_t +#endif +#ifndef SEEK_SET +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif +#ifndef z_off_t +# define z_off_t long +#endif + +#if defined(__OS400__) +# define NO_vsnprintf +#endif + +#if defined(__MVS__) +# define NO_vsnprintf +# ifdef FAR +# undef FAR +# endif +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) +# pragma map(deflateInit_,"DEIN") +# pragma map(deflateInit2_,"DEIN2") +# pragma map(deflateEnd,"DEEND") +# pragma map(deflateBound,"DEBND") +# pragma map(inflateInit_,"ININ") +# pragma map(inflateInit2_,"ININ2") +# pragma map(inflateEnd,"INEND") +# pragma map(inflateSync,"INSY") +# pragma map(inflateSetDictionary,"INSEDI") +# pragma map(compressBound,"CMBND") +# pragma map(inflate_table,"INTABL") +# pragma map(inflate_fast,"INFA") +# pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/external-libs/libxml2/include/zlib.h b/external-libs/libxml2/include/zlib.h new file mode 100644 index 0000000..0228179 --- /dev/null +++ b/external-libs/libxml2/include/zlib.h @@ -0,0 +1,1357 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.3, July 18th, 2005 + + Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.3" +#define ZLIB_VERNUM 0x1230 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed + data. This version of the library supports only one compression method + (deflation) but other algorithms will be added later and will have the same + stream interface. + + Compression can be done in a single step if the buffers are large + enough (for example if an input file is mmap'ed), or can be done by + repeated calls of the compression function. In the latter case, the + application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never + crash even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has + dropped to zero. It must update next_out and avail_out when avail_out + has dropped to zero. The application must initialize zalloc, zfree and + opaque before calling the init function. All other fields are set by the + compression library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this + if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, + pointers returned by zalloc for objects of exactly 65536 bytes *must* + have their offset normalized to zero. The default allocation function + provided by this library ensures this (see zutil.c). To reduce memory + requirements and avoid any allocation of 64K objects, at the expense of + compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or + progress reports. After compression, total_in holds the total size of + the uncompressed data and may be saved for use in the decompressor + (particularly if the decompressor wants to decompress everything in + a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative + * values are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is + not compatible with the zlib.h header file used by the application. + This check is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. + If zalloc and zfree are set to Z_NULL, deflateInit updates them to + use default allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at + all (the input data is simply copied a block at a time). + Z_DEFAULT_COMPRESSION requests a default compromise between speed and + compression (currently equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if level is not a valid compression level, + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). + msg is set to null if there is no error message. deflateInit does not + perform any compression: this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce some + output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). + Some output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating avail_in or avail_out accordingly; avail_out + should never be zero before the call. The application can consume the + compressed output when it wants, for example when the output buffer is full + (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK + and with zero avail_out, it must be called again after making room in the + output buffer because there might be more output pending. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumualte before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In particular + avail_in is zero after the call if enough output space has been provided + before the call.) Flushing may degrade compression for some compression + algorithms and so it should be used only when necessary. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there + was enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the + stream are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least + the value returned by deflateBound (see below). If deflate does not return + Z_STREAM_END, then it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered + binary. This field is only for information purposes and does not affect + the compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, + msg may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the exact + value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller. msg is set to null if there is no error + message. inflateInit does not perform any decompression apart from reading + the zlib header if present: this will be done by inflate(). (So next_in and + avail_in may be modified, but next_out and avail_out are unchanged.) +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing + will resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there + is no more input data or no more space in the output buffer (see below + about the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating the next_* and avail_* values accordingly. + The application can consume the uncompressed output when it wants, for + example when the output buffer is full (avail_out == 0), or after each + call of inflate(). If inflate returns Z_OK and with zero avail_out, it + must be called again after making room in the output buffer because there + might be more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, + Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() stop + if and when it gets to the next deflate block boundary. When decoding the + zlib or gzip format, this will cause inflate() to return immediately after + the header and before the first block. When doing a raw inflate, inflate() + will go ahead and process the first block, and will return when it gets to + the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 + if inflate() is currently decoding the last block in the deflate stream, + plus 128 if inflate() returned immediately after decoding an end-of-block + code or decoding the complete header up to just before the first byte of the + deflate stream. The end-of-block will not be indicated until all of the + uncompressed data from that block has been written to strm->next_out. The + number of unused bits may in general be greater than seven, except when + bit 7 of data_type is set, in which case the number of unused bits will be + less than eight. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step + (a single call of inflate), the parameter flush should be set to + Z_FINISH. In this case all pending input is processed and all pending + output is flushed; avail_out must be large enough to hold all the + uncompressed data. (The size of the uncompressed data may have been saved + by the compressor for this purpose.) The next operation on this stream must + be inflateEnd to deallocate the decompression state. The use of Z_FINISH + is never required, but can be used to inform inflate that a faster approach + may be used for the single inflate() call. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the only effect of the flush parameter in this implementation + is on the return value of inflate(), as noted below, or when it returns early + because Z_BLOCK is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the adler32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the adler32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() will decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically. Any information + contained in the gzip header is not retained, so applications that need that + information should instead use raw inflate, see inflateInit2() below, or + inflateBack() and perform their own processing of the gzip header and + trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may then + call inflateSync() to look for a good compression block if a partial recovery + of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by + the caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), + no header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but + is slow and reduces compression ratio; memLevel=9 uses maximum memory + for optimal speed. The default value is 8. See zconf.h for total memory + usage as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as + Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy + parameter only affects the compression ratio but not the correctness of the + compressed output even if it is not set appropriately. Z_FIXED prevents the + use of dynamic Huffman codes, allowing for a simpler decoder for special + applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid + method). msg is set to null if there is no error message. deflateInit2 does + not perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any + call of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size in + deflate or deflate2. Thus the strings most likely to be useful should be + put at the end of the dictionary, not at the front. In addition, the + current implementation of deflate will use at most the window size minus + 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and + can consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. + The stream will keep the same compression level and any other attributes + that may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different + strategy. If the compression level is changed, the input available so far + is compressed with the old level (and may be flushed); the new level will + take effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to + be compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR + if strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() + or deflateInit2(). This would be used to allocate an output buffer + for deflation in a single pass, and so would be called before deflate(). +*/ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the + bits leftover from a previous deflate stream when appending to it. As such, + this function can only be used for raw deflate, and must be used before the + first deflate() call after a deflateInit2() or deflateReset(). bits must be + less than or equal to 16, and that many of the least significant bits of + value will be inserted in the output. + + deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, + gz_headerp head)); +/* + deflateSetHeader() provides gzip header information for when a gzip + stream is requested by deflateInit2(). deflateSetHeader() may be called + after deflateInit2() or deflateReset() and before the first call of + deflate(). The text, time, os, extra field, name, and comment information + in the provided gz_header structure are written to the gzip header (xflag is + ignored -- the extra flags are set according to the compression level). The + caller must assure that, if not Z_NULL, name and comment are terminated with + a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + available there. If hcrc is true, a gzip header crc is included. Note that + the current versions of the command-line version of gzip (up through version + 1.3.x) do not support header crc's, and will report that it is a "multi-part + gzip file" and give up. + + If deflateSetHeader is not used, the default gzip header has text false, + the time set to zero, and os set to 255, with no extra, name, or comment + fields. The gzip header is returned to the default state by deflateReset(). + + deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is + a crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg + is set to null if there is no error message. inflateInit2 does not perform + any decompression apart from reading the zlib header if present: this will + be done by inflate(). (So next_in and avail_in may be modified, but next_out + and avail_out are unchanged.) +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called + immediately after inflateInit2() or inflateReset() and before any call of + inflate() to set the dictionary. The application must insure that the + dictionary that was used for compression is provided. + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been found, + or Z_STREAM_ERROR if the stream structure was inconsistent. In the success + case, the application may save the current current value of total_in which + indicates where valid compressed data was found. In the error case, the + application may repeatedly call inflateSync, providing more input each time, + until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. + The stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + inflateGetHeader() requests that gzip header information be stored in the + provided gz_header structure. inflateGetHeader() may be called after + inflateInit2() or inflateReset(), and before the first call of inflate(). + As inflate() processes the gzip stream, head->done is zero until the header + is completed, at which time head->done is set to one. If a zlib stream is + being decoded, then head->done is set to -1 to indicate that there will be + no gzip header information forthcoming. Note that Z_BLOCK can be used to + force inflate() to return immediately after header processing is complete + and before any actual data is decompressed. + + The text, time, xflags, and os fields are filled in with the gzip header + contents. hcrc is set to true if there is a header CRC. (The header CRC + was valid if done is set to one.) If extra is not Z_NULL, then extra_max + contains the maximum number of bytes to write to extra. Once done is true, + extra_len contains the actual extra field length, and extra contains the + extra field, or that field truncated if extra_max is less than extra_len. + If name is not Z_NULL, then up to name_max characters are written there, + terminated with a zero unless the length is greater than name_max. If + comment is not Z_NULL, then up to comm_max characters are written there, + terminated with a zero unless the length is greater than comm_max. When + any of extra, name, or comment are not Z_NULL and the respective field is + not present in the header, then that field is set to Z_NULL to signal its + absence. This allows the use of deflateSetHeader() with the returned + structure to duplicate the header. However if those fields are set to + allocated memory, then the application will need to save those pointers + elsewhere so that they can be eventually freed. + + If inflateGetHeader is not used, then the header information is simply + discarded. The header is always checked for validity, including the header + CRC if present. inflateReset() will reset the process to discard the header + information. The application would need to call inflateGetHeader() again to + retrieve the header from the next gzip stream. + + inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, + unsigned char FAR *window)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the paramaters are invalid, Z_MEM_ERROR if the internal state could not + be allocated, or Z_VERSION_ERROR if the version of the library does not + match the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is more efficient than inflate() for + file i/o applications in that it avoids copying between the output and the + sliding window by simply making the window itself the output buffer. This + function trusts the application to not change the output buffer passed by + the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free + the allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects + only the raw deflate stream to decompress. This is different from the + normal behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format + error in the deflate stream (in which case strm->msg is set to indicate the + nature of the error), or Z_STREAM_ERROR if the stream was not properly + initialized. In the case of Z_BUF_ERROR, an input or output error can be + distinguished using strm->next_in which will be Z_NULL only if in() returned + an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to + out() returning non-zero. (in() will always be called before out(), so + strm->next_in is assured to be defined if out() returns non-zero.) Note + that inflateBack() cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + + + /* utility functions */ + +/* + The following utility functions are implemented on top of the + basic stream-oriented functions. To simplify the interface, some + default options are assumed (compression level and memory usage, + standard memory allocation functions). The source code of these + utility functions can easily be modified if you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be at least the value returned + by compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + This function can be used to compress a whole file at once if the + input file is mmap'ed. + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before + a compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + This function can be used to decompress a whole file at once if the + input file is mmap'ed. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. +*/ + + +typedef voidp gzFile; + +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +/* + Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb") but can also include a compression level + ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for + Huffman only compression as in "wb1h", or 'R' for run-length encoding + as in "wb1R". (See the description of deflateInit2 for more information + about the strategy parameter.) + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. + + gzopen returns NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). */ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen() associates a gzFile with the file descriptor fd. File + descriptors are obtained from calls like open, dup, creat, pipe or + fileno (in the file has been previously opened with fopen). + The mode parameter is as in gzopen. + The next call of gzclose on the returned gzFile will also close the + file descriptor fd, just like fclose(fdopen(fd), mode) closes the file + descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). + gzdopen returns NULL if there was insufficient memory to allocate + the (de)compression state. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. + If the input file was not in gzip format, gzread copies the given number + of bytes into the buffer. + gzread returns the number of uncompressed bytes actually read (0 for + end of file, -1 for error). */ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes actually written + (0 in case of error). +*/ + +ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). The number of + uncompressed bytes written is limited to 4095. The caller should assure that + this limit is not exceeded. If it is exceeded, then gzprintf() will return + return an error (0) with nothing written. In this case, there may also be a + buffer overflow with unpredictable consequences, which is possible only if + zlib was compiled with the insecure functions sprintf() or vsprintf() + because the secure snprintf() or vsnprintf() functions were not available. +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or + a newline character is read and transferred to buf, or an end-of-file + condition is encountered. The string is then terminated with a null + character. + gzgets returns buf, or Z_NULL in case of error. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read again later. + Only one character of push-back is allowed. gzungetc() returns the + character pushed, or -1 on failure. gzungetc() will fail if a + character has been pushed but not read yet, or if c is -1. The pushed + character will be discarded if the stream is repositioned with gzseek() + or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. The return value is the zlib + error number (see function gzerror below). gzflush returns Z_OK if + the flush parameter is Z_FINISH and all output could be flushed. + gzflush should be called only when strictly necessary because it can + degrade compression. +*/ + +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); +/* + Sets the starting position for the next gzread or gzwrite on the + given compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +/* + Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns 1 if file is being read directly without decompression, otherwise + zero. +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. The return value is the zlib + error number (see function gzerror below). +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the + given compressed file. errnum is set to zlib error number. If an + error occurred in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the + compression library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is NULL, this function returns + the required initial value for the checksum. + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t len2)); +/* + Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 + and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for + each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of + seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is NULL, this function returns the required initial + value for the for the crc. Pre- and post-conditioning (one's complement) is + performed within this function so it shouldn't be done by the application. + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + +/* + Combine two CRC-32 check values into one. For two sequences of bytes, + seq1 and seq2 with lengths len1 and len2, CRC-32 check values were + calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 + check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and + len2. +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, sizeof(z_stream)) + + +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); +ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/external-libs/libxml2/mingw/lib/libxml2.a b/external-libs/libxml2/mingw/lib/libxml2.a new file mode 100644 index 0000000..6e46858 Binary files /dev/null and b/external-libs/libxml2/mingw/lib/libxml2.a differ diff --git a/external-libs/libxml2/mingw/lib/libz.a b/external-libs/libxml2/mingw/lib/libz.a new file mode 100644 index 0000000..f802e9e Binary files /dev/null and b/external-libs/libxml2/mingw/lib/libz.a differ diff --git a/external-libs/libxml2/win32/lib/libxml2.dll b/external-libs/libxml2/win32/lib/libxml2.dll new file mode 100644 index 0000000..1f69a7f Binary files /dev/null and b/external-libs/libxml2/win32/lib/libxml2.dll differ diff --git a/external-libs/libxml2/win32/lib/libxml2.lib b/external-libs/libxml2/win32/lib/libxml2.lib new file mode 100644 index 0000000..c0e87dc Binary files /dev/null and b/external-libs/libxml2/win32/lib/libxml2.lib differ diff --git a/external-libs/libxml2/win32/lib/libxml2_a.lib b/external-libs/libxml2/win32/lib/libxml2_a.lib new file mode 100644 index 0000000..f6f7dde Binary files /dev/null and b/external-libs/libxml2/win32/lib/libxml2_a.lib differ diff --git a/external-libs/libxml2/win32/lib/zlib.lib b/external-libs/libxml2/win32/lib/zlib.lib new file mode 100644 index 0000000..da7ab9e Binary files /dev/null and b/external-libs/libxml2/win32/lib/zlib.lib differ diff --git a/external-libs/pcre/build/ps3/Makefile b/external-libs/pcre/build/ps3/Makefile new file mode 100644 index 0000000..2d8f925 --- /dev/null +++ b/external-libs/pcre/build/ps3/Makefile @@ -0,0 +1,20 @@ +# Common variables +compilerFlags += -c -O2 -I./ -I../ -DHAVE_CONFIG_H +linker := ppu-lv2-ar +linkerFlags += rcs +sourcePath := ../ +outPath := ./ +tmpPath := ./tmp/ + +# By default, export all variables to the sub-makes +export + +# Build libpcre.a and libpcrecpp.a +all: + $(MAKE) -fpcre.mk $(MAKECMDGOALS) + $(MAKE) -fpcrecpp.mk $(MAKECMDGOALS) + +clean: + $(MAKE) -fpcre.mk $(MAKECMDGOALS) + $(MAKE) -fpcrecpp.mk $(MAKECMDGOALS) + @rm -rf $(tmpPath) \ No newline at end of file diff --git a/external-libs/pcre/build/ps3/config.h b/external-libs/pcre/build/ps3/config.h new file mode 100644 index 0000000..3a3d71c --- /dev/null +++ b/external-libs/pcre/build/ps3/config.h @@ -0,0 +1,243 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + + +/* On Unix-like systems config.h.in is converted by "configure" into config.h. +Some other environments also support the use of "configure". PCRE is written in +Standard C, but there are a few non-standard things it can cope with, allowing +it to run on SunOS4 and other "close to standard" systems. + +If you are going to build PCRE "by hand" on a system without "configure" you +should copy the distributed config.h.generic to config.h, and then set up the +macro definitions the way you need them. You must then add -DHAVE_CONFIG_H to +all of your compile commands, so that config.h is included at the start of +every source. + +Alternatively, you can avoid editing by using -D on the compiler command line +to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H. + +PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if +HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set +them both to 0; an emulation function will be used. */ + +/* By default, the \R escape sequence matches any Unicode line ending + character or sequence of characters. If BSR_ANYCRLF is defined, this is + changed so that backslash-R matches only CR, LF, or CRLF. The build- time + default can be overridden by the user of PCRE at runtime. On systems that + support it, "configure" can be used to override the default. */ +/* #undef BSR_ANYCRLF */ + +/* If you are compiling for a system that uses EBCDIC instead of ASCII + character codes, define this macro as 1. On systems that can use + "configure", this can be done via --enable-ebcdic. */ +/* #undef EBCDIC */ + +/* Define to 1 if you have the `bcopy' function. */ +#define HAVE_BCOPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BITS_TYPE_TRAITS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BZLIB_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_HISTORY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strtoll' function. */ +#define HAVE_STRTOLL 1 + +/* Define to 1 if you have the `strtoq' function. */ +/* #define HAVE_STRTOQ 1 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TYPE_TRAITS_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if the system has the type `unsigned long long'. */ +#define HAVE_UNSIGNED_LONG_LONG 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WINDOWS_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_strtoi64' function. */ +/* #undef HAVE__STRTOI64 */ + +/* The value of LINK_SIZE determines the number of bytes used to store links + as offsets within the compiled regex. The default is 2, which allows for + compiled patterns up to 64K long. This covers the vast majority of cases. + However, PCRE can also be compiled to use 3 or 4 bytes instead. This allows + for longer patterns in extreme cases. On systems that support it, + "configure" can be used to override this default. */ +#define LINK_SIZE 2 + +/* The value of MATCH_LIMIT determines the default number of times the + internal match() function can be called during a single execution of + pcre_exec(). There is a runtime interface for setting a different limit. + The limit exists in order to catch runaway regular expressions that take + for ever to determine that they do not match. The default is set very large + so that it does not accidentally catch legitimate cases. On systems that + support it, "configure" can be used to override this default default. */ +#define MATCH_LIMIT 10000000 + +/* The above limit applies to all calls of match(), whether or not they + increase the recursion depth. In some environments it is desirable to limit + the depth of recursive calls of match() more strictly, in order to restrict + the maximum amount of stack (or heap, if NO_RECURSE is defined) that is + used. The value of MATCH_LIMIT_RECURSION applies only to recursive calls of + match(). To have any useful effect, it must be less than the value of + MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT. There is + a runtime method for setting a different limit. On systems that support it, + "configure" can be used to override the default. */ +#define MATCH_LIMIT_RECURSION MATCH_LIMIT + +/* This limit is parameterized just in case anybody ever wants to change it. + Care must be taken if it is increased, because it guards against integer + overflow caused by enormously large patterns. */ +#define MAX_NAME_COUNT 10000 + +/* This limit is parameterized just in case anybody ever wants to change it. + Care must be taken if it is increased, because it guards against integer + overflow caused by enormously large patterns. */ +#define MAX_NAME_SIZE 32 + +/* The value of NEWLINE determines the newline character sequence. On systems + that support it, "configure" can be used to override the default, which is + 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF), -1 (ANY), or -2 + (ANYCRLF). */ +#define NEWLINE 10 + +/* PCRE uses recursive function calls to handle backtracking while matching. + This can sometimes be a problem on systems that have stacks of limited + size. Define NO_RECURSE to get a version that doesn't use recursion in the + match() function; instead it creates its own stack by steam using + pcre_recurse_malloc() to obtain memory from the heap. For more detail, see + the comments and other stuff just above the match() function. On systems + that support it, "configure" can be used to set this in the Makefile (use + --disable-stack-for-recursion). */ +/* #undef NO_RECURSE */ + +/* Name of package */ +#define PACKAGE "pcre" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "PCRE" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "PCRE 7.6" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "pcre" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "7.6" + + +/* If you are compiling for a system other than a Unix-like system or + Win32, and it needs some magic to be inserted before the definition + of a function that is exported by the library, define this macro to + contain the relevant magic. If you do not define this macro, it + defaults to "extern" for a C compiler and "extern C" for a C++ + compiler on non-Win32 systems. This macro apears at the start of + every exported function that is part of the external API. It does + not appear on functions that are "external" in the C sense, but + which are internal to the library. */ +/* #undef PCRE_EXP_DEFN */ + +/* Define if linking statically (TODO: make nice with Libtool) */ +/* #undef PCRE_STATIC */ + +/* When calling PCRE via the POSIX interface, additional working storage is + required for holding the pointers to capturing substrings because PCRE + requires three integers per substring, whereas the POSIX interface provides + only two. If the number of expected substrings is small, the wrapper + function uses space on the stack, because this is faster than using + malloc() for each call. The threshold above which the stack is no longer + used is defined by POSIX_MALLOC_THRESHOLD. On systems that support it, + "configure" can be used to override this default. */ +#define POSIX_MALLOC_THRESHOLD 10 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to allow pcregrep to be linked with libbz2, so that it is able to + handle .bz2 files. */ +/* #undef SUPPORT_LIBBZ2 */ + +/* Define to allow pcretest to be linked with libreadline. */ +/* #undef SUPPORT_LIBREADLINE */ + +/* Define to allow pcregrep to be linked with libz, so that it is able to + handle .gz files. */ +/* #undef SUPPORT_LIBZ */ + +/* Define to enable support for Unicode properties */ +/* #undef SUPPORT_UCP */ + +/* Define to enable support for the UTF-8 Unicode encoding. */ +/* #undef SUPPORT_UTF8 */ + +/* Version number of package */ +#define VERSION "7.6" + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ diff --git a/external-libs/pcre/build/ps3/pcre.h b/external-libs/pcre/build/ps3/pcre.h new file mode 100644 index 0000000..c85c32e --- /dev/null +++ b/external-libs/pcre/build/ps3/pcre.h @@ -0,0 +1,303 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* This is the public header file for the PCRE library, to be #included by +applications that call the PCRE functions. + + Copyright (c) 1997-2008 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + +#ifndef _PCRE_H +#define _PCRE_H + +/* The current PCRE version information. */ + +#define PCRE_MAJOR 7 +#define PCRE_MINOR 6 +#define PCRE_PRERELEASE +#define PCRE_DATE 2008-01-28 + +/* When an application links to a PCRE DLL in Windows, the symbols that are +imported have to be identified as such. When building PCRE, the appropriate +export setting is defined in pcre_internal.h, which includes this file. So we +don't change existing definitions of PCRE_EXP_DECL and PCRECPP_EXP_DECL. */ + +#if defined(_WIN32) && !defined(PCRE_STATIC) +# ifndef PCRE_EXP_DECL +# define PCRE_EXP_DECL extern __declspec(dllimport) +# endif +# ifdef __cplusplus +# ifndef PCRECPP_EXP_DECL +# define PCRECPP_EXP_DECL extern __declspec(dllimport) +# endif +# ifndef PCRECPP_EXP_DEFN +# define PCRECPP_EXP_DEFN __declspec(dllimport) +# endif +# endif +#endif + +/* By default, we use the standard "extern" declarations. */ + +#ifndef PCRE_EXP_DECL +# ifdef __cplusplus +# define PCRE_EXP_DECL extern "C" +# else +# define PCRE_EXP_DECL extern +# endif +#endif + +#ifdef __cplusplus +# ifndef PCRECPP_EXP_DECL +# define PCRECPP_EXP_DECL extern +# endif +# ifndef PCRECPP_EXP_DEFN +# define PCRECPP_EXP_DEFN +# endif +#endif + +/* Have to include stdlib.h in order to ensure that size_t is defined; +it is needed here for malloc. */ + +#include + +/* Allow for C++ users */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Options */ + +#define PCRE_CASELESS 0x00000001 +#define PCRE_MULTILINE 0x00000002 +#define PCRE_DOTALL 0x00000004 +#define PCRE_EXTENDED 0x00000008 +#define PCRE_ANCHORED 0x00000010 +#define PCRE_DOLLAR_ENDONLY 0x00000020 +#define PCRE_EXTRA 0x00000040 +#define PCRE_NOTBOL 0x00000080 +#define PCRE_NOTEOL 0x00000100 +#define PCRE_UNGREEDY 0x00000200 +#define PCRE_NOTEMPTY 0x00000400 +#define PCRE_UTF8 0x00000800 +#define PCRE_NO_AUTO_CAPTURE 0x00001000 +#define PCRE_NO_UTF8_CHECK 0x00002000 +#define PCRE_AUTO_CALLOUT 0x00004000 +#define PCRE_PARTIAL 0x00008000 +#define PCRE_DFA_SHORTEST 0x00010000 +#define PCRE_DFA_RESTART 0x00020000 +#define PCRE_FIRSTLINE 0x00040000 +#define PCRE_DUPNAMES 0x00080000 +#define PCRE_NEWLINE_CR 0x00100000 +#define PCRE_NEWLINE_LF 0x00200000 +#define PCRE_NEWLINE_CRLF 0x00300000 +#define PCRE_NEWLINE_ANY 0x00400000 +#define PCRE_NEWLINE_ANYCRLF 0x00500000 +#define PCRE_BSR_ANYCRLF 0x00800000 +#define PCRE_BSR_UNICODE 0x01000000 + +/* Exec-time and get/set-time error codes */ + +#define PCRE_ERROR_NOMATCH (-1) +#define PCRE_ERROR_NULL (-2) +#define PCRE_ERROR_BADOPTION (-3) +#define PCRE_ERROR_BADMAGIC (-4) +#define PCRE_ERROR_UNKNOWN_OPCODE (-5) +#define PCRE_ERROR_UNKNOWN_NODE (-5) /* For backward compatibility */ +#define PCRE_ERROR_NOMEMORY (-6) +#define PCRE_ERROR_NOSUBSTRING (-7) +#define PCRE_ERROR_MATCHLIMIT (-8) +#define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */ +#define PCRE_ERROR_BADUTF8 (-10) +#define PCRE_ERROR_BADUTF8_OFFSET (-11) +#define PCRE_ERROR_PARTIAL (-12) +#define PCRE_ERROR_BADPARTIAL (-13) +#define PCRE_ERROR_INTERNAL (-14) +#define PCRE_ERROR_BADCOUNT (-15) +#define PCRE_ERROR_DFA_UITEM (-16) +#define PCRE_ERROR_DFA_UCOND (-17) +#define PCRE_ERROR_DFA_UMLIMIT (-18) +#define PCRE_ERROR_DFA_WSSIZE (-19) +#define PCRE_ERROR_DFA_RECURSE (-20) +#define PCRE_ERROR_RECURSIONLIMIT (-21) +#define PCRE_ERROR_NULLWSLIMIT (-22) /* No longer actually used */ +#define PCRE_ERROR_BADNEWLINE (-23) + +/* Request types for pcre_fullinfo() */ + +#define PCRE_INFO_OPTIONS 0 +#define PCRE_INFO_SIZE 1 +#define PCRE_INFO_CAPTURECOUNT 2 +#define PCRE_INFO_BACKREFMAX 3 +#define PCRE_INFO_FIRSTBYTE 4 +#define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */ +#define PCRE_INFO_FIRSTTABLE 5 +#define PCRE_INFO_LASTLITERAL 6 +#define PCRE_INFO_NAMEENTRYSIZE 7 +#define PCRE_INFO_NAMECOUNT 8 +#define PCRE_INFO_NAMETABLE 9 +#define PCRE_INFO_STUDYSIZE 10 +#define PCRE_INFO_DEFAULT_TABLES 11 +#define PCRE_INFO_OKPARTIAL 12 +#define PCRE_INFO_JCHANGED 13 +#define PCRE_INFO_HASCRORLF 14 + +/* Request types for pcre_config(). Do not re-arrange, in order to remain +compatible. */ + +#define PCRE_CONFIG_UTF8 0 +#define PCRE_CONFIG_NEWLINE 1 +#define PCRE_CONFIG_LINK_SIZE 2 +#define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3 +#define PCRE_CONFIG_MATCH_LIMIT 4 +#define PCRE_CONFIG_STACKRECURSE 5 +#define PCRE_CONFIG_UNICODE_PROPERTIES 6 +#define PCRE_CONFIG_MATCH_LIMIT_RECURSION 7 +#define PCRE_CONFIG_BSR 8 + +/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine +these bits, just add new ones on the end, in order to remain compatible. */ + +#define PCRE_EXTRA_STUDY_DATA 0x0001 +#define PCRE_EXTRA_MATCH_LIMIT 0x0002 +#define PCRE_EXTRA_CALLOUT_DATA 0x0004 +#define PCRE_EXTRA_TABLES 0x0008 +#define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0x0010 + +/* Types */ + +struct real_pcre; /* declaration; the definition is private */ +typedef struct real_pcre pcre; + +/* When PCRE is compiled as a C++ library, the subject pointer type can be +replaced with a custom type. For conventional use, the public interface is a +const char *. */ + +#ifndef PCRE_SPTR +#define PCRE_SPTR const char * +#endif + +/* The structure for passing additional data to pcre_exec(). This is defined in +such as way as to be extensible. Always add new fields at the end, in order to +remain compatible. */ + +typedef struct pcre_extra { + unsigned long int flags; /* Bits for which fields are set */ + void *study_data; /* Opaque data from pcre_study() */ + unsigned long int match_limit; /* Maximum number of calls to match() */ + void *callout_data; /* Data passed back in callouts */ + const unsigned char *tables; /* Pointer to character tables */ + unsigned long int match_limit_recursion; /* Max recursive calls to match() */ +} pcre_extra; + +/* The structure for passing out data via the pcre_callout_function. We use a +structure so that new fields can be added on the end in future versions, +without changing the API of the function, thereby allowing old clients to work +without modification. */ + +typedef struct pcre_callout_block { + int version; /* Identifies version of block */ + /* ------------------------ Version 0 ------------------------------- */ + int callout_number; /* Number compiled into pattern */ + int *offset_vector; /* The offset vector */ + PCRE_SPTR subject; /* The subject being matched */ + int subject_length; /* The length of the subject */ + int start_match; /* Offset to start of this match attempt */ + int current_position; /* Where we currently are in the subject */ + int capture_top; /* Max current capture */ + int capture_last; /* Most recently closed capture */ + void *callout_data; /* Data passed in with the call */ + /* ------------------- Added for Version 1 -------------------------- */ + int pattern_position; /* Offset to next item in the pattern */ + int next_item_length; /* Length of next item in the pattern */ + /* ------------------------------------------------------------------ */ +} pcre_callout_block; + +/* Indirection for store get and free functions. These can be set to +alternative malloc/free functions if required. Special ones are used in the +non-recursive case for "frames". There is also an optional callout function +that is triggered by the (?) regex item. For Virtual Pascal, these definitions +have to take another form. */ + +#ifndef VPCOMPAT +PCRE_EXP_DECL void *(*pcre_malloc)(size_t); +PCRE_EXP_DECL void (*pcre_free)(void *); +PCRE_EXP_DECL void *(*pcre_stack_malloc)(size_t); +PCRE_EXP_DECL void (*pcre_stack_free)(void *); +PCRE_EXP_DECL int (*pcre_callout)(pcre_callout_block *); +#else /* VPCOMPAT */ +PCRE_EXP_DECL void *pcre_malloc(size_t); +PCRE_EXP_DECL void pcre_free(void *); +PCRE_EXP_DECL void *pcre_stack_malloc(size_t); +PCRE_EXP_DECL void pcre_stack_free(void *); +PCRE_EXP_DECL int pcre_callout(pcre_callout_block *); +#endif /* VPCOMPAT */ + +/* Exported PCRE functions */ + +PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *, + const unsigned char *); +PCRE_EXP_DECL pcre *pcre_compile2(const char *, int, int *, const char **, + int *, const unsigned char *); +PCRE_EXP_DECL int pcre_config(int, void *); +PCRE_EXP_DECL int pcre_copy_named_substring(const pcre *, const char *, + int *, int, const char *, char *, int); +PCRE_EXP_DECL int pcre_copy_substring(const char *, int *, int, int, char *, + int); +PCRE_EXP_DECL int pcre_dfa_exec(const pcre *, const pcre_extra *, + const char *, int, int, int, int *, int , int *, int); +PCRE_EXP_DECL int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR, + int, int, int, int *, int); +PCRE_EXP_DECL void pcre_free_substring(const char *); +PCRE_EXP_DECL void pcre_free_substring_list(const char **); +PCRE_EXP_DECL int pcre_fullinfo(const pcre *, const pcre_extra *, int, + void *); +PCRE_EXP_DECL int pcre_get_named_substring(const pcre *, const char *, + int *, int, const char *, const char **); +PCRE_EXP_DECL int pcre_get_stringnumber(const pcre *, const char *); +PCRE_EXP_DECL int pcre_get_stringtable_entries(const pcre *, const char *, + char **, char **); +PCRE_EXP_DECL int pcre_get_substring(const char *, int *, int, int, + const char **); +PCRE_EXP_DECL int pcre_get_substring_list(const char *, int *, int, + const char ***); +PCRE_EXP_DECL int pcre_info(const pcre *, int *, int *); +PCRE_EXP_DECL const unsigned char *pcre_maketables(void); +PCRE_EXP_DECL int pcre_refcount(pcre *, int); +PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **); +PCRE_EXP_DECL const char *pcre_version(void); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* End of pcre.h */ diff --git a/external-libs/pcre/build/ps3/pcre.mk b/external-libs/pcre/build/ps3/pcre.mk new file mode 100644 index 0000000..7268525 --- /dev/null +++ b/external-libs/pcre/build/ps3/pcre.mk @@ -0,0 +1,25 @@ +compiler := ppu-lv2-gcc +libName := pcre +sources := \ +pcre_chartables.c \ +pcre_compile.c \ +pcre_config.c \ +pcre_dfa_exec.c \ +pcre_exec.c \ +pcre_fullinfo.c \ +pcre_get.c \ +pcre_globals.c \ +pcre_info.c \ +pcre_newline.c \ +pcre_maketables.c \ +pcre_ord2utf8.c \ +pcre_refcount.c \ +pcre_study.c \ +pcre_tables.c \ +pcre_try_flipped.c \ +pcre_ucp_searchfuncs.c \ +pcre_valid_utf8.c \ +pcre_version.c \ +pcre_xclass.c + +include rules.mk \ No newline at end of file diff --git a/external-libs/pcre/build/ps3/pcre_chartables.c b/external-libs/pcre/build/ps3/pcre_chartables.c new file mode 100644 index 0000000..ae45db0 --- /dev/null +++ b/external-libs/pcre/build/ps3/pcre_chartables.c @@ -0,0 +1,198 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* This file contains character tables that are used when no external tables +are passed to PCRE by the application that calls it. The tables are used only +for characters whose code values are less than 256. + +This is a default version of the tables that assumes ASCII encoding. A program +called dftables (which is distributed with PCRE) can be used to build +alternative versions of this file. This is necessary if you are running in an +EBCDIC environment, or if you want to default to a different encoding, for +example ISO-8859-1. When dftables is run, it creates these tables in the +current locale. If PCRE is configured with --enable-rebuild-chartables, this +happens automatically. + +The following #includes are present because without the gcc 4.x may remove the +array definition from the final binary if PCRE is built into a static library +and dead code stripping is activated. This leads to link errors. Pulling in the +header ensures that the array gets flagged as "someone outside this compilation +unit might reference this" and so it will always be supplied to the linker. */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "pcre_internal.h" + +const unsigned char _pcre_default_tables[] = { + +/* This table is a lower casing table. */ + + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135, + 136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151, + 152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167, + 168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183, + 184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199, + 200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,215, + 216,217,218,219,220,221,222,223, + 224,225,226,227,228,229,230,231, + 232,233,234,235,236,237,238,239, + 240,241,242,243,244,245,246,247, + 248,249,250,251,252,253,254,255, + +/* This table is a case flipping table. */ + + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135, + 136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151, + 152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167, + 168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183, + 184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199, + 200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,215, + 216,217,218,219,220,221,222,223, + 224,225,226,227,228,229,230,231, + 232,233,234,235,236,237,238,239, + 240,241,242,243,244,245,246,247, + 248,249,250,251,252,253,254,255, + +/* This table contains bit maps for various character classes. Each map is 32 +bytes long and the bits run from the least significant end of each byte. The +classes that have their own maps are: space, xdigit, digit, upper, lower, word, +graph, print, punct, and cntrl. Other classes are built from combinations. */ + + 0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc, + 0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + +/* This table identifies various classes of character by individual bits: + 0x01 white space character + 0x02 letter + 0x04 decimal digit + 0x08 hexadecimal digit + 0x10 alphanumeric or '_' + 0x80 regular expression metacharacter or binary zero +*/ + + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 */ + 0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00, /* 8- 15 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */ + 0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /* - ' */ + 0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /* ( - / */ + 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */ + 0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /* 8 - ? */ + 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* @ - G */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* H - O */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* P - W */ + 0x12,0x12,0x12,0x80,0x80,0x00,0x80,0x10, /* X - _ */ + 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* ` - g */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* h - o */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* p - w */ + 0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /* x -127 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */ + +/* End of pcre_chartables.c */ diff --git a/external-libs/pcre/build/ps3/pcre_stringpiece.h b/external-libs/pcre/build/ps3/pcre_stringpiece.h new file mode 100644 index 0000000..599a351 --- /dev/null +++ b/external-libs/pcre/build/ps3/pcre_stringpiece.h @@ -0,0 +1,177 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Sanjay Ghemawat +// +// A string like object that points into another piece of memory. +// Useful for providing an interface that allows clients to easily +// pass in either a "const char*" or a "string". +// +// Arghh! I wish C++ literals were automatically of type "string". + +#ifndef _PCRE_STRINGPIECE_H +#define _PCRE_STRINGPIECE_H + +#include +#include +#include // for ostream forward-declaration + +#if 0 +#define HAVE_TYPE_TRAITS +#include +#elif 0 +#define HAVE_TYPE_TRAITS +#include +#endif + +#include + +using std::string; + +namespace pcrecpp { + +class PCRECPP_EXP_DEFN StringPiece { + private: + const char* ptr_; + int length_; + + public: + // We provide non-explicit singleton constructors so users can pass + // in a "const char*" or a "string" wherever a "StringPiece" is + // expected. + StringPiece() + : ptr_(NULL), length_(0) { } + StringPiece(const char* str) + : ptr_(str), length_(static_cast(strlen(ptr_))) { } + StringPiece(const unsigned char* str) + : ptr_(reinterpret_cast(str)), + length_(static_cast(strlen(ptr_))) { } + StringPiece(const string& str) + : ptr_(str.data()), length_(static_cast(str.size())) { } + StringPiece(const char* offset, int len) + : ptr_(offset), length_(len) { } + + // data() may return a pointer to a buffer with embedded NULs, and the + // returned buffer may or may not be null terminated. Therefore it is + // typically a mistake to pass data() to a routine that expects a NUL + // terminated string. Use "as_string().c_str()" if you really need to do + // this. Or better yet, change your routine so it does not rely on NUL + // termination. + const char* data() const { return ptr_; } + int size() const { return length_; } + bool empty() const { return length_ == 0; } + + void clear() { ptr_ = NULL; length_ = 0; } + void set(const char* buffer, int len) { ptr_ = buffer; length_ = len; } + void set(const char* str) { + ptr_ = str; + length_ = static_cast(strlen(str)); + } + void set(const void* buffer, int len) { + ptr_ = reinterpret_cast(buffer); + length_ = len; + } + + char operator[](int i) const { return ptr_[i]; } + + void remove_prefix(int n) { + ptr_ += n; + length_ -= n; + } + + void remove_suffix(int n) { + length_ -= n; + } + + bool operator==(const StringPiece& x) const { + return ((length_ == x.length_) && + (memcmp(ptr_, x.ptr_, length_) == 0)); + } + bool operator!=(const StringPiece& x) const { + return !(*this == x); + } + +#define STRINGPIECE_BINARY_PREDICATE(cmp,auxcmp) \ + bool operator cmp (const StringPiece& x) const { \ + int r = memcmp(ptr_, x.ptr_, length_ < x.length_ ? length_ : x.length_); \ + return ((r auxcmp 0) || ((r == 0) && (length_ cmp x.length_))); \ + } + STRINGPIECE_BINARY_PREDICATE(<, <); + STRINGPIECE_BINARY_PREDICATE(<=, <); + STRINGPIECE_BINARY_PREDICATE(>=, >); + STRINGPIECE_BINARY_PREDICATE(>, >); +#undef STRINGPIECE_BINARY_PREDICATE + + int compare(const StringPiece& x) const { + int r = memcmp(ptr_, x.ptr_, length_ < x.length_ ? length_ : x.length_); + if (r == 0) { + if (length_ < x.length_) r = -1; + else if (length_ > x.length_) r = +1; + } + return r; + } + + string as_string() const { + return string(data(), size()); + } + + void CopyToString(string* target) const { + target->assign(ptr_, length_); + } + + // Does "this" start with "x" + bool starts_with(const StringPiece& x) const { + return ((length_ >= x.length_) && (memcmp(ptr_, x.ptr_, x.length_) == 0)); + } +}; + +} // namespace pcrecpp + +// ------------------------------------------------------------------ +// Functions used to create STL containers that use StringPiece +// Remember that a StringPiece's lifetime had better be less than +// that of the underlying string or char*. If it is not, then you +// cannot safely store a StringPiece into an STL container +// ------------------------------------------------------------------ + +#ifdef HAVE_TYPE_TRAITS +// This makes vector really fast for some STL implementations +template<> struct __type_traits { + typedef __true_type has_trivial_default_constructor; + typedef __true_type has_trivial_copy_constructor; + typedef __true_type has_trivial_assignment_operator; + typedef __true_type has_trivial_destructor; + typedef __true_type is_POD_type; +}; +#endif + +// allow StringPiece to be logged +std::ostream& operator<<(std::ostream& o, const pcrecpp::StringPiece& piece); + +#endif /* _PCRE_STRINGPIECE_H */ diff --git a/external-libs/pcre/build/ps3/pcrecpp.mk b/external-libs/pcre/build/ps3/pcrecpp.mk new file mode 100644 index 0000000..64727f0 --- /dev/null +++ b/external-libs/pcre/build/ps3/pcrecpp.mk @@ -0,0 +1,5 @@ +compiler := ppu-lv2-g++ +libName := pcrecpp +sources := pcrecpp.cc pcre_scanner.cc pcre_stringpiece.cc + +include rules.mk \ No newline at end of file diff --git a/external-libs/pcre/build/ps3/pcrecpparg.h b/external-libs/pcre/build/ps3/pcrecpparg.h new file mode 100644 index 0000000..b4f9c3f --- /dev/null +++ b/external-libs/pcre/build/ps3/pcrecpparg.h @@ -0,0 +1,174 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Sanjay Ghemawat + +#ifndef _PCRECPPARG_H +#define _PCRECPPARG_H + +#include // for NULL +#include + +#include + +namespace pcrecpp { + +class StringPiece; + +// Hex/Octal/Binary? + +// Special class for parsing into objects that define a ParseFrom() method +template +class _RE_MatchObject { + public: + static inline bool Parse(const char* str, int n, void* dest) { + if (dest == NULL) return true; + T* object = reinterpret_cast(dest); + return object->ParseFrom(str, n); + } +}; + +class PCRECPP_EXP_DEFN Arg { + public: + // Empty constructor so we can declare arrays of Arg + Arg(); + + // Constructor specially designed for NULL arguments + Arg(void*); + + typedef bool (*Parser)(const char* str, int n, void* dest); + +// Type-specific parsers +#define PCRE_MAKE_PARSER(type,name) \ + Arg(type* p) : arg_(p), parser_(name) { } \ + Arg(type* p, Parser parser) : arg_(p), parser_(parser) { } + + + PCRE_MAKE_PARSER(char, parse_char); + PCRE_MAKE_PARSER(unsigned char, parse_uchar); + PCRE_MAKE_PARSER(short, parse_short); + PCRE_MAKE_PARSER(unsigned short, parse_ushort); + PCRE_MAKE_PARSER(int, parse_int); + PCRE_MAKE_PARSER(unsigned int, parse_uint); + PCRE_MAKE_PARSER(long, parse_long); + PCRE_MAKE_PARSER(unsigned long, parse_ulong); +#if 1 + PCRE_MAKE_PARSER(long long, parse_longlong); +#endif +#if 1 + PCRE_MAKE_PARSER(unsigned long long, parse_ulonglong); +#endif + PCRE_MAKE_PARSER(float, parse_float); + PCRE_MAKE_PARSER(double, parse_double); + PCRE_MAKE_PARSER(std::string, parse_string); + PCRE_MAKE_PARSER(StringPiece, parse_stringpiece); + +#undef PCRE_MAKE_PARSER + + // Generic constructor + template Arg(T*, Parser parser); + // Generic constructor template + template Arg(T* p) + : arg_(p), parser_(_RE_MatchObject::Parse) { + } + + // Parse the data + bool Parse(const char* str, int n) const; + + private: + void* arg_; + Parser parser_; + + static bool parse_null (const char* str, int n, void* dest); + static bool parse_char (const char* str, int n, void* dest); + static bool parse_uchar (const char* str, int n, void* dest); + static bool parse_float (const char* str, int n, void* dest); + static bool parse_double (const char* str, int n, void* dest); + static bool parse_string (const char* str, int n, void* dest); + static bool parse_stringpiece (const char* str, int n, void* dest); + +#define PCRE_DECLARE_INTEGER_PARSER(name) \ + private: \ + static bool parse_ ## name(const char* str, int n, void* dest); \ + static bool parse_ ## name ## _radix( \ + const char* str, int n, void* dest, int radix); \ + public: \ + static bool parse_ ## name ## _hex(const char* str, int n, void* dest); \ + static bool parse_ ## name ## _octal(const char* str, int n, void* dest); \ + static bool parse_ ## name ## _cradix(const char* str, int n, void* dest) + + PCRE_DECLARE_INTEGER_PARSER(short); + PCRE_DECLARE_INTEGER_PARSER(ushort); + PCRE_DECLARE_INTEGER_PARSER(int); + PCRE_DECLARE_INTEGER_PARSER(uint); + PCRE_DECLARE_INTEGER_PARSER(long); + PCRE_DECLARE_INTEGER_PARSER(ulong); + PCRE_DECLARE_INTEGER_PARSER(longlong); + PCRE_DECLARE_INTEGER_PARSER(ulonglong); + +#undef PCRE_DECLARE_INTEGER_PARSER +}; + +inline Arg::Arg() : arg_(NULL), parser_(parse_null) { } +inline Arg::Arg(void* p) : arg_(p), parser_(parse_null) { } + +inline bool Arg::Parse(const char* str, int n) const { + return (*parser_)(str, n, arg_); +} + +// This part of the parser, appropriate only for ints, deals with bases +#define MAKE_INTEGER_PARSER(type, name) \ + inline Arg Hex(type* ptr) { \ + return Arg(ptr, Arg::parse_ ## name ## _hex); } \ + inline Arg Octal(type* ptr) { \ + return Arg(ptr, Arg::parse_ ## name ## _octal); } \ + inline Arg CRadix(type* ptr) { \ + return Arg(ptr, Arg::parse_ ## name ## _cradix); } + +MAKE_INTEGER_PARSER(short, short) /* */ +MAKE_INTEGER_PARSER(unsigned short, ushort) /* */ +MAKE_INTEGER_PARSER(int, int) /* Don't use semicolons */ +MAKE_INTEGER_PARSER(unsigned int, uint) /* after these statement */ +MAKE_INTEGER_PARSER(long, long) /* because they can cause */ +MAKE_INTEGER_PARSER(unsigned long, ulong) /* compiler warnings if */ +#if 1 /* the checking level is */ +MAKE_INTEGER_PARSER(long long, longlong) /* turned up high enough. */ +#endif /* */ +#if 1 /* */ +MAKE_INTEGER_PARSER(unsigned long long, ulonglong) /* */ +#endif + +#undef PCRE_IS_SET +#undef PCRE_SET_OR_CLEAR +#undef MAKE_INTEGER_PARSER + +} // namespace pcrecpp + + +#endif /* _PCRECPPARG_H */ diff --git a/external-libs/pcre/build/ps3/rules.mk b/external-libs/pcre/build/ps3/rules.mk new file mode 100644 index 0000000..3331fcb --- /dev/null +++ b/external-libs/pcre/build/ps3/rules.mk @@ -0,0 +1,35 @@ +# The following variables need to be defined before including this file: +# compiler The name of the compiler to use +# compilerFlags Any additional flags to pass to the compiler +# linker The name of the linker to use +# linkerFlags Any additional flags to pass to the linker +# sourcePath The path containing the source files +# sources The source file names (a.cpp b.cpp c.cpp etc) +# outPath The path to write the output files to +# tmpPath The path to use for temporary files +# libName The name of the lib to output (e.g. 'pcre' will be output as libpcre.a) + +sources := $(addprefix $(sourcePath), $(sources)) +objPath := $(tmpPath)$(libName)/ +objs := $(addsuffix .o, $(addprefix $(objPath), $(basename $(notdir $(sources))))) +lib := $(outPath)lib$(libName).a +sourceExtension := $(suffix $(firstword $(notdir $(sources)))) + +vpath %$(sourceExtension) $(sourcePath) + +all: makeDirs $(objs) $(lib) + +makeDirs: + @mkdir -p $(outPath) + @mkdir -p $(objPath) + +$(objPath)%.o : %$(sourceExtension) + $(compiler) $(compilerFlags) -o $@ $< + +# ar rcs lib.a obj1 obj2 ... +$(lib) : $(objs) + $(linker) $(linkerFlags) $(lib) $(objs) + +clean: + @rm -rf $(objPath) + @rm -f $(lib) \ No newline at end of file diff --git a/external-libs/pcre/config.h b/external-libs/pcre/config.h new file mode 100644 index 0000000..e49e162 --- /dev/null +++ b/external-libs/pcre/config.h @@ -0,0 +1,243 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + + +/* On Unix-like systems config.h.in is converted by "configure" into config.h. +Some other environments also support the use of "configure". PCRE is written in +Standard C, but there are a few non-standard things it can cope with, allowing +it to run on SunOS4 and other "close to standard" systems. + +If you are going to build PCRE "by hand" on a system without "configure" you +should copy the distributed config.h.generic to config.h, and then set up the +macro definitions the way you need them. You must then add -DHAVE_CONFIG_H to +all of your compile commands, so that config.h is included at the start of +every source. + +Alternatively, you can avoid editing by using -D on the compiler command line +to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H. + +PCRE uses memmove() if HAVE_MEMMOVE is set to 1; otherwise it uses bcopy() if +HAVE_BCOPY is set to 1. If your system has neither bcopy() nor memmove(), set +them both to 0; an emulation function will be used. */ + +/* By default, the \R escape sequence matches any Unicode line ending + character or sequence of characters. If BSR_ANYCRLF is defined, this is + changed so that backslash-R matches only CR, LF, or CRLF. The build- time + default can be overridden by the user of PCRE at runtime. On systems that + support it, "configure" can be used to override the default. */ +/* #undef BSR_ANYCRLF */ + +/* If you are compiling for a system that uses EBCDIC instead of ASCII + character codes, define this macro as 1. On systems that can use + "configure", this can be done via --enable-ebcdic. */ +/* #undef EBCDIC */ + +/* Define to 1 if you have the `bcopy' function. */ +/* #undef HAVE_BCOPY */ + +/* Define to 1 if you have the header file. */ +#define HAVE_BITS_TYPE_TRAITS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BZLIB_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DLFCN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_HISTORY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strtoll' function. */ +#define HAVE_STRTOLL 1 + +/* Define to 1 if you have the `strtoq' function. */ +/* #undef HAVE_STRTOQ */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TYPE_TRAITS_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if the system has the type `unsigned long long'. */ +#define HAVE_UNSIGNED_LONG_LONG 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_WINDOWS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ZLIB_H */ + +/* Define to 1 if you have the `_strtoi64' function. */ +/* #undef HAVE__STRTOI64 */ + +/* The value of LINK_SIZE determines the number of bytes used to store links + as offsets within the compiled regex. The default is 2, which allows for + compiled patterns up to 64K long. This covers the vast majority of cases. + However, PCRE can also be compiled to use 3 or 4 bytes instead. This allows + for longer patterns in extreme cases. On systems that support it, + "configure" can be used to override this default. */ +#define LINK_SIZE 2 + +/* The value of MATCH_LIMIT determines the default number of times the + internal match() function can be called during a single execution of + pcre_exec(). There is a runtime interface for setting a different limit. + The limit exists in order to catch runaway regular expressions that take + for ever to determine that they do not match. The default is set very large + so that it does not accidentally catch legitimate cases. On systems that + support it, "configure" can be used to override this default default. */ +#define MATCH_LIMIT 10000000 + +/* The above limit applies to all calls of match(), whether or not they + increase the recursion depth. In some environments it is desirable to limit + the depth of recursive calls of match() more strictly, in order to restrict + the maximum amount of stack (or heap, if NO_RECURSE is defined) that is + used. The value of MATCH_LIMIT_RECURSION applies only to recursive calls of + match(). To have any useful effect, it must be less than the value of + MATCH_LIMIT. The default is to use the same value as MATCH_LIMIT. There is + a runtime method for setting a different limit. On systems that support it, + "configure" can be used to override the default. */ +#define MATCH_LIMIT_RECURSION MATCH_LIMIT + +/* This limit is parameterized just in case anybody ever wants to change it. + Care must be taken if it is increased, because it guards against integer + overflow caused by enormously large patterns. */ +#define MAX_NAME_COUNT 10000 + +/* This limit is parameterized just in case anybody ever wants to change it. + Care must be taken if it is increased, because it guards against integer + overflow caused by enormously large patterns. */ +#define MAX_NAME_SIZE 32 + +/* The value of NEWLINE determines the newline character sequence. On systems + that support it, "configure" can be used to override the default, which is + 10. The possible values are 10 (LF), 13 (CR), 3338 (CRLF), -1 (ANY), or -2 + (ANYCRLF). */ +#define NEWLINE 10 + +/* PCRE uses recursive function calls to handle backtracking while matching. + This can sometimes be a problem on systems that have stacks of limited + size. Define NO_RECURSE to get a version that doesn't use recursion in the + match() function; instead it creates its own stack by steam using + pcre_recurse_malloc() to obtain memory from the heap. For more detail, see + the comments and other stuff just above the match() function. On systems + that support it, "configure" can be used to set this in the Makefile (use + --disable-stack-for-recursion). */ +/* #undef NO_RECURSE */ + +/* Name of package */ +#define PACKAGE "pcre" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "PCRE" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "PCRE 7.6" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "pcre" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "7.6" + + +/* If you are compiling for a system other than a Unix-like system or + Win32, and it needs some magic to be inserted before the definition + of a function that is exported by the library, define this macro to + contain the relevant magic. If you do not define this macro, it + defaults to "extern" for a C compiler and "extern C" for a C++ + compiler on non-Win32 systems. This macro apears at the start of + every exported function that is part of the external API. It does + not appear on functions that are "external" in the C sense, but + which are internal to the library. */ +/* #undef PCRE_EXP_DEFN */ + +/* Define if linking statically (TODO: make nice with Libtool) */ +#define PCRE_STATIC 1 + +/* When calling PCRE via the POSIX interface, additional working storage is + required for holding the pointers to capturing substrings because PCRE + requires three integers per substring, whereas the POSIX interface provides + only two. If the number of expected substrings is small, the wrapper + function uses space on the stack, because this is faster than using + malloc() for each call. The threshold above which the stack is no longer + used is defined by POSIX_MALLOC_THRESHOLD. On systems that support it, + "configure" can be used to override this default. */ +#define POSIX_MALLOC_THRESHOLD 10 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to allow pcregrep to be linked with libbz2, so that it is able to + handle .bz2 files. */ +/* #undef SUPPORT_LIBBZ2 */ + +/* Define to allow pcretest to be linked with libreadline. */ +/* #undef SUPPORT_LIBREADLINE */ + +/* Define to allow pcregrep to be linked with libz, so that it is able to + handle .gz files. */ +/* #undef SUPPORT_LIBZ */ + +/* Define to enable support for Unicode properties */ +/* #undef SUPPORT_UCP */ + +/* Define to enable support for the UTF-8 Unicode encoding. */ +/* #undef SUPPORT_UTF8 */ + +/* Version number of package */ +#define VERSION "7.6" + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ diff --git a/external-libs/pcre/lib/mac/libpcre.a b/external-libs/pcre/lib/mac/libpcre.a new file mode 100644 index 0000000..87348d7 Binary files /dev/null and b/external-libs/pcre/lib/mac/libpcre.a differ diff --git a/external-libs/pcre/lib/mac/libpcrecpp.a b/external-libs/pcre/lib/mac/libpcrecpp.a new file mode 100644 index 0000000..fa5d956 Binary files /dev/null and b/external-libs/pcre/lib/mac/libpcrecpp.a differ diff --git a/external-libs/pcre/lib/mingw/libpcre.a b/external-libs/pcre/lib/mingw/libpcre.a new file mode 100644 index 0000000..9cb325b Binary files /dev/null and b/external-libs/pcre/lib/mingw/libpcre.a differ diff --git a/external-libs/pcre/lib/mingw/libpcrecpp.a b/external-libs/pcre/lib/mingw/libpcrecpp.a new file mode 100644 index 0000000..2b97239 Binary files /dev/null and b/external-libs/pcre/lib/mingw/libpcrecpp.a differ diff --git a/external-libs/pcre/lib/ps3/libpcre.a b/external-libs/pcre/lib/ps3/libpcre.a new file mode 100644 index 0000000..fc1ea61 Binary files /dev/null and b/external-libs/pcre/lib/ps3/libpcre.a differ diff --git a/external-libs/pcre/lib/ps3/libpcrecpp.a b/external-libs/pcre/lib/ps3/libpcrecpp.a new file mode 100644 index 0000000..799c02d Binary files /dev/null and b/external-libs/pcre/lib/ps3/libpcrecpp.a differ diff --git a/external-libs/pcre/lib/vc8/pcre-d.lib b/external-libs/pcre/lib/vc8/pcre-d.lib new file mode 100644 index 0000000..4c45779 Binary files /dev/null and b/external-libs/pcre/lib/vc8/pcre-d.lib differ diff --git a/external-libs/pcre/lib/vc8/pcre.lib b/external-libs/pcre/lib/vc8/pcre.lib new file mode 100644 index 0000000..b49b7b5 Binary files /dev/null and b/external-libs/pcre/lib/vc8/pcre.lib differ diff --git a/external-libs/pcre/lib/vc8/pcrecpp-d.lib b/external-libs/pcre/lib/vc8/pcrecpp-d.lib new file mode 100644 index 0000000..f3eb084 Binary files /dev/null and b/external-libs/pcre/lib/vc8/pcrecpp-d.lib differ diff --git a/external-libs/pcre/lib/vc8/pcrecpp.lib b/external-libs/pcre/lib/vc8/pcrecpp.lib new file mode 100644 index 0000000..e5977a9 Binary files /dev/null and b/external-libs/pcre/lib/vc8/pcrecpp.lib differ diff --git a/external-libs/pcre/lib/vc9/pcre-d.lib b/external-libs/pcre/lib/vc9/pcre-d.lib new file mode 100644 index 0000000..25aea6b Binary files /dev/null and b/external-libs/pcre/lib/vc9/pcre-d.lib differ diff --git a/external-libs/pcre/lib/vc9/pcre.lib b/external-libs/pcre/lib/vc9/pcre.lib new file mode 100644 index 0000000..2710968 Binary files /dev/null and b/external-libs/pcre/lib/vc9/pcre.lib differ diff --git a/external-libs/pcre/lib/vc9/pcrecpp-d.lib b/external-libs/pcre/lib/vc9/pcrecpp-d.lib new file mode 100644 index 0000000..483321a Binary files /dev/null and b/external-libs/pcre/lib/vc9/pcrecpp-d.lib differ diff --git a/external-libs/pcre/lib/vc9/pcrecpp.lib b/external-libs/pcre/lib/vc9/pcrecpp.lib new file mode 100644 index 0000000..7bd4197 Binary files /dev/null and b/external-libs/pcre/lib/vc9/pcrecpp.lib differ diff --git a/external-libs/pcre/pcre.h b/external-libs/pcre/pcre.h new file mode 100644 index 0000000..c85c32e --- /dev/null +++ b/external-libs/pcre/pcre.h @@ -0,0 +1,303 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* This is the public header file for the PCRE library, to be #included by +applications that call the PCRE functions. + + Copyright (c) 1997-2008 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + +#ifndef _PCRE_H +#define _PCRE_H + +/* The current PCRE version information. */ + +#define PCRE_MAJOR 7 +#define PCRE_MINOR 6 +#define PCRE_PRERELEASE +#define PCRE_DATE 2008-01-28 + +/* When an application links to a PCRE DLL in Windows, the symbols that are +imported have to be identified as such. When building PCRE, the appropriate +export setting is defined in pcre_internal.h, which includes this file. So we +don't change existing definitions of PCRE_EXP_DECL and PCRECPP_EXP_DECL. */ + +#if defined(_WIN32) && !defined(PCRE_STATIC) +# ifndef PCRE_EXP_DECL +# define PCRE_EXP_DECL extern __declspec(dllimport) +# endif +# ifdef __cplusplus +# ifndef PCRECPP_EXP_DECL +# define PCRECPP_EXP_DECL extern __declspec(dllimport) +# endif +# ifndef PCRECPP_EXP_DEFN +# define PCRECPP_EXP_DEFN __declspec(dllimport) +# endif +# endif +#endif + +/* By default, we use the standard "extern" declarations. */ + +#ifndef PCRE_EXP_DECL +# ifdef __cplusplus +# define PCRE_EXP_DECL extern "C" +# else +# define PCRE_EXP_DECL extern +# endif +#endif + +#ifdef __cplusplus +# ifndef PCRECPP_EXP_DECL +# define PCRECPP_EXP_DECL extern +# endif +# ifndef PCRECPP_EXP_DEFN +# define PCRECPP_EXP_DEFN +# endif +#endif + +/* Have to include stdlib.h in order to ensure that size_t is defined; +it is needed here for malloc. */ + +#include + +/* Allow for C++ users */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Options */ + +#define PCRE_CASELESS 0x00000001 +#define PCRE_MULTILINE 0x00000002 +#define PCRE_DOTALL 0x00000004 +#define PCRE_EXTENDED 0x00000008 +#define PCRE_ANCHORED 0x00000010 +#define PCRE_DOLLAR_ENDONLY 0x00000020 +#define PCRE_EXTRA 0x00000040 +#define PCRE_NOTBOL 0x00000080 +#define PCRE_NOTEOL 0x00000100 +#define PCRE_UNGREEDY 0x00000200 +#define PCRE_NOTEMPTY 0x00000400 +#define PCRE_UTF8 0x00000800 +#define PCRE_NO_AUTO_CAPTURE 0x00001000 +#define PCRE_NO_UTF8_CHECK 0x00002000 +#define PCRE_AUTO_CALLOUT 0x00004000 +#define PCRE_PARTIAL 0x00008000 +#define PCRE_DFA_SHORTEST 0x00010000 +#define PCRE_DFA_RESTART 0x00020000 +#define PCRE_FIRSTLINE 0x00040000 +#define PCRE_DUPNAMES 0x00080000 +#define PCRE_NEWLINE_CR 0x00100000 +#define PCRE_NEWLINE_LF 0x00200000 +#define PCRE_NEWLINE_CRLF 0x00300000 +#define PCRE_NEWLINE_ANY 0x00400000 +#define PCRE_NEWLINE_ANYCRLF 0x00500000 +#define PCRE_BSR_ANYCRLF 0x00800000 +#define PCRE_BSR_UNICODE 0x01000000 + +/* Exec-time and get/set-time error codes */ + +#define PCRE_ERROR_NOMATCH (-1) +#define PCRE_ERROR_NULL (-2) +#define PCRE_ERROR_BADOPTION (-3) +#define PCRE_ERROR_BADMAGIC (-4) +#define PCRE_ERROR_UNKNOWN_OPCODE (-5) +#define PCRE_ERROR_UNKNOWN_NODE (-5) /* For backward compatibility */ +#define PCRE_ERROR_NOMEMORY (-6) +#define PCRE_ERROR_NOSUBSTRING (-7) +#define PCRE_ERROR_MATCHLIMIT (-8) +#define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */ +#define PCRE_ERROR_BADUTF8 (-10) +#define PCRE_ERROR_BADUTF8_OFFSET (-11) +#define PCRE_ERROR_PARTIAL (-12) +#define PCRE_ERROR_BADPARTIAL (-13) +#define PCRE_ERROR_INTERNAL (-14) +#define PCRE_ERROR_BADCOUNT (-15) +#define PCRE_ERROR_DFA_UITEM (-16) +#define PCRE_ERROR_DFA_UCOND (-17) +#define PCRE_ERROR_DFA_UMLIMIT (-18) +#define PCRE_ERROR_DFA_WSSIZE (-19) +#define PCRE_ERROR_DFA_RECURSE (-20) +#define PCRE_ERROR_RECURSIONLIMIT (-21) +#define PCRE_ERROR_NULLWSLIMIT (-22) /* No longer actually used */ +#define PCRE_ERROR_BADNEWLINE (-23) + +/* Request types for pcre_fullinfo() */ + +#define PCRE_INFO_OPTIONS 0 +#define PCRE_INFO_SIZE 1 +#define PCRE_INFO_CAPTURECOUNT 2 +#define PCRE_INFO_BACKREFMAX 3 +#define PCRE_INFO_FIRSTBYTE 4 +#define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */ +#define PCRE_INFO_FIRSTTABLE 5 +#define PCRE_INFO_LASTLITERAL 6 +#define PCRE_INFO_NAMEENTRYSIZE 7 +#define PCRE_INFO_NAMECOUNT 8 +#define PCRE_INFO_NAMETABLE 9 +#define PCRE_INFO_STUDYSIZE 10 +#define PCRE_INFO_DEFAULT_TABLES 11 +#define PCRE_INFO_OKPARTIAL 12 +#define PCRE_INFO_JCHANGED 13 +#define PCRE_INFO_HASCRORLF 14 + +/* Request types for pcre_config(). Do not re-arrange, in order to remain +compatible. */ + +#define PCRE_CONFIG_UTF8 0 +#define PCRE_CONFIG_NEWLINE 1 +#define PCRE_CONFIG_LINK_SIZE 2 +#define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3 +#define PCRE_CONFIG_MATCH_LIMIT 4 +#define PCRE_CONFIG_STACKRECURSE 5 +#define PCRE_CONFIG_UNICODE_PROPERTIES 6 +#define PCRE_CONFIG_MATCH_LIMIT_RECURSION 7 +#define PCRE_CONFIG_BSR 8 + +/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine +these bits, just add new ones on the end, in order to remain compatible. */ + +#define PCRE_EXTRA_STUDY_DATA 0x0001 +#define PCRE_EXTRA_MATCH_LIMIT 0x0002 +#define PCRE_EXTRA_CALLOUT_DATA 0x0004 +#define PCRE_EXTRA_TABLES 0x0008 +#define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0x0010 + +/* Types */ + +struct real_pcre; /* declaration; the definition is private */ +typedef struct real_pcre pcre; + +/* When PCRE is compiled as a C++ library, the subject pointer type can be +replaced with a custom type. For conventional use, the public interface is a +const char *. */ + +#ifndef PCRE_SPTR +#define PCRE_SPTR const char * +#endif + +/* The structure for passing additional data to pcre_exec(). This is defined in +such as way as to be extensible. Always add new fields at the end, in order to +remain compatible. */ + +typedef struct pcre_extra { + unsigned long int flags; /* Bits for which fields are set */ + void *study_data; /* Opaque data from pcre_study() */ + unsigned long int match_limit; /* Maximum number of calls to match() */ + void *callout_data; /* Data passed back in callouts */ + const unsigned char *tables; /* Pointer to character tables */ + unsigned long int match_limit_recursion; /* Max recursive calls to match() */ +} pcre_extra; + +/* The structure for passing out data via the pcre_callout_function. We use a +structure so that new fields can be added on the end in future versions, +without changing the API of the function, thereby allowing old clients to work +without modification. */ + +typedef struct pcre_callout_block { + int version; /* Identifies version of block */ + /* ------------------------ Version 0 ------------------------------- */ + int callout_number; /* Number compiled into pattern */ + int *offset_vector; /* The offset vector */ + PCRE_SPTR subject; /* The subject being matched */ + int subject_length; /* The length of the subject */ + int start_match; /* Offset to start of this match attempt */ + int current_position; /* Where we currently are in the subject */ + int capture_top; /* Max current capture */ + int capture_last; /* Most recently closed capture */ + void *callout_data; /* Data passed in with the call */ + /* ------------------- Added for Version 1 -------------------------- */ + int pattern_position; /* Offset to next item in the pattern */ + int next_item_length; /* Length of next item in the pattern */ + /* ------------------------------------------------------------------ */ +} pcre_callout_block; + +/* Indirection for store get and free functions. These can be set to +alternative malloc/free functions if required. Special ones are used in the +non-recursive case for "frames". There is also an optional callout function +that is triggered by the (?) regex item. For Virtual Pascal, these definitions +have to take another form. */ + +#ifndef VPCOMPAT +PCRE_EXP_DECL void *(*pcre_malloc)(size_t); +PCRE_EXP_DECL void (*pcre_free)(void *); +PCRE_EXP_DECL void *(*pcre_stack_malloc)(size_t); +PCRE_EXP_DECL void (*pcre_stack_free)(void *); +PCRE_EXP_DECL int (*pcre_callout)(pcre_callout_block *); +#else /* VPCOMPAT */ +PCRE_EXP_DECL void *pcre_malloc(size_t); +PCRE_EXP_DECL void pcre_free(void *); +PCRE_EXP_DECL void *pcre_stack_malloc(size_t); +PCRE_EXP_DECL void pcre_stack_free(void *); +PCRE_EXP_DECL int pcre_callout(pcre_callout_block *); +#endif /* VPCOMPAT */ + +/* Exported PCRE functions */ + +PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *, + const unsigned char *); +PCRE_EXP_DECL pcre *pcre_compile2(const char *, int, int *, const char **, + int *, const unsigned char *); +PCRE_EXP_DECL int pcre_config(int, void *); +PCRE_EXP_DECL int pcre_copy_named_substring(const pcre *, const char *, + int *, int, const char *, char *, int); +PCRE_EXP_DECL int pcre_copy_substring(const char *, int *, int, int, char *, + int); +PCRE_EXP_DECL int pcre_dfa_exec(const pcre *, const pcre_extra *, + const char *, int, int, int, int *, int , int *, int); +PCRE_EXP_DECL int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR, + int, int, int, int *, int); +PCRE_EXP_DECL void pcre_free_substring(const char *); +PCRE_EXP_DECL void pcre_free_substring_list(const char **); +PCRE_EXP_DECL int pcre_fullinfo(const pcre *, const pcre_extra *, int, + void *); +PCRE_EXP_DECL int pcre_get_named_substring(const pcre *, const char *, + int *, int, const char *, const char **); +PCRE_EXP_DECL int pcre_get_stringnumber(const pcre *, const char *); +PCRE_EXP_DECL int pcre_get_stringtable_entries(const pcre *, const char *, + char **, char **); +PCRE_EXP_DECL int pcre_get_substring(const char *, int *, int, int, + const char **); +PCRE_EXP_DECL int pcre_get_substring_list(const char *, int *, int, + const char ***); +PCRE_EXP_DECL int pcre_info(const pcre *, int *, int *); +PCRE_EXP_DECL const unsigned char *pcre_maketables(void); +PCRE_EXP_DECL int pcre_refcount(pcre *, int); +PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **); +PCRE_EXP_DECL const char *pcre_version(void); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* End of pcre.h */ diff --git a/external-libs/pcre/pcre_chartables.c b/external-libs/pcre/pcre_chartables.c new file mode 100644 index 0000000..36a7959 --- /dev/null +++ b/external-libs/pcre/pcre_chartables.c @@ -0,0 +1,193 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* This file was automatically written by the dftables auxiliary +program. It contains character tables that are used when no external +tables are passed to PCRE by the application that calls it. The tables +are used only for characters whose code values are less than 256. + +The following #includes are present because without them gcc 4.x may remove +the array definition from the final binary if PCRE is built into a static +library and dead code stripping is activated. This leads to link errors. +Pulling in the header ensures that the array gets flagged as "someone +outside this compilation unit might reference this" and so it will always +be supplied to the linker. */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "pcre_internal.h" + +const unsigned char _pcre_default_tables[] = { + +/* This table is a lower casing table. */ + + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122,123,124,125,126,127, + 128,129,130,131,132,133,134,135, + 136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151, + 152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167, + 168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183, + 184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199, + 200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,215, + 216,217,218,219,220,221,222,223, + 224,225,226,227,228,229,230,231, + 232,233,234,235,236,237,238,239, + 240,241,242,243,244,245,246,247, + 248,249,250,251,252,253,254,255, + +/* This table is a case flipping table. */ + + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, + 64, 97, 98, 99,100,101,102,103, + 104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,118,119, + 120,121,122, 91, 92, 93, 94, 95, + 96, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90,123,124,125,126,127, + 128,129,130,131,132,133,134,135, + 136,137,138,139,140,141,142,143, + 144,145,146,147,148,149,150,151, + 152,153,154,155,156,157,158,159, + 160,161,162,163,164,165,166,167, + 168,169,170,171,172,173,174,175, + 176,177,178,179,180,181,182,183, + 184,185,186,187,188,189,190,191, + 192,193,194,195,196,197,198,199, + 200,201,202,203,204,205,206,207, + 208,209,210,211,212,213,214,215, + 216,217,218,219,220,221,222,223, + 224,225,226,227,228,229,230,231, + 232,233,234,235,236,237,238,239, + 240,241,242,243,244,245,246,247, + 248,249,250,251,252,253,254,255, + +/* This table contains bit maps for various character classes. +Each map is 32 bytes long and the bits run from the least +significant end of each byte. The classes that have their own +maps are: space, xdigit, digit, upper, lower, word, graph +print, punct, and cntrl. Other classes are built from combinations. */ + + 0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, + 0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc, + 0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + + 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + +/* This table identifies various classes of character by individual bits: + 0x01 white space character + 0x02 letter + 0x04 decimal digit + 0x08 hexadecimal digit + 0x10 alphanumeric or '_' + 0x80 regular expression metacharacter or binary zero +*/ + + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 */ + 0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00, /* 8- 15 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */ + 0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /* - ' */ + 0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /* ( - / */ + 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */ + 0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /* 8 - ? */ + 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* @ - G */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* H - O */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* P - W */ + 0x12,0x12,0x12,0x80,0x80,0x00,0x80,0x10, /* X - _ */ + 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* ` - g */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* h - o */ + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* p - w */ + 0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /* x -127 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */ + +/* End of pcre_chartables.c */ diff --git a/external-libs/pcre/pcre_internal.h b/external-libs/pcre/pcre_internal.h new file mode 100644 index 0000000..caf7b83 --- /dev/null +++ b/external-libs/pcre/pcre_internal.h @@ -0,0 +1,1126 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + + +/* PCRE is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + + Written by Philip Hazel + Copyright (c) 1997-2008 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + +/* This header contains definitions that are shared between the different +modules, but which are not relevant to the exported API. This includes some +functions whose names all begin with "_pcre_". */ + +#ifndef PCRE_INTERNAL_H +#define PCRE_INTERNAL_H + +/* Define DEBUG to get debugging output on stdout. */ + +#if 0 +#define DEBUG +#endif + +/* Use a macro for debugging printing, 'cause that eliminates the use of #ifdef +inline, and there are *still* stupid compilers about that don't like indented +pre-processor statements, or at least there were when I first wrote this. After +all, it had only been about 10 years then... + +It turns out that the Mac Debugging.h header also defines the macro DPRINTF, so +be absolutely sure we get our version. */ + +#undef DPRINTF +#ifdef DEBUG +#define DPRINTF(p) printf p +#else +#define DPRINTF(p) /* Nothing */ +#endif + + +/* Standard C headers plus the external interface definition. The only time +setjmp and stdarg are used is when NO_RECURSE is set. */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* When compiling a DLL for Windows, the exported symbols have to be declared +using some MS magic. I found some useful information on this web page: +http://msdn2.microsoft.com/en-us/library/y4h7bcy6(VS.80).aspx. According to the +information there, using __declspec(dllexport) without "extern" we have a +definition; with "extern" we have a declaration. The settings here override the +setting in pcre.h (which is included below); it defines only PCRE_EXP_DECL, +which is all that is needed for applications (they just import the symbols). We +use: + + PCRE_EXP_DECL for declarations + PCRE_EXP_DEFN for definitions of exported functions + PCRE_EXP_DATA_DEFN for definitions of exported variables + +The reason for the two DEFN macros is that in non-Windows environments, one +does not want to have "extern" before variable definitions because it leads to +compiler warnings. So we distinguish between functions and variables. In +Windows, the two should always be the same. + +The reason for wrapping this in #ifndef PCRE_EXP_DECL is so that pcretest, +which is an application, but needs to import this file in order to "peek" at +internals, can #include pcre.h first to get an application's-eye view. + +In principle, people compiling for non-Windows, non-Unix-like (i.e. uncommon, +special-purpose environments) might want to stick other stuff in front of +exported symbols. That's why, in the non-Windows case, we set PCRE_EXP_DEFN and +PCRE_EXP_DATA_DEFN only if they are not already set. */ + +#ifndef PCRE_EXP_DECL +# ifdef _WIN32 +# ifndef PCRE_STATIC +# define PCRE_EXP_DECL extern __declspec(dllexport) +# define PCRE_EXP_DEFN __declspec(dllexport) +# define PCRE_EXP_DATA_DEFN __declspec(dllexport) +# else +# define PCRE_EXP_DECL extern +# define PCRE_EXP_DEFN +# define PCRE_EXP_DATA_DEFN +# endif +# else +# ifdef __cplusplus +# define PCRE_EXP_DECL extern "C" +# else +# define PCRE_EXP_DECL extern +# endif +# ifndef PCRE_EXP_DEFN +# define PCRE_EXP_DEFN PCRE_EXP_DECL +# endif +# ifndef PCRE_EXP_DATA_DEFN +# define PCRE_EXP_DATA_DEFN +# endif +# endif +#endif + +/* We need to have types that specify unsigned 16-bit and 32-bit integers. We +cannot determine these outside the compilation (e.g. by running a program as +part of "configure") because PCRE is often cross-compiled for use on other +systems. Instead we make use of the maximum sizes that are available at +preprocessor time in standard C environments. */ + +#if USHRT_MAX == 65535 + typedef unsigned short pcre_uint16; +#elif UINT_MAX == 65535 + typedef unsigned int pcre_uint16; +#else + #error Cannot determine a type for 16-bit unsigned integers +#endif + +#if UINT_MAX == 4294967295 + typedef unsigned int pcre_uint32; +#elif ULONG_MAX == 4294967295 + typedef unsigned long int pcre_uint32; +#else + #error Cannot determine a type for 32-bit unsigned integers +#endif + +/* All character handling must be done as unsigned characters. Otherwise there +are problems with top-bit-set characters and functions such as isspace(). +However, we leave the interface to the outside world as char *, because that +should make things easier for callers. We define a short type for unsigned char +to save lots of typing. I tried "uchar", but it causes problems on Digital +Unix, where it is defined in sys/types, so use "uschar" instead. */ + +typedef unsigned char uschar; + +/* This is an unsigned int value that no character can ever have. UTF-8 +characters only go up to 0x7fffffff (though Unicode doesn't go beyond +0x0010ffff). */ + +#define NOTACHAR 0xffffffff + +/* PCRE is able to support several different kinds of newline (CR, LF, CRLF, +"any" and "anycrlf" at present). The following macros are used to package up +testing for newlines. NLBLOCK, PSSTART, and PSEND are defined in the various +modules to indicate in which datablock the parameters exist, and what the +start/end of string field names are. */ + +#define NLTYPE_FIXED 0 /* Newline is a fixed length string */ +#define NLTYPE_ANY 1 /* Newline is any Unicode line ending */ +#define NLTYPE_ANYCRLF 2 /* Newline is CR, LF, or CRLF */ + +/* This macro checks for a newline at the given position */ + +#define IS_NEWLINE(p) \ + ((NLBLOCK->nltype != NLTYPE_FIXED)? \ + ((p) < NLBLOCK->PSEND && \ + _pcre_is_newline((p), NLBLOCK->nltype, NLBLOCK->PSEND, &(NLBLOCK->nllen),\ + utf8)) \ + : \ + ((p) <= NLBLOCK->PSEND - NLBLOCK->nllen && \ + (p)[0] == NLBLOCK->nl[0] && \ + (NLBLOCK->nllen == 1 || (p)[1] == NLBLOCK->nl[1]) \ + ) \ + ) + +/* This macro checks for a newline immediately preceding the given position */ + +#define WAS_NEWLINE(p) \ + ((NLBLOCK->nltype != NLTYPE_FIXED)? \ + ((p) > NLBLOCK->PSSTART && \ + _pcre_was_newline((p), NLBLOCK->nltype, NLBLOCK->PSSTART, \ + &(NLBLOCK->nllen), utf8)) \ + : \ + ((p) >= NLBLOCK->PSSTART + NLBLOCK->nllen && \ + (p)[-NLBLOCK->nllen] == NLBLOCK->nl[0] && \ + (NLBLOCK->nllen == 1 || (p)[-NLBLOCK->nllen+1] == NLBLOCK->nl[1]) \ + ) \ + ) + +/* When PCRE is compiled as a C++ library, the subject pointer can be replaced +with a custom type. This makes it possible, for example, to allow pcre_exec() +to process subject strings that are discontinuous by using a smart pointer +class. It must always be possible to inspect all of the subject string in +pcre_exec() because of the way it backtracks. Two macros are required in the +normal case, for sign-unspecified and unsigned char pointers. The former is +used for the external interface and appears in pcre.h, which is why its name +must begin with PCRE_. */ + +#ifdef CUSTOM_SUBJECT_PTR +#define PCRE_SPTR CUSTOM_SUBJECT_PTR +#define USPTR CUSTOM_SUBJECT_PTR +#else +#define PCRE_SPTR const char * +#define USPTR const unsigned char * +#endif + + + +/* Include the public PCRE header and the definitions of UCP character property +values. */ + +#include "pcre.h" +#include "ucp.h" + +/* When compiling for use with the Virtual Pascal compiler, these functions +need to have their names changed. PCRE must be compiled with the -DVPCOMPAT +option on the command line. */ + +#ifdef VPCOMPAT +#define strlen(s) _strlen(s) +#define strncmp(s1,s2,m) _strncmp(s1,s2,m) +#define memcmp(s,c,n) _memcmp(s,c,n) +#define memcpy(d,s,n) _memcpy(d,s,n) +#define memmove(d,s,n) _memmove(d,s,n) +#define memset(s,c,n) _memset(s,c,n) +#else /* VPCOMPAT */ + +/* To cope with SunOS4 and other systems that lack memmove() but have bcopy(), +define a macro for memmove() if HAVE_MEMMOVE is false, provided that HAVE_BCOPY +is set. Otherwise, include an emulating function for those systems that have +neither (there some non-Unix environments where this is the case). */ + +#ifndef HAVE_MEMMOVE +#undef memmove /* some systems may have a macro */ +#ifdef HAVE_BCOPY +#define memmove(a, b, c) bcopy(b, a, c) +#else /* HAVE_BCOPY */ +static void * +pcre_memmove(void *d, const void *s, size_t n) +{ +size_t i; +unsigned char *dest = (unsigned char *)d; +const unsigned char *src = (const unsigned char *)s; +if (dest > src) + { + dest += n; + src += n; + for (i = 0; i < n; ++i) *(--dest) = *(--src); + return (void *)dest; + } +else + { + for (i = 0; i < n; ++i) *dest++ = *src++; + return (void *)(dest - n); + } +} +#define memmove(a, b, c) pcre_memmove(a, b, c) +#endif /* not HAVE_BCOPY */ +#endif /* not HAVE_MEMMOVE */ +#endif /* not VPCOMPAT */ + + +/* PCRE keeps offsets in its compiled code as 2-byte quantities (always stored +in big-endian order) by default. These are used, for example, to link from the +start of a subpattern to its alternatives and its end. The use of 2 bytes per +offset limits the size of the compiled regex to around 64K, which is big enough +for almost everybody. However, I received a request for an even bigger limit. +For this reason, and also to make the code easier to maintain, the storing and +loading of offsets from the byte string is now handled by the macros that are +defined here. + +The macros are controlled by the value of LINK_SIZE. This defaults to 2 in +the config.h file, but can be overridden by using -D on the command line. This +is automated on Unix systems via the "configure" command. */ + +#if LINK_SIZE == 2 + +#define PUT(a,n,d) \ + (a[n] = (d) >> 8), \ + (a[(n)+1] = (d) & 255) + +#define GET(a,n) \ + (((a)[n] << 8) | (a)[(n)+1]) + +#define MAX_PATTERN_SIZE (1 << 16) + + +#elif LINK_SIZE == 3 + +#define PUT(a,n,d) \ + (a[n] = (d) >> 16), \ + (a[(n)+1] = (d) >> 8), \ + (a[(n)+2] = (d) & 255) + +#define GET(a,n) \ + (((a)[n] << 16) | ((a)[(n)+1] << 8) | (a)[(n)+2]) + +#define MAX_PATTERN_SIZE (1 << 24) + + +#elif LINK_SIZE == 4 + +#define PUT(a,n,d) \ + (a[n] = (d) >> 24), \ + (a[(n)+1] = (d) >> 16), \ + (a[(n)+2] = (d) >> 8), \ + (a[(n)+3] = (d) & 255) + +#define GET(a,n) \ + (((a)[n] << 24) | ((a)[(n)+1] << 16) | ((a)[(n)+2] << 8) | (a)[(n)+3]) + +#define MAX_PATTERN_SIZE (1 << 30) /* Keep it positive */ + + +#else +#error LINK_SIZE must be either 2, 3, or 4 +#endif + + +/* Convenience macro defined in terms of the others */ + +#define PUTINC(a,n,d) PUT(a,n,d), a += LINK_SIZE + + +/* PCRE uses some other 2-byte quantities that do not change when the size of +offsets changes. There are used for repeat counts and for other things such as +capturing parenthesis numbers in back references. */ + +#define PUT2(a,n,d) \ + a[n] = (d) >> 8; \ + a[(n)+1] = (d) & 255 + +#define GET2(a,n) \ + (((a)[n] << 8) | (a)[(n)+1]) + +#define PUT2INC(a,n,d) PUT2(a,n,d), a += 2 + + +/* When UTF-8 encoding is being used, a character is no longer just a single +byte. The macros for character handling generate simple sequences when used in +byte-mode, and more complicated ones for UTF-8 characters. BACKCHAR should +never be called in byte mode. To make sure it can never even appear when UTF-8 +support is omitted, we don't even define it. */ + +#ifndef SUPPORT_UTF8 +#define NEXTCHAR(p) p++; +#define GETCHAR(c, eptr) c = *eptr; +#define GETCHARTEST(c, eptr) c = *eptr; +#define GETCHARINC(c, eptr) c = *eptr++; +#define GETCHARINCTEST(c, eptr) c = *eptr++; +#define GETCHARLEN(c, eptr, len) c = *eptr; +/* #define BACKCHAR(eptr) */ + +#else /* SUPPORT_UTF8 */ + +/* Advance a character pointer one byte in non-UTF-8 mode and by one character +in UTF-8 mode. */ + +#define NEXTCHAR(p) \ + p++; \ + if (utf8) { while((*p & 0xc0) == 0x80) p++; } + +/* Get the next UTF-8 character, not advancing the pointer. This is called when +we know we are in UTF-8 mode. */ + +#define GETCHAR(c, eptr) \ + c = *eptr; \ + if (c >= 0xc0) \ + { \ + int gcii; \ + int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ + int gcss = 6*gcaa; \ + c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ + for (gcii = 1; gcii <= gcaa; gcii++) \ + { \ + gcss -= 6; \ + c |= (eptr[gcii] & 0x3f) << gcss; \ + } \ + } + +/* Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the +pointer. */ + +#define GETCHARTEST(c, eptr) \ + c = *eptr; \ + if (utf8 && c >= 0xc0) \ + { \ + int gcii; \ + int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ + int gcss = 6*gcaa; \ + c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ + for (gcii = 1; gcii <= gcaa; gcii++) \ + { \ + gcss -= 6; \ + c |= (eptr[gcii] & 0x3f) << gcss; \ + } \ + } + +/* Get the next UTF-8 character, advancing the pointer. This is called when we +know we are in UTF-8 mode. */ + +#define GETCHARINC(c, eptr) \ + c = *eptr++; \ + if (c >= 0xc0) \ + { \ + int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ + int gcss = 6*gcaa; \ + c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ + while (gcaa-- > 0) \ + { \ + gcss -= 6; \ + c |= (*eptr++ & 0x3f) << gcss; \ + } \ + } + +/* Get the next character, testing for UTF-8 mode, and advancing the pointer */ + +#define GETCHARINCTEST(c, eptr) \ + c = *eptr++; \ + if (utf8 && c >= 0xc0) \ + { \ + int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ + int gcss = 6*gcaa; \ + c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ + while (gcaa-- > 0) \ + { \ + gcss -= 6; \ + c |= (*eptr++ & 0x3f) << gcss; \ + } \ + } + +/* Get the next UTF-8 character, not advancing the pointer, incrementing length +if there are extra bytes. This is called when we know we are in UTF-8 mode. */ + +#define GETCHARLEN(c, eptr, len) \ + c = *eptr; \ + if (c >= 0xc0) \ + { \ + int gcii; \ + int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ + int gcss = 6*gcaa; \ + c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ + for (gcii = 1; gcii <= gcaa; gcii++) \ + { \ + gcss -= 6; \ + c |= (eptr[gcii] & 0x3f) << gcss; \ + } \ + len += gcaa; \ + } + +/* If the pointer is not at the start of a character, move it back until +it is. This is called only in UTF-8 mode - we don't put a test within the macro +because almost all calls are already within a block of UTF-8 only code. */ + +#define BACKCHAR(eptr) while((*eptr & 0xc0) == 0x80) eptr-- + +#endif + + +/* In case there is no definition of offsetof() provided - though any proper +Standard C system should have one. */ + +#ifndef offsetof +#define offsetof(p_type,field) ((size_t)&(((p_type *)0)->field)) +#endif + + +/* These are the public options that can change during matching. */ + +#define PCRE_IMS (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL) + +/* Private flags containing information about the compiled regex. They used to +live at the top end of the options word, but that got almost full, so now they +are in a 16-bit flags word. */ + +#define PCRE_NOPARTIAL 0x0001 /* can't use partial with this regex */ +#define PCRE_FIRSTSET 0x0002 /* first_byte is set */ +#define PCRE_REQCHSET 0x0004 /* req_byte is set */ +#define PCRE_STARTLINE 0x0008 /* start after \n for multiline */ +#define PCRE_JCHANGED 0x0010 /* j option used in regex */ +#define PCRE_HASCRORLF 0x0020 /* explicit \r or \n in pattern */ + +/* Options for the "extra" block produced by pcre_study(). */ + +#define PCRE_STUDY_MAPPED 0x01 /* a map of starting chars exists */ + +/* Masks for identifying the public options that are permitted at compile +time, run time, or study time, respectively. */ + +#define PCRE_NEWLINE_BITS (PCRE_NEWLINE_CR|PCRE_NEWLINE_LF|PCRE_NEWLINE_ANY| \ + PCRE_NEWLINE_ANYCRLF) + +#define PUBLIC_OPTIONS \ + (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \ + PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY|PCRE_UTF8| \ + PCRE_NO_AUTO_CAPTURE|PCRE_NO_UTF8_CHECK|PCRE_AUTO_CALLOUT|PCRE_FIRSTLINE| \ + PCRE_DUPNAMES|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE) + +#define PUBLIC_EXEC_OPTIONS \ + (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \ + PCRE_PARTIAL|PCRE_NEWLINE_BITS|PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE) + +#define PUBLIC_DFA_EXEC_OPTIONS \ + (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \ + PCRE_PARTIAL|PCRE_DFA_SHORTEST|PCRE_DFA_RESTART|PCRE_NEWLINE_BITS| \ + PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE) + +#define PUBLIC_STUDY_OPTIONS 0 /* None defined */ + +/* Magic number to provide a small check against being handed junk. Also used +to detect whether a pattern was compiled on a host of different endianness. */ + +#define MAGIC_NUMBER 0x50435245UL /* 'PCRE' */ + +/* Negative values for the firstchar and reqchar variables */ + +#define REQ_UNSET (-2) +#define REQ_NONE (-1) + +/* The maximum remaining length of subject we are prepared to search for a +req_byte match. */ + +#define REQ_BYTE_MAX 1000 + +/* Flags added to firstbyte or reqbyte; a "non-literal" item is either a +variable-length repeat, or a anything other than literal characters. */ + +#define REQ_CASELESS 0x0100 /* indicates caselessness */ +#define REQ_VARY 0x0200 /* reqbyte followed non-literal item */ + +/* Miscellaneous definitions */ + +typedef int BOOL; + +#define FALSE 0 +#define TRUE 1 + +/* Escape items that are just an encoding of a particular data value. */ + +#ifndef ESC_e +#define ESC_e 27 +#endif + +#ifndef ESC_f +#define ESC_f '\f' +#endif + +#ifndef ESC_n +#define ESC_n '\n' +#endif + +#ifndef ESC_r +#define ESC_r '\r' +#endif + +/* We can't officially use ESC_t because it is a POSIX reserved identifier +(presumably because of all the others like size_t). */ + +#ifndef ESC_tee +#define ESC_tee '\t' +#endif + +/* Codes for different types of Unicode property */ + +#define PT_ANY 0 /* Any property - matches all chars */ +#define PT_LAMP 1 /* L& - the union of Lu, Ll, Lt */ +#define PT_GC 2 /* General characteristic (e.g. L) */ +#define PT_PC 3 /* Particular characteristic (e.g. Lu) */ +#define PT_SC 4 /* Script (e.g. Han) */ + +/* Flag bits and data types for the extended class (OP_XCLASS) for classes that +contain UTF-8 characters with values greater than 255. */ + +#define XCL_NOT 0x01 /* Flag: this is a negative class */ +#define XCL_MAP 0x02 /* Flag: a 32-byte map is present */ + +#define XCL_END 0 /* Marks end of individual items */ +#define XCL_SINGLE 1 /* Single item (one multibyte char) follows */ +#define XCL_RANGE 2 /* A range (two multibyte chars) follows */ +#define XCL_PROP 3 /* Unicode property (2-byte property code follows) */ +#define XCL_NOTPROP 4 /* Unicode inverted property (ditto) */ + +/* These are escaped items that aren't just an encoding of a particular data +value such as \n. They must have non-zero values, as check_escape() returns +their negation. Also, they must appear in the same order as in the opcode +definitions below, up to ESC_z. There's a dummy for OP_ANY because it +corresponds to "." rather than an escape sequence. The final one must be +ESC_REF as subsequent values are used for backreferences (\1, \2, \3, etc). +There are two tests in the code for an escape greater than ESC_b and less than +ESC_Z to detect the types that may be repeated. These are the types that +consume characters. If any new escapes are put in between that don't consume a +character, that code will have to change. */ + +enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, ESC_b, ESC_D, ESC_d, ESC_S, ESC_s, + ESC_W, ESC_w, ESC_dum1, ESC_C, ESC_P, ESC_p, ESC_R, ESC_H, ESC_h, + ESC_V, ESC_v, ESC_X, ESC_Z, ESC_z, ESC_E, ESC_Q, ESC_k, ESC_REF }; + + +/* Opcode table: Starting from 1 (i.e. after OP_END), the values up to +OP_EOD must correspond in order to the list of escapes immediately above. + +*** NOTE NOTE NOTE *** Whenever this list is updated, the two macro definitions +that follow must also be updated to match. There is also a table called +"coptable" in pcre_dfa_exec.c that must be updated. */ + +enum { + OP_END, /* 0 End of pattern */ + + /* Values corresponding to backslashed metacharacters */ + + OP_SOD, /* 1 Start of data: \A */ + OP_SOM, /* 2 Start of match (subject + offset): \G */ + OP_SET_SOM, /* 3 Set start of match (\K) */ + OP_NOT_WORD_BOUNDARY, /* 4 \B */ + OP_WORD_BOUNDARY, /* 5 \b */ + OP_NOT_DIGIT, /* 6 \D */ + OP_DIGIT, /* 7 \d */ + OP_NOT_WHITESPACE, /* 8 \S */ + OP_WHITESPACE, /* 9 \s */ + OP_NOT_WORDCHAR, /* 10 \W */ + OP_WORDCHAR, /* 11 \w */ + OP_ANY, /* 12 Match any character */ + OP_ANYBYTE, /* 13 Match any byte (\C); different to OP_ANY for UTF-8 */ + OP_NOTPROP, /* 14 \P (not Unicode property) */ + OP_PROP, /* 15 \p (Unicode property) */ + OP_ANYNL, /* 16 \R (any newline sequence) */ + OP_NOT_HSPACE, /* 17 \H (not horizontal whitespace) */ + OP_HSPACE, /* 18 \h (horizontal whitespace) */ + OP_NOT_VSPACE, /* 19 \V (not vertical whitespace) */ + OP_VSPACE, /* 20 \v (vertical whitespace) */ + OP_EXTUNI, /* 21 \X (extended Unicode sequence */ + OP_EODN, /* 22 End of data or \n at end of data: \Z. */ + OP_EOD, /* 23 End of data: \z */ + + OP_OPT, /* 24 Set runtime options */ + OP_CIRC, /* 25 Start of line - varies with multiline switch */ + OP_DOLL, /* 26 End of line - varies with multiline switch */ + OP_CHAR, /* 27 Match one character, casefully */ + OP_CHARNC, /* 28 Match one character, caselessly */ + OP_NOT, /* 29 Match one character, not the following one */ + + OP_STAR, /* 30 The maximizing and minimizing versions of */ + OP_MINSTAR, /* 31 these six opcodes must come in pairs, with */ + OP_PLUS, /* 32 the minimizing one second. */ + OP_MINPLUS, /* 33 This first set applies to single characters.*/ + OP_QUERY, /* 34 */ + OP_MINQUERY, /* 35 */ + + OP_UPTO, /* 36 From 0 to n matches */ + OP_MINUPTO, /* 37 */ + OP_EXACT, /* 38 Exactly n matches */ + + OP_POSSTAR, /* 39 Possessified star */ + OP_POSPLUS, /* 40 Possessified plus */ + OP_POSQUERY, /* 41 Posesssified query */ + OP_POSUPTO, /* 42 Possessified upto */ + + OP_NOTSTAR, /* 43 The maximizing and minimizing versions of */ + OP_NOTMINSTAR, /* 44 these six opcodes must come in pairs, with */ + OP_NOTPLUS, /* 45 the minimizing one second. They must be in */ + OP_NOTMINPLUS, /* 46 exactly the same order as those above. */ + OP_NOTQUERY, /* 47 This set applies to "not" single characters. */ + OP_NOTMINQUERY, /* 48 */ + + OP_NOTUPTO, /* 49 From 0 to n matches */ + OP_NOTMINUPTO, /* 50 */ + OP_NOTEXACT, /* 51 Exactly n matches */ + + OP_NOTPOSSTAR, /* 52 Possessified versions */ + OP_NOTPOSPLUS, /* 53 */ + OP_NOTPOSQUERY, /* 54 */ + OP_NOTPOSUPTO, /* 55 */ + + OP_TYPESTAR, /* 56 The maximizing and minimizing versions of */ + OP_TYPEMINSTAR, /* 57 these six opcodes must come in pairs, with */ + OP_TYPEPLUS, /* 58 the minimizing one second. These codes must */ + OP_TYPEMINPLUS, /* 59 be in exactly the same order as those above. */ + OP_TYPEQUERY, /* 60 This set applies to character types such as \d */ + OP_TYPEMINQUERY, /* 61 */ + + OP_TYPEUPTO, /* 62 From 0 to n matches */ + OP_TYPEMINUPTO, /* 63 */ + OP_TYPEEXACT, /* 64 Exactly n matches */ + + OP_TYPEPOSSTAR, /* 65 Possessified versions */ + OP_TYPEPOSPLUS, /* 66 */ + OP_TYPEPOSQUERY, /* 67 */ + OP_TYPEPOSUPTO, /* 68 */ + + OP_CRSTAR, /* 69 The maximizing and minimizing versions of */ + OP_CRMINSTAR, /* 70 all these opcodes must come in pairs, with */ + OP_CRPLUS, /* 71 the minimizing one second. These codes must */ + OP_CRMINPLUS, /* 72 be in exactly the same order as those above. */ + OP_CRQUERY, /* 73 These are for character classes and back refs */ + OP_CRMINQUERY, /* 74 */ + OP_CRRANGE, /* 75 These are different to the three sets above. */ + OP_CRMINRANGE, /* 76 */ + + OP_CLASS, /* 77 Match a character class, chars < 256 only */ + OP_NCLASS, /* 78 Same, but the bitmap was created from a negative + class - the difference is relevant only when a UTF-8 + character > 255 is encountered. */ + + OP_XCLASS, /* 79 Extended class for handling UTF-8 chars within the + class. This does both positive and negative. */ + + OP_REF, /* 80 Match a back reference */ + OP_RECURSE, /* 81 Match a numbered subpattern (possibly recursive) */ + OP_CALLOUT, /* 82 Call out to external function if provided */ + + OP_ALT, /* 83 Start of alternation */ + OP_KET, /* 84 End of group that doesn't have an unbounded repeat */ + OP_KETRMAX, /* 85 These two must remain together and in this */ + OP_KETRMIN, /* 86 order. They are for groups the repeat for ever. */ + + /* The assertions must come before BRA, CBRA, ONCE, and COND.*/ + + OP_ASSERT, /* 87 Positive lookahead */ + OP_ASSERT_NOT, /* 88 Negative lookahead */ + OP_ASSERTBACK, /* 89 Positive lookbehind */ + OP_ASSERTBACK_NOT, /* 90 Negative lookbehind */ + OP_REVERSE, /* 91 Move pointer back - used in lookbehind assertions */ + + /* ONCE, BRA, CBRA, and COND must come after the assertions, with ONCE first, + as there's a test for >= ONCE for a subpattern that isn't an assertion. */ + + OP_ONCE, /* 92 Atomic group */ + OP_BRA, /* 93 Start of non-capturing bracket */ + OP_CBRA, /* 94 Start of capturing bracket */ + OP_COND, /* 95 Conditional group */ + + /* These three must follow the previous three, in the same order. There's a + check for >= SBRA to distinguish the two sets. */ + + OP_SBRA, /* 96 Start of non-capturing bracket, check empty */ + OP_SCBRA, /* 97 Start of capturing bracket, check empty */ + OP_SCOND, /* 98 Conditional group, check empty */ + + OP_CREF, /* 99 Used to hold a capture number as condition */ + OP_RREF, /* 100 Used to hold a recursion number as condition */ + OP_DEF, /* 101 The DEFINE condition */ + + OP_BRAZERO, /* 102 These two must remain together and in this */ + OP_BRAMINZERO, /* 103 order. */ + + /* These are backtracking control verbs */ + + OP_PRUNE, /* 104 */ + OP_SKIP, /* 105 */ + OP_THEN, /* 106 */ + OP_COMMIT, /* 107 */ + + /* These are forced failure and success verbs */ + + OP_FAIL, /* 108 */ + OP_ACCEPT /* 109 */ +}; + + +/* This macro defines textual names for all the opcodes. These are used only +for debugging. The macro is referenced only in pcre_printint.c. */ + +#define OP_NAME_LIST \ + "End", "\\A", "\\G", "\\K", "\\B", "\\b", "\\D", "\\d", \ + "\\S", "\\s", "\\W", "\\w", "Any", "Anybyte", \ + "notprop", "prop", "\\R", "\\H", "\\h", "\\V", "\\v", \ + "extuni", "\\Z", "\\z", \ + "Opt", "^", "$", "char", "charnc", "not", \ + "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ + "*+","++", "?+", "{", \ + "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ + "*+","++", "?+", "{", \ + "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ + "*+","++", "?+", "{", \ + "*", "*?", "+", "+?", "?", "??", "{", "{", \ + "class", "nclass", "xclass", "Ref", "Recurse", "Callout", \ + "Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", \ + "AssertB", "AssertB not", "Reverse", \ + "Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond", \ + "Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero", \ + "*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT" + + +/* This macro defines the length of fixed length operations in the compiled +regex. The lengths are used when searching for specific things, and also in the +debugging printing of a compiled regex. We use a macro so that it can be +defined close to the definitions of the opcodes themselves. + +As things have been extended, some of these are no longer fixed lenths, but are +minima instead. For example, the length of a single-character repeat may vary +in UTF-8 mode. The code that uses this table must know about such things. */ + +#define OP_LENGTHS \ + 1, /* End */ \ + 1, 1, 1, 1, 1, /* \A, \G, \K, \B, \b */ \ + 1, 1, 1, 1, 1, 1, /* \D, \d, \S, \s, \W, \w */ \ + 1, 1, /* Any, Anybyte */ \ + 3, 3, 1, /* NOTPROP, PROP, EXTUNI */ \ + 1, 1, 1, 1, 1, /* \R, \H, \h, \V, \v */ \ + 1, 1, 2, 1, 1, /* \Z, \z, Opt, ^, $ */ \ + 2, /* Char - the minimum length */ \ + 2, /* Charnc - the minimum length */ \ + 2, /* not */ \ + /* Positive single-char repeats ** These are */ \ + 2, 2, 2, 2, 2, 2, /* *, *?, +, +?, ?, ?? ** minima in */ \ + 4, 4, 4, /* upto, minupto, exact ** UTF-8 mode */ \ + 2, 2, 2, 4, /* *+, ++, ?+, upto+ */ \ + /* Negative single-char repeats - only for chars < 256 */ \ + 2, 2, 2, 2, 2, 2, /* NOT *, *?, +, +?, ?, ?? */ \ + 4, 4, 4, /* NOT upto, minupto, exact */ \ + 2, 2, 2, 4, /* Possessive *, +, ?, upto */ \ + /* Positive type repeats */ \ + 2, 2, 2, 2, 2, 2, /* Type *, *?, +, +?, ?, ?? */ \ + 4, 4, 4, /* Type upto, minupto, exact */ \ + 2, 2, 2, 4, /* Possessive *+, ++, ?+, upto+ */ \ + /* Character class & ref repeats */ \ + 1, 1, 1, 1, 1, 1, /* *, *?, +, +?, ?, ?? */ \ + 5, 5, /* CRRANGE, CRMINRANGE */ \ + 33, /* CLASS */ \ + 33, /* NCLASS */ \ + 0, /* XCLASS - variable length */ \ + 3, /* REF */ \ + 1+LINK_SIZE, /* RECURSE */ \ + 2+2*LINK_SIZE, /* CALLOUT */ \ + 1+LINK_SIZE, /* Alt */ \ + 1+LINK_SIZE, /* Ket */ \ + 1+LINK_SIZE, /* KetRmax */ \ + 1+LINK_SIZE, /* KetRmin */ \ + 1+LINK_SIZE, /* Assert */ \ + 1+LINK_SIZE, /* Assert not */ \ + 1+LINK_SIZE, /* Assert behind */ \ + 1+LINK_SIZE, /* Assert behind not */ \ + 1+LINK_SIZE, /* Reverse */ \ + 1+LINK_SIZE, /* ONCE */ \ + 1+LINK_SIZE, /* BRA */ \ + 3+LINK_SIZE, /* CBRA */ \ + 1+LINK_SIZE, /* COND */ \ + 1+LINK_SIZE, /* SBRA */ \ + 3+LINK_SIZE, /* SCBRA */ \ + 1+LINK_SIZE, /* SCOND */ \ + 3, /* CREF */ \ + 3, /* RREF */ \ + 1, /* DEF */ \ + 1, 1, /* BRAZERO, BRAMINZERO */ \ + 1, 1, 1, 1, /* PRUNE, SKIP, THEN, COMMIT, */ \ + 1, 1 /* FAIL, ACCEPT */ + + +/* A magic value for OP_RREF to indicate the "any recursion" condition. */ + +#define RREF_ANY 0xffff + +/* Error code numbers. They are given names so that they can more easily be +tracked. */ + +enum { ERR0, ERR1, ERR2, ERR3, ERR4, ERR5, ERR6, ERR7, ERR8, ERR9, + ERR10, ERR11, ERR12, ERR13, ERR14, ERR15, ERR16, ERR17, ERR18, ERR19, + ERR20, ERR21, ERR22, ERR23, ERR24, ERR25, ERR26, ERR27, ERR28, ERR29, + ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39, + ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49, + ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, + ERR60, ERR61, ERR62, ERR63 }; + +/* The real format of the start of the pcre block; the index of names and the +code vector run on as long as necessary after the end. We store an explicit +offset to the name table so that if a regex is compiled on one host, saved, and +then run on another where the size of pointers is different, all might still +be well. For the case of compiled-on-4 and run-on-8, we include an extra +pointer that is always NULL. For future-proofing, a few dummy fields were +originally included - even though you can never get this planning right - but +there is only one left now. + +NOTE NOTE NOTE: +Because people can now save and re-use compiled patterns, any additions to this +structure should be made at the end, and something earlier (e.g. a new +flag in the options or one of the dummy fields) should indicate that the new +fields are present. Currently PCRE always sets the dummy fields to zero. +NOTE NOTE NOTE: +*/ + +typedef struct real_pcre { + pcre_uint32 magic_number; + pcre_uint32 size; /* Total that was malloced */ + pcre_uint32 options; /* Public options */ + pcre_uint16 flags; /* Private flags */ + pcre_uint16 dummy1; /* For future use */ + pcre_uint16 top_bracket; + pcre_uint16 top_backref; + pcre_uint16 first_byte; + pcre_uint16 req_byte; + pcre_uint16 name_table_offset; /* Offset to name table that follows */ + pcre_uint16 name_entry_size; /* Size of any name items */ + pcre_uint16 name_count; /* Number of name items */ + pcre_uint16 ref_count; /* Reference count */ + + const unsigned char *tables; /* Pointer to tables or NULL for std */ + const unsigned char *nullpad; /* NULL padding */ +} real_pcre; + +/* The format of the block used to store data from pcre_study(). The same +remark (see NOTE above) about extending this structure applies. */ + +typedef struct pcre_study_data { + pcre_uint32 size; /* Total that was malloced */ + pcre_uint32 options; + uschar start_bits[32]; +} pcre_study_data; + +/* Structure for passing "static" information around between the functions +doing the compiling, so that they are thread-safe. */ + +typedef struct compile_data { + const uschar *lcc; /* Points to lower casing table */ + const uschar *fcc; /* Points to case-flipping table */ + const uschar *cbits; /* Points to character type table */ + const uschar *ctypes; /* Points to table of type maps */ + const uschar *start_workspace;/* The start of working space */ + const uschar *start_code; /* The start of the compiled code */ + const uschar *start_pattern; /* The start of the pattern */ + const uschar *end_pattern; /* The end of the pattern */ + uschar *hwm; /* High watermark of workspace */ + uschar *name_table; /* The name/number table */ + int names_found; /* Number of entries so far */ + int name_entry_size; /* Size of each entry */ + int bracount; /* Count of capturing parens as we compile */ + int final_bracount; /* Saved value after first pass */ + int top_backref; /* Maximum back reference */ + unsigned int backref_map; /* Bitmap of low back refs */ + int external_options; /* External (initial) options */ + int external_flags; /* External flag bits to be set */ + int req_varyopt; /* "After variable item" flag for reqbyte */ + BOOL had_accept; /* (*ACCEPT) encountered */ + int nltype; /* Newline type */ + int nllen; /* Newline string length */ + uschar nl[4]; /* Newline string when fixed length */ +} compile_data; + +/* Structure for maintaining a chain of pointers to the currently incomplete +branches, for testing for left recursion. */ + +typedef struct branch_chain { + struct branch_chain *outer; + uschar *current; +} branch_chain; + +/* Structure for items in a linked list that represents an explicit recursive +call within the pattern. */ + +typedef struct recursion_info { + struct recursion_info *prevrec; /* Previous recursion record (or NULL) */ + int group_num; /* Number of group that was called */ + const uschar *after_call; /* "Return value": points after the call in the expr */ + USPTR save_start; /* Old value of mstart */ + int *offset_save; /* Pointer to start of saved offsets */ + int saved_max; /* Number of saved offsets */ +} recursion_info; + +/* Structure for building a chain of data for holding the values of the subject +pointer at the start of each subpattern, so as to detect when an empty string +has been matched by a subpattern - to break infinite loops. */ + +typedef struct eptrblock { + struct eptrblock *epb_prev; + USPTR epb_saved_eptr; +} eptrblock; + + +/* Structure for passing "static" information around between the functions +doing traditional NFA matching, so that they are thread-safe. */ + +typedef struct match_data { + unsigned long int match_call_count; /* As it says */ + unsigned long int match_limit; /* As it says */ + unsigned long int match_limit_recursion; /* As it says */ + int *offset_vector; /* Offset vector */ + int offset_end; /* One past the end */ + int offset_max; /* The maximum usable for return data */ + int nltype; /* Newline type */ + int nllen; /* Newline string length */ + uschar nl[4]; /* Newline string when fixed */ + const uschar *lcc; /* Points to lower casing table */ + const uschar *ctypes; /* Points to table of type maps */ + BOOL offset_overflow; /* Set if too many extractions */ + BOOL notbol; /* NOTBOL flag */ + BOOL noteol; /* NOTEOL flag */ + BOOL utf8; /* UTF8 flag */ + BOOL endonly; /* Dollar not before final \n */ + BOOL notempty; /* Empty string match not wanted */ + BOOL partial; /* PARTIAL flag */ + BOOL hitend; /* Hit the end of the subject at some point */ + BOOL bsr_anycrlf; /* \R is just any CRLF, not full Unicode */ + const uschar *start_code; /* For use when recursing */ + USPTR start_subject; /* Start of the subject string */ + USPTR end_subject; /* End of the subject string */ + USPTR start_match_ptr; /* Start of matched string */ + USPTR end_match_ptr; /* Subject position at end match */ + int end_offset_top; /* Highwater mark at end of match */ + int capture_last; /* Most recent capture number */ + int start_offset; /* The start offset value */ + eptrblock *eptrchain; /* Chain of eptrblocks for tail recursions */ + int eptrn; /* Next free eptrblock */ + recursion_info *recursive; /* Linked list of recursion data */ + void *callout_data; /* To pass back to callouts */ +} match_data; + +/* A similar structure is used for the same purpose by the DFA matching +functions. */ + +typedef struct dfa_match_data { + const uschar *start_code; /* Start of the compiled pattern */ + const uschar *start_subject; /* Start of the subject string */ + const uschar *end_subject; /* End of subject string */ + const uschar *tables; /* Character tables */ + int moptions; /* Match options */ + int poptions; /* Pattern options */ + int nltype; /* Newline type */ + int nllen; /* Newline string length */ + uschar nl[4]; /* Newline string when fixed */ + void *callout_data; /* To pass back to callouts */ +} dfa_match_data; + +/* Bit definitions for entries in the pcre_ctypes table. */ + +#define ctype_space 0x01 +#define ctype_letter 0x02 +#define ctype_digit 0x04 +#define ctype_xdigit 0x08 +#define ctype_word 0x10 /* alphanumeric or '_' */ +#define ctype_meta 0x80 /* regexp meta char or zero (end pattern) */ + +/* Offsets for the bitmap tables in pcre_cbits. Each table contains a set +of bits for a class map. Some classes are built by combining these tables. */ + +#define cbit_space 0 /* [:space:] or \s */ +#define cbit_xdigit 32 /* [:xdigit:] */ +#define cbit_digit 64 /* [:digit:] or \d */ +#define cbit_upper 96 /* [:upper:] */ +#define cbit_lower 128 /* [:lower:] */ +#define cbit_word 160 /* [:word:] or \w */ +#define cbit_graph 192 /* [:graph:] */ +#define cbit_print 224 /* [:print:] */ +#define cbit_punct 256 /* [:punct:] */ +#define cbit_cntrl 288 /* [:cntrl:] */ +#define cbit_length 320 /* Length of the cbits table */ + +/* Offsets of the various tables from the base tables pointer, and +total length. */ + +#define lcc_offset 0 +#define fcc_offset 256 +#define cbits_offset 512 +#define ctypes_offset (cbits_offset + cbit_length) +#define tables_length (ctypes_offset + 256) + +/* Layout of the UCP type table that translates property names into types and +codes. Each entry used to point directly to a name, but to reduce the number of +relocations in shared libraries, it now has an offset into a single string +instead. */ + +typedef struct { + pcre_uint16 name_offset; + pcre_uint16 type; + pcre_uint16 value; +} ucp_type_table; + + +/* Internal shared data tables. These are tables that are used by more than one +of the exported public functions. They have to be "external" in the C sense, +but are not part of the PCRE public API. The data for these tables is in the +pcre_tables.c module. */ + +extern const int _pcre_utf8_table1[]; +extern const int _pcre_utf8_table2[]; +extern const int _pcre_utf8_table3[]; +extern const uschar _pcre_utf8_table4[]; + +extern const int _pcre_utf8_table1_size; + +extern const char _pcre_utt_names[]; +extern const ucp_type_table _pcre_utt[]; +extern const int _pcre_utt_size; + +extern const uschar _pcre_default_tables[]; + +extern const uschar _pcre_OP_lengths[]; + + +/* Internal shared functions. These are functions that are used by more than +one of the exported public functions. They have to be "external" in the C +sense, but are not part of the PCRE public API. */ + +extern BOOL _pcre_is_newline(const uschar *, int, const uschar *, + int *, BOOL); +extern int _pcre_ord2utf8(int, uschar *); +extern real_pcre *_pcre_try_flipped(const real_pcre *, real_pcre *, + const pcre_study_data *, pcre_study_data *); +extern int _pcre_ucp_findprop(const unsigned int, int *, int *); +extern unsigned int _pcre_ucp_othercase(const unsigned int); +extern int _pcre_valid_utf8(const uschar *, int); +extern BOOL _pcre_was_newline(const uschar *, int, const uschar *, + int *, BOOL); +extern BOOL _pcre_xclass(int, const uschar *); + +#endif + +/* End of pcre_internal.h */ diff --git a/external-libs/pcre/pcre_scanner.h b/external-libs/pcre/pcre_scanner.h new file mode 100644 index 0000000..5617e45 --- /dev/null +++ b/external-libs/pcre/pcre_scanner.h @@ -0,0 +1,172 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Sanjay Ghemawat +// +// Regular-expression based scanner for parsing an input stream. +// +// Example 1: parse a sequence of "var = number" entries from input: +// +// Scanner scanner(input); +// string var; +// int number; +// scanner.SetSkipExpression("\\s+"); // Skip any white space we encounter +// while (scanner.Consume("(\\w+) = (\\d+)", &var, &number)) { +// ...; +// } + +#ifndef _PCRE_SCANNER_H +#define _PCRE_SCANNER_H + +#include +#include +#include + +#include +#include + +namespace pcrecpp { + +class PCRECPP_EXP_DEFN Scanner { + public: + Scanner(); + explicit Scanner(const std::string& input); + ~Scanner(); + + // Return current line number. The returned line-number is + // one-based. I.e. it returns 1 + the number of consumed newlines. + // + // Note: this method may be slow. It may take time proportional to + // the size of the input. + int LineNumber() const; + + // Return the byte-offset that the scanner is looking in the + // input data; + int Offset() const; + + // Return true iff the start of the remaining input matches "re" + bool LookingAt(const RE& re) const; + + // Return true iff all of the following are true + // a. the start of the remaining input matches "re", + // b. if any arguments are supplied, matched sub-patterns can be + // parsed and stored into the arguments. + // If it returns true, it skips over the matched input and any + // following input that matches the "skip" regular expression. + bool Consume(const RE& re, + const Arg& arg0 = RE::no_arg, + const Arg& arg1 = RE::no_arg, + const Arg& arg2 = RE::no_arg + // TODO: Allow more arguments? + ); + + // Set the "skip" regular expression. If after consuming some data, + // a prefix of the input matches this RE, it is automatically + // skipped. For example, a programming language scanner would use + // a skip RE that matches white space and comments. + // + // scanner.SetSkipExpression("\\s+|//.*|/[*](.|\n)*?[*]/"); + // + // Skipping repeats as long as it succeeds. We used to let people do + // this by writing "(...)*" in the regular expression, but that added + // up to lots of recursive calls within the pcre library, so now we + // control repetition explicitly via the function call API. + // + // You can pass NULL for "re" if you do not want any data to be skipped. + void Skip(const char* re); // DEPRECATED; does *not* repeat + void SetSkipExpression(const char* re); + + // Temporarily pause "skip"ing. This + // Skip("Foo"); code ; DisableSkip(); code; EnableSkip() + // is similar to + // Skip("Foo"); code ; Skip(NULL); code ; Skip("Foo"); + // but avoids creating/deleting new RE objects. + void DisableSkip(); + + // Reenable previously paused skipping. Any prefix of the input + // that matches the skip pattern is immediately dropped. + void EnableSkip(); + + /***** Special wrappers around SetSkip() for some common idioms *****/ + + // Arranges to skip whitespace, C comments, C++ comments. + // The overall RE is a disjunction of the following REs: + // \\s whitespace + // //.*\n C++ comment + // /[*](.|\n)*?[*]/ C comment (x*? means minimal repetitions of x) + // We get repetition via the semantics of SetSkipExpression, not by using * + void SkipCXXComments() { + SetSkipExpression("\\s|//.*\n|/[*](?:\n|.)*?[*]/"); + } + + void set_save_comments(bool comments) { + save_comments_ = comments; + } + + bool save_comments() { + return save_comments_; + } + + // Append to vector ranges the comments found in the + // byte range [start,end] (inclusive) of the input data. + // Only comments that were extracted entirely within that + // range are returned: no range splitting of atomically-extracted + // comments is performed. + void GetComments(int start, int end, std::vector *ranges); + + // Append to vector ranges the comments added + // since the last time this was called. This + // functionality is provided for efficiency when + // interleaving scanning with parsing. + void GetNextComments(std::vector *ranges); + + private: + std::string data_; // All the input data + StringPiece input_; // Unprocessed input + RE* skip_; // If non-NULL, RE for skipping input + bool should_skip_; // If true, use skip_ + bool skip_repeat_; // If true, repeat skip_ as long as it works + bool save_comments_; // If true, aggregate the skip expression + + // the skipped comments + // TODO: later consider requiring that the StringPieces be added + // in order by their start position + std::vector *comments_; + + // the offset into comments_ that has been returned by GetNextComments + int comments_offset_; + + // helper function to consume *skip_ and honour + // save_comments_ + void ConsumeSkip(); +}; + +} // namespace pcrecpp + +#endif /* _PCRE_SCANNER_H */ diff --git a/external-libs/pcre/pcre_stringpiece.h b/external-libs/pcre/pcre_stringpiece.h new file mode 100644 index 0000000..04b6c39 --- /dev/null +++ b/external-libs/pcre/pcre_stringpiece.h @@ -0,0 +1,179 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Sanjay Ghemawat +// +// A string like object that points into another piece of memory. +// Useful for providing an interface that allows clients to easily +// pass in either a "const char*" or a "string". +// +// Arghh! I wish C++ literals were automatically of type "string". + +#ifndef _PCRE_STRINGPIECE_H +#define _PCRE_STRINGPIECE_H + +#include +#include +#include // for ostream forward-declaration + +#if !defined(_MSC_VER) && !defined(__CELLOS_LV2__) && !defined(__APPLE__) +#ifdef __MINGW32__ +#define HAVE_TYPE_TRAITS +#include +#else +#define HAVE_TYPE_TRAITS +#include +#endif +#endif + +#include + +using std::string; + +namespace pcrecpp { + +class PCRECPP_EXP_DEFN StringPiece { + private: + const char* ptr_; + int length_; + + public: + // We provide non-explicit singleton constructors so users can pass + // in a "const char*" or a "string" wherever a "StringPiece" is + // expected. + StringPiece() + : ptr_(NULL), length_(0) { } + StringPiece(const char* str) + : ptr_(str), length_(static_cast(strlen(ptr_))) { } + StringPiece(const unsigned char* str) + : ptr_(reinterpret_cast(str)), + length_(static_cast(strlen(ptr_))) { } + StringPiece(const string& str) + : ptr_(str.data()), length_(static_cast(str.size())) { } + StringPiece(const char* offset, int len) + : ptr_(offset), length_(len) { } + + // data() may return a pointer to a buffer with embedded NULs, and the + // returned buffer may or may not be null terminated. Therefore it is + // typically a mistake to pass data() to a routine that expects a NUL + // terminated string. Use "as_string().c_str()" if you really need to do + // this. Or better yet, change your routine so it does not rely on NUL + // termination. + const char* data() const { return ptr_; } + int size() const { return length_; } + bool empty() const { return length_ == 0; } + + void clear() { ptr_ = NULL; length_ = 0; } + void set(const char* buffer, int len) { ptr_ = buffer; length_ = len; } + void set(const char* str) { + ptr_ = str; + length_ = static_cast(strlen(str)); + } + void set(const void* buffer, int len) { + ptr_ = reinterpret_cast(buffer); + length_ = len; + } + + char operator[](int i) const { return ptr_[i]; } + + void remove_prefix(int n) { + ptr_ += n; + length_ -= n; + } + + void remove_suffix(int n) { + length_ -= n; + } + + bool operator==(const StringPiece& x) const { + return ((length_ == x.length_) && + (memcmp(ptr_, x.ptr_, length_) == 0)); + } + bool operator!=(const StringPiece& x) const { + return !(*this == x); + } + +#define STRINGPIECE_BINARY_PREDICATE(cmp,auxcmp) \ + bool operator cmp (const StringPiece& x) const { \ + int r = memcmp(ptr_, x.ptr_, length_ < x.length_ ? length_ : x.length_); \ + return ((r auxcmp 0) || ((r == 0) && (length_ cmp x.length_))); \ + } + STRINGPIECE_BINARY_PREDICATE(<, <); + STRINGPIECE_BINARY_PREDICATE(<=, <); + STRINGPIECE_BINARY_PREDICATE(>=, >); + STRINGPIECE_BINARY_PREDICATE(>, >); +#undef STRINGPIECE_BINARY_PREDICATE + + int compare(const StringPiece& x) const { + int r = memcmp(ptr_, x.ptr_, length_ < x.length_ ? length_ : x.length_); + if (r == 0) { + if (length_ < x.length_) r = -1; + else if (length_ > x.length_) r = +1; + } + return r; + } + + string as_string() const { + return string(data(), size()); + } + + void CopyToString(string* target) const { + target->assign(ptr_, length_); + } + + // Does "this" start with "x" + bool starts_with(const StringPiece& x) const { + return ((length_ >= x.length_) && (memcmp(ptr_, x.ptr_, x.length_) == 0)); + } +}; + +} // namespace pcrecpp + +// ------------------------------------------------------------------ +// Functions used to create STL containers that use StringPiece +// Remember that a StringPiece's lifetime had better be less than +// that of the underlying string or char*. If it is not, then you +// cannot safely store a StringPiece into an STL container +// ------------------------------------------------------------------ + +#ifdef HAVE_TYPE_TRAITS +// This makes vector really fast for some STL implementations +template<> struct __type_traits { + typedef __true_type has_trivial_default_constructor; + typedef __true_type has_trivial_copy_constructor; + typedef __true_type has_trivial_assignment_operator; + typedef __true_type has_trivial_destructor; + typedef __true_type is_POD_type; +}; +#endif + +// allow StringPiece to be logged +std::ostream& operator<<(std::ostream& o, const pcrecpp::StringPiece& piece); + +#endif /* _PCRE_STRINGPIECE_H */ diff --git a/external-libs/pcre/pcrecpp.h b/external-libs/pcre/pcrecpp.h new file mode 100644 index 0000000..a4638e1 --- /dev/null +++ b/external-libs/pcre/pcrecpp.h @@ -0,0 +1,700 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Sanjay Ghemawat +// Support for PCRE_XXX modifiers added by Giuseppe Maxia, July 2005 + +#ifndef _PCRECPP_H +#define _PCRECPP_H + +// C++ interface to the pcre regular-expression library. RE supports +// Perl-style regular expressions (with extensions like \d, \w, \s, +// ...). +// +// ----------------------------------------------------------------------- +// REGEXP SYNTAX: +// +// This module is part of the pcre library and hence supports its syntax +// for regular expressions. +// +// The syntax is pretty similar to Perl's. For those not familiar +// with Perl's regular expressions, here are some examples of the most +// commonly used extensions: +// +// "hello (\\w+) world" -- \w matches a "word" character +// "version (\\d+)" -- \d matches a digit +// "hello\\s+world" -- \s matches any whitespace character +// "\\b(\\w+)\\b" -- \b matches empty string at a word boundary +// "(?i)hello" -- (?i) turns on case-insensitive matching +// "/\\*(.*?)\\*/" -- .*? matches . minimum no. of times possible +// +// ----------------------------------------------------------------------- +// MATCHING INTERFACE: +// +// The "FullMatch" operation checks that supplied text matches a +// supplied pattern exactly. +// +// Example: successful match +// pcrecpp::RE re("h.*o"); +// re.FullMatch("hello"); +// +// Example: unsuccessful match (requires full match): +// pcrecpp::RE re("e"); +// !re.FullMatch("hello"); +// +// Example: creating a temporary RE object: +// pcrecpp::RE("h.*o").FullMatch("hello"); +// +// You can pass in a "const char*" or a "string" for "text". The +// examples below tend to use a const char*. +// +// You can, as in the different examples above, store the RE object +// explicitly in a variable or use a temporary RE object. The +// examples below use one mode or the other arbitrarily. Either +// could correctly be used for any of these examples. +// +// ----------------------------------------------------------------------- +// MATCHING WITH SUB-STRING EXTRACTION: +// +// You can supply extra pointer arguments to extract matched subpieces. +// +// Example: extracts "ruby" into "s" and 1234 into "i" +// int i; +// string s; +// pcrecpp::RE re("(\\w+):(\\d+)"); +// re.FullMatch("ruby:1234", &s, &i); +// +// Example: does not try to extract any extra sub-patterns +// re.FullMatch("ruby:1234", &s); +// +// Example: does not try to extract into NULL +// re.FullMatch("ruby:1234", NULL, &i); +// +// Example: integer overflow causes failure +// !re.FullMatch("ruby:1234567891234", NULL, &i); +// +// Example: fails because there aren't enough sub-patterns: +// !pcrecpp::RE("\\w+:\\d+").FullMatch("ruby:1234", &s); +// +// Example: fails because string cannot be stored in integer +// !pcrecpp::RE("(.*)").FullMatch("ruby", &i); +// +// The provided pointer arguments can be pointers to any scalar numeric +// type, or one of +// string (matched piece is copied to string) +// StringPiece (StringPiece is mutated to point to matched piece) +// T (where "bool T::ParseFrom(const char*, int)" exists) +// NULL (the corresponding matched sub-pattern is not copied) +// +// CAVEAT: An optional sub-pattern that does not exist in the matched +// string is assigned the empty string. Therefore, the following will +// return false (because the empty string is not a valid number): +// int number; +// pcrecpp::RE::FullMatch("abc", "[a-z]+(\\d+)?", &number); +// +// ----------------------------------------------------------------------- +// DO_MATCH +// +// The matching interface supports at most 16 arguments per call. +// If you need more, consider using the more general interface +// pcrecpp::RE::DoMatch(). See pcrecpp.h for the signature for DoMatch. +// +// ----------------------------------------------------------------------- +// PARTIAL MATCHES +// +// You can use the "PartialMatch" operation when you want the pattern +// to match any substring of the text. +// +// Example: simple search for a string: +// pcrecpp::RE("ell").PartialMatch("hello"); +// +// Example: find first number in a string: +// int number; +// pcrecpp::RE re("(\\d+)"); +// re.PartialMatch("x*100 + 20", &number); +// assert(number == 100); +// +// ----------------------------------------------------------------------- +// UTF-8 AND THE MATCHING INTERFACE: +// +// By default, pattern and text are plain text, one byte per character. +// The UTF8 flag, passed to the constructor, causes both pattern +// and string to be treated as UTF-8 text, still a byte stream but +// potentially multiple bytes per character. In practice, the text +// is likelier to be UTF-8 than the pattern, but the match returned +// may depend on the UTF8 flag, so always use it when matching +// UTF8 text. E.g., "." will match one byte normally but with UTF8 +// set may match up to three bytes of a multi-byte character. +// +// Example: +// pcrecpp::RE_Options options; +// options.set_utf8(); +// pcrecpp::RE re(utf8_pattern, options); +// re.FullMatch(utf8_string); +// +// Example: using the convenience function UTF8(): +// pcrecpp::RE re(utf8_pattern, pcrecpp::UTF8()); +// re.FullMatch(utf8_string); +// +// NOTE: The UTF8 option is ignored if pcre was not configured with the +// --enable-utf8 flag. +// +// ----------------------------------------------------------------------- +// PASSING MODIFIERS TO THE REGULAR EXPRESSION ENGINE +// +// PCRE defines some modifiers to change the behavior of the regular +// expression engine. +// The C++ wrapper defines an auxiliary class, RE_Options, as a vehicle +// to pass such modifiers to a RE class. +// +// Currently, the following modifiers are supported +// +// modifier description Perl corresponding +// +// PCRE_CASELESS case insensitive match /i +// PCRE_MULTILINE multiple lines match /m +// PCRE_DOTALL dot matches newlines /s +// PCRE_DOLLAR_ENDONLY $ matches only at end N/A +// PCRE_EXTRA strict escape parsing N/A +// PCRE_EXTENDED ignore whitespaces /x +// PCRE_UTF8 handles UTF8 chars built-in +// PCRE_UNGREEDY reverses * and *? N/A +// PCRE_NO_AUTO_CAPTURE disables matching parens N/A (*) +// +// (For a full account on how each modifier works, please check the +// PCRE API reference manual). +// +// (*) Both Perl and PCRE allow non matching parentheses by means of the +// "?:" modifier within the pattern itself. e.g. (?:ab|cd) does not +// capture, while (ab|cd) does. +// +// For each modifier, there are two member functions whose name is made +// out of the modifier in lowercase, without the "PCRE_" prefix. For +// instance, PCRE_CASELESS is handled by +// bool caseless(), +// which returns true if the modifier is set, and +// RE_Options & set_caseless(bool), +// which sets or unsets the modifier. +// +// Moreover, PCRE_EXTRA_MATCH_LIMIT can be accessed through the +// set_match_limit() and match_limit() member functions. +// Setting match_limit to a non-zero value will limit the executation of +// pcre to keep it from doing bad things like blowing the stack or taking +// an eternity to return a result. A value of 5000 is good enough to stop +// stack blowup in a 2MB thread stack. Setting match_limit to zero will +// disable match limiting. Alternately, you can set match_limit_recursion() +// which uses PCRE_EXTRA_MATCH_LIMIT_RECURSION to limit how much pcre +// recurses. match_limit() caps the number of matches pcre does; +// match_limit_recrusion() caps the depth of recursion. +// +// Normally, to pass one or more modifiers to a RE class, you declare +// a RE_Options object, set the appropriate options, and pass this +// object to a RE constructor. Example: +// +// RE_options opt; +// opt.set_caseless(true); +// +// if (RE("HELLO", opt).PartialMatch("hello world")) ... +// +// RE_options has two constructors. The default constructor takes no +// arguments and creates a set of flags that are off by default. +// +// The optional parameter 'option_flags' is to facilitate transfer +// of legacy code from C programs. This lets you do +// RE(pattern, RE_Options(PCRE_CASELESS|PCRE_MULTILINE)).PartialMatch(str); +// +// But new code is better off doing +// RE(pattern, +// RE_Options().set_caseless(true).set_multiline(true)).PartialMatch(str); +// (See below) +// +// If you are going to pass one of the most used modifiers, there are some +// convenience functions that return a RE_Options class with the +// appropriate modifier already set: +// CASELESS(), UTF8(), MULTILINE(), DOTALL(), EXTENDED() +// +// If you need to set several options at once, and you don't want to go +// through the pains of declaring a RE_Options object and setting several +// options, there is a parallel method that give you such ability on the +// fly. You can concatenate several set_xxxxx member functions, since each +// of them returns a reference to its class object. e.g.: to pass +// PCRE_CASELESS, PCRE_EXTENDED, and PCRE_MULTILINE to a RE with one +// statement, you may write +// +// RE(" ^ xyz \\s+ .* blah$", RE_Options() +// .set_caseless(true) +// .set_extended(true) +// .set_multiline(true)).PartialMatch(sometext); +// +// ----------------------------------------------------------------------- +// SCANNING TEXT INCREMENTALLY +// +// The "Consume" operation may be useful if you want to repeatedly +// match regular expressions at the front of a string and skip over +// them as they match. This requires use of the "StringPiece" type, +// which represents a sub-range of a real string. Like RE, StringPiece +// is defined in the pcrecpp namespace. +// +// Example: read lines of the form "var = value" from a string. +// string contents = ...; // Fill string somehow +// pcrecpp::StringPiece input(contents); // Wrap in a StringPiece +// +// string var; +// int value; +// pcrecpp::RE re("(\\w+) = (\\d+)\n"); +// while (re.Consume(&input, &var, &value)) { +// ...; +// } +// +// Each successful call to "Consume" will set "var/value", and also +// advance "input" so it points past the matched text. +// +// The "FindAndConsume" operation is similar to "Consume" but does not +// anchor your match at the beginning of the string. For example, you +// could extract all words from a string by repeatedly calling +// pcrecpp::RE("(\\w+)").FindAndConsume(&input, &word) +// +// ----------------------------------------------------------------------- +// PARSING HEX/OCTAL/C-RADIX NUMBERS +// +// By default, if you pass a pointer to a numeric value, the +// corresponding text is interpreted as a base-10 number. You can +// instead wrap the pointer with a call to one of the operators Hex(), +// Octal(), or CRadix() to interpret the text in another base. The +// CRadix operator interprets C-style "0" (base-8) and "0x" (base-16) +// prefixes, but defaults to base-10. +// +// Example: +// int a, b, c, d; +// pcrecpp::RE re("(.*) (.*) (.*) (.*)"); +// re.FullMatch("100 40 0100 0x40", +// pcrecpp::Octal(&a), pcrecpp::Hex(&b), +// pcrecpp::CRadix(&c), pcrecpp::CRadix(&d)); +// will leave 64 in a, b, c, and d. +// +// ----------------------------------------------------------------------- +// REPLACING PARTS OF STRINGS +// +// You can replace the first match of "pattern" in "str" with +// "rewrite". Within "rewrite", backslash-escaped digits (\1 to \9) +// can be used to insert text matching corresponding parenthesized +// group from the pattern. \0 in "rewrite" refers to the entire +// matching text. E.g., +// +// string s = "yabba dabba doo"; +// pcrecpp::RE("b+").Replace("d", &s); +// +// will leave "s" containing "yada dabba doo". The result is true if +// the pattern matches and a replacement occurs, or false otherwise. +// +// GlobalReplace() is like Replace(), except that it replaces all +// occurrences of the pattern in the string with the rewrite. +// Replacements are not subject to re-matching. E.g., +// +// string s = "yabba dabba doo"; +// pcrecpp::RE("b+").GlobalReplace("d", &s); +// +// will leave "s" containing "yada dada doo". It returns the number +// of replacements made. +// +// Extract() is like Replace(), except that if the pattern matches, +// "rewrite" is copied into "out" (an additional argument) with +// substitutions. The non-matching portions of "text" are ignored. +// Returns true iff a match occurred and the extraction happened +// successfully. If no match occurs, the string is left unaffected. + + +#include +#include +#include // defines the Arg class +// This isn't technically needed here, but we include it +// anyway so folks who include pcrecpp.h don't have to. +#include + +namespace pcrecpp { + +#define PCRE_SET_OR_CLEAR(b, o) \ + if (b) all_options_ |= (o); else all_options_ &= ~(o); \ + return *this + +#define PCRE_IS_SET(o) \ + (all_options_ & o) == o + +/***** Compiling regular expressions: the RE class *****/ + +// RE_Options allow you to set options to be passed along to pcre, +// along with other options we put on top of pcre. +// Only 9 modifiers, plus match_limit and match_limit_recursion, +// are supported now. +class PCRECPP_EXP_DEFN RE_Options { + public: + // constructor + RE_Options() : match_limit_(0), match_limit_recursion_(0), all_options_(0) {} + + // alternative constructor. + // To facilitate transfer of legacy code from C programs + // + // This lets you do + // RE(pattern, RE_Options(PCRE_CASELESS|PCRE_MULTILINE)).PartialMatch(str); + // But new code is better off doing + // RE(pattern, + // RE_Options().set_caseless(true).set_multiline(true)).PartialMatch(str); + RE_Options(int option_flags) : match_limit_(0), match_limit_recursion_(0), + all_options_(option_flags) {} + // we're fine with the default destructor, copy constructor, etc. + + // accessors and mutators + int match_limit() const { return match_limit_; }; + RE_Options &set_match_limit(int limit) { + match_limit_ = limit; + return *this; + } + + int match_limit_recursion() const { return match_limit_recursion_; }; + RE_Options &set_match_limit_recursion(int limit) { + match_limit_recursion_ = limit; + return *this; + } + + bool caseless() const { + return PCRE_IS_SET(PCRE_CASELESS); + } + RE_Options &set_caseless(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_CASELESS); + } + + bool multiline() const { + return PCRE_IS_SET(PCRE_MULTILINE); + } + RE_Options &set_multiline(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_MULTILINE); + } + + bool dotall() const { + return PCRE_IS_SET(PCRE_DOTALL); + } + RE_Options &set_dotall(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_DOTALL); + } + + bool extended() const { + return PCRE_IS_SET(PCRE_EXTENDED); + } + RE_Options &set_extended(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_EXTENDED); + } + + bool dollar_endonly() const { + return PCRE_IS_SET(PCRE_DOLLAR_ENDONLY); + } + RE_Options &set_dollar_endonly(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_DOLLAR_ENDONLY); + } + + bool extra() const { + return PCRE_IS_SET(PCRE_EXTRA); + } + RE_Options &set_extra(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_EXTRA); + } + + bool ungreedy() const { + return PCRE_IS_SET(PCRE_UNGREEDY); + } + RE_Options &set_ungreedy(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_UNGREEDY); + } + + bool utf8() const { + return PCRE_IS_SET(PCRE_UTF8); + } + RE_Options &set_utf8(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_UTF8); + } + + bool no_auto_capture() const { + return PCRE_IS_SET(PCRE_NO_AUTO_CAPTURE); + } + RE_Options &set_no_auto_capture(bool x) { + PCRE_SET_OR_CLEAR(x, PCRE_NO_AUTO_CAPTURE); + } + + RE_Options &set_all_options(int opt) { + all_options_ = opt; + return *this; + } + int all_options() const { + return all_options_ ; + } + + // TODO: add other pcre flags + + private: + int match_limit_; + int match_limit_recursion_; + int all_options_; +}; + +// These functions return some common RE_Options +static inline RE_Options UTF8() { + return RE_Options().set_utf8(true); +} + +static inline RE_Options CASELESS() { + return RE_Options().set_caseless(true); +} +static inline RE_Options MULTILINE() { + return RE_Options().set_multiline(true); +} + +static inline RE_Options DOTALL() { + return RE_Options().set_dotall(true); +} + +static inline RE_Options EXTENDED() { + return RE_Options().set_extended(true); +} + +// Interface for regular expression matching. Also corresponds to a +// pre-compiled regular expression. An "RE" object is safe for +// concurrent use by multiple threads. +class PCRECPP_EXP_DEFN RE { + public: + // We provide implicit conversions from strings so that users can + // pass in a string or a "const char*" wherever an "RE" is expected. + RE(const string& pat) { Init(pat, NULL); } + RE(const string& pat, const RE_Options& option) { Init(pat, &option); } + RE(const char* pat) { Init(pat, NULL); } + RE(const char* pat, const RE_Options& option) { Init(pat, &option); } + RE(const unsigned char* pat) { + Init(reinterpret_cast(pat), NULL); + } + RE(const unsigned char* pat, const RE_Options& option) { + Init(reinterpret_cast(pat), &option); + } + + // Copy constructor & assignment - note that these are expensive + // because they recompile the expression. + RE(const RE& re) { Init(re.pattern_, &re.options_); } + const RE& operator=(const RE& re) { + if (this != &re) { + Cleanup(); + + // This is the code that originally came from Google + // Init(re.pattern_.c_str(), &re.options_); + + // This is the replacement from Ari Pollak + Init(re.pattern_, &re.options_); + } + return *this; + } + + + ~RE(); + + // The string specification for this RE. E.g. + // RE re("ab*c?d+"); + // re.pattern(); // "ab*c?d+" + const string& pattern() const { return pattern_; } + + // If RE could not be created properly, returns an error string. + // Else returns the empty string. + const string& error() const { return *error_; } + + /***** The useful part: the matching interface *****/ + + // This is provided so one can do pattern.ReplaceAll() just as + // easily as ReplaceAll(pattern-text, ....) + + bool FullMatch(const StringPiece& text, + const Arg& ptr1 = no_arg, + const Arg& ptr2 = no_arg, + const Arg& ptr3 = no_arg, + const Arg& ptr4 = no_arg, + const Arg& ptr5 = no_arg, + const Arg& ptr6 = no_arg, + const Arg& ptr7 = no_arg, + const Arg& ptr8 = no_arg, + const Arg& ptr9 = no_arg, + const Arg& ptr10 = no_arg, + const Arg& ptr11 = no_arg, + const Arg& ptr12 = no_arg, + const Arg& ptr13 = no_arg, + const Arg& ptr14 = no_arg, + const Arg& ptr15 = no_arg, + const Arg& ptr16 = no_arg) const; + + bool PartialMatch(const StringPiece& text, + const Arg& ptr1 = no_arg, + const Arg& ptr2 = no_arg, + const Arg& ptr3 = no_arg, + const Arg& ptr4 = no_arg, + const Arg& ptr5 = no_arg, + const Arg& ptr6 = no_arg, + const Arg& ptr7 = no_arg, + const Arg& ptr8 = no_arg, + const Arg& ptr9 = no_arg, + const Arg& ptr10 = no_arg, + const Arg& ptr11 = no_arg, + const Arg& ptr12 = no_arg, + const Arg& ptr13 = no_arg, + const Arg& ptr14 = no_arg, + const Arg& ptr15 = no_arg, + const Arg& ptr16 = no_arg) const; + + bool Consume(StringPiece* input, + const Arg& ptr1 = no_arg, + const Arg& ptr2 = no_arg, + const Arg& ptr3 = no_arg, + const Arg& ptr4 = no_arg, + const Arg& ptr5 = no_arg, + const Arg& ptr6 = no_arg, + const Arg& ptr7 = no_arg, + const Arg& ptr8 = no_arg, + const Arg& ptr9 = no_arg, + const Arg& ptr10 = no_arg, + const Arg& ptr11 = no_arg, + const Arg& ptr12 = no_arg, + const Arg& ptr13 = no_arg, + const Arg& ptr14 = no_arg, + const Arg& ptr15 = no_arg, + const Arg& ptr16 = no_arg) const; + + bool FindAndConsume(StringPiece* input, + const Arg& ptr1 = no_arg, + const Arg& ptr2 = no_arg, + const Arg& ptr3 = no_arg, + const Arg& ptr4 = no_arg, + const Arg& ptr5 = no_arg, + const Arg& ptr6 = no_arg, + const Arg& ptr7 = no_arg, + const Arg& ptr8 = no_arg, + const Arg& ptr9 = no_arg, + const Arg& ptr10 = no_arg, + const Arg& ptr11 = no_arg, + const Arg& ptr12 = no_arg, + const Arg& ptr13 = no_arg, + const Arg& ptr14 = no_arg, + const Arg& ptr15 = no_arg, + const Arg& ptr16 = no_arg) const; + + bool Replace(const StringPiece& rewrite, + string *str) const; + + int GlobalReplace(const StringPiece& rewrite, + string *str) const; + + bool Extract(const StringPiece &rewrite, + const StringPiece &text, + string *out) const; + + // Escapes all potentially meaningful regexp characters in + // 'unquoted'. The returned string, used as a regular expression, + // will exactly match the original string. For example, + // 1.5-2.0? + // may become: + // 1\.5\-2\.0\? + static string QuoteMeta(const StringPiece& unquoted); + + + /***** Generic matching interface *****/ + + // Type of match (TODO: Should be restructured as part of RE_Options) + enum Anchor { + UNANCHORED, // No anchoring + ANCHOR_START, // Anchor at start only + ANCHOR_BOTH // Anchor at start and end + }; + + // General matching routine. Stores the length of the match in + // "*consumed" if successful. + bool DoMatch(const StringPiece& text, + Anchor anchor, + int* consumed, + const Arg* const* args, int n) const; + + // Return the number of capturing subpatterns, or -1 if the + // regexp wasn't valid on construction. + int NumberOfCapturingGroups() const; + + // The default value for an argument, to indicate no arg was passed in + static Arg no_arg; + + private: + + void Init(const string& pattern, const RE_Options* options); + void Cleanup(); + + // Match against "text", filling in "vec" (up to "vecsize" * 2/3) with + // pairs of integers for the beginning and end positions of matched + // text. The first pair corresponds to the entire matched text; + // subsequent pairs correspond, in order, to parentheses-captured + // matches. Returns the number of pairs (one more than the number of + // the last subpattern with a match) if matching was successful + // and zero if the match failed. + // I.e. for RE("(foo)|(bar)|(baz)") it will return 2, 3, and 4 when matching + // against "foo", "bar", and "baz" respectively. + // When matching RE("(foo)|hello") against "hello", it will return 1. + // But the values for all subpattern are filled in into "vec". + int TryMatch(const StringPiece& text, + int startpos, + Anchor anchor, + int *vec, + int vecsize) const; + + // Append the "rewrite" string, with backslash subsitutions from "text" + // and "vec", to string "out". + bool Rewrite(string *out, + const StringPiece& rewrite, + const StringPiece& text, + int *vec, + int veclen) const; + + // internal implementation for DoMatch + bool DoMatchImpl(const StringPiece& text, + Anchor anchor, + int* consumed, + const Arg* const args[], + int n, + int* vec, + int vecsize) const; + + // Compile the regexp for the specified anchoring mode + pcre* Compile(Anchor anchor); + + string pattern_; + RE_Options options_; + pcre* re_full_; // For full matches + pcre* re_partial_; // For partial matches + const string* error_; // Error indicator (or points to empty string) +}; + +} // namespace pcrecpp + +#endif /* _PCRECPP_H */ diff --git a/external-libs/pcre/pcrecpp_internal.h b/external-libs/pcre/pcrecpp_internal.h new file mode 100644 index 0000000..88fdf9c --- /dev/null +++ b/external-libs/pcre/pcrecpp_internal.h @@ -0,0 +1,68 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + + +#ifndef PCRECPP_INTERNAL_H +#define PCRECPP_INTERNAL_H + +/* When compiling a DLL for Windows, the exported symbols have to be declared +using some MS magic. I found some useful information on this web page: +http://msdn2.microsoft.com/en-us/library/y4h7bcy6(VS.80).aspx. According to the +information there, using __declspec(dllexport) without "extern" we have a +definition; with "extern" we have a declaration. The settings here override the +setting in pcre.h. We use: + + PCRECPP_EXP_DECL for declarations + PCRECPP_EXP_DEFN for definitions of exported functions + +*/ + +#ifndef PCRECPP_EXP_DECL +# ifdef _WIN32 +# ifndef PCRE_STATIC +# define PCRECPP_EXP_DECL extern __declspec(dllexport) +# define PCRECPP_EXP_DEFN __declspec(dllexport) +# else +# define PCRECPP_EXP_DECL extern +# define PCRECPP_EXP_DEFN +# endif +# else +# define PCRECPP_EXP_DECL extern +# define PCRECPP_EXP_DEFN +# endif +#endif + +#endif /* PCRECPP_INTERNAL_H */ + +/* End of pcrecpp_internal.h */ diff --git a/external-libs/pcre/pcrecpparg.h b/external-libs/pcre/pcrecpparg.h new file mode 100644 index 0000000..b4f9c3f --- /dev/null +++ b/external-libs/pcre/pcrecpparg.h @@ -0,0 +1,174 @@ +// Copyright (c) 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Sanjay Ghemawat + +#ifndef _PCRECPPARG_H +#define _PCRECPPARG_H + +#include // for NULL +#include + +#include + +namespace pcrecpp { + +class StringPiece; + +// Hex/Octal/Binary? + +// Special class for parsing into objects that define a ParseFrom() method +template +class _RE_MatchObject { + public: + static inline bool Parse(const char* str, int n, void* dest) { + if (dest == NULL) return true; + T* object = reinterpret_cast(dest); + return object->ParseFrom(str, n); + } +}; + +class PCRECPP_EXP_DEFN Arg { + public: + // Empty constructor so we can declare arrays of Arg + Arg(); + + // Constructor specially designed for NULL arguments + Arg(void*); + + typedef bool (*Parser)(const char* str, int n, void* dest); + +// Type-specific parsers +#define PCRE_MAKE_PARSER(type,name) \ + Arg(type* p) : arg_(p), parser_(name) { } \ + Arg(type* p, Parser parser) : arg_(p), parser_(parser) { } + + + PCRE_MAKE_PARSER(char, parse_char); + PCRE_MAKE_PARSER(unsigned char, parse_uchar); + PCRE_MAKE_PARSER(short, parse_short); + PCRE_MAKE_PARSER(unsigned short, parse_ushort); + PCRE_MAKE_PARSER(int, parse_int); + PCRE_MAKE_PARSER(unsigned int, parse_uint); + PCRE_MAKE_PARSER(long, parse_long); + PCRE_MAKE_PARSER(unsigned long, parse_ulong); +#if 1 + PCRE_MAKE_PARSER(long long, parse_longlong); +#endif +#if 1 + PCRE_MAKE_PARSER(unsigned long long, parse_ulonglong); +#endif + PCRE_MAKE_PARSER(float, parse_float); + PCRE_MAKE_PARSER(double, parse_double); + PCRE_MAKE_PARSER(std::string, parse_string); + PCRE_MAKE_PARSER(StringPiece, parse_stringpiece); + +#undef PCRE_MAKE_PARSER + + // Generic constructor + template Arg(T*, Parser parser); + // Generic constructor template + template Arg(T* p) + : arg_(p), parser_(_RE_MatchObject::Parse) { + } + + // Parse the data + bool Parse(const char* str, int n) const; + + private: + void* arg_; + Parser parser_; + + static bool parse_null (const char* str, int n, void* dest); + static bool parse_char (const char* str, int n, void* dest); + static bool parse_uchar (const char* str, int n, void* dest); + static bool parse_float (const char* str, int n, void* dest); + static bool parse_double (const char* str, int n, void* dest); + static bool parse_string (const char* str, int n, void* dest); + static bool parse_stringpiece (const char* str, int n, void* dest); + +#define PCRE_DECLARE_INTEGER_PARSER(name) \ + private: \ + static bool parse_ ## name(const char* str, int n, void* dest); \ + static bool parse_ ## name ## _radix( \ + const char* str, int n, void* dest, int radix); \ + public: \ + static bool parse_ ## name ## _hex(const char* str, int n, void* dest); \ + static bool parse_ ## name ## _octal(const char* str, int n, void* dest); \ + static bool parse_ ## name ## _cradix(const char* str, int n, void* dest) + + PCRE_DECLARE_INTEGER_PARSER(short); + PCRE_DECLARE_INTEGER_PARSER(ushort); + PCRE_DECLARE_INTEGER_PARSER(int); + PCRE_DECLARE_INTEGER_PARSER(uint); + PCRE_DECLARE_INTEGER_PARSER(long); + PCRE_DECLARE_INTEGER_PARSER(ulong); + PCRE_DECLARE_INTEGER_PARSER(longlong); + PCRE_DECLARE_INTEGER_PARSER(ulonglong); + +#undef PCRE_DECLARE_INTEGER_PARSER +}; + +inline Arg::Arg() : arg_(NULL), parser_(parse_null) { } +inline Arg::Arg(void* p) : arg_(p), parser_(parse_null) { } + +inline bool Arg::Parse(const char* str, int n) const { + return (*parser_)(str, n, arg_); +} + +// This part of the parser, appropriate only for ints, deals with bases +#define MAKE_INTEGER_PARSER(type, name) \ + inline Arg Hex(type* ptr) { \ + return Arg(ptr, Arg::parse_ ## name ## _hex); } \ + inline Arg Octal(type* ptr) { \ + return Arg(ptr, Arg::parse_ ## name ## _octal); } \ + inline Arg CRadix(type* ptr) { \ + return Arg(ptr, Arg::parse_ ## name ## _cradix); } + +MAKE_INTEGER_PARSER(short, short) /* */ +MAKE_INTEGER_PARSER(unsigned short, ushort) /* */ +MAKE_INTEGER_PARSER(int, int) /* Don't use semicolons */ +MAKE_INTEGER_PARSER(unsigned int, uint) /* after these statement */ +MAKE_INTEGER_PARSER(long, long) /* because they can cause */ +MAKE_INTEGER_PARSER(unsigned long, ulong) /* compiler warnings if */ +#if 1 /* the checking level is */ +MAKE_INTEGER_PARSER(long long, longlong) /* turned up high enough. */ +#endif /* */ +#if 1 /* */ +MAKE_INTEGER_PARSER(unsigned long long, ulonglong) /* */ +#endif + +#undef PCRE_IS_SET +#undef PCRE_SET_OR_CLEAR +#undef MAKE_INTEGER_PARSER + +} // namespace pcrecpp + + +#endif /* _PCRECPPARG_H */ diff --git a/external-libs/pcre/pcreposix.h b/external-libs/pcre/pcreposix.h new file mode 100644 index 0000000..109376d --- /dev/null +++ b/external-libs/pcre/pcreposix.h @@ -0,0 +1,142 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +#ifndef _PCREPOSIX_H +#define _PCREPOSIX_H + +/* This is the header for the POSIX wrapper interface to the PCRE Perl- +Compatible Regular Expression library. It defines the things POSIX says should +be there. I hope. + + Copyright (c) 1997-2008 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + +/* Have to include stdlib.h in order to ensure that size_t is defined. */ + +#include + +/* Allow for C++ users */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Options, mostly defined by POSIX, but with a couple of extras. */ + +#define REG_ICASE 0x0001 +#define REG_NEWLINE 0x0002 +#define REG_NOTBOL 0x0004 +#define REG_NOTEOL 0x0008 +#define REG_DOTALL 0x0010 /* NOT defined by POSIX. */ +#define REG_NOSUB 0x0020 +#define REG_UTF8 0x0040 /* NOT defined by POSIX. */ + +/* This is not used by PCRE, but by defining it we make it easier +to slot PCRE into existing programs that make POSIX calls. */ + +#define REG_EXTENDED 0 + +/* Error values. Not all these are relevant or used by the wrapper. */ + +enum { + REG_ASSERT = 1, /* internal error ? */ + REG_BADBR, /* invalid repeat counts in {} */ + REG_BADPAT, /* pattern error */ + REG_BADRPT, /* ? * + invalid */ + REG_EBRACE, /* unbalanced {} */ + REG_EBRACK, /* unbalanced [] */ + REG_ECOLLATE, /* collation error - not relevant */ + REG_ECTYPE, /* bad class */ + REG_EESCAPE, /* bad escape sequence */ + REG_EMPTY, /* empty expression */ + REG_EPAREN, /* unbalanced () */ + REG_ERANGE, /* bad range inside [] */ + REG_ESIZE, /* expression too big */ + REG_ESPACE, /* failed to get memory */ + REG_ESUBREG, /* bad back reference */ + REG_INVARG, /* bad argument */ + REG_NOMATCH /* match failed */ +}; + + +/* The structure representing a compiled regular expression. */ + +typedef struct { + void *re_pcre; + size_t re_nsub; + size_t re_erroffset; +} regex_t; + +/* The structure in which a captured offset is returned. */ + +typedef int regoff_t; + +typedef struct { + regoff_t rm_so; + regoff_t rm_eo; +} regmatch_t; + +/* When an application links to a PCRE DLL in Windows, the symbols that are +imported have to be identified as such. When building PCRE, the appropriate +export settings are needed, and are set in pcreposix.c before including this +file. */ + +#if defined(_WIN32) && !defined(PCRE_STATIC) && !defined(PCREPOSIX_EXP_DECL) +# define PCREPOSIX_EXP_DECL extern __declspec(dllimport) +# define PCREPOSIX_EXP_DEFN __declspec(dllimport) +#endif + +/* By default, we use the standard "extern" declarations. */ + +#ifndef PCREPOSIX_EXP_DECL +# ifdef __cplusplus +# define PCREPOSIX_EXP_DECL extern "C" +# define PCREPOSIX_EXP_DEFN extern "C" +# else +# define PCREPOSIX_EXP_DECL extern +# define PCREPOSIX_EXP_DEFN extern +# endif +#endif + +/* The functions */ + +PCREPOSIX_EXP_DECL int regcomp(regex_t *, const char *, int); +PCREPOSIX_EXP_DECL int regexec(const regex_t *, const char *, size_t, + regmatch_t *, int); +PCREPOSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t); +PCREPOSIX_EXP_DECL void regfree(regex_t *); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* End of pcreposix.h */ diff --git a/external-libs/pcre/ucp.h b/external-libs/pcre/ucp.h new file mode 100644 index 0000000..3a4179b --- /dev/null +++ b/external-libs/pcre/ucp.h @@ -0,0 +1,133 @@ +/************************************************* +* Unicode Property Table handler * +*************************************************/ + +#ifndef _UCP_H +#define _UCP_H + +/* This file contains definitions of the property values that are returned by +the function _pcre_ucp_findprop(). New values that are added for new releases +of Unicode should always be at the end of each enum, for backwards +compatibility. */ + +/* These are the general character categories. */ + +enum { + ucp_C, /* Other */ + ucp_L, /* Letter */ + ucp_M, /* Mark */ + ucp_N, /* Number */ + ucp_P, /* Punctuation */ + ucp_S, /* Symbol */ + ucp_Z /* Separator */ +}; + +/* These are the particular character types. */ + +enum { + ucp_Cc, /* Control */ + ucp_Cf, /* Format */ + ucp_Cn, /* Unassigned */ + ucp_Co, /* Private use */ + ucp_Cs, /* Surrogate */ + ucp_Ll, /* Lower case letter */ + ucp_Lm, /* Modifier letter */ + ucp_Lo, /* Other letter */ + ucp_Lt, /* Title case letter */ + ucp_Lu, /* Upper case letter */ + ucp_Mc, /* Spacing mark */ + ucp_Me, /* Enclosing mark */ + ucp_Mn, /* Non-spacing mark */ + ucp_Nd, /* Decimal number */ + ucp_Nl, /* Letter number */ + ucp_No, /* Other number */ + ucp_Pc, /* Connector punctuation */ + ucp_Pd, /* Dash punctuation */ + ucp_Pe, /* Close punctuation */ + ucp_Pf, /* Final punctuation */ + ucp_Pi, /* Initial punctuation */ + ucp_Po, /* Other punctuation */ + ucp_Ps, /* Open punctuation */ + ucp_Sc, /* Currency symbol */ + ucp_Sk, /* Modifier symbol */ + ucp_Sm, /* Mathematical symbol */ + ucp_So, /* Other symbol */ + ucp_Zl, /* Line separator */ + ucp_Zp, /* Paragraph separator */ + ucp_Zs /* Space separator */ +}; + +/* These are the script identifications. */ + +enum { + ucp_Arabic, + ucp_Armenian, + ucp_Bengali, + ucp_Bopomofo, + ucp_Braille, + ucp_Buginese, + ucp_Buhid, + ucp_Canadian_Aboriginal, + ucp_Cherokee, + ucp_Common, + ucp_Coptic, + ucp_Cypriot, + ucp_Cyrillic, + ucp_Deseret, + ucp_Devanagari, + ucp_Ethiopic, + ucp_Georgian, + ucp_Glagolitic, + ucp_Gothic, + ucp_Greek, + ucp_Gujarati, + ucp_Gurmukhi, + ucp_Han, + ucp_Hangul, + ucp_Hanunoo, + ucp_Hebrew, + ucp_Hiragana, + ucp_Inherited, + ucp_Kannada, + ucp_Katakana, + ucp_Kharoshthi, + ucp_Khmer, + ucp_Lao, + ucp_Latin, + ucp_Limbu, + ucp_Linear_B, + ucp_Malayalam, + ucp_Mongolian, + ucp_Myanmar, + ucp_New_Tai_Lue, + ucp_Ogham, + ucp_Old_Italic, + ucp_Old_Persian, + ucp_Oriya, + ucp_Osmanya, + ucp_Runic, + ucp_Shavian, + ucp_Sinhala, + ucp_Syloti_Nagri, + ucp_Syriac, + ucp_Tagalog, + ucp_Tagbanwa, + ucp_Tai_Le, + ucp_Tamil, + ucp_Telugu, + ucp_Thaana, + ucp_Thai, + ucp_Tibetan, + ucp_Tifinagh, + ucp_Ugaritic, + ucp_Yi, + ucp_Balinese, /* New for Unicode 5.0.0 */ + ucp_Cuneiform, /* New for Unicode 5.0.0 */ + ucp_Nko, /* New for Unicode 5.0.0 */ + ucp_Phags_Pa, /* New for Unicode 5.0.0 */ + ucp_Phoenician /* New for Unicode 5.0.0 */ +}; + +#endif + +/* End of ucp.h */ diff --git a/external-libs/pcre/ucpinternal.h b/external-libs/pcre/ucpinternal.h new file mode 100644 index 0000000..811a373 --- /dev/null +++ b/external-libs/pcre/ucpinternal.h @@ -0,0 +1,92 @@ +/************************************************* +* Unicode Property Table handler * +*************************************************/ + +#ifndef _UCPINTERNAL_H +#define _UCPINTERNAL_H + +/* Internal header file defining the layout of the bits in each pair of 32-bit +words that form a data item in the table. */ + +typedef struct cnode { + pcre_uint32 f0; + pcre_uint32 f1; +} cnode; + +/* Things for the f0 field */ + +#define f0_scriptmask 0xff000000 /* Mask for script field */ +#define f0_scriptshift 24 /* Shift for script value */ +#define f0_rangeflag 0x00f00000 /* Flag for a range item */ +#define f0_charmask 0x001fffff /* Mask for code point value */ + +/* Things for the f1 field */ + +#define f1_typemask 0xfc000000 /* Mask for char type field */ +#define f1_typeshift 26 /* Shift for the type field */ +#define f1_rangemask 0x0000ffff /* Mask for a range offset */ +#define f1_casemask 0x0000ffff /* Mask for a case offset */ +#define f1_caseneg 0xffff8000 /* Bits for negation */ + +/* The data consists of a vector of structures of type cnode. The two unsigned +32-bit integers are used as follows: + +(f0) (1) The most significant byte holds the script number. The numbers are + defined by the enum in ucp.h. + + (2) The 0x00800000 bit is set if this entry defines a range of characters. + It is not set if this entry defines a single character + + (3) The 0x00600000 bits are spare. + + (4) The 0x001fffff bits contain the code point. No Unicode code point will + ever be greater than 0x0010ffff, so this should be OK for ever. + +(f1) (1) The 0xfc000000 bits contain the character type number. The numbers are + defined by an enum in ucp.h. + + (2) The 0x03ff0000 bits are spare. + + (3) The 0x0000ffff bits contain EITHER the unsigned offset to the top of + range if this entry defines a range, OR the *signed* offset to the + character's "other case" partner if this entry defines a single + character. There is no partner if the value is zero. + +------------------------------------------------------------------------------- +| script (8) |.|.|.| codepoint (21) || type (6) |.|.| spare (8) | offset (16) | +------------------------------------------------------------------------------- + | | | | | + | | |-> spare | |-> spare + | | | + | |-> spare |-> spare + | + |-> range flag + +The upper/lower casing information is set only for characters that come in +pairs. The non-one-to-one mappings in the Unicode data are ignored. + +When searching the data, proceed as follows: + +(1) Set up for a binary chop search. + +(2) If the top is not greater than the bottom, the character is not in the + table. Its type must therefore be "Cn" ("Undefined"). + +(3) Find the middle vector element. + +(4) Extract the code point and compare. If equal, we are done. + +(5) If the test character is smaller, set the top to the current point, and + goto (2). + +(6) If the current entry defines a range, compute the last character by adding + the offset, and see if the test character is within the range. If it is, + we are done. + +(7) Otherwise, set the bottom to one element past the current point and goto + (2). +*/ + +#endif /* _UCPINTERNAL_H */ + +/* End of ucpinternal.h */ diff --git a/external-libs/pcre/ucptable.h b/external-libs/pcre/ucptable.h new file mode 100644 index 0000000..a274d44 --- /dev/null +++ b/external-libs/pcre/ucptable.h @@ -0,0 +1,3088 @@ +/* This source module is automatically generated from the Unicode +property table. See ucpinternal.h for a description of the layout. +This version was made from the Unicode 5.0.0 tables. */ + +static const cnode ucp_table[] = { + { 0x09800000, 0x0000001f }, + { 0x09000020, 0x74000000 }, + { 0x09800021, 0x54000002 }, + { 0x09000024, 0x5c000000 }, + { 0x09800025, 0x54000002 }, + { 0x09000028, 0x58000000 }, + { 0x09000029, 0x48000000 }, + { 0x0900002a, 0x54000000 }, + { 0x0900002b, 0x64000000 }, + { 0x0900002c, 0x54000000 }, + { 0x0900002d, 0x44000000 }, + { 0x0980002e, 0x54000001 }, + { 0x09800030, 0x34000009 }, + { 0x0980003a, 0x54000001 }, + { 0x0980003c, 0x64000002 }, + { 0x0980003f, 0x54000001 }, + { 0x21000041, 0x24000020 }, + { 0x21000042, 0x24000020 }, + { 0x21000043, 0x24000020 }, + { 0x21000044, 0x24000020 }, + { 0x21000045, 0x24000020 }, + { 0x21000046, 0x24000020 }, + { 0x21000047, 0x24000020 }, + { 0x21000048, 0x24000020 }, + { 0x21000049, 0x24000020 }, + { 0x2100004a, 0x24000020 }, + { 0x2100004b, 0x24000020 }, + { 0x2100004c, 0x24000020 }, + { 0x2100004d, 0x24000020 }, + { 0x2100004e, 0x24000020 }, + { 0x2100004f, 0x24000020 }, + { 0x21000050, 0x24000020 }, + { 0x21000051, 0x24000020 }, + { 0x21000052, 0x24000020 }, + { 0x21000053, 0x24000020 }, + { 0x21000054, 0x24000020 }, + { 0x21000055, 0x24000020 }, + { 0x21000056, 0x24000020 }, + { 0x21000057, 0x24000020 }, + { 0x21000058, 0x24000020 }, + { 0x21000059, 0x24000020 }, + { 0x2100005a, 0x24000020 }, + { 0x0900005b, 0x58000000 }, + { 0x0900005c, 0x54000000 }, + { 0x0900005d, 0x48000000 }, + { 0x0900005e, 0x60000000 }, + { 0x0900005f, 0x40000000 }, + { 0x09000060, 0x60000000 }, + { 0x21000061, 0x1400ffe0 }, + { 0x21000062, 0x1400ffe0 }, + { 0x21000063, 0x1400ffe0 }, + { 0x21000064, 0x1400ffe0 }, + { 0x21000065, 0x1400ffe0 }, + { 0x21000066, 0x1400ffe0 }, + { 0x21000067, 0x1400ffe0 }, + { 0x21000068, 0x1400ffe0 }, + { 0x21000069, 0x1400ffe0 }, + { 0x2100006a, 0x1400ffe0 }, + { 0x2100006b, 0x1400ffe0 }, + { 0x2100006c, 0x1400ffe0 }, + { 0x2100006d, 0x1400ffe0 }, + { 0x2100006e, 0x1400ffe0 }, + { 0x2100006f, 0x1400ffe0 }, + { 0x21000070, 0x1400ffe0 }, + { 0x21000071, 0x1400ffe0 }, + { 0x21000072, 0x1400ffe0 }, + { 0x21000073, 0x1400ffe0 }, + { 0x21000074, 0x1400ffe0 }, + { 0x21000075, 0x1400ffe0 }, + { 0x21000076, 0x1400ffe0 }, + { 0x21000077, 0x1400ffe0 }, + { 0x21000078, 0x1400ffe0 }, + { 0x21000079, 0x1400ffe0 }, + { 0x2100007a, 0x1400ffe0 }, + { 0x0900007b, 0x58000000 }, + { 0x0900007c, 0x64000000 }, + { 0x0900007d, 0x48000000 }, + { 0x0900007e, 0x64000000 }, + { 0x0980007f, 0x00000020 }, + { 0x090000a0, 0x74000000 }, + { 0x090000a1, 0x54000000 }, + { 0x098000a2, 0x5c000003 }, + { 0x098000a6, 0x68000001 }, + { 0x090000a8, 0x60000000 }, + { 0x090000a9, 0x68000000 }, + { 0x210000aa, 0x14000000 }, + { 0x090000ab, 0x50000000 }, + { 0x090000ac, 0x64000000 }, + { 0x090000ad, 0x04000000 }, + { 0x090000ae, 0x68000000 }, + { 0x090000af, 0x60000000 }, + { 0x090000b0, 0x68000000 }, + { 0x090000b1, 0x64000000 }, + { 0x098000b2, 0x3c000001 }, + { 0x090000b4, 0x60000000 }, + { 0x090000b5, 0x140002e7 }, + { 0x090000b6, 0x68000000 }, + { 0x090000b7, 0x54000000 }, + { 0x090000b8, 0x60000000 }, + { 0x090000b9, 0x3c000000 }, + { 0x210000ba, 0x14000000 }, + { 0x090000bb, 0x4c000000 }, + { 0x098000bc, 0x3c000002 }, + { 0x090000bf, 0x54000000 }, + { 0x210000c0, 0x24000020 }, + { 0x210000c1, 0x24000020 }, + { 0x210000c2, 0x24000020 }, + { 0x210000c3, 0x24000020 }, + { 0x210000c4, 0x24000020 }, + { 0x210000c5, 0x24000020 }, + { 0x210000c6, 0x24000020 }, + { 0x210000c7, 0x24000020 }, + { 0x210000c8, 0x24000020 }, + { 0x210000c9, 0x24000020 }, + { 0x210000ca, 0x24000020 }, + { 0x210000cb, 0x24000020 }, + { 0x210000cc, 0x24000020 }, + { 0x210000cd, 0x24000020 }, + { 0x210000ce, 0x24000020 }, + { 0x210000cf, 0x24000020 }, + { 0x210000d0, 0x24000020 }, + { 0x210000d1, 0x24000020 }, + { 0x210000d2, 0x24000020 }, + { 0x210000d3, 0x24000020 }, + { 0x210000d4, 0x24000020 }, + { 0x210000d5, 0x24000020 }, + { 0x210000d6, 0x24000020 }, + { 0x090000d7, 0x64000000 }, + { 0x210000d8, 0x24000020 }, + { 0x210000d9, 0x24000020 }, + { 0x210000da, 0x24000020 }, + { 0x210000db, 0x24000020 }, + { 0x210000dc, 0x24000020 }, + { 0x210000dd, 0x24000020 }, + { 0x210000de, 0x24000020 }, + { 0x210000df, 0x14000000 }, + { 0x210000e0, 0x1400ffe0 }, + { 0x210000e1, 0x1400ffe0 }, + { 0x210000e2, 0x1400ffe0 }, + { 0x210000e3, 0x1400ffe0 }, + { 0x210000e4, 0x1400ffe0 }, + { 0x210000e5, 0x1400ffe0 }, + { 0x210000e6, 0x1400ffe0 }, + { 0x210000e7, 0x1400ffe0 }, + { 0x210000e8, 0x1400ffe0 }, + { 0x210000e9, 0x1400ffe0 }, + { 0x210000ea, 0x1400ffe0 }, + { 0x210000eb, 0x1400ffe0 }, + { 0x210000ec, 0x1400ffe0 }, + { 0x210000ed, 0x1400ffe0 }, + { 0x210000ee, 0x1400ffe0 }, + { 0x210000ef, 0x1400ffe0 }, + { 0x210000f0, 0x1400ffe0 }, + { 0x210000f1, 0x1400ffe0 }, + { 0x210000f2, 0x1400ffe0 }, + { 0x210000f3, 0x1400ffe0 }, + { 0x210000f4, 0x1400ffe0 }, + { 0x210000f5, 0x1400ffe0 }, + { 0x210000f6, 0x1400ffe0 }, + { 0x090000f7, 0x64000000 }, + { 0x210000f8, 0x1400ffe0 }, + { 0x210000f9, 0x1400ffe0 }, + { 0x210000fa, 0x1400ffe0 }, + { 0x210000fb, 0x1400ffe0 }, + { 0x210000fc, 0x1400ffe0 }, + { 0x210000fd, 0x1400ffe0 }, + { 0x210000fe, 0x1400ffe0 }, + { 0x210000ff, 0x14000079 }, + { 0x21000100, 0x24000001 }, + { 0x21000101, 0x1400ffff }, + { 0x21000102, 0x24000001 }, + { 0x21000103, 0x1400ffff }, + { 0x21000104, 0x24000001 }, + { 0x21000105, 0x1400ffff }, + { 0x21000106, 0x24000001 }, + { 0x21000107, 0x1400ffff }, + { 0x21000108, 0x24000001 }, + { 0x21000109, 0x1400ffff }, + { 0x2100010a, 0x24000001 }, + { 0x2100010b, 0x1400ffff }, + { 0x2100010c, 0x24000001 }, + { 0x2100010d, 0x1400ffff }, + { 0x2100010e, 0x24000001 }, + { 0x2100010f, 0x1400ffff }, + { 0x21000110, 0x24000001 }, + { 0x21000111, 0x1400ffff }, + { 0x21000112, 0x24000001 }, + { 0x21000113, 0x1400ffff }, + { 0x21000114, 0x24000001 }, + { 0x21000115, 0x1400ffff }, + { 0x21000116, 0x24000001 }, + { 0x21000117, 0x1400ffff }, + { 0x21000118, 0x24000001 }, + { 0x21000119, 0x1400ffff }, + { 0x2100011a, 0x24000001 }, + { 0x2100011b, 0x1400ffff }, + { 0x2100011c, 0x24000001 }, + { 0x2100011d, 0x1400ffff }, + { 0x2100011e, 0x24000001 }, + { 0x2100011f, 0x1400ffff }, + { 0x21000120, 0x24000001 }, + { 0x21000121, 0x1400ffff }, + { 0x21000122, 0x24000001 }, + { 0x21000123, 0x1400ffff }, + { 0x21000124, 0x24000001 }, + { 0x21000125, 0x1400ffff }, + { 0x21000126, 0x24000001 }, + { 0x21000127, 0x1400ffff }, + { 0x21000128, 0x24000001 }, + { 0x21000129, 0x1400ffff }, + { 0x2100012a, 0x24000001 }, + { 0x2100012b, 0x1400ffff }, + { 0x2100012c, 0x24000001 }, + { 0x2100012d, 0x1400ffff }, + { 0x2100012e, 0x24000001 }, + { 0x2100012f, 0x1400ffff }, + { 0x21000130, 0x2400ff39 }, + { 0x21000131, 0x1400ff18 }, + { 0x21000132, 0x24000001 }, + { 0x21000133, 0x1400ffff }, + { 0x21000134, 0x24000001 }, + { 0x21000135, 0x1400ffff }, + { 0x21000136, 0x24000001 }, + { 0x21000137, 0x1400ffff }, + { 0x21000138, 0x14000000 }, + { 0x21000139, 0x24000001 }, + { 0x2100013a, 0x1400ffff }, + { 0x2100013b, 0x24000001 }, + { 0x2100013c, 0x1400ffff }, + { 0x2100013d, 0x24000001 }, + { 0x2100013e, 0x1400ffff }, + { 0x2100013f, 0x24000001 }, + { 0x21000140, 0x1400ffff }, + { 0x21000141, 0x24000001 }, + { 0x21000142, 0x1400ffff }, + { 0x21000143, 0x24000001 }, + { 0x21000144, 0x1400ffff }, + { 0x21000145, 0x24000001 }, + { 0x21000146, 0x1400ffff }, + { 0x21000147, 0x24000001 }, + { 0x21000148, 0x1400ffff }, + { 0x21000149, 0x14000000 }, + { 0x2100014a, 0x24000001 }, + { 0x2100014b, 0x1400ffff }, + { 0x2100014c, 0x24000001 }, + { 0x2100014d, 0x1400ffff }, + { 0x2100014e, 0x24000001 }, + { 0x2100014f, 0x1400ffff }, + { 0x21000150, 0x24000001 }, + { 0x21000151, 0x1400ffff }, + { 0x21000152, 0x24000001 }, + { 0x21000153, 0x1400ffff }, + { 0x21000154, 0x24000001 }, + { 0x21000155, 0x1400ffff }, + { 0x21000156, 0x24000001 }, + { 0x21000157, 0x1400ffff }, + { 0x21000158, 0x24000001 }, + { 0x21000159, 0x1400ffff }, + { 0x2100015a, 0x24000001 }, + { 0x2100015b, 0x1400ffff }, + { 0x2100015c, 0x24000001 }, + { 0x2100015d, 0x1400ffff }, + { 0x2100015e, 0x24000001 }, + { 0x2100015f, 0x1400ffff }, + { 0x21000160, 0x24000001 }, + { 0x21000161, 0x1400ffff }, + { 0x21000162, 0x24000001 }, + { 0x21000163, 0x1400ffff }, + { 0x21000164, 0x24000001 }, + { 0x21000165, 0x1400ffff }, + { 0x21000166, 0x24000001 }, + { 0x21000167, 0x1400ffff }, + { 0x21000168, 0x24000001 }, + { 0x21000169, 0x1400ffff }, + { 0x2100016a, 0x24000001 }, + { 0x2100016b, 0x1400ffff }, + { 0x2100016c, 0x24000001 }, + { 0x2100016d, 0x1400ffff }, + { 0x2100016e, 0x24000001 }, + { 0x2100016f, 0x1400ffff }, + { 0x21000170, 0x24000001 }, + { 0x21000171, 0x1400ffff }, + { 0x21000172, 0x24000001 }, + { 0x21000173, 0x1400ffff }, + { 0x21000174, 0x24000001 }, + { 0x21000175, 0x1400ffff }, + { 0x21000176, 0x24000001 }, + { 0x21000177, 0x1400ffff }, + { 0x21000178, 0x2400ff87 }, + { 0x21000179, 0x24000001 }, + { 0x2100017a, 0x1400ffff }, + { 0x2100017b, 0x24000001 }, + { 0x2100017c, 0x1400ffff }, + { 0x2100017d, 0x24000001 }, + { 0x2100017e, 0x1400ffff }, + { 0x2100017f, 0x1400fed4 }, + { 0x21000180, 0x140000c3 }, + { 0x21000181, 0x240000d2 }, + { 0x21000182, 0x24000001 }, + { 0x21000183, 0x1400ffff }, + { 0x21000184, 0x24000001 }, + { 0x21000185, 0x1400ffff }, + { 0x21000186, 0x240000ce }, + { 0x21000187, 0x24000001 }, + { 0x21000188, 0x1400ffff }, + { 0x21000189, 0x240000cd }, + { 0x2100018a, 0x240000cd }, + { 0x2100018b, 0x24000001 }, + { 0x2100018c, 0x1400ffff }, + { 0x2100018d, 0x14000000 }, + { 0x2100018e, 0x2400004f }, + { 0x2100018f, 0x240000ca }, + { 0x21000190, 0x240000cb }, + { 0x21000191, 0x24000001 }, + { 0x21000192, 0x1400ffff }, + { 0x21000193, 0x240000cd }, + { 0x21000194, 0x240000cf }, + { 0x21000195, 0x14000061 }, + { 0x21000196, 0x240000d3 }, + { 0x21000197, 0x240000d1 }, + { 0x21000198, 0x24000001 }, + { 0x21000199, 0x1400ffff }, + { 0x2100019a, 0x140000a3 }, + { 0x2100019b, 0x14000000 }, + { 0x2100019c, 0x240000d3 }, + { 0x2100019d, 0x240000d5 }, + { 0x2100019e, 0x14000082 }, + { 0x2100019f, 0x240000d6 }, + { 0x210001a0, 0x24000001 }, + { 0x210001a1, 0x1400ffff }, + { 0x210001a2, 0x24000001 }, + { 0x210001a3, 0x1400ffff }, + { 0x210001a4, 0x24000001 }, + { 0x210001a5, 0x1400ffff }, + { 0x210001a6, 0x240000da }, + { 0x210001a7, 0x24000001 }, + { 0x210001a8, 0x1400ffff }, + { 0x210001a9, 0x240000da }, + { 0x218001aa, 0x14000001 }, + { 0x210001ac, 0x24000001 }, + { 0x210001ad, 0x1400ffff }, + { 0x210001ae, 0x240000da }, + { 0x210001af, 0x24000001 }, + { 0x210001b0, 0x1400ffff }, + { 0x210001b1, 0x240000d9 }, + { 0x210001b2, 0x240000d9 }, + { 0x210001b3, 0x24000001 }, + { 0x210001b4, 0x1400ffff }, + { 0x210001b5, 0x24000001 }, + { 0x210001b6, 0x1400ffff }, + { 0x210001b7, 0x240000db }, + { 0x210001b8, 0x24000001 }, + { 0x210001b9, 0x1400ffff }, + { 0x210001ba, 0x14000000 }, + { 0x210001bb, 0x1c000000 }, + { 0x210001bc, 0x24000001 }, + { 0x210001bd, 0x1400ffff }, + { 0x210001be, 0x14000000 }, + { 0x210001bf, 0x14000038 }, + { 0x218001c0, 0x1c000003 }, + { 0x210001c4, 0x24000002 }, + { 0x210001c5, 0x2000ffff }, + { 0x210001c6, 0x1400fffe }, + { 0x210001c7, 0x24000002 }, + { 0x210001c8, 0x2000ffff }, + { 0x210001c9, 0x1400fffe }, + { 0x210001ca, 0x24000002 }, + { 0x210001cb, 0x2000ffff }, + { 0x210001cc, 0x1400fffe }, + { 0x210001cd, 0x24000001 }, + { 0x210001ce, 0x1400ffff }, + { 0x210001cf, 0x24000001 }, + { 0x210001d0, 0x1400ffff }, + { 0x210001d1, 0x24000001 }, + { 0x210001d2, 0x1400ffff }, + { 0x210001d3, 0x24000001 }, + { 0x210001d4, 0x1400ffff }, + { 0x210001d5, 0x24000001 }, + { 0x210001d6, 0x1400ffff }, + { 0x210001d7, 0x24000001 }, + { 0x210001d8, 0x1400ffff }, + { 0x210001d9, 0x24000001 }, + { 0x210001da, 0x1400ffff }, + { 0x210001db, 0x24000001 }, + { 0x210001dc, 0x1400ffff }, + { 0x210001dd, 0x1400ffb1 }, + { 0x210001de, 0x24000001 }, + { 0x210001df, 0x1400ffff }, + { 0x210001e0, 0x24000001 }, + { 0x210001e1, 0x1400ffff }, + { 0x210001e2, 0x24000001 }, + { 0x210001e3, 0x1400ffff }, + { 0x210001e4, 0x24000001 }, + { 0x210001e5, 0x1400ffff }, + { 0x210001e6, 0x24000001 }, + { 0x210001e7, 0x1400ffff }, + { 0x210001e8, 0x24000001 }, + { 0x210001e9, 0x1400ffff }, + { 0x210001ea, 0x24000001 }, + { 0x210001eb, 0x1400ffff }, + { 0x210001ec, 0x24000001 }, + { 0x210001ed, 0x1400ffff }, + { 0x210001ee, 0x24000001 }, + { 0x210001ef, 0x1400ffff }, + { 0x210001f0, 0x14000000 }, + { 0x210001f1, 0x24000002 }, + { 0x210001f2, 0x2000ffff }, + { 0x210001f3, 0x1400fffe }, + { 0x210001f4, 0x24000001 }, + { 0x210001f5, 0x1400ffff }, + { 0x210001f6, 0x2400ff9f }, + { 0x210001f7, 0x2400ffc8 }, + { 0x210001f8, 0x24000001 }, + { 0x210001f9, 0x1400ffff }, + { 0x210001fa, 0x24000001 }, + { 0x210001fb, 0x1400ffff }, + { 0x210001fc, 0x24000001 }, + { 0x210001fd, 0x1400ffff }, + { 0x210001fe, 0x24000001 }, + { 0x210001ff, 0x1400ffff }, + { 0x21000200, 0x24000001 }, + { 0x21000201, 0x1400ffff }, + { 0x21000202, 0x24000001 }, + { 0x21000203, 0x1400ffff }, + { 0x21000204, 0x24000001 }, + { 0x21000205, 0x1400ffff }, + { 0x21000206, 0x24000001 }, + { 0x21000207, 0x1400ffff }, + { 0x21000208, 0x24000001 }, + { 0x21000209, 0x1400ffff }, + { 0x2100020a, 0x24000001 }, + { 0x2100020b, 0x1400ffff }, + { 0x2100020c, 0x24000001 }, + { 0x2100020d, 0x1400ffff }, + { 0x2100020e, 0x24000001 }, + { 0x2100020f, 0x1400ffff }, + { 0x21000210, 0x24000001 }, + { 0x21000211, 0x1400ffff }, + { 0x21000212, 0x24000001 }, + { 0x21000213, 0x1400ffff }, + { 0x21000214, 0x24000001 }, + { 0x21000215, 0x1400ffff }, + { 0x21000216, 0x24000001 }, + { 0x21000217, 0x1400ffff }, + { 0x21000218, 0x24000001 }, + { 0x21000219, 0x1400ffff }, + { 0x2100021a, 0x24000001 }, + { 0x2100021b, 0x1400ffff }, + { 0x2100021c, 0x24000001 }, + { 0x2100021d, 0x1400ffff }, + { 0x2100021e, 0x24000001 }, + { 0x2100021f, 0x1400ffff }, + { 0x21000220, 0x2400ff7e }, + { 0x21000221, 0x14000000 }, + { 0x21000222, 0x24000001 }, + { 0x21000223, 0x1400ffff }, + { 0x21000224, 0x24000001 }, + { 0x21000225, 0x1400ffff }, + { 0x21000226, 0x24000001 }, + { 0x21000227, 0x1400ffff }, + { 0x21000228, 0x24000001 }, + { 0x21000229, 0x1400ffff }, + { 0x2100022a, 0x24000001 }, + { 0x2100022b, 0x1400ffff }, + { 0x2100022c, 0x24000001 }, + { 0x2100022d, 0x1400ffff }, + { 0x2100022e, 0x24000001 }, + { 0x2100022f, 0x1400ffff }, + { 0x21000230, 0x24000001 }, + { 0x21000231, 0x1400ffff }, + { 0x21000232, 0x24000001 }, + { 0x21000233, 0x1400ffff }, + { 0x21800234, 0x14000005 }, + { 0x2100023a, 0x24002a2b }, + { 0x2100023b, 0x24000001 }, + { 0x2100023c, 0x1400ffff }, + { 0x2100023d, 0x2400ff5d }, + { 0x2100023e, 0x24002a28 }, + { 0x2180023f, 0x14000001 }, + { 0x21000241, 0x24000001 }, + { 0x21000242, 0x1400ffff }, + { 0x21000243, 0x2400ff3d }, + { 0x21000244, 0x24000045 }, + { 0x21000245, 0x24000047 }, + { 0x21000246, 0x24000001 }, + { 0x21000247, 0x1400ffff }, + { 0x21000248, 0x24000001 }, + { 0x21000249, 0x1400ffff }, + { 0x2100024a, 0x24000001 }, + { 0x2100024b, 0x1400ffff }, + { 0x2100024c, 0x24000001 }, + { 0x2100024d, 0x1400ffff }, + { 0x2100024e, 0x24000001 }, + { 0x2100024f, 0x1400ffff }, + { 0x21800250, 0x14000002 }, + { 0x21000253, 0x1400ff2e }, + { 0x21000254, 0x1400ff32 }, + { 0x21000255, 0x14000000 }, + { 0x21000256, 0x1400ff33 }, + { 0x21000257, 0x1400ff33 }, + { 0x21000258, 0x14000000 }, + { 0x21000259, 0x1400ff36 }, + { 0x2100025a, 0x14000000 }, + { 0x2100025b, 0x1400ff35 }, + { 0x2180025c, 0x14000003 }, + { 0x21000260, 0x1400ff33 }, + { 0x21800261, 0x14000001 }, + { 0x21000263, 0x1400ff31 }, + { 0x21800264, 0x14000003 }, + { 0x21000268, 0x1400ff2f }, + { 0x21000269, 0x1400ff2d }, + { 0x2100026a, 0x14000000 }, + { 0x2100026b, 0x140029f7 }, + { 0x2180026c, 0x14000002 }, + { 0x2100026f, 0x1400ff2d }, + { 0x21800270, 0x14000001 }, + { 0x21000272, 0x1400ff2b }, + { 0x21800273, 0x14000001 }, + { 0x21000275, 0x1400ff2a }, + { 0x21800276, 0x14000006 }, + { 0x2100027d, 0x140029e7 }, + { 0x2180027e, 0x14000001 }, + { 0x21000280, 0x1400ff26 }, + { 0x21800281, 0x14000001 }, + { 0x21000283, 0x1400ff26 }, + { 0x21800284, 0x14000003 }, + { 0x21000288, 0x1400ff26 }, + { 0x21000289, 0x1400ffbb }, + { 0x2100028a, 0x1400ff27 }, + { 0x2100028b, 0x1400ff27 }, + { 0x2100028c, 0x1400ffb9 }, + { 0x2180028d, 0x14000004 }, + { 0x21000292, 0x1400ff25 }, + { 0x21000293, 0x14000000 }, + { 0x21000294, 0x1c000000 }, + { 0x21800295, 0x1400001a }, + { 0x218002b0, 0x18000008 }, + { 0x098002b9, 0x18000008 }, + { 0x098002c2, 0x60000003 }, + { 0x098002c6, 0x1800000b }, + { 0x098002d2, 0x6000000d }, + { 0x218002e0, 0x18000004 }, + { 0x098002e5, 0x60000008 }, + { 0x090002ee, 0x18000000 }, + { 0x098002ef, 0x60000010 }, + { 0x1b800300, 0x30000044 }, + { 0x1b000345, 0x30000054 }, + { 0x1b800346, 0x30000029 }, + { 0x13800374, 0x60000001 }, + { 0x1300037a, 0x18000000 }, + { 0x1300037b, 0x14000082 }, + { 0x1300037c, 0x14000082 }, + { 0x1300037d, 0x14000082 }, + { 0x0900037e, 0x54000000 }, + { 0x13800384, 0x60000001 }, + { 0x13000386, 0x24000026 }, + { 0x09000387, 0x54000000 }, + { 0x13000388, 0x24000025 }, + { 0x13000389, 0x24000025 }, + { 0x1300038a, 0x24000025 }, + { 0x1300038c, 0x24000040 }, + { 0x1300038e, 0x2400003f }, + { 0x1300038f, 0x2400003f }, + { 0x13000390, 0x14000000 }, + { 0x13000391, 0x24000020 }, + { 0x13000392, 0x24000020 }, + { 0x13000393, 0x24000020 }, + { 0x13000394, 0x24000020 }, + { 0x13000395, 0x24000020 }, + { 0x13000396, 0x24000020 }, + { 0x13000397, 0x24000020 }, + { 0x13000398, 0x24000020 }, + { 0x13000399, 0x24000020 }, + { 0x1300039a, 0x24000020 }, + { 0x1300039b, 0x24000020 }, + { 0x1300039c, 0x24000020 }, + { 0x1300039d, 0x24000020 }, + { 0x1300039e, 0x24000020 }, + { 0x1300039f, 0x24000020 }, + { 0x130003a0, 0x24000020 }, + { 0x130003a1, 0x24000020 }, + { 0x130003a3, 0x24000020 }, + { 0x130003a4, 0x24000020 }, + { 0x130003a5, 0x24000020 }, + { 0x130003a6, 0x24000020 }, + { 0x130003a7, 0x24000020 }, + { 0x130003a8, 0x24000020 }, + { 0x130003a9, 0x24000020 }, + { 0x130003aa, 0x24000020 }, + { 0x130003ab, 0x24000020 }, + { 0x130003ac, 0x1400ffda }, + { 0x130003ad, 0x1400ffdb }, + { 0x130003ae, 0x1400ffdb }, + { 0x130003af, 0x1400ffdb }, + { 0x130003b0, 0x14000000 }, + { 0x130003b1, 0x1400ffe0 }, + { 0x130003b2, 0x1400ffe0 }, + { 0x130003b3, 0x1400ffe0 }, + { 0x130003b4, 0x1400ffe0 }, + { 0x130003b5, 0x1400ffe0 }, + { 0x130003b6, 0x1400ffe0 }, + { 0x130003b7, 0x1400ffe0 }, + { 0x130003b8, 0x1400ffe0 }, + { 0x130003b9, 0x1400ffe0 }, + { 0x130003ba, 0x1400ffe0 }, + { 0x130003bb, 0x1400ffe0 }, + { 0x130003bc, 0x1400ffe0 }, + { 0x130003bd, 0x1400ffe0 }, + { 0x130003be, 0x1400ffe0 }, + { 0x130003bf, 0x1400ffe0 }, + { 0x130003c0, 0x1400ffe0 }, + { 0x130003c1, 0x1400ffe0 }, + { 0x130003c2, 0x1400ffe1 }, + { 0x130003c3, 0x1400ffe0 }, + { 0x130003c4, 0x1400ffe0 }, + { 0x130003c5, 0x1400ffe0 }, + { 0x130003c6, 0x1400ffe0 }, + { 0x130003c7, 0x1400ffe0 }, + { 0x130003c8, 0x1400ffe0 }, + { 0x130003c9, 0x1400ffe0 }, + { 0x130003ca, 0x1400ffe0 }, + { 0x130003cb, 0x1400ffe0 }, + { 0x130003cc, 0x1400ffc0 }, + { 0x130003cd, 0x1400ffc1 }, + { 0x130003ce, 0x1400ffc1 }, + { 0x130003d0, 0x1400ffc2 }, + { 0x130003d1, 0x1400ffc7 }, + { 0x138003d2, 0x24000002 }, + { 0x130003d5, 0x1400ffd1 }, + { 0x130003d6, 0x1400ffca }, + { 0x130003d7, 0x14000000 }, + { 0x130003d8, 0x24000001 }, + { 0x130003d9, 0x1400ffff }, + { 0x130003da, 0x24000001 }, + { 0x130003db, 0x1400ffff }, + { 0x130003dc, 0x24000001 }, + { 0x130003dd, 0x1400ffff }, + { 0x130003de, 0x24000001 }, + { 0x130003df, 0x1400ffff }, + { 0x130003e0, 0x24000001 }, + { 0x130003e1, 0x1400ffff }, + { 0x0a0003e2, 0x24000001 }, + { 0x0a0003e3, 0x1400ffff }, + { 0x0a0003e4, 0x24000001 }, + { 0x0a0003e5, 0x1400ffff }, + { 0x0a0003e6, 0x24000001 }, + { 0x0a0003e7, 0x1400ffff }, + { 0x0a0003e8, 0x24000001 }, + { 0x0a0003e9, 0x1400ffff }, + { 0x0a0003ea, 0x24000001 }, + { 0x0a0003eb, 0x1400ffff }, + { 0x0a0003ec, 0x24000001 }, + { 0x0a0003ed, 0x1400ffff }, + { 0x0a0003ee, 0x24000001 }, + { 0x0a0003ef, 0x1400ffff }, + { 0x130003f0, 0x1400ffaa }, + { 0x130003f1, 0x1400ffb0 }, + { 0x130003f2, 0x14000007 }, + { 0x130003f3, 0x14000000 }, + { 0x130003f4, 0x2400ffc4 }, + { 0x130003f5, 0x1400ffa0 }, + { 0x130003f6, 0x64000000 }, + { 0x130003f7, 0x24000001 }, + { 0x130003f8, 0x1400ffff }, + { 0x130003f9, 0x2400fff9 }, + { 0x130003fa, 0x24000001 }, + { 0x130003fb, 0x1400ffff }, + { 0x130003fc, 0x14000000 }, + { 0x130003fd, 0x2400ff7e }, + { 0x130003fe, 0x2400ff7e }, + { 0x130003ff, 0x2400ff7e }, + { 0x0c000400, 0x24000050 }, + { 0x0c000401, 0x24000050 }, + { 0x0c000402, 0x24000050 }, + { 0x0c000403, 0x24000050 }, + { 0x0c000404, 0x24000050 }, + { 0x0c000405, 0x24000050 }, + { 0x0c000406, 0x24000050 }, + { 0x0c000407, 0x24000050 }, + { 0x0c000408, 0x24000050 }, + { 0x0c000409, 0x24000050 }, + { 0x0c00040a, 0x24000050 }, + { 0x0c00040b, 0x24000050 }, + { 0x0c00040c, 0x24000050 }, + { 0x0c00040d, 0x24000050 }, + { 0x0c00040e, 0x24000050 }, + { 0x0c00040f, 0x24000050 }, + { 0x0c000410, 0x24000020 }, + { 0x0c000411, 0x24000020 }, + { 0x0c000412, 0x24000020 }, + { 0x0c000413, 0x24000020 }, + { 0x0c000414, 0x24000020 }, + { 0x0c000415, 0x24000020 }, + { 0x0c000416, 0x24000020 }, + { 0x0c000417, 0x24000020 }, + { 0x0c000418, 0x24000020 }, + { 0x0c000419, 0x24000020 }, + { 0x0c00041a, 0x24000020 }, + { 0x0c00041b, 0x24000020 }, + { 0x0c00041c, 0x24000020 }, + { 0x0c00041d, 0x24000020 }, + { 0x0c00041e, 0x24000020 }, + { 0x0c00041f, 0x24000020 }, + { 0x0c000420, 0x24000020 }, + { 0x0c000421, 0x24000020 }, + { 0x0c000422, 0x24000020 }, + { 0x0c000423, 0x24000020 }, + { 0x0c000424, 0x24000020 }, + { 0x0c000425, 0x24000020 }, + { 0x0c000426, 0x24000020 }, + { 0x0c000427, 0x24000020 }, + { 0x0c000428, 0x24000020 }, + { 0x0c000429, 0x24000020 }, + { 0x0c00042a, 0x24000020 }, + { 0x0c00042b, 0x24000020 }, + { 0x0c00042c, 0x24000020 }, + { 0x0c00042d, 0x24000020 }, + { 0x0c00042e, 0x24000020 }, + { 0x0c00042f, 0x24000020 }, + { 0x0c000430, 0x1400ffe0 }, + { 0x0c000431, 0x1400ffe0 }, + { 0x0c000432, 0x1400ffe0 }, + { 0x0c000433, 0x1400ffe0 }, + { 0x0c000434, 0x1400ffe0 }, + { 0x0c000435, 0x1400ffe0 }, + { 0x0c000436, 0x1400ffe0 }, + { 0x0c000437, 0x1400ffe0 }, + { 0x0c000438, 0x1400ffe0 }, + { 0x0c000439, 0x1400ffe0 }, + { 0x0c00043a, 0x1400ffe0 }, + { 0x0c00043b, 0x1400ffe0 }, + { 0x0c00043c, 0x1400ffe0 }, + { 0x0c00043d, 0x1400ffe0 }, + { 0x0c00043e, 0x1400ffe0 }, + { 0x0c00043f, 0x1400ffe0 }, + { 0x0c000440, 0x1400ffe0 }, + { 0x0c000441, 0x1400ffe0 }, + { 0x0c000442, 0x1400ffe0 }, + { 0x0c000443, 0x1400ffe0 }, + { 0x0c000444, 0x1400ffe0 }, + { 0x0c000445, 0x1400ffe0 }, + { 0x0c000446, 0x1400ffe0 }, + { 0x0c000447, 0x1400ffe0 }, + { 0x0c000448, 0x1400ffe0 }, + { 0x0c000449, 0x1400ffe0 }, + { 0x0c00044a, 0x1400ffe0 }, + { 0x0c00044b, 0x1400ffe0 }, + { 0x0c00044c, 0x1400ffe0 }, + { 0x0c00044d, 0x1400ffe0 }, + { 0x0c00044e, 0x1400ffe0 }, + { 0x0c00044f, 0x1400ffe0 }, + { 0x0c000450, 0x1400ffb0 }, + { 0x0c000451, 0x1400ffb0 }, + { 0x0c000452, 0x1400ffb0 }, + { 0x0c000453, 0x1400ffb0 }, + { 0x0c000454, 0x1400ffb0 }, + { 0x0c000455, 0x1400ffb0 }, + { 0x0c000456, 0x1400ffb0 }, + { 0x0c000457, 0x1400ffb0 }, + { 0x0c000458, 0x1400ffb0 }, + { 0x0c000459, 0x1400ffb0 }, + { 0x0c00045a, 0x1400ffb0 }, + { 0x0c00045b, 0x1400ffb0 }, + { 0x0c00045c, 0x1400ffb0 }, + { 0x0c00045d, 0x1400ffb0 }, + { 0x0c00045e, 0x1400ffb0 }, + { 0x0c00045f, 0x1400ffb0 }, + { 0x0c000460, 0x24000001 }, + { 0x0c000461, 0x1400ffff }, + { 0x0c000462, 0x24000001 }, + { 0x0c000463, 0x1400ffff }, + { 0x0c000464, 0x24000001 }, + { 0x0c000465, 0x1400ffff }, + { 0x0c000466, 0x24000001 }, + { 0x0c000467, 0x1400ffff }, + { 0x0c000468, 0x24000001 }, + { 0x0c000469, 0x1400ffff }, + { 0x0c00046a, 0x24000001 }, + { 0x0c00046b, 0x1400ffff }, + { 0x0c00046c, 0x24000001 }, + { 0x0c00046d, 0x1400ffff }, + { 0x0c00046e, 0x24000001 }, + { 0x0c00046f, 0x1400ffff }, + { 0x0c000470, 0x24000001 }, + { 0x0c000471, 0x1400ffff }, + { 0x0c000472, 0x24000001 }, + { 0x0c000473, 0x1400ffff }, + { 0x0c000474, 0x24000001 }, + { 0x0c000475, 0x1400ffff }, + { 0x0c000476, 0x24000001 }, + { 0x0c000477, 0x1400ffff }, + { 0x0c000478, 0x24000001 }, + { 0x0c000479, 0x1400ffff }, + { 0x0c00047a, 0x24000001 }, + { 0x0c00047b, 0x1400ffff }, + { 0x0c00047c, 0x24000001 }, + { 0x0c00047d, 0x1400ffff }, + { 0x0c00047e, 0x24000001 }, + { 0x0c00047f, 0x1400ffff }, + { 0x0c000480, 0x24000001 }, + { 0x0c000481, 0x1400ffff }, + { 0x0c000482, 0x68000000 }, + { 0x0c800483, 0x30000003 }, + { 0x0c800488, 0x2c000001 }, + { 0x0c00048a, 0x24000001 }, + { 0x0c00048b, 0x1400ffff }, + { 0x0c00048c, 0x24000001 }, + { 0x0c00048d, 0x1400ffff }, + { 0x0c00048e, 0x24000001 }, + { 0x0c00048f, 0x1400ffff }, + { 0x0c000490, 0x24000001 }, + { 0x0c000491, 0x1400ffff }, + { 0x0c000492, 0x24000001 }, + { 0x0c000493, 0x1400ffff }, + { 0x0c000494, 0x24000001 }, + { 0x0c000495, 0x1400ffff }, + { 0x0c000496, 0x24000001 }, + { 0x0c000497, 0x1400ffff }, + { 0x0c000498, 0x24000001 }, + { 0x0c000499, 0x1400ffff }, + { 0x0c00049a, 0x24000001 }, + { 0x0c00049b, 0x1400ffff }, + { 0x0c00049c, 0x24000001 }, + { 0x0c00049d, 0x1400ffff }, + { 0x0c00049e, 0x24000001 }, + { 0x0c00049f, 0x1400ffff }, + { 0x0c0004a0, 0x24000001 }, + { 0x0c0004a1, 0x1400ffff }, + { 0x0c0004a2, 0x24000001 }, + { 0x0c0004a3, 0x1400ffff }, + { 0x0c0004a4, 0x24000001 }, + { 0x0c0004a5, 0x1400ffff }, + { 0x0c0004a6, 0x24000001 }, + { 0x0c0004a7, 0x1400ffff }, + { 0x0c0004a8, 0x24000001 }, + { 0x0c0004a9, 0x1400ffff }, + { 0x0c0004aa, 0x24000001 }, + { 0x0c0004ab, 0x1400ffff }, + { 0x0c0004ac, 0x24000001 }, + { 0x0c0004ad, 0x1400ffff }, + { 0x0c0004ae, 0x24000001 }, + { 0x0c0004af, 0x1400ffff }, + { 0x0c0004b0, 0x24000001 }, + { 0x0c0004b1, 0x1400ffff }, + { 0x0c0004b2, 0x24000001 }, + { 0x0c0004b3, 0x1400ffff }, + { 0x0c0004b4, 0x24000001 }, + { 0x0c0004b5, 0x1400ffff }, + { 0x0c0004b6, 0x24000001 }, + { 0x0c0004b7, 0x1400ffff }, + { 0x0c0004b8, 0x24000001 }, + { 0x0c0004b9, 0x1400ffff }, + { 0x0c0004ba, 0x24000001 }, + { 0x0c0004bb, 0x1400ffff }, + { 0x0c0004bc, 0x24000001 }, + { 0x0c0004bd, 0x1400ffff }, + { 0x0c0004be, 0x24000001 }, + { 0x0c0004bf, 0x1400ffff }, + { 0x0c0004c0, 0x2400000f }, + { 0x0c0004c1, 0x24000001 }, + { 0x0c0004c2, 0x1400ffff }, + { 0x0c0004c3, 0x24000001 }, + { 0x0c0004c4, 0x1400ffff }, + { 0x0c0004c5, 0x24000001 }, + { 0x0c0004c6, 0x1400ffff }, + { 0x0c0004c7, 0x24000001 }, + { 0x0c0004c8, 0x1400ffff }, + { 0x0c0004c9, 0x24000001 }, + { 0x0c0004ca, 0x1400ffff }, + { 0x0c0004cb, 0x24000001 }, + { 0x0c0004cc, 0x1400ffff }, + { 0x0c0004cd, 0x24000001 }, + { 0x0c0004ce, 0x1400ffff }, + { 0x0c0004cf, 0x1400fff1 }, + { 0x0c0004d0, 0x24000001 }, + { 0x0c0004d1, 0x1400ffff }, + { 0x0c0004d2, 0x24000001 }, + { 0x0c0004d3, 0x1400ffff }, + { 0x0c0004d4, 0x24000001 }, + { 0x0c0004d5, 0x1400ffff }, + { 0x0c0004d6, 0x24000001 }, + { 0x0c0004d7, 0x1400ffff }, + { 0x0c0004d8, 0x24000001 }, + { 0x0c0004d9, 0x1400ffff }, + { 0x0c0004da, 0x24000001 }, + { 0x0c0004db, 0x1400ffff }, + { 0x0c0004dc, 0x24000001 }, + { 0x0c0004dd, 0x1400ffff }, + { 0x0c0004de, 0x24000001 }, + { 0x0c0004df, 0x1400ffff }, + { 0x0c0004e0, 0x24000001 }, + { 0x0c0004e1, 0x1400ffff }, + { 0x0c0004e2, 0x24000001 }, + { 0x0c0004e3, 0x1400ffff }, + { 0x0c0004e4, 0x24000001 }, + { 0x0c0004e5, 0x1400ffff }, + { 0x0c0004e6, 0x24000001 }, + { 0x0c0004e7, 0x1400ffff }, + { 0x0c0004e8, 0x24000001 }, + { 0x0c0004e9, 0x1400ffff }, + { 0x0c0004ea, 0x24000001 }, + { 0x0c0004eb, 0x1400ffff }, + { 0x0c0004ec, 0x24000001 }, + { 0x0c0004ed, 0x1400ffff }, + { 0x0c0004ee, 0x24000001 }, + { 0x0c0004ef, 0x1400ffff }, + { 0x0c0004f0, 0x24000001 }, + { 0x0c0004f1, 0x1400ffff }, + { 0x0c0004f2, 0x24000001 }, + { 0x0c0004f3, 0x1400ffff }, + { 0x0c0004f4, 0x24000001 }, + { 0x0c0004f5, 0x1400ffff }, + { 0x0c0004f6, 0x24000001 }, + { 0x0c0004f7, 0x1400ffff }, + { 0x0c0004f8, 0x24000001 }, + { 0x0c0004f9, 0x1400ffff }, + { 0x0c0004fa, 0x24000001 }, + { 0x0c0004fb, 0x1400ffff }, + { 0x0c0004fc, 0x24000001 }, + { 0x0c0004fd, 0x1400ffff }, + { 0x0c0004fe, 0x24000001 }, + { 0x0c0004ff, 0x1400ffff }, + { 0x0c000500, 0x24000001 }, + { 0x0c000501, 0x1400ffff }, + { 0x0c000502, 0x24000001 }, + { 0x0c000503, 0x1400ffff }, + { 0x0c000504, 0x24000001 }, + { 0x0c000505, 0x1400ffff }, + { 0x0c000506, 0x24000001 }, + { 0x0c000507, 0x1400ffff }, + { 0x0c000508, 0x24000001 }, + { 0x0c000509, 0x1400ffff }, + { 0x0c00050a, 0x24000001 }, + { 0x0c00050b, 0x1400ffff }, + { 0x0c00050c, 0x24000001 }, + { 0x0c00050d, 0x1400ffff }, + { 0x0c00050e, 0x24000001 }, + { 0x0c00050f, 0x1400ffff }, + { 0x0c000510, 0x24000001 }, + { 0x0c000511, 0x1400ffff }, + { 0x0c000512, 0x24000001 }, + { 0x0c000513, 0x1400ffff }, + { 0x01000531, 0x24000030 }, + { 0x01000532, 0x24000030 }, + { 0x01000533, 0x24000030 }, + { 0x01000534, 0x24000030 }, + { 0x01000535, 0x24000030 }, + { 0x01000536, 0x24000030 }, + { 0x01000537, 0x24000030 }, + { 0x01000538, 0x24000030 }, + { 0x01000539, 0x24000030 }, + { 0x0100053a, 0x24000030 }, + { 0x0100053b, 0x24000030 }, + { 0x0100053c, 0x24000030 }, + { 0x0100053d, 0x24000030 }, + { 0x0100053e, 0x24000030 }, + { 0x0100053f, 0x24000030 }, + { 0x01000540, 0x24000030 }, + { 0x01000541, 0x24000030 }, + { 0x01000542, 0x24000030 }, + { 0x01000543, 0x24000030 }, + { 0x01000544, 0x24000030 }, + { 0x01000545, 0x24000030 }, + { 0x01000546, 0x24000030 }, + { 0x01000547, 0x24000030 }, + { 0x01000548, 0x24000030 }, + { 0x01000549, 0x24000030 }, + { 0x0100054a, 0x24000030 }, + { 0x0100054b, 0x24000030 }, + { 0x0100054c, 0x24000030 }, + { 0x0100054d, 0x24000030 }, + { 0x0100054e, 0x24000030 }, + { 0x0100054f, 0x24000030 }, + { 0x01000550, 0x24000030 }, + { 0x01000551, 0x24000030 }, + { 0x01000552, 0x24000030 }, + { 0x01000553, 0x24000030 }, + { 0x01000554, 0x24000030 }, + { 0x01000555, 0x24000030 }, + { 0x01000556, 0x24000030 }, + { 0x01000559, 0x18000000 }, + { 0x0180055a, 0x54000005 }, + { 0x01000561, 0x1400ffd0 }, + { 0x01000562, 0x1400ffd0 }, + { 0x01000563, 0x1400ffd0 }, + { 0x01000564, 0x1400ffd0 }, + { 0x01000565, 0x1400ffd0 }, + { 0x01000566, 0x1400ffd0 }, + { 0x01000567, 0x1400ffd0 }, + { 0x01000568, 0x1400ffd0 }, + { 0x01000569, 0x1400ffd0 }, + { 0x0100056a, 0x1400ffd0 }, + { 0x0100056b, 0x1400ffd0 }, + { 0x0100056c, 0x1400ffd0 }, + { 0x0100056d, 0x1400ffd0 }, + { 0x0100056e, 0x1400ffd0 }, + { 0x0100056f, 0x1400ffd0 }, + { 0x01000570, 0x1400ffd0 }, + { 0x01000571, 0x1400ffd0 }, + { 0x01000572, 0x1400ffd0 }, + { 0x01000573, 0x1400ffd0 }, + { 0x01000574, 0x1400ffd0 }, + { 0x01000575, 0x1400ffd0 }, + { 0x01000576, 0x1400ffd0 }, + { 0x01000577, 0x1400ffd0 }, + { 0x01000578, 0x1400ffd0 }, + { 0x01000579, 0x1400ffd0 }, + { 0x0100057a, 0x1400ffd0 }, + { 0x0100057b, 0x1400ffd0 }, + { 0x0100057c, 0x1400ffd0 }, + { 0x0100057d, 0x1400ffd0 }, + { 0x0100057e, 0x1400ffd0 }, + { 0x0100057f, 0x1400ffd0 }, + { 0x01000580, 0x1400ffd0 }, + { 0x01000581, 0x1400ffd0 }, + { 0x01000582, 0x1400ffd0 }, + { 0x01000583, 0x1400ffd0 }, + { 0x01000584, 0x1400ffd0 }, + { 0x01000585, 0x1400ffd0 }, + { 0x01000586, 0x1400ffd0 }, + { 0x01000587, 0x14000000 }, + { 0x09000589, 0x54000000 }, + { 0x0100058a, 0x44000000 }, + { 0x19800591, 0x3000002c }, + { 0x190005be, 0x54000000 }, + { 0x190005bf, 0x30000000 }, + { 0x190005c0, 0x54000000 }, + { 0x198005c1, 0x30000001 }, + { 0x190005c3, 0x54000000 }, + { 0x198005c4, 0x30000001 }, + { 0x190005c6, 0x54000000 }, + { 0x190005c7, 0x30000000 }, + { 0x198005d0, 0x1c00001a }, + { 0x198005f0, 0x1c000002 }, + { 0x198005f3, 0x54000001 }, + { 0x09800600, 0x04000003 }, + { 0x0000060b, 0x5c000000 }, + { 0x0900060c, 0x54000000 }, + { 0x0000060d, 0x54000000 }, + { 0x0080060e, 0x68000001 }, + { 0x00800610, 0x30000005 }, + { 0x0900061b, 0x54000000 }, + { 0x0000061e, 0x54000000 }, + { 0x0900061f, 0x54000000 }, + { 0x00800621, 0x1c000019 }, + { 0x09000640, 0x18000000 }, + { 0x00800641, 0x1c000009 }, + { 0x1b80064b, 0x3000000a }, + { 0x00800656, 0x30000008 }, + { 0x09800660, 0x34000009 }, + { 0x0080066a, 0x54000003 }, + { 0x0080066e, 0x1c000001 }, + { 0x1b000670, 0x30000000 }, + { 0x00800671, 0x1c000062 }, + { 0x000006d4, 0x54000000 }, + { 0x000006d5, 0x1c000000 }, + { 0x008006d6, 0x30000006 }, + { 0x090006dd, 0x04000000 }, + { 0x000006de, 0x2c000000 }, + { 0x008006df, 0x30000005 }, + { 0x008006e5, 0x18000001 }, + { 0x008006e7, 0x30000001 }, + { 0x000006e9, 0x68000000 }, + { 0x008006ea, 0x30000003 }, + { 0x008006ee, 0x1c000001 }, + { 0x008006f0, 0x34000009 }, + { 0x008006fa, 0x1c000002 }, + { 0x008006fd, 0x68000001 }, + { 0x000006ff, 0x1c000000 }, + { 0x31800700, 0x5400000d }, + { 0x3100070f, 0x04000000 }, + { 0x31000710, 0x1c000000 }, + { 0x31000711, 0x30000000 }, + { 0x31800712, 0x1c00001d }, + { 0x31800730, 0x3000001a }, + { 0x3180074d, 0x1c000002 }, + { 0x00800750, 0x1c00001d }, + { 0x37800780, 0x1c000025 }, + { 0x378007a6, 0x3000000a }, + { 0x370007b1, 0x1c000000 }, + { 0x3f8007c0, 0x34000009 }, + { 0x3f8007ca, 0x1c000020 }, + { 0x3f8007eb, 0x30000008 }, + { 0x3f8007f4, 0x18000001 }, + { 0x3f0007f6, 0x68000000 }, + { 0x3f8007f7, 0x54000002 }, + { 0x3f0007fa, 0x18000000 }, + { 0x0e800901, 0x30000001 }, + { 0x0e000903, 0x28000000 }, + { 0x0e800904, 0x1c000035 }, + { 0x0e00093c, 0x30000000 }, + { 0x0e00093d, 0x1c000000 }, + { 0x0e80093e, 0x28000002 }, + { 0x0e800941, 0x30000007 }, + { 0x0e800949, 0x28000003 }, + { 0x0e00094d, 0x30000000 }, + { 0x0e000950, 0x1c000000 }, + { 0x0e800951, 0x30000003 }, + { 0x0e800958, 0x1c000009 }, + { 0x0e800962, 0x30000001 }, + { 0x09800964, 0x54000001 }, + { 0x0e800966, 0x34000009 }, + { 0x09000970, 0x54000000 }, + { 0x0e80097b, 0x1c000004 }, + { 0x02000981, 0x30000000 }, + { 0x02800982, 0x28000001 }, + { 0x02800985, 0x1c000007 }, + { 0x0280098f, 0x1c000001 }, + { 0x02800993, 0x1c000015 }, + { 0x028009aa, 0x1c000006 }, + { 0x020009b2, 0x1c000000 }, + { 0x028009b6, 0x1c000003 }, + { 0x020009bc, 0x30000000 }, + { 0x020009bd, 0x1c000000 }, + { 0x028009be, 0x28000002 }, + { 0x028009c1, 0x30000003 }, + { 0x028009c7, 0x28000001 }, + { 0x028009cb, 0x28000001 }, + { 0x020009cd, 0x30000000 }, + { 0x020009ce, 0x1c000000 }, + { 0x020009d7, 0x28000000 }, + { 0x028009dc, 0x1c000001 }, + { 0x028009df, 0x1c000002 }, + { 0x028009e2, 0x30000001 }, + { 0x028009e6, 0x34000009 }, + { 0x028009f0, 0x1c000001 }, + { 0x028009f2, 0x5c000001 }, + { 0x028009f4, 0x3c000005 }, + { 0x020009fa, 0x68000000 }, + { 0x15800a01, 0x30000001 }, + { 0x15000a03, 0x28000000 }, + { 0x15800a05, 0x1c000005 }, + { 0x15800a0f, 0x1c000001 }, + { 0x15800a13, 0x1c000015 }, + { 0x15800a2a, 0x1c000006 }, + { 0x15800a32, 0x1c000001 }, + { 0x15800a35, 0x1c000001 }, + { 0x15800a38, 0x1c000001 }, + { 0x15000a3c, 0x30000000 }, + { 0x15800a3e, 0x28000002 }, + { 0x15800a41, 0x30000001 }, + { 0x15800a47, 0x30000001 }, + { 0x15800a4b, 0x30000002 }, + { 0x15800a59, 0x1c000003 }, + { 0x15000a5e, 0x1c000000 }, + { 0x15800a66, 0x34000009 }, + { 0x15800a70, 0x30000001 }, + { 0x15800a72, 0x1c000002 }, + { 0x14800a81, 0x30000001 }, + { 0x14000a83, 0x28000000 }, + { 0x14800a85, 0x1c000008 }, + { 0x14800a8f, 0x1c000002 }, + { 0x14800a93, 0x1c000015 }, + { 0x14800aaa, 0x1c000006 }, + { 0x14800ab2, 0x1c000001 }, + { 0x14800ab5, 0x1c000004 }, + { 0x14000abc, 0x30000000 }, + { 0x14000abd, 0x1c000000 }, + { 0x14800abe, 0x28000002 }, + { 0x14800ac1, 0x30000004 }, + { 0x14800ac7, 0x30000001 }, + { 0x14000ac9, 0x28000000 }, + { 0x14800acb, 0x28000001 }, + { 0x14000acd, 0x30000000 }, + { 0x14000ad0, 0x1c000000 }, + { 0x14800ae0, 0x1c000001 }, + { 0x14800ae2, 0x30000001 }, + { 0x14800ae6, 0x34000009 }, + { 0x14000af1, 0x5c000000 }, + { 0x2b000b01, 0x30000000 }, + { 0x2b800b02, 0x28000001 }, + { 0x2b800b05, 0x1c000007 }, + { 0x2b800b0f, 0x1c000001 }, + { 0x2b800b13, 0x1c000015 }, + { 0x2b800b2a, 0x1c000006 }, + { 0x2b800b32, 0x1c000001 }, + { 0x2b800b35, 0x1c000004 }, + { 0x2b000b3c, 0x30000000 }, + { 0x2b000b3d, 0x1c000000 }, + { 0x2b000b3e, 0x28000000 }, + { 0x2b000b3f, 0x30000000 }, + { 0x2b000b40, 0x28000000 }, + { 0x2b800b41, 0x30000002 }, + { 0x2b800b47, 0x28000001 }, + { 0x2b800b4b, 0x28000001 }, + { 0x2b000b4d, 0x30000000 }, + { 0x2b000b56, 0x30000000 }, + { 0x2b000b57, 0x28000000 }, + { 0x2b800b5c, 0x1c000001 }, + { 0x2b800b5f, 0x1c000002 }, + { 0x2b800b66, 0x34000009 }, + { 0x2b000b70, 0x68000000 }, + { 0x2b000b71, 0x1c000000 }, + { 0x35000b82, 0x30000000 }, + { 0x35000b83, 0x1c000000 }, + { 0x35800b85, 0x1c000005 }, + { 0x35800b8e, 0x1c000002 }, + { 0x35800b92, 0x1c000003 }, + { 0x35800b99, 0x1c000001 }, + { 0x35000b9c, 0x1c000000 }, + { 0x35800b9e, 0x1c000001 }, + { 0x35800ba3, 0x1c000001 }, + { 0x35800ba8, 0x1c000002 }, + { 0x35800bae, 0x1c00000b }, + { 0x35800bbe, 0x28000001 }, + { 0x35000bc0, 0x30000000 }, + { 0x35800bc1, 0x28000001 }, + { 0x35800bc6, 0x28000002 }, + { 0x35800bca, 0x28000002 }, + { 0x35000bcd, 0x30000000 }, + { 0x35000bd7, 0x28000000 }, + { 0x35800be6, 0x34000009 }, + { 0x35800bf0, 0x3c000002 }, + { 0x35800bf3, 0x68000005 }, + { 0x35000bf9, 0x5c000000 }, + { 0x35000bfa, 0x68000000 }, + { 0x36800c01, 0x28000002 }, + { 0x36800c05, 0x1c000007 }, + { 0x36800c0e, 0x1c000002 }, + { 0x36800c12, 0x1c000016 }, + { 0x36800c2a, 0x1c000009 }, + { 0x36800c35, 0x1c000004 }, + { 0x36800c3e, 0x30000002 }, + { 0x36800c41, 0x28000003 }, + { 0x36800c46, 0x30000002 }, + { 0x36800c4a, 0x30000003 }, + { 0x36800c55, 0x30000001 }, + { 0x36800c60, 0x1c000001 }, + { 0x36800c66, 0x34000009 }, + { 0x1c800c82, 0x28000001 }, + { 0x1c800c85, 0x1c000007 }, + { 0x1c800c8e, 0x1c000002 }, + { 0x1c800c92, 0x1c000016 }, + { 0x1c800caa, 0x1c000009 }, + { 0x1c800cb5, 0x1c000004 }, + { 0x1c000cbc, 0x30000000 }, + { 0x1c000cbd, 0x1c000000 }, + { 0x1c000cbe, 0x28000000 }, + { 0x1c000cbf, 0x30000000 }, + { 0x1c800cc0, 0x28000004 }, + { 0x1c000cc6, 0x30000000 }, + { 0x1c800cc7, 0x28000001 }, + { 0x1c800cca, 0x28000001 }, + { 0x1c800ccc, 0x30000001 }, + { 0x1c800cd5, 0x28000001 }, + { 0x1c000cde, 0x1c000000 }, + { 0x1c800ce0, 0x1c000001 }, + { 0x1c800ce2, 0x30000001 }, + { 0x1c800ce6, 0x34000009 }, + { 0x1c800cf1, 0x68000001 }, + { 0x24800d02, 0x28000001 }, + { 0x24800d05, 0x1c000007 }, + { 0x24800d0e, 0x1c000002 }, + { 0x24800d12, 0x1c000016 }, + { 0x24800d2a, 0x1c00000f }, + { 0x24800d3e, 0x28000002 }, + { 0x24800d41, 0x30000002 }, + { 0x24800d46, 0x28000002 }, + { 0x24800d4a, 0x28000002 }, + { 0x24000d4d, 0x30000000 }, + { 0x24000d57, 0x28000000 }, + { 0x24800d60, 0x1c000001 }, + { 0x24800d66, 0x34000009 }, + { 0x2f800d82, 0x28000001 }, + { 0x2f800d85, 0x1c000011 }, + { 0x2f800d9a, 0x1c000017 }, + { 0x2f800db3, 0x1c000008 }, + { 0x2f000dbd, 0x1c000000 }, + { 0x2f800dc0, 0x1c000006 }, + { 0x2f000dca, 0x30000000 }, + { 0x2f800dcf, 0x28000002 }, + { 0x2f800dd2, 0x30000002 }, + { 0x2f000dd6, 0x30000000 }, + { 0x2f800dd8, 0x28000007 }, + { 0x2f800df2, 0x28000001 }, + { 0x2f000df4, 0x54000000 }, + { 0x38800e01, 0x1c00002f }, + { 0x38000e31, 0x30000000 }, + { 0x38800e32, 0x1c000001 }, + { 0x38800e34, 0x30000006 }, + { 0x09000e3f, 0x5c000000 }, + { 0x38800e40, 0x1c000005 }, + { 0x38000e46, 0x18000000 }, + { 0x38800e47, 0x30000007 }, + { 0x38000e4f, 0x54000000 }, + { 0x38800e50, 0x34000009 }, + { 0x38800e5a, 0x54000001 }, + { 0x20800e81, 0x1c000001 }, + { 0x20000e84, 0x1c000000 }, + { 0x20800e87, 0x1c000001 }, + { 0x20000e8a, 0x1c000000 }, + { 0x20000e8d, 0x1c000000 }, + { 0x20800e94, 0x1c000003 }, + { 0x20800e99, 0x1c000006 }, + { 0x20800ea1, 0x1c000002 }, + { 0x20000ea5, 0x1c000000 }, + { 0x20000ea7, 0x1c000000 }, + { 0x20800eaa, 0x1c000001 }, + { 0x20800ead, 0x1c000003 }, + { 0x20000eb1, 0x30000000 }, + { 0x20800eb2, 0x1c000001 }, + { 0x20800eb4, 0x30000005 }, + { 0x20800ebb, 0x30000001 }, + { 0x20000ebd, 0x1c000000 }, + { 0x20800ec0, 0x1c000004 }, + { 0x20000ec6, 0x18000000 }, + { 0x20800ec8, 0x30000005 }, + { 0x20800ed0, 0x34000009 }, + { 0x20800edc, 0x1c000001 }, + { 0x39000f00, 0x1c000000 }, + { 0x39800f01, 0x68000002 }, + { 0x39800f04, 0x5400000e }, + { 0x39800f13, 0x68000004 }, + { 0x39800f18, 0x30000001 }, + { 0x39800f1a, 0x68000005 }, + { 0x39800f20, 0x34000009 }, + { 0x39800f2a, 0x3c000009 }, + { 0x39000f34, 0x68000000 }, + { 0x39000f35, 0x30000000 }, + { 0x39000f36, 0x68000000 }, + { 0x39000f37, 0x30000000 }, + { 0x39000f38, 0x68000000 }, + { 0x39000f39, 0x30000000 }, + { 0x39000f3a, 0x58000000 }, + { 0x39000f3b, 0x48000000 }, + { 0x39000f3c, 0x58000000 }, + { 0x39000f3d, 0x48000000 }, + { 0x39800f3e, 0x28000001 }, + { 0x39800f40, 0x1c000007 }, + { 0x39800f49, 0x1c000021 }, + { 0x39800f71, 0x3000000d }, + { 0x39000f7f, 0x28000000 }, + { 0x39800f80, 0x30000004 }, + { 0x39000f85, 0x54000000 }, + { 0x39800f86, 0x30000001 }, + { 0x39800f88, 0x1c000003 }, + { 0x39800f90, 0x30000007 }, + { 0x39800f99, 0x30000023 }, + { 0x39800fbe, 0x68000007 }, + { 0x39000fc6, 0x30000000 }, + { 0x39800fc7, 0x68000005 }, + { 0x39000fcf, 0x68000000 }, + { 0x39800fd0, 0x54000001 }, + { 0x26801000, 0x1c000021 }, + { 0x26801023, 0x1c000004 }, + { 0x26801029, 0x1c000001 }, + { 0x2600102c, 0x28000000 }, + { 0x2680102d, 0x30000003 }, + { 0x26001031, 0x28000000 }, + { 0x26001032, 0x30000000 }, + { 0x26801036, 0x30000001 }, + { 0x26001038, 0x28000000 }, + { 0x26001039, 0x30000000 }, + { 0x26801040, 0x34000009 }, + { 0x2680104a, 0x54000005 }, + { 0x26801050, 0x1c000005 }, + { 0x26801056, 0x28000001 }, + { 0x26801058, 0x30000001 }, + { 0x100010a0, 0x24001c60 }, + { 0x100010a1, 0x24001c60 }, + { 0x100010a2, 0x24001c60 }, + { 0x100010a3, 0x24001c60 }, + { 0x100010a4, 0x24001c60 }, + { 0x100010a5, 0x24001c60 }, + { 0x100010a6, 0x24001c60 }, + { 0x100010a7, 0x24001c60 }, + { 0x100010a8, 0x24001c60 }, + { 0x100010a9, 0x24001c60 }, + { 0x100010aa, 0x24001c60 }, + { 0x100010ab, 0x24001c60 }, + { 0x100010ac, 0x24001c60 }, + { 0x100010ad, 0x24001c60 }, + { 0x100010ae, 0x24001c60 }, + { 0x100010af, 0x24001c60 }, + { 0x100010b0, 0x24001c60 }, + { 0x100010b1, 0x24001c60 }, + { 0x100010b2, 0x24001c60 }, + { 0x100010b3, 0x24001c60 }, + { 0x100010b4, 0x24001c60 }, + { 0x100010b5, 0x24001c60 }, + { 0x100010b6, 0x24001c60 }, + { 0x100010b7, 0x24001c60 }, + { 0x100010b8, 0x24001c60 }, + { 0x100010b9, 0x24001c60 }, + { 0x100010ba, 0x24001c60 }, + { 0x100010bb, 0x24001c60 }, + { 0x100010bc, 0x24001c60 }, + { 0x100010bd, 0x24001c60 }, + { 0x100010be, 0x24001c60 }, + { 0x100010bf, 0x24001c60 }, + { 0x100010c0, 0x24001c60 }, + { 0x100010c1, 0x24001c60 }, + { 0x100010c2, 0x24001c60 }, + { 0x100010c3, 0x24001c60 }, + { 0x100010c4, 0x24001c60 }, + { 0x100010c5, 0x24001c60 }, + { 0x108010d0, 0x1c00002a }, + { 0x090010fb, 0x54000000 }, + { 0x100010fc, 0x18000000 }, + { 0x17801100, 0x1c000059 }, + { 0x1780115f, 0x1c000043 }, + { 0x178011a8, 0x1c000051 }, + { 0x0f801200, 0x1c000048 }, + { 0x0f80124a, 0x1c000003 }, + { 0x0f801250, 0x1c000006 }, + { 0x0f001258, 0x1c000000 }, + { 0x0f80125a, 0x1c000003 }, + { 0x0f801260, 0x1c000028 }, + { 0x0f80128a, 0x1c000003 }, + { 0x0f801290, 0x1c000020 }, + { 0x0f8012b2, 0x1c000003 }, + { 0x0f8012b8, 0x1c000006 }, + { 0x0f0012c0, 0x1c000000 }, + { 0x0f8012c2, 0x1c000003 }, + { 0x0f8012c8, 0x1c00000e }, + { 0x0f8012d8, 0x1c000038 }, + { 0x0f801312, 0x1c000003 }, + { 0x0f801318, 0x1c000042 }, + { 0x0f00135f, 0x30000000 }, + { 0x0f001360, 0x68000000 }, + { 0x0f801361, 0x54000007 }, + { 0x0f801369, 0x3c000013 }, + { 0x0f801380, 0x1c00000f }, + { 0x0f801390, 0x68000009 }, + { 0x088013a0, 0x1c000054 }, + { 0x07801401, 0x1c00026b }, + { 0x0780166d, 0x54000001 }, + { 0x0780166f, 0x1c000007 }, + { 0x28001680, 0x74000000 }, + { 0x28801681, 0x1c000019 }, + { 0x2800169b, 0x58000000 }, + { 0x2800169c, 0x48000000 }, + { 0x2d8016a0, 0x1c00004a }, + { 0x098016eb, 0x54000002 }, + { 0x2d8016ee, 0x38000002 }, + { 0x32801700, 0x1c00000c }, + { 0x3280170e, 0x1c000003 }, + { 0x32801712, 0x30000002 }, + { 0x18801720, 0x1c000011 }, + { 0x18801732, 0x30000002 }, + { 0x09801735, 0x54000001 }, + { 0x06801740, 0x1c000011 }, + { 0x06801752, 0x30000001 }, + { 0x33801760, 0x1c00000c }, + { 0x3380176e, 0x1c000002 }, + { 0x33801772, 0x30000001 }, + { 0x1f801780, 0x1c000033 }, + { 0x1f8017b4, 0x04000001 }, + { 0x1f0017b6, 0x28000000 }, + { 0x1f8017b7, 0x30000006 }, + { 0x1f8017be, 0x28000007 }, + { 0x1f0017c6, 0x30000000 }, + { 0x1f8017c7, 0x28000001 }, + { 0x1f8017c9, 0x3000000a }, + { 0x1f8017d4, 0x54000002 }, + { 0x1f0017d7, 0x18000000 }, + { 0x1f8017d8, 0x54000002 }, + { 0x1f0017db, 0x5c000000 }, + { 0x1f0017dc, 0x1c000000 }, + { 0x1f0017dd, 0x30000000 }, + { 0x1f8017e0, 0x34000009 }, + { 0x1f8017f0, 0x3c000009 }, + { 0x25801800, 0x54000001 }, + { 0x09801802, 0x54000001 }, + { 0x25001804, 0x54000000 }, + { 0x09001805, 0x54000000 }, + { 0x25001806, 0x44000000 }, + { 0x25801807, 0x54000003 }, + { 0x2580180b, 0x30000002 }, + { 0x2500180e, 0x74000000 }, + { 0x25801810, 0x34000009 }, + { 0x25801820, 0x1c000022 }, + { 0x25001843, 0x18000000 }, + { 0x25801844, 0x1c000033 }, + { 0x25801880, 0x1c000028 }, + { 0x250018a9, 0x30000000 }, + { 0x22801900, 0x1c00001c }, + { 0x22801920, 0x30000002 }, + { 0x22801923, 0x28000003 }, + { 0x22801927, 0x30000001 }, + { 0x22801929, 0x28000002 }, + { 0x22801930, 0x28000001 }, + { 0x22001932, 0x30000000 }, + { 0x22801933, 0x28000005 }, + { 0x22801939, 0x30000002 }, + { 0x22001940, 0x68000000 }, + { 0x22801944, 0x54000001 }, + { 0x22801946, 0x34000009 }, + { 0x34801950, 0x1c00001d }, + { 0x34801970, 0x1c000004 }, + { 0x27801980, 0x1c000029 }, + { 0x278019b0, 0x28000010 }, + { 0x278019c1, 0x1c000006 }, + { 0x278019c8, 0x28000001 }, + { 0x278019d0, 0x34000009 }, + { 0x278019de, 0x54000001 }, + { 0x1f8019e0, 0x6800001f }, + { 0x05801a00, 0x1c000016 }, + { 0x05801a17, 0x30000001 }, + { 0x05801a19, 0x28000002 }, + { 0x05801a1e, 0x54000001 }, + { 0x3d801b00, 0x30000003 }, + { 0x3d001b04, 0x28000000 }, + { 0x3d801b05, 0x1c00002e }, + { 0x3d001b34, 0x30000000 }, + { 0x3d001b35, 0x28000000 }, + { 0x3d801b36, 0x30000004 }, + { 0x3d001b3b, 0x28000000 }, + { 0x3d001b3c, 0x30000000 }, + { 0x3d801b3d, 0x28000004 }, + { 0x3d001b42, 0x30000000 }, + { 0x3d801b43, 0x28000001 }, + { 0x3d801b45, 0x1c000006 }, + { 0x3d801b50, 0x34000009 }, + { 0x3d801b5a, 0x54000006 }, + { 0x3d801b61, 0x68000009 }, + { 0x3d801b6b, 0x30000008 }, + { 0x3d801b74, 0x68000008 }, + { 0x21801d00, 0x14000025 }, + { 0x13801d26, 0x14000004 }, + { 0x0c001d2b, 0x14000000 }, + { 0x21801d2c, 0x18000030 }, + { 0x13801d5d, 0x18000004 }, + { 0x21801d62, 0x14000003 }, + { 0x13801d66, 0x14000004 }, + { 0x21801d6b, 0x1400000c }, + { 0x0c001d78, 0x18000000 }, + { 0x21801d79, 0x14000003 }, + { 0x21001d7d, 0x14000ee6 }, + { 0x21801d7e, 0x1400001c }, + { 0x21801d9b, 0x18000023 }, + { 0x13001dbf, 0x18000000 }, + { 0x1b801dc0, 0x3000000a }, + { 0x1b801dfe, 0x30000001 }, + { 0x21001e00, 0x24000001 }, + { 0x21001e01, 0x1400ffff }, + { 0x21001e02, 0x24000001 }, + { 0x21001e03, 0x1400ffff }, + { 0x21001e04, 0x24000001 }, + { 0x21001e05, 0x1400ffff }, + { 0x21001e06, 0x24000001 }, + { 0x21001e07, 0x1400ffff }, + { 0x21001e08, 0x24000001 }, + { 0x21001e09, 0x1400ffff }, + { 0x21001e0a, 0x24000001 }, + { 0x21001e0b, 0x1400ffff }, + { 0x21001e0c, 0x24000001 }, + { 0x21001e0d, 0x1400ffff }, + { 0x21001e0e, 0x24000001 }, + { 0x21001e0f, 0x1400ffff }, + { 0x21001e10, 0x24000001 }, + { 0x21001e11, 0x1400ffff }, + { 0x21001e12, 0x24000001 }, + { 0x21001e13, 0x1400ffff }, + { 0x21001e14, 0x24000001 }, + { 0x21001e15, 0x1400ffff }, + { 0x21001e16, 0x24000001 }, + { 0x21001e17, 0x1400ffff }, + { 0x21001e18, 0x24000001 }, + { 0x21001e19, 0x1400ffff }, + { 0x21001e1a, 0x24000001 }, + { 0x21001e1b, 0x1400ffff }, + { 0x21001e1c, 0x24000001 }, + { 0x21001e1d, 0x1400ffff }, + { 0x21001e1e, 0x24000001 }, + { 0x21001e1f, 0x1400ffff }, + { 0x21001e20, 0x24000001 }, + { 0x21001e21, 0x1400ffff }, + { 0x21001e22, 0x24000001 }, + { 0x21001e23, 0x1400ffff }, + { 0x21001e24, 0x24000001 }, + { 0x21001e25, 0x1400ffff }, + { 0x21001e26, 0x24000001 }, + { 0x21001e27, 0x1400ffff }, + { 0x21001e28, 0x24000001 }, + { 0x21001e29, 0x1400ffff }, + { 0x21001e2a, 0x24000001 }, + { 0x21001e2b, 0x1400ffff }, + { 0x21001e2c, 0x24000001 }, + { 0x21001e2d, 0x1400ffff }, + { 0x21001e2e, 0x24000001 }, + { 0x21001e2f, 0x1400ffff }, + { 0x21001e30, 0x24000001 }, + { 0x21001e31, 0x1400ffff }, + { 0x21001e32, 0x24000001 }, + { 0x21001e33, 0x1400ffff }, + { 0x21001e34, 0x24000001 }, + { 0x21001e35, 0x1400ffff }, + { 0x21001e36, 0x24000001 }, + { 0x21001e37, 0x1400ffff }, + { 0x21001e38, 0x24000001 }, + { 0x21001e39, 0x1400ffff }, + { 0x21001e3a, 0x24000001 }, + { 0x21001e3b, 0x1400ffff }, + { 0x21001e3c, 0x24000001 }, + { 0x21001e3d, 0x1400ffff }, + { 0x21001e3e, 0x24000001 }, + { 0x21001e3f, 0x1400ffff }, + { 0x21001e40, 0x24000001 }, + { 0x21001e41, 0x1400ffff }, + { 0x21001e42, 0x24000001 }, + { 0x21001e43, 0x1400ffff }, + { 0x21001e44, 0x24000001 }, + { 0x21001e45, 0x1400ffff }, + { 0x21001e46, 0x24000001 }, + { 0x21001e47, 0x1400ffff }, + { 0x21001e48, 0x24000001 }, + { 0x21001e49, 0x1400ffff }, + { 0x21001e4a, 0x24000001 }, + { 0x21001e4b, 0x1400ffff }, + { 0x21001e4c, 0x24000001 }, + { 0x21001e4d, 0x1400ffff }, + { 0x21001e4e, 0x24000001 }, + { 0x21001e4f, 0x1400ffff }, + { 0x21001e50, 0x24000001 }, + { 0x21001e51, 0x1400ffff }, + { 0x21001e52, 0x24000001 }, + { 0x21001e53, 0x1400ffff }, + { 0x21001e54, 0x24000001 }, + { 0x21001e55, 0x1400ffff }, + { 0x21001e56, 0x24000001 }, + { 0x21001e57, 0x1400ffff }, + { 0x21001e58, 0x24000001 }, + { 0x21001e59, 0x1400ffff }, + { 0x21001e5a, 0x24000001 }, + { 0x21001e5b, 0x1400ffff }, + { 0x21001e5c, 0x24000001 }, + { 0x21001e5d, 0x1400ffff }, + { 0x21001e5e, 0x24000001 }, + { 0x21001e5f, 0x1400ffff }, + { 0x21001e60, 0x24000001 }, + { 0x21001e61, 0x1400ffff }, + { 0x21001e62, 0x24000001 }, + { 0x21001e63, 0x1400ffff }, + { 0x21001e64, 0x24000001 }, + { 0x21001e65, 0x1400ffff }, + { 0x21001e66, 0x24000001 }, + { 0x21001e67, 0x1400ffff }, + { 0x21001e68, 0x24000001 }, + { 0x21001e69, 0x1400ffff }, + { 0x21001e6a, 0x24000001 }, + { 0x21001e6b, 0x1400ffff }, + { 0x21001e6c, 0x24000001 }, + { 0x21001e6d, 0x1400ffff }, + { 0x21001e6e, 0x24000001 }, + { 0x21001e6f, 0x1400ffff }, + { 0x21001e70, 0x24000001 }, + { 0x21001e71, 0x1400ffff }, + { 0x21001e72, 0x24000001 }, + { 0x21001e73, 0x1400ffff }, + { 0x21001e74, 0x24000001 }, + { 0x21001e75, 0x1400ffff }, + { 0x21001e76, 0x24000001 }, + { 0x21001e77, 0x1400ffff }, + { 0x21001e78, 0x24000001 }, + { 0x21001e79, 0x1400ffff }, + { 0x21001e7a, 0x24000001 }, + { 0x21001e7b, 0x1400ffff }, + { 0x21001e7c, 0x24000001 }, + { 0x21001e7d, 0x1400ffff }, + { 0x21001e7e, 0x24000001 }, + { 0x21001e7f, 0x1400ffff }, + { 0x21001e80, 0x24000001 }, + { 0x21001e81, 0x1400ffff }, + { 0x21001e82, 0x24000001 }, + { 0x21001e83, 0x1400ffff }, + { 0x21001e84, 0x24000001 }, + { 0x21001e85, 0x1400ffff }, + { 0x21001e86, 0x24000001 }, + { 0x21001e87, 0x1400ffff }, + { 0x21001e88, 0x24000001 }, + { 0x21001e89, 0x1400ffff }, + { 0x21001e8a, 0x24000001 }, + { 0x21001e8b, 0x1400ffff }, + { 0x21001e8c, 0x24000001 }, + { 0x21001e8d, 0x1400ffff }, + { 0x21001e8e, 0x24000001 }, + { 0x21001e8f, 0x1400ffff }, + { 0x21001e90, 0x24000001 }, + { 0x21001e91, 0x1400ffff }, + { 0x21001e92, 0x24000001 }, + { 0x21001e93, 0x1400ffff }, + { 0x21001e94, 0x24000001 }, + { 0x21001e95, 0x1400ffff }, + { 0x21801e96, 0x14000004 }, + { 0x21001e9b, 0x1400ffc5 }, + { 0x21001ea0, 0x24000001 }, + { 0x21001ea1, 0x1400ffff }, + { 0x21001ea2, 0x24000001 }, + { 0x21001ea3, 0x1400ffff }, + { 0x21001ea4, 0x24000001 }, + { 0x21001ea5, 0x1400ffff }, + { 0x21001ea6, 0x24000001 }, + { 0x21001ea7, 0x1400ffff }, + { 0x21001ea8, 0x24000001 }, + { 0x21001ea9, 0x1400ffff }, + { 0x21001eaa, 0x24000001 }, + { 0x21001eab, 0x1400ffff }, + { 0x21001eac, 0x24000001 }, + { 0x21001ead, 0x1400ffff }, + { 0x21001eae, 0x24000001 }, + { 0x21001eaf, 0x1400ffff }, + { 0x21001eb0, 0x24000001 }, + { 0x21001eb1, 0x1400ffff }, + { 0x21001eb2, 0x24000001 }, + { 0x21001eb3, 0x1400ffff }, + { 0x21001eb4, 0x24000001 }, + { 0x21001eb5, 0x1400ffff }, + { 0x21001eb6, 0x24000001 }, + { 0x21001eb7, 0x1400ffff }, + { 0x21001eb8, 0x24000001 }, + { 0x21001eb9, 0x1400ffff }, + { 0x21001eba, 0x24000001 }, + { 0x21001ebb, 0x1400ffff }, + { 0x21001ebc, 0x24000001 }, + { 0x21001ebd, 0x1400ffff }, + { 0x21001ebe, 0x24000001 }, + { 0x21001ebf, 0x1400ffff }, + { 0x21001ec0, 0x24000001 }, + { 0x21001ec1, 0x1400ffff }, + { 0x21001ec2, 0x24000001 }, + { 0x21001ec3, 0x1400ffff }, + { 0x21001ec4, 0x24000001 }, + { 0x21001ec5, 0x1400ffff }, + { 0x21001ec6, 0x24000001 }, + { 0x21001ec7, 0x1400ffff }, + { 0x21001ec8, 0x24000001 }, + { 0x21001ec9, 0x1400ffff }, + { 0x21001eca, 0x24000001 }, + { 0x21001ecb, 0x1400ffff }, + { 0x21001ecc, 0x24000001 }, + { 0x21001ecd, 0x1400ffff }, + { 0x21001ece, 0x24000001 }, + { 0x21001ecf, 0x1400ffff }, + { 0x21001ed0, 0x24000001 }, + { 0x21001ed1, 0x1400ffff }, + { 0x21001ed2, 0x24000001 }, + { 0x21001ed3, 0x1400ffff }, + { 0x21001ed4, 0x24000001 }, + { 0x21001ed5, 0x1400ffff }, + { 0x21001ed6, 0x24000001 }, + { 0x21001ed7, 0x1400ffff }, + { 0x21001ed8, 0x24000001 }, + { 0x21001ed9, 0x1400ffff }, + { 0x21001eda, 0x24000001 }, + { 0x21001edb, 0x1400ffff }, + { 0x21001edc, 0x24000001 }, + { 0x21001edd, 0x1400ffff }, + { 0x21001ede, 0x24000001 }, + { 0x21001edf, 0x1400ffff }, + { 0x21001ee0, 0x24000001 }, + { 0x21001ee1, 0x1400ffff }, + { 0x21001ee2, 0x24000001 }, + { 0x21001ee3, 0x1400ffff }, + { 0x21001ee4, 0x24000001 }, + { 0x21001ee5, 0x1400ffff }, + { 0x21001ee6, 0x24000001 }, + { 0x21001ee7, 0x1400ffff }, + { 0x21001ee8, 0x24000001 }, + { 0x21001ee9, 0x1400ffff }, + { 0x21001eea, 0x24000001 }, + { 0x21001eeb, 0x1400ffff }, + { 0x21001eec, 0x24000001 }, + { 0x21001eed, 0x1400ffff }, + { 0x21001eee, 0x24000001 }, + { 0x21001eef, 0x1400ffff }, + { 0x21001ef0, 0x24000001 }, + { 0x21001ef1, 0x1400ffff }, + { 0x21001ef2, 0x24000001 }, + { 0x21001ef3, 0x1400ffff }, + { 0x21001ef4, 0x24000001 }, + { 0x21001ef5, 0x1400ffff }, + { 0x21001ef6, 0x24000001 }, + { 0x21001ef7, 0x1400ffff }, + { 0x21001ef8, 0x24000001 }, + { 0x21001ef9, 0x1400ffff }, + { 0x13001f00, 0x14000008 }, + { 0x13001f01, 0x14000008 }, + { 0x13001f02, 0x14000008 }, + { 0x13001f03, 0x14000008 }, + { 0x13001f04, 0x14000008 }, + { 0x13001f05, 0x14000008 }, + { 0x13001f06, 0x14000008 }, + { 0x13001f07, 0x14000008 }, + { 0x13001f08, 0x2400fff8 }, + { 0x13001f09, 0x2400fff8 }, + { 0x13001f0a, 0x2400fff8 }, + { 0x13001f0b, 0x2400fff8 }, + { 0x13001f0c, 0x2400fff8 }, + { 0x13001f0d, 0x2400fff8 }, + { 0x13001f0e, 0x2400fff8 }, + { 0x13001f0f, 0x2400fff8 }, + { 0x13001f10, 0x14000008 }, + { 0x13001f11, 0x14000008 }, + { 0x13001f12, 0x14000008 }, + { 0x13001f13, 0x14000008 }, + { 0x13001f14, 0x14000008 }, + { 0x13001f15, 0x14000008 }, + { 0x13001f18, 0x2400fff8 }, + { 0x13001f19, 0x2400fff8 }, + { 0x13001f1a, 0x2400fff8 }, + { 0x13001f1b, 0x2400fff8 }, + { 0x13001f1c, 0x2400fff8 }, + { 0x13001f1d, 0x2400fff8 }, + { 0x13001f20, 0x14000008 }, + { 0x13001f21, 0x14000008 }, + { 0x13001f22, 0x14000008 }, + { 0x13001f23, 0x14000008 }, + { 0x13001f24, 0x14000008 }, + { 0x13001f25, 0x14000008 }, + { 0x13001f26, 0x14000008 }, + { 0x13001f27, 0x14000008 }, + { 0x13001f28, 0x2400fff8 }, + { 0x13001f29, 0x2400fff8 }, + { 0x13001f2a, 0x2400fff8 }, + { 0x13001f2b, 0x2400fff8 }, + { 0x13001f2c, 0x2400fff8 }, + { 0x13001f2d, 0x2400fff8 }, + { 0x13001f2e, 0x2400fff8 }, + { 0x13001f2f, 0x2400fff8 }, + { 0x13001f30, 0x14000008 }, + { 0x13001f31, 0x14000008 }, + { 0x13001f32, 0x14000008 }, + { 0x13001f33, 0x14000008 }, + { 0x13001f34, 0x14000008 }, + { 0x13001f35, 0x14000008 }, + { 0x13001f36, 0x14000008 }, + { 0x13001f37, 0x14000008 }, + { 0x13001f38, 0x2400fff8 }, + { 0x13001f39, 0x2400fff8 }, + { 0x13001f3a, 0x2400fff8 }, + { 0x13001f3b, 0x2400fff8 }, + { 0x13001f3c, 0x2400fff8 }, + { 0x13001f3d, 0x2400fff8 }, + { 0x13001f3e, 0x2400fff8 }, + { 0x13001f3f, 0x2400fff8 }, + { 0x13001f40, 0x14000008 }, + { 0x13001f41, 0x14000008 }, + { 0x13001f42, 0x14000008 }, + { 0x13001f43, 0x14000008 }, + { 0x13001f44, 0x14000008 }, + { 0x13001f45, 0x14000008 }, + { 0x13001f48, 0x2400fff8 }, + { 0x13001f49, 0x2400fff8 }, + { 0x13001f4a, 0x2400fff8 }, + { 0x13001f4b, 0x2400fff8 }, + { 0x13001f4c, 0x2400fff8 }, + { 0x13001f4d, 0x2400fff8 }, + { 0x13001f50, 0x14000000 }, + { 0x13001f51, 0x14000008 }, + { 0x13001f52, 0x14000000 }, + { 0x13001f53, 0x14000008 }, + { 0x13001f54, 0x14000000 }, + { 0x13001f55, 0x14000008 }, + { 0x13001f56, 0x14000000 }, + { 0x13001f57, 0x14000008 }, + { 0x13001f59, 0x2400fff8 }, + { 0x13001f5b, 0x2400fff8 }, + { 0x13001f5d, 0x2400fff8 }, + { 0x13001f5f, 0x2400fff8 }, + { 0x13001f60, 0x14000008 }, + { 0x13001f61, 0x14000008 }, + { 0x13001f62, 0x14000008 }, + { 0x13001f63, 0x14000008 }, + { 0x13001f64, 0x14000008 }, + { 0x13001f65, 0x14000008 }, + { 0x13001f66, 0x14000008 }, + { 0x13001f67, 0x14000008 }, + { 0x13001f68, 0x2400fff8 }, + { 0x13001f69, 0x2400fff8 }, + { 0x13001f6a, 0x2400fff8 }, + { 0x13001f6b, 0x2400fff8 }, + { 0x13001f6c, 0x2400fff8 }, + { 0x13001f6d, 0x2400fff8 }, + { 0x13001f6e, 0x2400fff8 }, + { 0x13001f6f, 0x2400fff8 }, + { 0x13001f70, 0x1400004a }, + { 0x13001f71, 0x1400004a }, + { 0x13001f72, 0x14000056 }, + { 0x13001f73, 0x14000056 }, + { 0x13001f74, 0x14000056 }, + { 0x13001f75, 0x14000056 }, + { 0x13001f76, 0x14000064 }, + { 0x13001f77, 0x14000064 }, + { 0x13001f78, 0x14000080 }, + { 0x13001f79, 0x14000080 }, + { 0x13001f7a, 0x14000070 }, + { 0x13001f7b, 0x14000070 }, + { 0x13001f7c, 0x1400007e }, + { 0x13001f7d, 0x1400007e }, + { 0x13001f80, 0x14000008 }, + { 0x13001f81, 0x14000008 }, + { 0x13001f82, 0x14000008 }, + { 0x13001f83, 0x14000008 }, + { 0x13001f84, 0x14000008 }, + { 0x13001f85, 0x14000008 }, + { 0x13001f86, 0x14000008 }, + { 0x13001f87, 0x14000008 }, + { 0x13001f88, 0x2000fff8 }, + { 0x13001f89, 0x2000fff8 }, + { 0x13001f8a, 0x2000fff8 }, + { 0x13001f8b, 0x2000fff8 }, + { 0x13001f8c, 0x2000fff8 }, + { 0x13001f8d, 0x2000fff8 }, + { 0x13001f8e, 0x2000fff8 }, + { 0x13001f8f, 0x2000fff8 }, + { 0x13001f90, 0x14000008 }, + { 0x13001f91, 0x14000008 }, + { 0x13001f92, 0x14000008 }, + { 0x13001f93, 0x14000008 }, + { 0x13001f94, 0x14000008 }, + { 0x13001f95, 0x14000008 }, + { 0x13001f96, 0x14000008 }, + { 0x13001f97, 0x14000008 }, + { 0x13001f98, 0x2000fff8 }, + { 0x13001f99, 0x2000fff8 }, + { 0x13001f9a, 0x2000fff8 }, + { 0x13001f9b, 0x2000fff8 }, + { 0x13001f9c, 0x2000fff8 }, + { 0x13001f9d, 0x2000fff8 }, + { 0x13001f9e, 0x2000fff8 }, + { 0x13001f9f, 0x2000fff8 }, + { 0x13001fa0, 0x14000008 }, + { 0x13001fa1, 0x14000008 }, + { 0x13001fa2, 0x14000008 }, + { 0x13001fa3, 0x14000008 }, + { 0x13001fa4, 0x14000008 }, + { 0x13001fa5, 0x14000008 }, + { 0x13001fa6, 0x14000008 }, + { 0x13001fa7, 0x14000008 }, + { 0x13001fa8, 0x2000fff8 }, + { 0x13001fa9, 0x2000fff8 }, + { 0x13001faa, 0x2000fff8 }, + { 0x13001fab, 0x2000fff8 }, + { 0x13001fac, 0x2000fff8 }, + { 0x13001fad, 0x2000fff8 }, + { 0x13001fae, 0x2000fff8 }, + { 0x13001faf, 0x2000fff8 }, + { 0x13001fb0, 0x14000008 }, + { 0x13001fb1, 0x14000008 }, + { 0x13001fb2, 0x14000000 }, + { 0x13001fb3, 0x14000009 }, + { 0x13001fb4, 0x14000000 }, + { 0x13801fb6, 0x14000001 }, + { 0x13001fb8, 0x2400fff8 }, + { 0x13001fb9, 0x2400fff8 }, + { 0x13001fba, 0x2400ffb6 }, + { 0x13001fbb, 0x2400ffb6 }, + { 0x13001fbc, 0x2000fff7 }, + { 0x13001fbd, 0x60000000 }, + { 0x13001fbe, 0x1400e3db }, + { 0x13801fbf, 0x60000002 }, + { 0x13001fc2, 0x14000000 }, + { 0x13001fc3, 0x14000009 }, + { 0x13001fc4, 0x14000000 }, + { 0x13801fc6, 0x14000001 }, + { 0x13001fc8, 0x2400ffaa }, + { 0x13001fc9, 0x2400ffaa }, + { 0x13001fca, 0x2400ffaa }, + { 0x13001fcb, 0x2400ffaa }, + { 0x13001fcc, 0x2000fff7 }, + { 0x13801fcd, 0x60000002 }, + { 0x13001fd0, 0x14000008 }, + { 0x13001fd1, 0x14000008 }, + { 0x13801fd2, 0x14000001 }, + { 0x13801fd6, 0x14000001 }, + { 0x13001fd8, 0x2400fff8 }, + { 0x13001fd9, 0x2400fff8 }, + { 0x13001fda, 0x2400ff9c }, + { 0x13001fdb, 0x2400ff9c }, + { 0x13801fdd, 0x60000002 }, + { 0x13001fe0, 0x14000008 }, + { 0x13001fe1, 0x14000008 }, + { 0x13801fe2, 0x14000002 }, + { 0x13001fe5, 0x14000007 }, + { 0x13801fe6, 0x14000001 }, + { 0x13001fe8, 0x2400fff8 }, + { 0x13001fe9, 0x2400fff8 }, + { 0x13001fea, 0x2400ff90 }, + { 0x13001feb, 0x2400ff90 }, + { 0x13001fec, 0x2400fff9 }, + { 0x13801fed, 0x60000002 }, + { 0x13001ff2, 0x14000000 }, + { 0x13001ff3, 0x14000009 }, + { 0x13001ff4, 0x14000000 }, + { 0x13801ff6, 0x14000001 }, + { 0x13001ff8, 0x2400ff80 }, + { 0x13001ff9, 0x2400ff80 }, + { 0x13001ffa, 0x2400ff82 }, + { 0x13001ffb, 0x2400ff82 }, + { 0x13001ffc, 0x2000fff7 }, + { 0x13801ffd, 0x60000001 }, + { 0x09802000, 0x7400000a }, + { 0x0900200b, 0x04000000 }, + { 0x1b80200c, 0x04000001 }, + { 0x0980200e, 0x04000001 }, + { 0x09802010, 0x44000005 }, + { 0x09802016, 0x54000001 }, + { 0x09002018, 0x50000000 }, + { 0x09002019, 0x4c000000 }, + { 0x0900201a, 0x58000000 }, + { 0x0980201b, 0x50000001 }, + { 0x0900201d, 0x4c000000 }, + { 0x0900201e, 0x58000000 }, + { 0x0900201f, 0x50000000 }, + { 0x09802020, 0x54000007 }, + { 0x09002028, 0x6c000000 }, + { 0x09002029, 0x70000000 }, + { 0x0980202a, 0x04000004 }, + { 0x0900202f, 0x74000000 }, + { 0x09802030, 0x54000008 }, + { 0x09002039, 0x50000000 }, + { 0x0900203a, 0x4c000000 }, + { 0x0980203b, 0x54000003 }, + { 0x0980203f, 0x40000001 }, + { 0x09802041, 0x54000002 }, + { 0x09002044, 0x64000000 }, + { 0x09002045, 0x58000000 }, + { 0x09002046, 0x48000000 }, + { 0x09802047, 0x5400000a }, + { 0x09002052, 0x64000000 }, + { 0x09002053, 0x54000000 }, + { 0x09002054, 0x40000000 }, + { 0x09802055, 0x54000009 }, + { 0x0900205f, 0x74000000 }, + { 0x09802060, 0x04000003 }, + { 0x0980206a, 0x04000005 }, + { 0x09002070, 0x3c000000 }, + { 0x21002071, 0x14000000 }, + { 0x09802074, 0x3c000005 }, + { 0x0980207a, 0x64000002 }, + { 0x0900207d, 0x58000000 }, + { 0x0900207e, 0x48000000 }, + { 0x2100207f, 0x14000000 }, + { 0x09802080, 0x3c000009 }, + { 0x0980208a, 0x64000002 }, + { 0x0900208d, 0x58000000 }, + { 0x0900208e, 0x48000000 }, + { 0x21802090, 0x18000004 }, + { 0x098020a0, 0x5c000015 }, + { 0x1b8020d0, 0x3000000c }, + { 0x1b8020dd, 0x2c000003 }, + { 0x1b0020e1, 0x30000000 }, + { 0x1b8020e2, 0x2c000002 }, + { 0x1b8020e5, 0x3000000a }, + { 0x09802100, 0x68000001 }, + { 0x09002102, 0x24000000 }, + { 0x09802103, 0x68000003 }, + { 0x09002107, 0x24000000 }, + { 0x09802108, 0x68000001 }, + { 0x0900210a, 0x14000000 }, + { 0x0980210b, 0x24000002 }, + { 0x0980210e, 0x14000001 }, + { 0x09802110, 0x24000002 }, + { 0x09002113, 0x14000000 }, + { 0x09002114, 0x68000000 }, + { 0x09002115, 0x24000000 }, + { 0x09802116, 0x68000002 }, + { 0x09802119, 0x24000004 }, + { 0x0980211e, 0x68000005 }, + { 0x09002124, 0x24000000 }, + { 0x09002125, 0x68000000 }, + { 0x13002126, 0x2400e2a3 }, + { 0x09002127, 0x68000000 }, + { 0x09002128, 0x24000000 }, + { 0x09002129, 0x68000000 }, + { 0x2100212a, 0x2400df41 }, + { 0x2100212b, 0x2400dfba }, + { 0x0980212c, 0x24000001 }, + { 0x0900212e, 0x68000000 }, + { 0x0900212f, 0x14000000 }, + { 0x09802130, 0x24000001 }, + { 0x21002132, 0x2400001c }, + { 0x09002133, 0x24000000 }, + { 0x09002134, 0x14000000 }, + { 0x09802135, 0x1c000003 }, + { 0x09002139, 0x14000000 }, + { 0x0980213a, 0x68000001 }, + { 0x0980213c, 0x14000001 }, + { 0x0980213e, 0x24000001 }, + { 0x09802140, 0x64000004 }, + { 0x09002145, 0x24000000 }, + { 0x09802146, 0x14000003 }, + { 0x0900214a, 0x68000000 }, + { 0x0900214b, 0x64000000 }, + { 0x0980214c, 0x68000001 }, + { 0x2100214e, 0x1400ffe4 }, + { 0x09802153, 0x3c00000c }, + { 0x09002160, 0x38000010 }, + { 0x09002161, 0x38000010 }, + { 0x09002162, 0x38000010 }, + { 0x09002163, 0x38000010 }, + { 0x09002164, 0x38000010 }, + { 0x09002165, 0x38000010 }, + { 0x09002166, 0x38000010 }, + { 0x09002167, 0x38000010 }, + { 0x09002168, 0x38000010 }, + { 0x09002169, 0x38000010 }, + { 0x0900216a, 0x38000010 }, + { 0x0900216b, 0x38000010 }, + { 0x0900216c, 0x38000010 }, + { 0x0900216d, 0x38000010 }, + { 0x0900216e, 0x38000010 }, + { 0x0900216f, 0x38000010 }, + { 0x09002170, 0x3800fff0 }, + { 0x09002171, 0x3800fff0 }, + { 0x09002172, 0x3800fff0 }, + { 0x09002173, 0x3800fff0 }, + { 0x09002174, 0x3800fff0 }, + { 0x09002175, 0x3800fff0 }, + { 0x09002176, 0x3800fff0 }, + { 0x09002177, 0x3800fff0 }, + { 0x09002178, 0x3800fff0 }, + { 0x09002179, 0x3800fff0 }, + { 0x0900217a, 0x3800fff0 }, + { 0x0900217b, 0x3800fff0 }, + { 0x0900217c, 0x3800fff0 }, + { 0x0900217d, 0x3800fff0 }, + { 0x0900217e, 0x3800fff0 }, + { 0x0900217f, 0x3800fff0 }, + { 0x09802180, 0x38000002 }, + { 0x09002183, 0x24000001 }, + { 0x21002184, 0x1400ffff }, + { 0x09802190, 0x64000004 }, + { 0x09802195, 0x68000004 }, + { 0x0980219a, 0x64000001 }, + { 0x0980219c, 0x68000003 }, + { 0x090021a0, 0x64000000 }, + { 0x098021a1, 0x68000001 }, + { 0x090021a3, 0x64000000 }, + { 0x098021a4, 0x68000001 }, + { 0x090021a6, 0x64000000 }, + { 0x098021a7, 0x68000006 }, + { 0x090021ae, 0x64000000 }, + { 0x098021af, 0x6800001e }, + { 0x098021ce, 0x64000001 }, + { 0x098021d0, 0x68000001 }, + { 0x090021d2, 0x64000000 }, + { 0x090021d3, 0x68000000 }, + { 0x090021d4, 0x64000000 }, + { 0x098021d5, 0x6800001e }, + { 0x098021f4, 0x6400010b }, + { 0x09802300, 0x68000007 }, + { 0x09802308, 0x64000003 }, + { 0x0980230c, 0x68000013 }, + { 0x09802320, 0x64000001 }, + { 0x09802322, 0x68000006 }, + { 0x09002329, 0x58000000 }, + { 0x0900232a, 0x48000000 }, + { 0x0980232b, 0x68000050 }, + { 0x0900237c, 0x64000000 }, + { 0x0980237d, 0x6800001d }, + { 0x0980239b, 0x64000018 }, + { 0x098023b4, 0x68000027 }, + { 0x098023dc, 0x64000005 }, + { 0x098023e2, 0x68000005 }, + { 0x09802400, 0x68000026 }, + { 0x09802440, 0x6800000a }, + { 0x09802460, 0x3c00003b }, + { 0x0980249c, 0x68000019 }, + { 0x090024b6, 0x6800001a }, + { 0x090024b7, 0x6800001a }, + { 0x090024b8, 0x6800001a }, + { 0x090024b9, 0x6800001a }, + { 0x090024ba, 0x6800001a }, + { 0x090024bb, 0x6800001a }, + { 0x090024bc, 0x6800001a }, + { 0x090024bd, 0x6800001a }, + { 0x090024be, 0x6800001a }, + { 0x090024bf, 0x6800001a }, + { 0x090024c0, 0x6800001a }, + { 0x090024c1, 0x6800001a }, + { 0x090024c2, 0x6800001a }, + { 0x090024c3, 0x6800001a }, + { 0x090024c4, 0x6800001a }, + { 0x090024c5, 0x6800001a }, + { 0x090024c6, 0x6800001a }, + { 0x090024c7, 0x6800001a }, + { 0x090024c8, 0x6800001a }, + { 0x090024c9, 0x6800001a }, + { 0x090024ca, 0x6800001a }, + { 0x090024cb, 0x6800001a }, + { 0x090024cc, 0x6800001a }, + { 0x090024cd, 0x6800001a }, + { 0x090024ce, 0x6800001a }, + { 0x090024cf, 0x6800001a }, + { 0x090024d0, 0x6800ffe6 }, + { 0x090024d1, 0x6800ffe6 }, + { 0x090024d2, 0x6800ffe6 }, + { 0x090024d3, 0x6800ffe6 }, + { 0x090024d4, 0x6800ffe6 }, + { 0x090024d5, 0x6800ffe6 }, + { 0x090024d6, 0x6800ffe6 }, + { 0x090024d7, 0x6800ffe6 }, + { 0x090024d8, 0x6800ffe6 }, + { 0x090024d9, 0x6800ffe6 }, + { 0x090024da, 0x6800ffe6 }, + { 0x090024db, 0x6800ffe6 }, + { 0x090024dc, 0x6800ffe6 }, + { 0x090024dd, 0x6800ffe6 }, + { 0x090024de, 0x6800ffe6 }, + { 0x090024df, 0x6800ffe6 }, + { 0x090024e0, 0x6800ffe6 }, + { 0x090024e1, 0x6800ffe6 }, + { 0x090024e2, 0x6800ffe6 }, + { 0x090024e3, 0x6800ffe6 }, + { 0x090024e4, 0x6800ffe6 }, + { 0x090024e5, 0x6800ffe6 }, + { 0x090024e6, 0x6800ffe6 }, + { 0x090024e7, 0x6800ffe6 }, + { 0x090024e8, 0x6800ffe6 }, + { 0x090024e9, 0x6800ffe6 }, + { 0x098024ea, 0x3c000015 }, + { 0x09802500, 0x680000b6 }, + { 0x090025b7, 0x64000000 }, + { 0x098025b8, 0x68000008 }, + { 0x090025c1, 0x64000000 }, + { 0x098025c2, 0x68000035 }, + { 0x098025f8, 0x64000007 }, + { 0x09802600, 0x6800006e }, + { 0x0900266f, 0x64000000 }, + { 0x09802670, 0x6800002c }, + { 0x098026a0, 0x68000012 }, + { 0x09802701, 0x68000003 }, + { 0x09802706, 0x68000003 }, + { 0x0980270c, 0x6800001b }, + { 0x09802729, 0x68000022 }, + { 0x0900274d, 0x68000000 }, + { 0x0980274f, 0x68000003 }, + { 0x09002756, 0x68000000 }, + { 0x09802758, 0x68000006 }, + { 0x09802761, 0x68000006 }, + { 0x09002768, 0x58000000 }, + { 0x09002769, 0x48000000 }, + { 0x0900276a, 0x58000000 }, + { 0x0900276b, 0x48000000 }, + { 0x0900276c, 0x58000000 }, + { 0x0900276d, 0x48000000 }, + { 0x0900276e, 0x58000000 }, + { 0x0900276f, 0x48000000 }, + { 0x09002770, 0x58000000 }, + { 0x09002771, 0x48000000 }, + { 0x09002772, 0x58000000 }, + { 0x09002773, 0x48000000 }, + { 0x09002774, 0x58000000 }, + { 0x09002775, 0x48000000 }, + { 0x09802776, 0x3c00001d }, + { 0x09002794, 0x68000000 }, + { 0x09802798, 0x68000017 }, + { 0x098027b1, 0x6800000d }, + { 0x098027c0, 0x64000004 }, + { 0x090027c5, 0x58000000 }, + { 0x090027c6, 0x48000000 }, + { 0x098027c7, 0x64000003 }, + { 0x098027d0, 0x64000015 }, + { 0x090027e6, 0x58000000 }, + { 0x090027e7, 0x48000000 }, + { 0x090027e8, 0x58000000 }, + { 0x090027e9, 0x48000000 }, + { 0x090027ea, 0x58000000 }, + { 0x090027eb, 0x48000000 }, + { 0x098027f0, 0x6400000f }, + { 0x04802800, 0x680000ff }, + { 0x09802900, 0x64000082 }, + { 0x09002983, 0x58000000 }, + { 0x09002984, 0x48000000 }, + { 0x09002985, 0x58000000 }, + { 0x09002986, 0x48000000 }, + { 0x09002987, 0x58000000 }, + { 0x09002988, 0x48000000 }, + { 0x09002989, 0x58000000 }, + { 0x0900298a, 0x48000000 }, + { 0x0900298b, 0x58000000 }, + { 0x0900298c, 0x48000000 }, + { 0x0900298d, 0x58000000 }, + { 0x0900298e, 0x48000000 }, + { 0x0900298f, 0x58000000 }, + { 0x09002990, 0x48000000 }, + { 0x09002991, 0x58000000 }, + { 0x09002992, 0x48000000 }, + { 0x09002993, 0x58000000 }, + { 0x09002994, 0x48000000 }, + { 0x09002995, 0x58000000 }, + { 0x09002996, 0x48000000 }, + { 0x09002997, 0x58000000 }, + { 0x09002998, 0x48000000 }, + { 0x09802999, 0x6400003e }, + { 0x090029d8, 0x58000000 }, + { 0x090029d9, 0x48000000 }, + { 0x090029da, 0x58000000 }, + { 0x090029db, 0x48000000 }, + { 0x098029dc, 0x6400001f }, + { 0x090029fc, 0x58000000 }, + { 0x090029fd, 0x48000000 }, + { 0x098029fe, 0x64000101 }, + { 0x09802b00, 0x6800001a }, + { 0x09802b20, 0x68000003 }, + { 0x11002c00, 0x24000030 }, + { 0x11002c01, 0x24000030 }, + { 0x11002c02, 0x24000030 }, + { 0x11002c03, 0x24000030 }, + { 0x11002c04, 0x24000030 }, + { 0x11002c05, 0x24000030 }, + { 0x11002c06, 0x24000030 }, + { 0x11002c07, 0x24000030 }, + { 0x11002c08, 0x24000030 }, + { 0x11002c09, 0x24000030 }, + { 0x11002c0a, 0x24000030 }, + { 0x11002c0b, 0x24000030 }, + { 0x11002c0c, 0x24000030 }, + { 0x11002c0d, 0x24000030 }, + { 0x11002c0e, 0x24000030 }, + { 0x11002c0f, 0x24000030 }, + { 0x11002c10, 0x24000030 }, + { 0x11002c11, 0x24000030 }, + { 0x11002c12, 0x24000030 }, + { 0x11002c13, 0x24000030 }, + { 0x11002c14, 0x24000030 }, + { 0x11002c15, 0x24000030 }, + { 0x11002c16, 0x24000030 }, + { 0x11002c17, 0x24000030 }, + { 0x11002c18, 0x24000030 }, + { 0x11002c19, 0x24000030 }, + { 0x11002c1a, 0x24000030 }, + { 0x11002c1b, 0x24000030 }, + { 0x11002c1c, 0x24000030 }, + { 0x11002c1d, 0x24000030 }, + { 0x11002c1e, 0x24000030 }, + { 0x11002c1f, 0x24000030 }, + { 0x11002c20, 0x24000030 }, + { 0x11002c21, 0x24000030 }, + { 0x11002c22, 0x24000030 }, + { 0x11002c23, 0x24000030 }, + { 0x11002c24, 0x24000030 }, + { 0x11002c25, 0x24000030 }, + { 0x11002c26, 0x24000030 }, + { 0x11002c27, 0x24000030 }, + { 0x11002c28, 0x24000030 }, + { 0x11002c29, 0x24000030 }, + { 0x11002c2a, 0x24000030 }, + { 0x11002c2b, 0x24000030 }, + { 0x11002c2c, 0x24000030 }, + { 0x11002c2d, 0x24000030 }, + { 0x11002c2e, 0x24000030 }, + { 0x11002c30, 0x1400ffd0 }, + { 0x11002c31, 0x1400ffd0 }, + { 0x11002c32, 0x1400ffd0 }, + { 0x11002c33, 0x1400ffd0 }, + { 0x11002c34, 0x1400ffd0 }, + { 0x11002c35, 0x1400ffd0 }, + { 0x11002c36, 0x1400ffd0 }, + { 0x11002c37, 0x1400ffd0 }, + { 0x11002c38, 0x1400ffd0 }, + { 0x11002c39, 0x1400ffd0 }, + { 0x11002c3a, 0x1400ffd0 }, + { 0x11002c3b, 0x1400ffd0 }, + { 0x11002c3c, 0x1400ffd0 }, + { 0x11002c3d, 0x1400ffd0 }, + { 0x11002c3e, 0x1400ffd0 }, + { 0x11002c3f, 0x1400ffd0 }, + { 0x11002c40, 0x1400ffd0 }, + { 0x11002c41, 0x1400ffd0 }, + { 0x11002c42, 0x1400ffd0 }, + { 0x11002c43, 0x1400ffd0 }, + { 0x11002c44, 0x1400ffd0 }, + { 0x11002c45, 0x1400ffd0 }, + { 0x11002c46, 0x1400ffd0 }, + { 0x11002c47, 0x1400ffd0 }, + { 0x11002c48, 0x1400ffd0 }, + { 0x11002c49, 0x1400ffd0 }, + { 0x11002c4a, 0x1400ffd0 }, + { 0x11002c4b, 0x1400ffd0 }, + { 0x11002c4c, 0x1400ffd0 }, + { 0x11002c4d, 0x1400ffd0 }, + { 0x11002c4e, 0x1400ffd0 }, + { 0x11002c4f, 0x1400ffd0 }, + { 0x11002c50, 0x1400ffd0 }, + { 0x11002c51, 0x1400ffd0 }, + { 0x11002c52, 0x1400ffd0 }, + { 0x11002c53, 0x1400ffd0 }, + { 0x11002c54, 0x1400ffd0 }, + { 0x11002c55, 0x1400ffd0 }, + { 0x11002c56, 0x1400ffd0 }, + { 0x11002c57, 0x1400ffd0 }, + { 0x11002c58, 0x1400ffd0 }, + { 0x11002c59, 0x1400ffd0 }, + { 0x11002c5a, 0x1400ffd0 }, + { 0x11002c5b, 0x1400ffd0 }, + { 0x11002c5c, 0x1400ffd0 }, + { 0x11002c5d, 0x1400ffd0 }, + { 0x11002c5e, 0x1400ffd0 }, + { 0x21002c60, 0x24000001 }, + { 0x21002c61, 0x1400ffff }, + { 0x21002c62, 0x2400d609 }, + { 0x21002c63, 0x2400f11a }, + { 0x21002c64, 0x2400d619 }, + { 0x21002c65, 0x1400d5d5 }, + { 0x21002c66, 0x1400d5d8 }, + { 0x21002c67, 0x24000001 }, + { 0x21002c68, 0x1400ffff }, + { 0x21002c69, 0x24000001 }, + { 0x21002c6a, 0x1400ffff }, + { 0x21002c6b, 0x24000001 }, + { 0x21002c6c, 0x1400ffff }, + { 0x21002c74, 0x14000000 }, + { 0x21002c75, 0x24000001 }, + { 0x21002c76, 0x1400ffff }, + { 0x21002c77, 0x14000000 }, + { 0x0a002c80, 0x24000001 }, + { 0x0a002c81, 0x1400ffff }, + { 0x0a002c82, 0x24000001 }, + { 0x0a002c83, 0x1400ffff }, + { 0x0a002c84, 0x24000001 }, + { 0x0a002c85, 0x1400ffff }, + { 0x0a002c86, 0x24000001 }, + { 0x0a002c87, 0x1400ffff }, + { 0x0a002c88, 0x24000001 }, + { 0x0a002c89, 0x1400ffff }, + { 0x0a002c8a, 0x24000001 }, + { 0x0a002c8b, 0x1400ffff }, + { 0x0a002c8c, 0x24000001 }, + { 0x0a002c8d, 0x1400ffff }, + { 0x0a002c8e, 0x24000001 }, + { 0x0a002c8f, 0x1400ffff }, + { 0x0a002c90, 0x24000001 }, + { 0x0a002c91, 0x1400ffff }, + { 0x0a002c92, 0x24000001 }, + { 0x0a002c93, 0x1400ffff }, + { 0x0a002c94, 0x24000001 }, + { 0x0a002c95, 0x1400ffff }, + { 0x0a002c96, 0x24000001 }, + { 0x0a002c97, 0x1400ffff }, + { 0x0a002c98, 0x24000001 }, + { 0x0a002c99, 0x1400ffff }, + { 0x0a002c9a, 0x24000001 }, + { 0x0a002c9b, 0x1400ffff }, + { 0x0a002c9c, 0x24000001 }, + { 0x0a002c9d, 0x1400ffff }, + { 0x0a002c9e, 0x24000001 }, + { 0x0a002c9f, 0x1400ffff }, + { 0x0a002ca0, 0x24000001 }, + { 0x0a002ca1, 0x1400ffff }, + { 0x0a002ca2, 0x24000001 }, + { 0x0a002ca3, 0x1400ffff }, + { 0x0a002ca4, 0x24000001 }, + { 0x0a002ca5, 0x1400ffff }, + { 0x0a002ca6, 0x24000001 }, + { 0x0a002ca7, 0x1400ffff }, + { 0x0a002ca8, 0x24000001 }, + { 0x0a002ca9, 0x1400ffff }, + { 0x0a002caa, 0x24000001 }, + { 0x0a002cab, 0x1400ffff }, + { 0x0a002cac, 0x24000001 }, + { 0x0a002cad, 0x1400ffff }, + { 0x0a002cae, 0x24000001 }, + { 0x0a002caf, 0x1400ffff }, + { 0x0a002cb0, 0x24000001 }, + { 0x0a002cb1, 0x1400ffff }, + { 0x0a002cb2, 0x24000001 }, + { 0x0a002cb3, 0x1400ffff }, + { 0x0a002cb4, 0x24000001 }, + { 0x0a002cb5, 0x1400ffff }, + { 0x0a002cb6, 0x24000001 }, + { 0x0a002cb7, 0x1400ffff }, + { 0x0a002cb8, 0x24000001 }, + { 0x0a002cb9, 0x1400ffff }, + { 0x0a002cba, 0x24000001 }, + { 0x0a002cbb, 0x1400ffff }, + { 0x0a002cbc, 0x24000001 }, + { 0x0a002cbd, 0x1400ffff }, + { 0x0a002cbe, 0x24000001 }, + { 0x0a002cbf, 0x1400ffff }, + { 0x0a002cc0, 0x24000001 }, + { 0x0a002cc1, 0x1400ffff }, + { 0x0a002cc2, 0x24000001 }, + { 0x0a002cc3, 0x1400ffff }, + { 0x0a002cc4, 0x24000001 }, + { 0x0a002cc5, 0x1400ffff }, + { 0x0a002cc6, 0x24000001 }, + { 0x0a002cc7, 0x1400ffff }, + { 0x0a002cc8, 0x24000001 }, + { 0x0a002cc9, 0x1400ffff }, + { 0x0a002cca, 0x24000001 }, + { 0x0a002ccb, 0x1400ffff }, + { 0x0a002ccc, 0x24000001 }, + { 0x0a002ccd, 0x1400ffff }, + { 0x0a002cce, 0x24000001 }, + { 0x0a002ccf, 0x1400ffff }, + { 0x0a002cd0, 0x24000001 }, + { 0x0a002cd1, 0x1400ffff }, + { 0x0a002cd2, 0x24000001 }, + { 0x0a002cd3, 0x1400ffff }, + { 0x0a002cd4, 0x24000001 }, + { 0x0a002cd5, 0x1400ffff }, + { 0x0a002cd6, 0x24000001 }, + { 0x0a002cd7, 0x1400ffff }, + { 0x0a002cd8, 0x24000001 }, + { 0x0a002cd9, 0x1400ffff }, + { 0x0a002cda, 0x24000001 }, + { 0x0a002cdb, 0x1400ffff }, + { 0x0a002cdc, 0x24000001 }, + { 0x0a002cdd, 0x1400ffff }, + { 0x0a002cde, 0x24000001 }, + { 0x0a002cdf, 0x1400ffff }, + { 0x0a002ce0, 0x24000001 }, + { 0x0a002ce1, 0x1400ffff }, + { 0x0a002ce2, 0x24000001 }, + { 0x0a002ce3, 0x1400ffff }, + { 0x0a002ce4, 0x14000000 }, + { 0x0a802ce5, 0x68000005 }, + { 0x0a802cf9, 0x54000003 }, + { 0x0a002cfd, 0x3c000000 }, + { 0x0a802cfe, 0x54000001 }, + { 0x10002d00, 0x1400e3a0 }, + { 0x10002d01, 0x1400e3a0 }, + { 0x10002d02, 0x1400e3a0 }, + { 0x10002d03, 0x1400e3a0 }, + { 0x10002d04, 0x1400e3a0 }, + { 0x10002d05, 0x1400e3a0 }, + { 0x10002d06, 0x1400e3a0 }, + { 0x10002d07, 0x1400e3a0 }, + { 0x10002d08, 0x1400e3a0 }, + { 0x10002d09, 0x1400e3a0 }, + { 0x10002d0a, 0x1400e3a0 }, + { 0x10002d0b, 0x1400e3a0 }, + { 0x10002d0c, 0x1400e3a0 }, + { 0x10002d0d, 0x1400e3a0 }, + { 0x10002d0e, 0x1400e3a0 }, + { 0x10002d0f, 0x1400e3a0 }, + { 0x10002d10, 0x1400e3a0 }, + { 0x10002d11, 0x1400e3a0 }, + { 0x10002d12, 0x1400e3a0 }, + { 0x10002d13, 0x1400e3a0 }, + { 0x10002d14, 0x1400e3a0 }, + { 0x10002d15, 0x1400e3a0 }, + { 0x10002d16, 0x1400e3a0 }, + { 0x10002d17, 0x1400e3a0 }, + { 0x10002d18, 0x1400e3a0 }, + { 0x10002d19, 0x1400e3a0 }, + { 0x10002d1a, 0x1400e3a0 }, + { 0x10002d1b, 0x1400e3a0 }, + { 0x10002d1c, 0x1400e3a0 }, + { 0x10002d1d, 0x1400e3a0 }, + { 0x10002d1e, 0x1400e3a0 }, + { 0x10002d1f, 0x1400e3a0 }, + { 0x10002d20, 0x1400e3a0 }, + { 0x10002d21, 0x1400e3a0 }, + { 0x10002d22, 0x1400e3a0 }, + { 0x10002d23, 0x1400e3a0 }, + { 0x10002d24, 0x1400e3a0 }, + { 0x10002d25, 0x1400e3a0 }, + { 0x3a802d30, 0x1c000035 }, + { 0x3a002d6f, 0x18000000 }, + { 0x0f802d80, 0x1c000016 }, + { 0x0f802da0, 0x1c000006 }, + { 0x0f802da8, 0x1c000006 }, + { 0x0f802db0, 0x1c000006 }, + { 0x0f802db8, 0x1c000006 }, + { 0x0f802dc0, 0x1c000006 }, + { 0x0f802dc8, 0x1c000006 }, + { 0x0f802dd0, 0x1c000006 }, + { 0x0f802dd8, 0x1c000006 }, + { 0x09802e00, 0x54000001 }, + { 0x09002e02, 0x50000000 }, + { 0x09002e03, 0x4c000000 }, + { 0x09002e04, 0x50000000 }, + { 0x09002e05, 0x4c000000 }, + { 0x09802e06, 0x54000002 }, + { 0x09002e09, 0x50000000 }, + { 0x09002e0a, 0x4c000000 }, + { 0x09002e0b, 0x54000000 }, + { 0x09002e0c, 0x50000000 }, + { 0x09002e0d, 0x4c000000 }, + { 0x09802e0e, 0x54000008 }, + { 0x09002e17, 0x44000000 }, + { 0x09002e1c, 0x50000000 }, + { 0x09002e1d, 0x4c000000 }, + { 0x16802e80, 0x68000019 }, + { 0x16802e9b, 0x68000058 }, + { 0x16802f00, 0x680000d5 }, + { 0x09802ff0, 0x6800000b }, + { 0x09003000, 0x74000000 }, + { 0x09803001, 0x54000002 }, + { 0x09003004, 0x68000000 }, + { 0x16003005, 0x18000000 }, + { 0x09003006, 0x1c000000 }, + { 0x16003007, 0x38000000 }, + { 0x09003008, 0x58000000 }, + { 0x09003009, 0x48000000 }, + { 0x0900300a, 0x58000000 }, + { 0x0900300b, 0x48000000 }, + { 0x0900300c, 0x58000000 }, + { 0x0900300d, 0x48000000 }, + { 0x0900300e, 0x58000000 }, + { 0x0900300f, 0x48000000 }, + { 0x09003010, 0x58000000 }, + { 0x09003011, 0x48000000 }, + { 0x09803012, 0x68000001 }, + { 0x09003014, 0x58000000 }, + { 0x09003015, 0x48000000 }, + { 0x09003016, 0x58000000 }, + { 0x09003017, 0x48000000 }, + { 0x09003018, 0x58000000 }, + { 0x09003019, 0x48000000 }, + { 0x0900301a, 0x58000000 }, + { 0x0900301b, 0x48000000 }, + { 0x0900301c, 0x44000000 }, + { 0x0900301d, 0x58000000 }, + { 0x0980301e, 0x48000001 }, + { 0x09003020, 0x68000000 }, + { 0x16803021, 0x38000008 }, + { 0x1b80302a, 0x30000005 }, + { 0x09003030, 0x44000000 }, + { 0x09803031, 0x18000004 }, + { 0x09803036, 0x68000001 }, + { 0x16803038, 0x38000002 }, + { 0x1600303b, 0x18000000 }, + { 0x0900303c, 0x1c000000 }, + { 0x0900303d, 0x54000000 }, + { 0x0980303e, 0x68000001 }, + { 0x1a803041, 0x1c000055 }, + { 0x1b803099, 0x30000001 }, + { 0x0980309b, 0x60000001 }, + { 0x1a80309d, 0x18000001 }, + { 0x1a00309f, 0x1c000000 }, + { 0x090030a0, 0x44000000 }, + { 0x1d8030a1, 0x1c000059 }, + { 0x090030fb, 0x54000000 }, + { 0x090030fc, 0x18000000 }, + { 0x1d8030fd, 0x18000001 }, + { 0x1d0030ff, 0x1c000000 }, + { 0x03803105, 0x1c000027 }, + { 0x17803131, 0x1c00005d }, + { 0x09803190, 0x68000001 }, + { 0x09803192, 0x3c000003 }, + { 0x09803196, 0x68000009 }, + { 0x038031a0, 0x1c000017 }, + { 0x098031c0, 0x6800000f }, + { 0x1d8031f0, 0x1c00000f }, + { 0x17803200, 0x6800001e }, + { 0x09803220, 0x3c000009 }, + { 0x0980322a, 0x68000019 }, + { 0x09003250, 0x68000000 }, + { 0x09803251, 0x3c00000e }, + { 0x17803260, 0x6800001d }, + { 0x0980327e, 0x68000001 }, + { 0x09803280, 0x3c000009 }, + { 0x0980328a, 0x68000026 }, + { 0x098032b1, 0x3c00000e }, + { 0x098032c0, 0x6800003e }, + { 0x09803300, 0x680000ff }, + { 0x16803400, 0x1c0019b5 }, + { 0x09804dc0, 0x6800003f }, + { 0x16804e00, 0x1c0051bb }, + { 0x3c80a000, 0x1c000014 }, + { 0x3c00a015, 0x18000000 }, + { 0x3c80a016, 0x1c000476 }, + { 0x3c80a490, 0x68000036 }, + { 0x0980a700, 0x60000016 }, + { 0x0980a717, 0x18000003 }, + { 0x0980a720, 0x60000001 }, + { 0x3080a800, 0x1c000001 }, + { 0x3000a802, 0x28000000 }, + { 0x3080a803, 0x1c000002 }, + { 0x3000a806, 0x30000000 }, + { 0x3080a807, 0x1c000003 }, + { 0x3000a80b, 0x30000000 }, + { 0x3080a80c, 0x1c000016 }, + { 0x3080a823, 0x28000001 }, + { 0x3080a825, 0x30000001 }, + { 0x3000a827, 0x28000000 }, + { 0x3080a828, 0x68000003 }, + { 0x4080a840, 0x1c000033 }, + { 0x4080a874, 0x54000003 }, + { 0x1780ac00, 0x1c002ba3 }, + { 0x0980d800, 0x1000037f }, + { 0x0980db80, 0x1000007f }, + { 0x0980dc00, 0x100003ff }, + { 0x0980e000, 0x0c0018ff }, + { 0x1680f900, 0x1c00012d }, + { 0x1680fa30, 0x1c00003a }, + { 0x1680fa70, 0x1c000069 }, + { 0x2180fb00, 0x14000006 }, + { 0x0180fb13, 0x14000004 }, + { 0x1900fb1d, 0x1c000000 }, + { 0x1900fb1e, 0x30000000 }, + { 0x1980fb1f, 0x1c000009 }, + { 0x1900fb29, 0x64000000 }, + { 0x1980fb2a, 0x1c00000c }, + { 0x1980fb38, 0x1c000004 }, + { 0x1900fb3e, 0x1c000000 }, + { 0x1980fb40, 0x1c000001 }, + { 0x1980fb43, 0x1c000001 }, + { 0x1980fb46, 0x1c000009 }, + { 0x0080fb50, 0x1c000061 }, + { 0x0080fbd3, 0x1c00016a }, + { 0x0900fd3e, 0x58000000 }, + { 0x0900fd3f, 0x48000000 }, + { 0x0080fd50, 0x1c00003f }, + { 0x0080fd92, 0x1c000035 }, + { 0x0080fdf0, 0x1c00000b }, + { 0x0000fdfc, 0x5c000000 }, + { 0x0900fdfd, 0x68000000 }, + { 0x1b80fe00, 0x3000000f }, + { 0x0980fe10, 0x54000006 }, + { 0x0900fe17, 0x58000000 }, + { 0x0900fe18, 0x48000000 }, + { 0x0900fe19, 0x54000000 }, + { 0x1b80fe20, 0x30000003 }, + { 0x0900fe30, 0x54000000 }, + { 0x0980fe31, 0x44000001 }, + { 0x0980fe33, 0x40000001 }, + { 0x0900fe35, 0x58000000 }, + { 0x0900fe36, 0x48000000 }, + { 0x0900fe37, 0x58000000 }, + { 0x0900fe38, 0x48000000 }, + { 0x0900fe39, 0x58000000 }, + { 0x0900fe3a, 0x48000000 }, + { 0x0900fe3b, 0x58000000 }, + { 0x0900fe3c, 0x48000000 }, + { 0x0900fe3d, 0x58000000 }, + { 0x0900fe3e, 0x48000000 }, + { 0x0900fe3f, 0x58000000 }, + { 0x0900fe40, 0x48000000 }, + { 0x0900fe41, 0x58000000 }, + { 0x0900fe42, 0x48000000 }, + { 0x0900fe43, 0x58000000 }, + { 0x0900fe44, 0x48000000 }, + { 0x0980fe45, 0x54000001 }, + { 0x0900fe47, 0x58000000 }, + { 0x0900fe48, 0x48000000 }, + { 0x0980fe49, 0x54000003 }, + { 0x0980fe4d, 0x40000002 }, + { 0x0980fe50, 0x54000002 }, + { 0x0980fe54, 0x54000003 }, + { 0x0900fe58, 0x44000000 }, + { 0x0900fe59, 0x58000000 }, + { 0x0900fe5a, 0x48000000 }, + { 0x0900fe5b, 0x58000000 }, + { 0x0900fe5c, 0x48000000 }, + { 0x0900fe5d, 0x58000000 }, + { 0x0900fe5e, 0x48000000 }, + { 0x0980fe5f, 0x54000002 }, + { 0x0900fe62, 0x64000000 }, + { 0x0900fe63, 0x44000000 }, + { 0x0980fe64, 0x64000002 }, + { 0x0900fe68, 0x54000000 }, + { 0x0900fe69, 0x5c000000 }, + { 0x0980fe6a, 0x54000001 }, + { 0x0080fe70, 0x1c000004 }, + { 0x0080fe76, 0x1c000086 }, + { 0x0900feff, 0x04000000 }, + { 0x0980ff01, 0x54000002 }, + { 0x0900ff04, 0x5c000000 }, + { 0x0980ff05, 0x54000002 }, + { 0x0900ff08, 0x58000000 }, + { 0x0900ff09, 0x48000000 }, + { 0x0900ff0a, 0x54000000 }, + { 0x0900ff0b, 0x64000000 }, + { 0x0900ff0c, 0x54000000 }, + { 0x0900ff0d, 0x44000000 }, + { 0x0980ff0e, 0x54000001 }, + { 0x0980ff10, 0x34000009 }, + { 0x0980ff1a, 0x54000001 }, + { 0x0980ff1c, 0x64000002 }, + { 0x0980ff1f, 0x54000001 }, + { 0x2100ff21, 0x24000020 }, + { 0x2100ff22, 0x24000020 }, + { 0x2100ff23, 0x24000020 }, + { 0x2100ff24, 0x24000020 }, + { 0x2100ff25, 0x24000020 }, + { 0x2100ff26, 0x24000020 }, + { 0x2100ff27, 0x24000020 }, + { 0x2100ff28, 0x24000020 }, + { 0x2100ff29, 0x24000020 }, + { 0x2100ff2a, 0x24000020 }, + { 0x2100ff2b, 0x24000020 }, + { 0x2100ff2c, 0x24000020 }, + { 0x2100ff2d, 0x24000020 }, + { 0x2100ff2e, 0x24000020 }, + { 0x2100ff2f, 0x24000020 }, + { 0x2100ff30, 0x24000020 }, + { 0x2100ff31, 0x24000020 }, + { 0x2100ff32, 0x24000020 }, + { 0x2100ff33, 0x24000020 }, + { 0x2100ff34, 0x24000020 }, + { 0x2100ff35, 0x24000020 }, + { 0x2100ff36, 0x24000020 }, + { 0x2100ff37, 0x24000020 }, + { 0x2100ff38, 0x24000020 }, + { 0x2100ff39, 0x24000020 }, + { 0x2100ff3a, 0x24000020 }, + { 0x0900ff3b, 0x58000000 }, + { 0x0900ff3c, 0x54000000 }, + { 0x0900ff3d, 0x48000000 }, + { 0x0900ff3e, 0x60000000 }, + { 0x0900ff3f, 0x40000000 }, + { 0x0900ff40, 0x60000000 }, + { 0x2100ff41, 0x1400ffe0 }, + { 0x2100ff42, 0x1400ffe0 }, + { 0x2100ff43, 0x1400ffe0 }, + { 0x2100ff44, 0x1400ffe0 }, + { 0x2100ff45, 0x1400ffe0 }, + { 0x2100ff46, 0x1400ffe0 }, + { 0x2100ff47, 0x1400ffe0 }, + { 0x2100ff48, 0x1400ffe0 }, + { 0x2100ff49, 0x1400ffe0 }, + { 0x2100ff4a, 0x1400ffe0 }, + { 0x2100ff4b, 0x1400ffe0 }, + { 0x2100ff4c, 0x1400ffe0 }, + { 0x2100ff4d, 0x1400ffe0 }, + { 0x2100ff4e, 0x1400ffe0 }, + { 0x2100ff4f, 0x1400ffe0 }, + { 0x2100ff50, 0x1400ffe0 }, + { 0x2100ff51, 0x1400ffe0 }, + { 0x2100ff52, 0x1400ffe0 }, + { 0x2100ff53, 0x1400ffe0 }, + { 0x2100ff54, 0x1400ffe0 }, + { 0x2100ff55, 0x1400ffe0 }, + { 0x2100ff56, 0x1400ffe0 }, + { 0x2100ff57, 0x1400ffe0 }, + { 0x2100ff58, 0x1400ffe0 }, + { 0x2100ff59, 0x1400ffe0 }, + { 0x2100ff5a, 0x1400ffe0 }, + { 0x0900ff5b, 0x58000000 }, + { 0x0900ff5c, 0x64000000 }, + { 0x0900ff5d, 0x48000000 }, + { 0x0900ff5e, 0x64000000 }, + { 0x0900ff5f, 0x58000000 }, + { 0x0900ff60, 0x48000000 }, + { 0x0900ff61, 0x54000000 }, + { 0x0900ff62, 0x58000000 }, + { 0x0900ff63, 0x48000000 }, + { 0x0980ff64, 0x54000001 }, + { 0x1d80ff66, 0x1c000009 }, + { 0x0900ff70, 0x18000000 }, + { 0x1d80ff71, 0x1c00002c }, + { 0x0980ff9e, 0x18000001 }, + { 0x1780ffa0, 0x1c00001e }, + { 0x1780ffc2, 0x1c000005 }, + { 0x1780ffca, 0x1c000005 }, + { 0x1780ffd2, 0x1c000005 }, + { 0x1780ffda, 0x1c000002 }, + { 0x0980ffe0, 0x5c000001 }, + { 0x0900ffe2, 0x64000000 }, + { 0x0900ffe3, 0x60000000 }, + { 0x0900ffe4, 0x68000000 }, + { 0x0980ffe5, 0x5c000001 }, + { 0x0900ffe8, 0x68000000 }, + { 0x0980ffe9, 0x64000003 }, + { 0x0980ffed, 0x68000001 }, + { 0x0980fff9, 0x04000002 }, + { 0x0980fffc, 0x68000001 }, + { 0x23810000, 0x1c00000b }, + { 0x2381000d, 0x1c000019 }, + { 0x23810028, 0x1c000012 }, + { 0x2381003c, 0x1c000001 }, + { 0x2381003f, 0x1c00000e }, + { 0x23810050, 0x1c00000d }, + { 0x23810080, 0x1c00007a }, + { 0x09810100, 0x54000001 }, + { 0x09010102, 0x68000000 }, + { 0x09810107, 0x3c00002c }, + { 0x09810137, 0x68000008 }, + { 0x13810140, 0x38000034 }, + { 0x13810175, 0x3c000003 }, + { 0x13810179, 0x68000010 }, + { 0x1301018a, 0x3c000000 }, + { 0x29810300, 0x1c00001e }, + { 0x29810320, 0x3c000003 }, + { 0x12810330, 0x1c000010 }, + { 0x12010341, 0x38000000 }, + { 0x12810342, 0x1c000007 }, + { 0x1201034a, 0x38000000 }, + { 0x3b810380, 0x1c00001d }, + { 0x3b01039f, 0x54000000 }, + { 0x2a8103a0, 0x1c000023 }, + { 0x2a8103c8, 0x1c000007 }, + { 0x2a0103d0, 0x54000000 }, + { 0x2a8103d1, 0x38000004 }, + { 0x0d010400, 0x24000028 }, + { 0x0d010401, 0x24000028 }, + { 0x0d010402, 0x24000028 }, + { 0x0d010403, 0x24000028 }, + { 0x0d010404, 0x24000028 }, + { 0x0d010405, 0x24000028 }, + { 0x0d010406, 0x24000028 }, + { 0x0d010407, 0x24000028 }, + { 0x0d010408, 0x24000028 }, + { 0x0d010409, 0x24000028 }, + { 0x0d01040a, 0x24000028 }, + { 0x0d01040b, 0x24000028 }, + { 0x0d01040c, 0x24000028 }, + { 0x0d01040d, 0x24000028 }, + { 0x0d01040e, 0x24000028 }, + { 0x0d01040f, 0x24000028 }, + { 0x0d010410, 0x24000028 }, + { 0x0d010411, 0x24000028 }, + { 0x0d010412, 0x24000028 }, + { 0x0d010413, 0x24000028 }, + { 0x0d010414, 0x24000028 }, + { 0x0d010415, 0x24000028 }, + { 0x0d010416, 0x24000028 }, + { 0x0d010417, 0x24000028 }, + { 0x0d010418, 0x24000028 }, + { 0x0d010419, 0x24000028 }, + { 0x0d01041a, 0x24000028 }, + { 0x0d01041b, 0x24000028 }, + { 0x0d01041c, 0x24000028 }, + { 0x0d01041d, 0x24000028 }, + { 0x0d01041e, 0x24000028 }, + { 0x0d01041f, 0x24000028 }, + { 0x0d010420, 0x24000028 }, + { 0x0d010421, 0x24000028 }, + { 0x0d010422, 0x24000028 }, + { 0x0d010423, 0x24000028 }, + { 0x0d010424, 0x24000028 }, + { 0x0d010425, 0x24000028 }, + { 0x0d010426, 0x24000028 }, + { 0x0d010427, 0x24000028 }, + { 0x0d010428, 0x1400ffd8 }, + { 0x0d010429, 0x1400ffd8 }, + { 0x0d01042a, 0x1400ffd8 }, + { 0x0d01042b, 0x1400ffd8 }, + { 0x0d01042c, 0x1400ffd8 }, + { 0x0d01042d, 0x1400ffd8 }, + { 0x0d01042e, 0x1400ffd8 }, + { 0x0d01042f, 0x1400ffd8 }, + { 0x0d010430, 0x1400ffd8 }, + { 0x0d010431, 0x1400ffd8 }, + { 0x0d010432, 0x1400ffd8 }, + { 0x0d010433, 0x1400ffd8 }, + { 0x0d010434, 0x1400ffd8 }, + { 0x0d010435, 0x1400ffd8 }, + { 0x0d010436, 0x1400ffd8 }, + { 0x0d010437, 0x1400ffd8 }, + { 0x0d010438, 0x1400ffd8 }, + { 0x0d010439, 0x1400ffd8 }, + { 0x0d01043a, 0x1400ffd8 }, + { 0x0d01043b, 0x1400ffd8 }, + { 0x0d01043c, 0x1400ffd8 }, + { 0x0d01043d, 0x1400ffd8 }, + { 0x0d01043e, 0x1400ffd8 }, + { 0x0d01043f, 0x1400ffd8 }, + { 0x0d010440, 0x1400ffd8 }, + { 0x0d010441, 0x1400ffd8 }, + { 0x0d010442, 0x1400ffd8 }, + { 0x0d010443, 0x1400ffd8 }, + { 0x0d010444, 0x1400ffd8 }, + { 0x0d010445, 0x1400ffd8 }, + { 0x0d010446, 0x1400ffd8 }, + { 0x0d010447, 0x1400ffd8 }, + { 0x0d010448, 0x1400ffd8 }, + { 0x0d010449, 0x1400ffd8 }, + { 0x0d01044a, 0x1400ffd8 }, + { 0x0d01044b, 0x1400ffd8 }, + { 0x0d01044c, 0x1400ffd8 }, + { 0x0d01044d, 0x1400ffd8 }, + { 0x0d01044e, 0x1400ffd8 }, + { 0x0d01044f, 0x1400ffd8 }, + { 0x2e810450, 0x1c00002f }, + { 0x2c810480, 0x1c00001d }, + { 0x2c8104a0, 0x34000009 }, + { 0x0b810800, 0x1c000005 }, + { 0x0b010808, 0x1c000000 }, + { 0x0b81080a, 0x1c00002b }, + { 0x0b810837, 0x1c000001 }, + { 0x0b01083c, 0x1c000000 }, + { 0x0b01083f, 0x1c000000 }, + { 0x41810900, 0x1c000015 }, + { 0x41810916, 0x3c000003 }, + { 0x4101091f, 0x54000000 }, + { 0x1e010a00, 0x1c000000 }, + { 0x1e810a01, 0x30000002 }, + { 0x1e810a05, 0x30000001 }, + { 0x1e810a0c, 0x30000003 }, + { 0x1e810a10, 0x1c000003 }, + { 0x1e810a15, 0x1c000002 }, + { 0x1e810a19, 0x1c00001a }, + { 0x1e810a38, 0x30000002 }, + { 0x1e010a3f, 0x30000000 }, + { 0x1e810a40, 0x3c000007 }, + { 0x1e810a50, 0x54000008 }, + { 0x3e812000, 0x1c00036e }, + { 0x3e812400, 0x38000062 }, + { 0x3e812470, 0x54000003 }, + { 0x0981d000, 0x680000f5 }, + { 0x0981d100, 0x68000026 }, + { 0x0981d12a, 0x6800003a }, + { 0x0981d165, 0x28000001 }, + { 0x1b81d167, 0x30000002 }, + { 0x0981d16a, 0x68000002 }, + { 0x0981d16d, 0x28000005 }, + { 0x0981d173, 0x04000007 }, + { 0x1b81d17b, 0x30000007 }, + { 0x0981d183, 0x68000001 }, + { 0x1b81d185, 0x30000006 }, + { 0x0981d18c, 0x6800001d }, + { 0x1b81d1aa, 0x30000003 }, + { 0x0981d1ae, 0x6800002f }, + { 0x1381d200, 0x68000041 }, + { 0x1381d242, 0x30000002 }, + { 0x1301d245, 0x68000000 }, + { 0x0981d300, 0x68000056 }, + { 0x0981d360, 0x3c000011 }, + { 0x0981d400, 0x24000019 }, + { 0x0981d41a, 0x14000019 }, + { 0x0981d434, 0x24000019 }, + { 0x0981d44e, 0x14000006 }, + { 0x0981d456, 0x14000011 }, + { 0x0981d468, 0x24000019 }, + { 0x0981d482, 0x14000019 }, + { 0x0901d49c, 0x24000000 }, + { 0x0981d49e, 0x24000001 }, + { 0x0901d4a2, 0x24000000 }, + { 0x0981d4a5, 0x24000001 }, + { 0x0981d4a9, 0x24000003 }, + { 0x0981d4ae, 0x24000007 }, + { 0x0981d4b6, 0x14000003 }, + { 0x0901d4bb, 0x14000000 }, + { 0x0981d4bd, 0x14000006 }, + { 0x0981d4c5, 0x1400000a }, + { 0x0981d4d0, 0x24000019 }, + { 0x0981d4ea, 0x14000019 }, + { 0x0981d504, 0x24000001 }, + { 0x0981d507, 0x24000003 }, + { 0x0981d50d, 0x24000007 }, + { 0x0981d516, 0x24000006 }, + { 0x0981d51e, 0x14000019 }, + { 0x0981d538, 0x24000001 }, + { 0x0981d53b, 0x24000003 }, + { 0x0981d540, 0x24000004 }, + { 0x0901d546, 0x24000000 }, + { 0x0981d54a, 0x24000006 }, + { 0x0981d552, 0x14000019 }, + { 0x0981d56c, 0x24000019 }, + { 0x0981d586, 0x14000019 }, + { 0x0981d5a0, 0x24000019 }, + { 0x0981d5ba, 0x14000019 }, + { 0x0981d5d4, 0x24000019 }, + { 0x0981d5ee, 0x14000019 }, + { 0x0981d608, 0x24000019 }, + { 0x0981d622, 0x14000019 }, + { 0x0981d63c, 0x24000019 }, + { 0x0981d656, 0x14000019 }, + { 0x0981d670, 0x24000019 }, + { 0x0981d68a, 0x1400001b }, + { 0x0981d6a8, 0x24000018 }, + { 0x0901d6c1, 0x64000000 }, + { 0x0981d6c2, 0x14000018 }, + { 0x0901d6db, 0x64000000 }, + { 0x0981d6dc, 0x14000005 }, + { 0x0981d6e2, 0x24000018 }, + { 0x0901d6fb, 0x64000000 }, + { 0x0981d6fc, 0x14000018 }, + { 0x0901d715, 0x64000000 }, + { 0x0981d716, 0x14000005 }, + { 0x0981d71c, 0x24000018 }, + { 0x0901d735, 0x64000000 }, + { 0x0981d736, 0x14000018 }, + { 0x0901d74f, 0x64000000 }, + { 0x0981d750, 0x14000005 }, + { 0x0981d756, 0x24000018 }, + { 0x0901d76f, 0x64000000 }, + { 0x0981d770, 0x14000018 }, + { 0x0901d789, 0x64000000 }, + { 0x0981d78a, 0x14000005 }, + { 0x0981d790, 0x24000018 }, + { 0x0901d7a9, 0x64000000 }, + { 0x0981d7aa, 0x14000018 }, + { 0x0901d7c3, 0x64000000 }, + { 0x0981d7c4, 0x14000005 }, + { 0x0901d7ca, 0x24000000 }, + { 0x0901d7cb, 0x14000000 }, + { 0x0981d7ce, 0x34000031 }, + { 0x16820000, 0x1c00a6d6 }, + { 0x1682f800, 0x1c00021d }, + { 0x090e0001, 0x04000000 }, + { 0x098e0020, 0x0400005f }, + { 0x1b8e0100, 0x300000ef }, + { 0x098f0000, 0x0c00fffd }, + { 0x09900000, 0x0c00fffd }, +}; diff --git a/external-libs/tinyxml/build/Makefile b/external-libs/tinyxml/build/Makefile new file mode 100644 index 0000000..222b452 --- /dev/null +++ b/external-libs/tinyxml/build/Makefile @@ -0,0 +1,53 @@ +# Linux, Mac, MinGW, Cygwin: 'make' +# PS3: 'make platform=ps3' + +platform := linux +ifneq ($(shell uname | grep -i darwin),) +platform := mac +else ifneq ($(or $(shell uname | grep -i cygwin),$(shell uname | grep -i mingw)),) +platform := mingw +endif + +ifneq ($(platform), ps3) +compiler := g++ +linker := ar +else +compiler := ppu-lv2-g++ +linker := ppu-lv2-ar +endif +outPath := $(platform)/ + +compilerFlags += -Wall -c -O2 +ifeq ($(platform),mac) +compilerFlags += -arch i386 -arch ppc +endif + +linkerFlags += rcs +libName := tinyxml +sources := tinyxml.cpp tinyxmlparser.cpp tinyxmlerror.cpp tinystr.cpp +sourcePath := ./ +tmpPath := $(outPath)tmp/ + +sources := $(addprefix $(sourcePath), $(sources)) +objPath := $(tmpPath)$(libName)/ +objs := $(addsuffix .o, $(addprefix $(objPath), $(basename $(notdir $(sources))))) +lib := $(outPath)lib$(libName).a + +vpath %.cpp $(sourcePath) + +all: makeDirs $(objs) $(lib) + +makeDirs: + @mkdir -p $(outPath) + @mkdir -p $(objPath) + +$(objPath)%.o : %.cpp + $(compiler) $(compilerFlags) -o $@ $< + +# ar rcs lib.a obj1 obj2 ... +$(lib) : $(objs) + $(linker) $(linkerFlags) $(lib) $(objs) + +clean: + @rm -rf $(objPath) + @rm -f $(lib) \ No newline at end of file diff --git a/external-libs/tinyxml/lib/linux/libtinyxml.a b/external-libs/tinyxml/lib/linux/libtinyxml.a new file mode 100644 index 0000000..38536b5 Binary files /dev/null and b/external-libs/tinyxml/lib/linux/libtinyxml.a differ diff --git a/external-libs/tinyxml/lib/mac/libtinyxml.a b/external-libs/tinyxml/lib/mac/libtinyxml.a new file mode 100644 index 0000000..c2a3e3c Binary files /dev/null and b/external-libs/tinyxml/lib/mac/libtinyxml.a differ diff --git a/external-libs/tinyxml/lib/mingw/libtinyxml.a b/external-libs/tinyxml/lib/mingw/libtinyxml.a new file mode 100644 index 0000000..2e1074f Binary files /dev/null and b/external-libs/tinyxml/lib/mingw/libtinyxml.a differ diff --git a/external-libs/tinyxml/lib/ps3/libtinyxml.a b/external-libs/tinyxml/lib/ps3/libtinyxml.a new file mode 100644 index 0000000..bf7ffe6 Binary files /dev/null and b/external-libs/tinyxml/lib/ps3/libtinyxml.a differ diff --git a/external-libs/tinyxml/lib/vc8/tinyxml.lib b/external-libs/tinyxml/lib/vc8/tinyxml.lib new file mode 100644 index 0000000..1b9508a Binary files /dev/null and b/external-libs/tinyxml/lib/vc8/tinyxml.lib differ diff --git a/external-libs/tinyxml/lib/vc9/tinyxml.lib b/external-libs/tinyxml/lib/vc9/tinyxml.lib new file mode 100644 index 0000000..79b0930 Binary files /dev/null and b/external-libs/tinyxml/lib/vc9/tinyxml.lib differ diff --git a/external-libs/tinyxml/tinystr.h b/external-libs/tinyxml/tinystr.h new file mode 100644 index 0000000..3c2aa9d --- /dev/null +++ b/external-libs/tinyxml/tinystr.h @@ -0,0 +1,319 @@ +/* +www.sourceforge.net/projects/tinyxml +Original file by Yves Berquin. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and +must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. +*/ + +/* + * THIS FILE WAS ALTERED BY Tyge Lovset, 7. April 2005. + * + * - completely rewritten. compact, clean, and fast implementation. + * - sizeof(TiXmlString) = pointer size (4 bytes on 32-bit systems) + * - fixed reserve() to work as per specification. + * - fixed buggy compares operator==(), operator<(), and operator>() + * - fixed operator+=() to take a const ref argument, following spec. + * - added "copy" constructor with length, and most compare operators. + * - added swap(), clear(), size(), capacity(), operator+(). + */ + +#ifndef TIXML_USE_STL + +#ifndef TIXML_STRING_INCLUDED +#define TIXML_STRING_INCLUDED + +#include +#include + +/* The support for explicit isn't that universal, and it isn't really + required - it is used to check that the TiXmlString class isn't incorrectly + used. Be nice to old compilers and macro it here: +*/ +#if defined(_MSC_VER) && (_MSC_VER >= 1200 ) + // Microsoft visual studio, version 6 and higher. + #define TIXML_EXPLICIT explicit +#elif defined(__GNUC__) && (__GNUC__ >= 3 ) + // GCC version 3 and higher.s + #define TIXML_EXPLICIT explicit +#else + #define TIXML_EXPLICIT +#endif + + +/* + TiXmlString is an emulation of a subset of the std::string template. + Its purpose is to allow compiling TinyXML on compilers with no or poor STL support. + Only the member functions relevant to the TinyXML project have been implemented. + The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase + a string and there's no more room, we allocate a buffer twice as big as we need. +*/ +class TiXmlString +{ + public : + // The size type used + typedef size_t size_type; + + // Error value for find primitive + static const size_type npos; // = -1; + + + // TiXmlString empty constructor + TiXmlString () : rep_(&nullrep_) + { + } + + // TiXmlString copy constructor + TiXmlString ( const TiXmlString & copy) : rep_(0) + { + init(copy.length()); + memcpy(start(), copy.data(), length()); + } + + // TiXmlString constructor, based on a string + TIXML_EXPLICIT TiXmlString ( const char * copy) : rep_(0) + { + init( static_cast( strlen(copy) )); + memcpy(start(), copy, length()); + } + + // TiXmlString constructor, based on a string + TIXML_EXPLICIT TiXmlString ( const char * str, size_type len) : rep_(0) + { + init(len); + memcpy(start(), str, len); + } + + // TiXmlString destructor + ~TiXmlString () + { + quit(); + } + + // = operator + TiXmlString& operator = (const char * copy) + { + return assign( copy, (size_type)strlen(copy)); + } + + // = operator + TiXmlString& operator = (const TiXmlString & copy) + { + return assign(copy.start(), copy.length()); + } + + + // += operator. Maps to append + TiXmlString& operator += (const char * suffix) + { + return append(suffix, static_cast( strlen(suffix) )); + } + + // += operator. Maps to append + TiXmlString& operator += (char single) + { + return append(&single, 1); + } + + // += operator. Maps to append + TiXmlString& operator += (const TiXmlString & suffix) + { + return append(suffix.data(), suffix.length()); + } + + + // Convert a TiXmlString into a null-terminated char * + const char * c_str () const { return rep_->str; } + + // Convert a TiXmlString into a char * (need not be null terminated). + const char * data () const { return rep_->str; } + + // Return the length of a TiXmlString + size_type length () const { return rep_->size; } + + // Alias for length() + size_type size () const { return rep_->size; } + + // Checks if a TiXmlString is empty + bool empty () const { return rep_->size == 0; } + + // Return capacity of string + size_type capacity () const { return rep_->capacity; } + + + // single char extraction + const char& at (size_type index) const + { + assert( index < length() ); + return rep_->str[ index ]; + } + + // [] operator + char& operator [] (size_type index) const + { + assert( index < length() ); + return rep_->str[ index ]; + } + + // find a char in a string. Return TiXmlString::npos if not found + size_type find (char lookup) const + { + return find(lookup, 0); + } + + // find a char in a string from an offset. Return TiXmlString::npos if not found + size_type find (char tofind, size_type offset) const + { + if (offset >= length()) return npos; + + for (const char* p = c_str() + offset; *p != '\0'; ++p) + { + if (*p == tofind) return static_cast< size_type >( p - c_str() ); + } + return npos; + } + + void clear () + { + //Lee: + //The original was just too strange, though correct: + // TiXmlString().swap(*this); + //Instead use the quit & re-init: + quit(); + init(0,0); + } + + /* Function to reserve a big amount of data when we know we'll need it. Be aware that this + function DOES NOT clear the content of the TiXmlString if any exists. + */ + void reserve (size_type cap); + + TiXmlString& assign (const char* str, size_type len); + + TiXmlString& append (const char* str, size_type len); + + void swap (TiXmlString& other) + { + Rep* r = rep_; + rep_ = other.rep_; + other.rep_ = r; + } + + private: + + void init(size_type sz) { init(sz, sz); } + void set_size(size_type sz) { rep_->str[ rep_->size = sz ] = '\0'; } + char* start() const { return rep_->str; } + char* finish() const { return rep_->str + rep_->size; } + + struct Rep + { + size_type size, capacity; + char str[1]; + }; + + void init(size_type sz, size_type cap) + { + if (cap) + { + // Lee: the original form: + // rep_ = static_cast(operator new(sizeof(Rep) + cap)); + // doesn't work in some cases of new being overloaded. Switching + // to the normal allocation, although use an 'int' for systems + // that are overly picky about structure alignment. + const size_type bytesNeeded = sizeof(Rep) + cap; + const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int ); + rep_ = reinterpret_cast( new int[ intsNeeded ] ); + + rep_->str[ rep_->size = sz ] = '\0'; + rep_->capacity = cap; + } + else + { + rep_ = &nullrep_; + } + } + + void quit() + { + if (rep_ != &nullrep_) + { + // The rep_ is really an array of ints. (see the allocator, above). + // Cast it back before delete, so the compiler won't incorrectly call destructors. + delete [] ( reinterpret_cast( rep_ ) ); + } + } + + Rep * rep_; + static Rep nullrep_; + +} ; + + +inline bool operator == (const TiXmlString & a, const TiXmlString & b) +{ + return ( a.length() == b.length() ) // optimization on some platforms + && ( strcmp(a.c_str(), b.c_str()) == 0 ); // actual compare +} +inline bool operator < (const TiXmlString & a, const TiXmlString & b) +{ + return strcmp(a.c_str(), b.c_str()) < 0; +} + +inline bool operator != (const TiXmlString & a, const TiXmlString & b) { return !(a == b); } +inline bool operator > (const TiXmlString & a, const TiXmlString & b) { return b < a; } +inline bool operator <= (const TiXmlString & a, const TiXmlString & b) { return !(b < a); } +inline bool operator >= (const TiXmlString & a, const TiXmlString & b) { return !(a < b); } + +inline bool operator == (const TiXmlString & a, const char* b) { return strcmp(a.c_str(), b) == 0; } +inline bool operator == (const char* a, const TiXmlString & b) { return b == a; } +inline bool operator != (const TiXmlString & a, const char* b) { return !(a == b); } +inline bool operator != (const char* a, const TiXmlString & b) { return !(b == a); } + +TiXmlString operator + (const TiXmlString & a, const TiXmlString & b); +TiXmlString operator + (const TiXmlString & a, const char* b); +TiXmlString operator + (const char* a, const TiXmlString & b); + + +/* + TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString. + Only the operators that we need for TinyXML have been developped. +*/ +class TiXmlOutStream : public TiXmlString +{ +public : + + // TiXmlOutStream << operator. + TiXmlOutStream & operator << (const TiXmlString & in) + { + *this += in; + return *this; + } + + // TiXmlOutStream << operator. + TiXmlOutStream & operator << (const char * in) + { + *this += in; + return *this; + } + +} ; + +#endif // TIXML_STRING_INCLUDED +#endif // TIXML_USE_STL diff --git a/external-libs/tinyxml/tinyxml.h b/external-libs/tinyxml/tinyxml.h new file mode 100644 index 0000000..c6f40cc --- /dev/null +++ b/external-libs/tinyxml/tinyxml.h @@ -0,0 +1,1802 @@ +/* +www.sourceforge.net/projects/tinyxml +Original code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinninglizard.com) + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and +must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. +*/ + + +#ifndef TINYXML_INCLUDED +#define TINYXML_INCLUDED + +#ifdef _MSC_VER +#pragma warning( push ) +#pragma warning( disable : 4530 ) +#pragma warning( disable : 4786 ) +#endif + +#include +#include +#include +#include +#include + +// Help out windows: +#if defined( _DEBUG ) && !defined( DEBUG ) +#define DEBUG +#endif + +#ifdef TIXML_USE_STL + #include + #include + #include + #define TIXML_STRING std::string +#else + #include "tinystr.h" + #define TIXML_STRING TiXmlString +#endif + +// Deprecated library function hell. Compilers want to use the +// new safe versions. This probably doesn't fully address the problem, +// but it gets closer. There are too many compilers for me to fully +// test. If you get compilation troubles, undefine TIXML_SAFE +#define TIXML_SAFE + +#ifdef TIXML_SAFE + #if defined(_MSC_VER) && (_MSC_VER >= 1400 ) + // Microsoft visual studio, version 2005 and higher. + #define TIXML_SNPRINTF _snprintf_s + #define TIXML_SNSCANF _snscanf_s + #define TIXML_SSCANF sscanf_s + #elif defined(_MSC_VER) && (_MSC_VER >= 1200 ) + // Microsoft visual studio, version 6 and higher. + //#pragma message( "Using _sn* functions." ) + #define TIXML_SNPRINTF _snprintf + #define TIXML_SNSCANF _snscanf + #define TIXML_SSCANF sscanf + #elif defined(__GNUC__) && (__GNUC__ >= 3 ) + // GCC version 3 and higher.s + //#warning( "Using sn* functions." ) + #define TIXML_SNPRINTF snprintf + #define TIXML_SNSCANF snscanf + #define TIXML_SSCANF sscanf + #else + #define TIXML_SSCANF sscanf + #endif +#endif + +class TiXmlDocument; +class TiXmlElement; +class TiXmlComment; +class TiXmlUnknown; +class TiXmlAttribute; +class TiXmlText; +class TiXmlDeclaration; +class TiXmlParsingData; + +const int TIXML_MAJOR_VERSION = 2; +const int TIXML_MINOR_VERSION = 5; +const int TIXML_PATCH_VERSION = 3; + +/* Internal structure for tracking location of items + in the XML file. +*/ +struct TiXmlCursor +{ + TiXmlCursor() { Clear(); } + void Clear() { row = col = -1; } + + int row; // 0 based. + int col; // 0 based. +}; + + +/** + If you call the Accept() method, it requires being passed a TiXmlVisitor + class to handle callbacks. For nodes that contain other nodes (Document, Element) + you will get called with a VisitEnter/VisitExit pair. Nodes that are always leaves + are simple called with Visit(). + + If you return 'true' from a Visit method, recursive parsing will continue. If you return + false, no children of this node or its sibilings will be Visited. + + All flavors of Visit methods have a default implementation that returns 'true' (continue + visiting). You need to only override methods that are interesting to you. + + Generally Accept() is called on the TiXmlDocument, although all nodes suppert Visiting. + + You should never change the document from a callback. + + @sa TiXmlNode::Accept() +*/ +class TiXmlVisitor +{ +public: + virtual ~TiXmlVisitor() {} + + /// Visit a document. + virtual bool VisitEnter( const TiXmlDocument& /*doc*/ ) { return true; } + /// Visit a document. + virtual bool VisitExit( const TiXmlDocument& /*doc*/ ) { return true; } + + /// Visit an element. + virtual bool VisitEnter( const TiXmlElement& /*element*/, const TiXmlAttribute* /*firstAttribute*/ ) { return true; } + /// Visit an element. + virtual bool VisitExit( const TiXmlElement& /*element*/ ) { return true; } + + /// Visit a declaration + virtual bool Visit( const TiXmlDeclaration& /*declaration*/ ) { return true; } + /// Visit a text node + virtual bool Visit( const TiXmlText& /*text*/ ) { return true; } + /// Visit a comment node + virtual bool Visit( const TiXmlComment& /*comment*/ ) { return true; } + /// Visit an unknow node + virtual bool Visit( const TiXmlUnknown& /*unknown*/ ) { return true; } +}; + +// Only used by Attribute::Query functions +enum +{ + TIXML_SUCCESS, + TIXML_NO_ATTRIBUTE, + TIXML_WRONG_TYPE +}; + + +// Used by the parsing routines. +enum TiXmlEncoding +{ + TIXML_ENCODING_UNKNOWN, + TIXML_ENCODING_UTF8, + TIXML_ENCODING_LEGACY +}; + +const TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN; + +/** TiXmlBase is a base class for every class in TinyXml. + It does little except to establish that TinyXml classes + can be printed and provide some utility functions. + + In XML, the document and elements can contain + other elements and other types of nodes. + + @verbatim + A Document can contain: Element (container or leaf) + Comment (leaf) + Unknown (leaf) + Declaration( leaf ) + + An Element can contain: Element (container or leaf) + Text (leaf) + Attributes (not on tree) + Comment (leaf) + Unknown (leaf) + + A Decleration contains: Attributes (not on tree) + @endverbatim +*/ +class TiXmlBase +{ + friend class TiXmlNode; + friend class TiXmlElement; + friend class TiXmlDocument; + +public: + TiXmlBase() : userData(0) {} + virtual ~TiXmlBase() {} + + /** All TinyXml classes can print themselves to a filestream + or the string class (TiXmlString in non-STL mode, std::string + in STL mode.) Either or both cfile and str can be null. + + This is a formatted print, and will insert + tabs and newlines. + + (For an unformatted stream, use the << operator.) + */ + virtual void Print( FILE* cfile, int depth ) const = 0; + + /** The world does not agree on whether white space should be kept or + not. In order to make everyone happy, these global, static functions + are provided to set whether or not TinyXml will condense all white space + into a single space or not. The default is to condense. Note changing this + value is not thread safe. + */ + static void SetCondenseWhiteSpace( bool condense ) { condenseWhiteSpace = condense; } + + /// Return the current white space setting. + static bool IsWhiteSpaceCondensed() { return condenseWhiteSpace; } + + /** Return the position, in the original source file, of this node or attribute. + The row and column are 1-based. (That is the first row and first column is + 1,1). If the returns values are 0 or less, then the parser does not have + a row and column value. + + Generally, the row and column value will be set when the TiXmlDocument::Load(), + TiXmlDocument::LoadFile(), or any TiXmlNode::Parse() is called. It will NOT be set + when the DOM was created from operator>>. + + The values reflect the initial load. Once the DOM is modified programmatically + (by adding or changing nodes and attributes) the new values will NOT update to + reflect changes in the document. + + There is a minor performance cost to computing the row and column. Computation + can be disabled if TiXmlDocument::SetTabSize() is called with 0 as the value. + + @sa TiXmlDocument::SetTabSize() + */ + int Row() const { return location.row + 1; } + int Column() const { return location.col + 1; } ///< See Row() + + void SetUserData( void* user ) { userData = user; } ///< Set a pointer to arbitrary user data. + void* GetUserData() { return userData; } ///< Get a pointer to arbitrary user data. + const void* GetUserData() const { return userData; } ///< Get a pointer to arbitrary user data. + + // Table that returs, for a given lead byte, the total number of bytes + // in the UTF-8 sequence. + static const int utf8ByteTable[256]; + + virtual const char* Parse( const char* p, + TiXmlParsingData* data, + TiXmlEncoding encoding /*= TIXML_ENCODING_UNKNOWN */ ) = 0; + + /** Expands entities in a string. Note this should not contian the tag's '<', '>', etc, + or they will be transformed into entities! + */ + static void EncodeString( const TIXML_STRING& str, TIXML_STRING* out ); + + enum + { + TIXML_NO_ERROR = 0, + TIXML_ERROR, + TIXML_ERROR_OPENING_FILE, + TIXML_ERROR_OUT_OF_MEMORY, + TIXML_ERROR_PARSING_ELEMENT, + TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME, + TIXML_ERROR_READING_ELEMENT_VALUE, + TIXML_ERROR_READING_ATTRIBUTES, + TIXML_ERROR_PARSING_EMPTY, + TIXML_ERROR_READING_END_TAG, + TIXML_ERROR_PARSING_UNKNOWN, + TIXML_ERROR_PARSING_COMMENT, + TIXML_ERROR_PARSING_DECLARATION, + TIXML_ERROR_DOCUMENT_EMPTY, + TIXML_ERROR_EMBEDDED_NULL, + TIXML_ERROR_PARSING_CDATA, + TIXML_ERROR_DOCUMENT_TOP_ONLY, + + TIXML_ERROR_STRING_COUNT + }; + +protected: + + static const char* SkipWhiteSpace( const char*, TiXmlEncoding encoding ); + inline static bool IsWhiteSpace( char c ) + { + return ( isspace( (unsigned char) c ) || c == '\n' || c == '\r' ); + } + inline static bool IsWhiteSpace( int c ) + { + if ( c < 256 ) + return IsWhiteSpace( (char) c ); + return false; // Again, only truly correct for English/Latin...but usually works. + } + + #ifdef TIXML_USE_STL + static bool StreamWhiteSpace( std::istream * in, TIXML_STRING * tag ); + static bool StreamTo( std::istream * in, int character, TIXML_STRING * tag ); + #endif + + /* Reads an XML name into the string provided. Returns + a pointer just past the last character of the name, + or 0 if the function has an error. + */ + static const char* ReadName( const char* p, TIXML_STRING* name, TiXmlEncoding encoding ); + + /* Reads text. Returns a pointer past the given end tag. + Wickedly complex options, but it keeps the (sensitive) code in one place. + */ + static const char* ReadText( const char* in, // where to start + TIXML_STRING* text, // the string read + bool ignoreWhiteSpace, // whether to keep the white space + const char* endTag, // what ends this text + bool ignoreCase, // whether to ignore case in the end tag + TiXmlEncoding encoding ); // the current encoding + + // If an entity has been found, transform it into a character. + static const char* GetEntity( const char* in, char* value, int* length, TiXmlEncoding encoding ); + + // Get a character, while interpreting entities. + // The length can be from 0 to 4 bytes. + inline static const char* GetChar( const char* p, char* _value, int* length, TiXmlEncoding encoding ) + { + assert( p ); + if ( encoding == TIXML_ENCODING_UTF8 ) + { + *length = utf8ByteTable[ *((const unsigned char*)p) ]; + assert( *length >= 0 && *length < 5 ); + } + else + { + *length = 1; + } + + if ( *length == 1 ) + { + if ( *p == '&' ) + return GetEntity( p, _value, length, encoding ); + *_value = *p; + return p+1; + } + else if ( *length ) + { + //strncpy( _value, p, *length ); // lots of compilers don't like this function (unsafe), + // and the null terminator isn't needed + for( int i=0; p[i] && i<*length; ++i ) { + _value[i] = p[i]; + } + return p + (*length); + } + else + { + // Not valid text. + return 0; + } + } + + // Return true if the next characters in the stream are any of the endTag sequences. + // Ignore case only works for english, and should only be relied on when comparing + // to English words: StringEqual( p, "version", true ) is fine. + static bool StringEqual( const char* p, + const char* endTag, + bool ignoreCase, + TiXmlEncoding encoding ); + + static const char* errorString[ TIXML_ERROR_STRING_COUNT ]; + + TiXmlCursor location; + + /// Field containing a generic user pointer + void* userData; + + // None of these methods are reliable for any language except English. + // Good for approximation, not great for accuracy. + static int IsAlpha( unsigned char anyByte, TiXmlEncoding encoding ); + static int IsAlphaNum( unsigned char anyByte, TiXmlEncoding encoding ); + inline static int ToLower( int v, TiXmlEncoding encoding ) + { + if ( encoding == TIXML_ENCODING_UTF8 ) + { + if ( v < 128 ) return tolower( v ); + return v; + } + else + { + return tolower( v ); + } + } + static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length ); + +private: + TiXmlBase( const TiXmlBase& ); // not implemented. + void operator=( const TiXmlBase& base ); // not allowed. + + struct Entity + { + const char* str; + unsigned int strLength; + char chr; + }; + enum + { + NUM_ENTITY = 5, + MAX_ENTITY_LENGTH = 6 + + }; + static Entity entity[ NUM_ENTITY ]; + static bool condenseWhiteSpace; +}; + + +/** The parent class for everything in the Document Object Model. + (Except for attributes). + Nodes have siblings, a parent, and children. A node can be + in a document, or stand on its own. The type of a TiXmlNode + can be queried, and it can be cast to its more defined type. +*/ +class TiXmlNode : public TiXmlBase +{ + friend class TiXmlDocument; + friend class TiXmlElement; + +public: + #ifdef TIXML_USE_STL + + /** An input stream operator, for every class. Tolerant of newlines and + formatting, but doesn't expect them. + */ + friend std::istream& operator >> (std::istream& in, TiXmlNode& base); + + /** An output stream operator, for every class. Note that this outputs + without any newlines or formatting, as opposed to Print(), which + includes tabs and new lines. + + The operator<< and operator>> are not completely symmetric. Writing + a node to a stream is very well defined. You'll get a nice stream + of output, without any extra whitespace or newlines. + + But reading is not as well defined. (As it always is.) If you create + a TiXmlElement (for example) and read that from an input stream, + the text needs to define an element or junk will result. This is + true of all input streams, but it's worth keeping in mind. + + A TiXmlDocument will read nodes until it reads a root element, and + all the children of that root element. + */ + friend std::ostream& operator<< (std::ostream& out, const TiXmlNode& base); + + /// Appends the XML node or attribute to a std::string. + friend std::string& operator<< (std::string& out, const TiXmlNode& base ); + + #endif + + /** The types of XML nodes supported by TinyXml. (All the + unsupported types are picked up by UNKNOWN.) + */ + enum NodeType + { + DOCUMENT, + ELEMENT, + COMMENT, + UNKNOWN, + TEXT, + DECLARATION, + TYPECOUNT + }; + + virtual ~TiXmlNode(); + + /** The meaning of 'value' changes for the specific type of + TiXmlNode. + @verbatim + Document: filename of the xml file + Element: name of the element + Comment: the comment text + Unknown: the tag contents + Text: the text string + @endverbatim + + The subclasses will wrap this function. + */ + const char *Value() const { return value.c_str (); } + + #ifdef TIXML_USE_STL + /** Return Value() as a std::string. If you only use STL, + this is more efficient than calling Value(). + Only available in STL mode. + */ + const std::string& ValueStr() const { return value; } + #endif + + const TIXML_STRING& ValueTStr() const { return value; } + + /** Changes the value of the node. Defined as: + @verbatim + Document: filename of the xml file + Element: name of the element + Comment: the comment text + Unknown: the tag contents + Text: the text string + @endverbatim + */ + void SetValue(const char * _value) { value = _value;} + + #ifdef TIXML_USE_STL + /// STL std::string form. + void SetValue( const std::string& _value ) { value = _value; } + #endif + + /// Delete all the children of this node. Does not affect 'this'. + void Clear(); + + /// One step up the DOM. + TiXmlNode* Parent() { return parent; } + const TiXmlNode* Parent() const { return parent; } + + const TiXmlNode* FirstChild() const { return firstChild; } ///< The first child of this node. Will be null if there are no children. + TiXmlNode* FirstChild() { return firstChild; } + const TiXmlNode* FirstChild( const char * value ) const; ///< The first child of this node with the matching 'value'. Will be null if none found. + /// The first child of this node with the matching 'value'. Will be null if none found. + TiXmlNode* FirstChild( const char * _value ) { + // Call through to the const version - safe since nothing is changed. Exiting syntax: cast this to a const (always safe) + // call the method, cast the return back to non-const. + return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->FirstChild( _value )); + } + const TiXmlNode* LastChild() const { return lastChild; } /// The last child of this node. Will be null if there are no children. + TiXmlNode* LastChild() { return lastChild; } + + const TiXmlNode* LastChild( const char * value ) const; /// The last child of this node matching 'value'. Will be null if there are no children. + TiXmlNode* LastChild( const char * _value ) { + return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->LastChild( _value )); + } + + #ifdef TIXML_USE_STL + const TiXmlNode* FirstChild( const std::string& _value ) const { return FirstChild (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* FirstChild( const std::string& _value ) { return FirstChild (_value.c_str ()); } ///< STL std::string form. + const TiXmlNode* LastChild( const std::string& _value ) const { return LastChild (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* LastChild( const std::string& _value ) { return LastChild (_value.c_str ()); } ///< STL std::string form. + #endif + + /** An alternate way to walk the children of a node. + One way to iterate over nodes is: + @verbatim + for( child = parent->FirstChild(); child; child = child->NextSibling() ) + @endverbatim + + IterateChildren does the same thing with the syntax: + @verbatim + child = 0; + while( child = parent->IterateChildren( child ) ) + @endverbatim + + IterateChildren takes the previous child as input and finds + the next one. If the previous child is null, it returns the + first. IterateChildren will return null when done. + */ + const TiXmlNode* IterateChildren( const TiXmlNode* previous ) const; + TiXmlNode* IterateChildren( const TiXmlNode* previous ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->IterateChildren( previous ) ); + } + + /// This flavor of IterateChildren searches for children with a particular 'value' + const TiXmlNode* IterateChildren( const char * value, const TiXmlNode* previous ) const; + TiXmlNode* IterateChildren( const char * _value, const TiXmlNode* previous ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->IterateChildren( _value, previous ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) const { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form. + TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form. + #endif + + /** Add a new node related to this. Adds a child past the LastChild. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* InsertEndChild( const TiXmlNode& addThis ); + + + /** Add a new node related to this. Adds a child past the LastChild. + + NOTE: the node to be added is passed by pointer, and will be + henceforth owned (and deleted) by tinyXml. This method is efficient + and avoids an extra copy, but should be used with care as it + uses a different memory model than the other insert functions. + + @sa InsertEndChild + */ + TiXmlNode* LinkEndChild( TiXmlNode* addThis ); + + /** Add a new node related to this. Adds a child before the specified child. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis ); + + /** Add a new node related to this. Adds a child after the specified child. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* InsertAfterChild( TiXmlNode* afterThis, const TiXmlNode& addThis ); + + /** Replace a child of this node. + Returns a pointer to the new object or NULL if an error occured. + */ + TiXmlNode* ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis ); + + /// Delete a child of this node. + bool RemoveChild( TiXmlNode* removeThis ); + + /// Navigate to a sibling node. + const TiXmlNode* PreviousSibling() const { return prev; } + TiXmlNode* PreviousSibling() { return prev; } + + /// Navigate to a sibling node. + const TiXmlNode* PreviousSibling( const char * ) const; + TiXmlNode* PreviousSibling( const char *_prev ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->PreviousSibling( _prev ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlNode* PreviousSibling( const std::string& _value ) const { return PreviousSibling (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* PreviousSibling( const std::string& _value ) { return PreviousSibling (_value.c_str ()); } ///< STL std::string form. + const TiXmlNode* NextSibling( const std::string& _value) const { return NextSibling (_value.c_str ()); } ///< STL std::string form. + TiXmlNode* NextSibling( const std::string& _value) { return NextSibling (_value.c_str ()); } ///< STL std::string form. + #endif + + /// Navigate to a sibling node. + const TiXmlNode* NextSibling() const { return next; } + TiXmlNode* NextSibling() { return next; } + + /// Navigate to a sibling node with the given 'value'. + const TiXmlNode* NextSibling( const char * ) const; + TiXmlNode* NextSibling( const char* _next ) { + return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(this))->NextSibling( _next ) ); + } + + /** Convenience function to get through elements. + Calls NextSibling and ToElement. Will skip all non-Element + nodes. Returns 0 if there is not another element. + */ + const TiXmlElement* NextSiblingElement() const; + TiXmlElement* NextSiblingElement() { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->NextSiblingElement() ); + } + + /** Convenience function to get through elements. + Calls NextSibling and ToElement. Will skip all non-Element + nodes. Returns 0 if there is not another element. + */ + const TiXmlElement* NextSiblingElement( const char * ) const; + TiXmlElement* NextSiblingElement( const char *_next ) { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->NextSiblingElement( _next ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlElement* NextSiblingElement( const std::string& _value) const { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form. + TiXmlElement* NextSiblingElement( const std::string& _value) { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form. + #endif + + /// Convenience function to get through elements. + const TiXmlElement* FirstChildElement() const; + TiXmlElement* FirstChildElement() { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->FirstChildElement() ); + } + + /// Convenience function to get through elements. + const TiXmlElement* FirstChildElement( const char * _value ) const; + TiXmlElement* FirstChildElement( const char * _value ) { + return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(this))->FirstChildElement( _value ) ); + } + + #ifdef TIXML_USE_STL + const TiXmlElement* FirstChildElement( const std::string& _value ) const { return FirstChildElement (_value.c_str ()); } ///< STL std::string form. + TiXmlElement* FirstChildElement( const std::string& _value ) { return FirstChildElement (_value.c_str ()); } ///< STL std::string form. + #endif + + /** Query the type (as an enumerated value, above) of this node. + The possible types are: DOCUMENT, ELEMENT, COMMENT, + UNKNOWN, TEXT, and DECLARATION. + */ + int Type() const { return type; } + + /** Return a pointer to the Document this node lives in. + Returns null if not in a document. + */ + const TiXmlDocument* GetDocument() const; + TiXmlDocument* GetDocument() { + return const_cast< TiXmlDocument* >( (const_cast< const TiXmlNode* >(this))->GetDocument() ); + } + + /// Returns true if this node has no children. + bool NoChildren() const { return !firstChild; } + + virtual const TiXmlDocument* ToDocument() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlElement* ToElement() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlComment* ToComment() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlUnknown* ToUnknown() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlText* ToText() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual const TiXmlDeclaration* ToDeclaration() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + + virtual TiXmlDocument* ToDocument() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlElement* ToElement() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlComment* ToComment() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlUnknown* ToUnknown() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlText* ToText() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + virtual TiXmlDeclaration* ToDeclaration() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type. + + /** Create an exact duplicate of this node and return it. The memory must be deleted + by the caller. + */ + virtual TiXmlNode* Clone() const = 0; + + /** Accept a hierchical visit the nodes in the TinyXML DOM. Every node in the + XML tree will be conditionally visited and the host will be called back + via the TiXmlVisitor interface. + + This is essentially a SAX interface for TinyXML. (Note however it doesn't re-parse + the XML for the callbacks, so the performance of TinyXML is unchanged by using this + interface versus any other.) + + The interface has been based on ideas from: + + - http://www.saxproject.org/ + - http://c2.com/cgi/wiki?HierarchicalVisitorPattern + + Which are both good references for "visiting". + + An example of using Accept(): + @verbatim + TiXmlPrinter printer; + tinyxmlDoc.Accept( &printer ); + const char* xmlcstr = printer.CStr(); + @endverbatim + */ + virtual bool Accept( TiXmlVisitor* visitor ) const = 0; + +protected: + TiXmlNode( NodeType _type ); + + // Copy to the allocated object. Shared functionality between Clone, Copy constructor, + // and the assignment operator. + void CopyTo( TiXmlNode* target ) const; + + #ifdef TIXML_USE_STL + // The real work of the input operator. + virtual void StreamIn( std::istream* in, TIXML_STRING* tag ) = 0; + #endif + + // Figure out what is at *p, and parse it. Returns null if it is not an xml node. + TiXmlNode* Identify( const char* start, TiXmlEncoding encoding ); + + TiXmlNode* parent; + NodeType type; + + TiXmlNode* firstChild; + TiXmlNode* lastChild; + + TIXML_STRING value; + + TiXmlNode* prev; + TiXmlNode* next; + +private: + TiXmlNode( const TiXmlNode& ); // not implemented. + void operator=( const TiXmlNode& base ); // not allowed. +}; + + +/** An attribute is a name-value pair. Elements have an arbitrary + number of attributes, each with a unique name. + + @note The attributes are not TiXmlNodes, since they are not + part of the tinyXML document object model. There are other + suggested ways to look at this problem. +*/ +class TiXmlAttribute : public TiXmlBase +{ + friend class TiXmlAttributeSet; + +public: + /// Construct an empty attribute. + TiXmlAttribute() : TiXmlBase() + { + document = 0; + prev = next = 0; + } + + #ifdef TIXML_USE_STL + /// std::string constructor. + TiXmlAttribute( const std::string& _name, const std::string& _value ) + { + name = _name; + value = _value; + document = 0; + prev = next = 0; + } + #endif + + /// Construct an attribute with a name and value. + TiXmlAttribute( const char * _name, const char * _value ) + { + name = _name; + value = _value; + document = 0; + prev = next = 0; + } + + const char* Name() const { return name.c_str(); } ///< Return the name of this attribute. + const char* Value() const { return value.c_str(); } ///< Return the value of this attribute. + #ifdef TIXML_USE_STL + const std::string& ValueStr() const { return value; } ///< Return the value of this attribute. + #endif + int IntValue() const; ///< Return the value of this attribute, converted to an integer. + double DoubleValue() const; ///< Return the value of this attribute, converted to a double. + + // Get the tinyxml string representation + const TIXML_STRING& NameTStr() const { return name; } + + /** QueryIntValue examines the value string. It is an alternative to the + IntValue() method with richer error checking. + If the value is an integer, it is stored in 'value' and + the call returns TIXML_SUCCESS. If it is not + an integer, it returns TIXML_WRONG_TYPE. + + A specialized but useful call. Note that for success it returns 0, + which is the opposite of almost all other TinyXml calls. + */ + int QueryIntValue( int* _value ) const; + /// QueryDoubleValue examines the value string. See QueryIntValue(). + int QueryDoubleValue( double* _value ) const; + + void SetName( const char* _name ) { name = _name; } ///< Set the name of this attribute. + void SetValue( const char* _value ) { value = _value; } ///< Set the value. + + void SetIntValue( int _value ); ///< Set the value from an integer. + void SetDoubleValue( double _value ); ///< Set the value from a double. + + #ifdef TIXML_USE_STL + /// STL std::string form. + void SetName( const std::string& _name ) { name = _name; } + /// STL std::string form. + void SetValue( const std::string& _value ) { value = _value; } + #endif + + /// Get the next sibling attribute in the DOM. Returns null at end. + const TiXmlAttribute* Next() const; + TiXmlAttribute* Next() { + return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Next() ); + } + + /// Get the previous sibling attribute in the DOM. Returns null at beginning. + const TiXmlAttribute* Previous() const; + TiXmlAttribute* Previous() { + return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Previous() ); + } + + bool operator==( const TiXmlAttribute& rhs ) const { return rhs.name == name; } + bool operator<( const TiXmlAttribute& rhs ) const { return name < rhs.name; } + bool operator>( const TiXmlAttribute& rhs ) const { return name > rhs.name; } + + /* Attribute parsing starts: first letter of the name + returns: the next char after the value end quote + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + // Prints this Attribute to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const { + Print( cfile, depth, 0 ); + } + void Print( FILE* cfile, int depth, TIXML_STRING* str ) const; + + // [internal use] + // Set the document pointer so the attribute can report errors. + void SetDocument( TiXmlDocument* doc ) { document = doc; } + +private: + TiXmlAttribute( const TiXmlAttribute& ); // not implemented. + void operator=( const TiXmlAttribute& base ); // not allowed. + + TiXmlDocument* document; // A pointer back to a document, for error reporting. + TIXML_STRING name; + TIXML_STRING value; + TiXmlAttribute* prev; + TiXmlAttribute* next; +}; + + +/* A class used to manage a group of attributes. + It is only used internally, both by the ELEMENT and the DECLARATION. + + The set can be changed transparent to the Element and Declaration + classes that use it, but NOT transparent to the Attribute + which has to implement a next() and previous() method. Which makes + it a bit problematic and prevents the use of STL. + + This version is implemented with circular lists because: + - I like circular lists + - it demonstrates some independence from the (typical) doubly linked list. +*/ +class TiXmlAttributeSet +{ +public: + TiXmlAttributeSet(); + ~TiXmlAttributeSet(); + + void Add( TiXmlAttribute* attribute ); + void Remove( TiXmlAttribute* attribute ); + + const TiXmlAttribute* First() const { return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; } + TiXmlAttribute* First() { return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; } + const TiXmlAttribute* Last() const { return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; } + TiXmlAttribute* Last() { return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; } + + const TiXmlAttribute* Find( const char* _name ) const; + TiXmlAttribute* Find( const char* _name ) { + return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttributeSet* >(this))->Find( _name ) ); + } + #ifdef TIXML_USE_STL + const TiXmlAttribute* Find( const std::string& _name ) const; + TiXmlAttribute* Find( const std::string& _name ) { + return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttributeSet* >(this))->Find( _name ) ); + } + + #endif + +private: + //*ME: Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element), + //*ME: this class must be also use a hidden/disabled copy-constructor !!! + TiXmlAttributeSet( const TiXmlAttributeSet& ); // not allowed + void operator=( const TiXmlAttributeSet& ); // not allowed (as TiXmlAttribute) + + TiXmlAttribute sentinel; +}; + + +/** The element is a container class. It has a value, the element name, + and can contain other elements, text, comments, and unknowns. + Elements also contain an arbitrary number of attributes. +*/ +class TiXmlElement : public TiXmlNode +{ +public: + /// Construct an element. + TiXmlElement (const char * in_value); + + #ifdef TIXML_USE_STL + /// std::string constructor. + TiXmlElement( const std::string& _value ); + #endif + + TiXmlElement( const TiXmlElement& ); + + void operator=( const TiXmlElement& base ); + + virtual ~TiXmlElement(); + + /** Given an attribute name, Attribute() returns the value + for the attribute of that name, or null if none exists. + */ + const char* Attribute( const char* name ) const; + + /** Given an attribute name, Attribute() returns the value + for the attribute of that name, or null if none exists. + If the attribute exists and can be converted to an integer, + the integer value will be put in the return 'i', if 'i' + is non-null. + */ + const char* Attribute( const char* name, int* i ) const; + + /** Given an attribute name, Attribute() returns the value + for the attribute of that name, or null if none exists. + If the attribute exists and can be converted to an double, + the double value will be put in the return 'd', if 'd' + is non-null. + */ + const char* Attribute( const char* name, double* d ) const; + + /** QueryIntAttribute examines the attribute - it is an alternative to the + Attribute() method with richer error checking. + If the attribute is an integer, it is stored in 'value' and + the call returns TIXML_SUCCESS. If it is not + an integer, it returns TIXML_WRONG_TYPE. If the attribute + does not exist, then TIXML_NO_ATTRIBUTE is returned. + */ + int QueryIntAttribute( const char* name, int* _value ) const; + /// QueryDoubleAttribute examines the attribute - see QueryIntAttribute(). + int QueryDoubleAttribute( const char* name, double* _value ) const; + /// QueryFloatAttribute examines the attribute - see QueryIntAttribute(). + int QueryFloatAttribute( const char* name, float* _value ) const { + double d; + int result = QueryDoubleAttribute( name, &d ); + if ( result == TIXML_SUCCESS ) { + *_value = (float)d; + } + return result; + } + + #ifdef TIXML_USE_STL + /** Template form of the attribute query which will try to read the + attribute into the specified type. Very easy, very powerful, but + be careful to make sure to call this with the correct type. + + NOTE: This method doesn't work correctly for 'string' types. + + @return TIXML_SUCCESS, TIXML_WRONG_TYPE, or TIXML_NO_ATTRIBUTE + */ + template< typename T > int QueryValueAttribute( const std::string& name, T* outValue ) const + { + const TiXmlAttribute* node = attributeSet.Find( name ); + if ( !node ) + return TIXML_NO_ATTRIBUTE; + + std::stringstream sstream( node->ValueStr() ); + sstream >> *outValue; + if ( !sstream.fail() ) + return TIXML_SUCCESS; + return TIXML_WRONG_TYPE; + } + /* + This is - in theory - a bug fix for "QueryValueAtribute returns truncated std::string" + but template specialization is hard to get working cross-compiler. Leaving the bug for now. + + // The above will fail for std::string because the space character is used as a seperator. + // Specialize for strings. Bug [ 1695429 ] QueryValueAtribute returns truncated std::string + template<> int QueryValueAttribute( const std::string& name, std::string* outValue ) const + { + const TiXmlAttribute* node = attributeSet.Find( name ); + if ( !node ) + return TIXML_NO_ATTRIBUTE; + *outValue = node->ValueStr(); + return TIXML_SUCCESS; + } + */ + #endif + + /** Sets an attribute of name to a given value. The attribute + will be created if it does not exist, or changed if it does. + */ + void SetAttribute( const char* name, const char * _value ); + + #ifdef TIXML_USE_STL + const std::string* Attribute( const std::string& name ) const; + const std::string* Attribute( const std::string& name, int* i ) const; + const std::string* Attribute( const std::string& name, double* d ) const; + int QueryIntAttribute( const std::string& name, int* _value ) const; + int QueryDoubleAttribute( const std::string& name, double* _value ) const; + + /// STL std::string form. + void SetAttribute( const std::string& name, const std::string& _value ); + ///< STL std::string form. + void SetAttribute( const std::string& name, int _value ); + #endif + + /** Sets an attribute of name to a given value. The attribute + will be created if it does not exist, or changed if it does. + */ + void SetAttribute( const char * name, int value ); + + /** Sets an attribute of name to a given value. The attribute + will be created if it does not exist, or changed if it does. + */ + void SetDoubleAttribute( const char * name, double value ); + + /** Deletes an attribute with the given name. + */ + void RemoveAttribute( const char * name ); + #ifdef TIXML_USE_STL + void RemoveAttribute( const std::string& name ) { RemoveAttribute (name.c_str ()); } ///< STL std::string form. + #endif + + const TiXmlAttribute* FirstAttribute() const { return attributeSet.First(); } ///< Access the first attribute in this element. + TiXmlAttribute* FirstAttribute() { return attributeSet.First(); } + const TiXmlAttribute* LastAttribute() const { return attributeSet.Last(); } ///< Access the last attribute in this element. + TiXmlAttribute* LastAttribute() { return attributeSet.Last(); } + + /** Convenience function for easy access to the text inside an element. Although easy + and concise, GetText() is limited compared to getting the TiXmlText child + and accessing it directly. + + If the first child of 'this' is a TiXmlText, the GetText() + returns the character string of the Text node, else null is returned. + + This is a convenient method for getting the text of simple contained text: + @verbatim + This is text + const char* str = fooElement->GetText(); + @endverbatim + + 'str' will be a pointer to "This is text". + + Note that this function can be misleading. If the element foo was created from + this XML: + @verbatim + This is text + @endverbatim + + then the value of str would be null. The first child node isn't a text node, it is + another element. From this XML: + @verbatim + This is text + @endverbatim + GetText() will return "This is ". + + WARNING: GetText() accesses a child node - don't become confused with the + similarly named TiXmlHandle::Text() and TiXmlNode::ToText() which are + safe type casts on the referenced node. + */ + const char* GetText() const; + + /// Creates a new Element and returns it - the returned element is a copy. + virtual TiXmlNode* Clone() const; + // Print the Element to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + /* Attribtue parsing starts: next char past '<' + returns: next char past '>' + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlElement* ToElement() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlElement* ToElement() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* visitor ) const; + +protected: + + void CopyTo( TiXmlElement* target ) const; + void ClearThis(); // like clear, but initializes 'this' object as well + + // Used to be public [internal use] + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + /* [internal use] + Reads the "value" of the element -- another element, or text. + This should terminate with the current end tag. + */ + const char* ReadValue( const char* in, TiXmlParsingData* prevData, TiXmlEncoding encoding ); + +private: + + TiXmlAttributeSet attributeSet; +}; + + +/** An XML comment. +*/ +class TiXmlComment : public TiXmlNode +{ +public: + /// Constructs an empty comment. + TiXmlComment() : TiXmlNode( TiXmlNode::COMMENT ) {} + /// Construct a comment from text. + TiXmlComment( const char* _value ) : TiXmlNode( TiXmlNode::COMMENT ) { + SetValue( _value ); + } + TiXmlComment( const TiXmlComment& ); + void operator=( const TiXmlComment& base ); + + virtual ~TiXmlComment() {} + + /// Returns a copy of this Comment. + virtual TiXmlNode* Clone() const; + // Write this Comment to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + /* Attribtue parsing starts: at the ! of the !-- + returns: next char past '>' + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlComment* ToComment() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlComment* ToComment() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* visitor ) const; + +protected: + void CopyTo( TiXmlComment* target ) const; + + // used to be public + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif +// virtual void StreamOut( TIXML_OSTREAM * out ) const; + +private: + +}; + + +/** XML text. A text node can have 2 ways to output the next. "normal" output + and CDATA. It will default to the mode it was parsed from the XML file and + you generally want to leave it alone, but you can change the output mode with + SetCDATA() and query it with CDATA(). +*/ +class TiXmlText : public TiXmlNode +{ + friend class TiXmlElement; +public: + /** Constructor for text element. By default, it is treated as + normal, encoded text. If you want it be output as a CDATA text + element, set the parameter _cdata to 'true' + */ + TiXmlText (const char * initValue ) : TiXmlNode (TiXmlNode::TEXT) + { + SetValue( initValue ); + cdata = false; + } + virtual ~TiXmlText() {} + + #ifdef TIXML_USE_STL + /// Constructor. + TiXmlText( const std::string& initValue ) : TiXmlNode (TiXmlNode::TEXT) + { + SetValue( initValue ); + cdata = false; + } + #endif + + TiXmlText( const TiXmlText& copy ) : TiXmlNode( TiXmlNode::TEXT ) { copy.CopyTo( this ); } + void operator=( const TiXmlText& base ) { base.CopyTo( this ); } + + // Write this text object to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + /// Queries whether this represents text using a CDATA section. + bool CDATA() const { return cdata; } + /// Turns on or off a CDATA representation of text. + void SetCDATA( bool _cdata ) { cdata = _cdata; } + + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlText* ToText() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlText* ToText() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* content ) const; + +protected : + /// [internal use] Creates a new Element and returns it. + virtual TiXmlNode* Clone() const; + void CopyTo( TiXmlText* target ) const; + + bool Blank() const; // returns true if all white space and new lines + // [internal use] + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + bool cdata; // true if this should be input and output as a CDATA style text element +}; + + +/** In correct XML the declaration is the first entry in the file. + @verbatim + + @endverbatim + + TinyXml will happily read or write files without a declaration, + however. There are 3 possible attributes to the declaration: + version, encoding, and standalone. + + Note: In this version of the code, the attributes are + handled as special cases, not generic attributes, simply + because there can only be at most 3 and they are always the same. +*/ +class TiXmlDeclaration : public TiXmlNode +{ +public: + /// Construct an empty declaration. + TiXmlDeclaration() : TiXmlNode( TiXmlNode::DECLARATION ) {} + +#ifdef TIXML_USE_STL + /// Constructor. + TiXmlDeclaration( const std::string& _version, + const std::string& _encoding, + const std::string& _standalone ); +#endif + + /// Construct. + TiXmlDeclaration( const char* _version, + const char* _encoding, + const char* _standalone ); + + TiXmlDeclaration( const TiXmlDeclaration& copy ); + void operator=( const TiXmlDeclaration& copy ); + + virtual ~TiXmlDeclaration() {} + + /// Version. Will return an empty string if none was found. + const char *Version() const { return version.c_str (); } + /// Encoding. Will return an empty string if none was found. + const char *Encoding() const { return encoding.c_str (); } + /// Is this a standalone document? + const char *Standalone() const { return standalone.c_str (); } + + /// Creates a copy of this Declaration and returns it. + virtual TiXmlNode* Clone() const; + // Print this declaration to a FILE stream. + virtual void Print( FILE* cfile, int depth, TIXML_STRING* str ) const; + virtual void Print( FILE* cfile, int depth ) const { + Print( cfile, depth, 0 ); + } + + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlDeclaration* ToDeclaration() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlDeclaration* ToDeclaration() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* visitor ) const; + +protected: + void CopyTo( TiXmlDeclaration* target ) const; + // used to be public + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + + TIXML_STRING version; + TIXML_STRING encoding; + TIXML_STRING standalone; +}; + + +/** Any tag that tinyXml doesn't recognize is saved as an + unknown. It is a tag of text, but should not be modified. + It will be written back to the XML, unchanged, when the file + is saved. + + DTD tags get thrown into TiXmlUnknowns. +*/ +class TiXmlUnknown : public TiXmlNode +{ +public: + TiXmlUnknown() : TiXmlNode( TiXmlNode::UNKNOWN ) {} + virtual ~TiXmlUnknown() {} + + TiXmlUnknown( const TiXmlUnknown& copy ) : TiXmlNode( TiXmlNode::UNKNOWN ) { copy.CopyTo( this ); } + void operator=( const TiXmlUnknown& copy ) { copy.CopyTo( this ); } + + /// Creates a copy of this Unknown and returns it. + virtual TiXmlNode* Clone() const; + // Print this Unknown to a FILE stream. + virtual void Print( FILE* cfile, int depth ) const; + + virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); + + virtual const TiXmlUnknown* ToUnknown() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlUnknown* ToUnknown() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* content ) const; + +protected: + void CopyTo( TiXmlUnknown* target ) const; + + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + +}; + + +/** Always the top level node. A document binds together all the + XML pieces. It can be saved, loaded, and printed to the screen. + The 'value' of a document node is the xml file name. +*/ +class TiXmlDocument : public TiXmlNode +{ +public: + /// Create an empty document, that has no name. + TiXmlDocument(); + /// Create a document with a name. The name of the document is also the filename of the xml. + TiXmlDocument( const char * documentName ); + + #ifdef TIXML_USE_STL + /// Constructor. + TiXmlDocument( const std::string& documentName ); + #endif + + TiXmlDocument( const TiXmlDocument& copy ); + void operator=( const TiXmlDocument& copy ); + + virtual ~TiXmlDocument() {} + + /** Load a file using the current document value. + Returns true if successful. Will delete any existing + document data before loading. + */ + bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + /// Save a file using the current document value. Returns true if successful. + bool SaveFile() const; + /// Load a file using the given filename. Returns true if successful. + bool LoadFile( const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + /// Save a file using the given filename. Returns true if successful. + bool SaveFile( const char * filename ) const; + /** Load a file using the given FILE*. Returns true if successful. Note that this method + doesn't stream - the entire object pointed at by the FILE* + will be interpreted as an XML file. TinyXML doesn't stream in XML from the current + file location. Streaming may be added in the future. + */ + bool LoadFile( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + /// Save a file using the given FILE*. Returns true if successful. + bool SaveFile( FILE* ) const; + + #ifdef TIXML_USE_STL + bool LoadFile( const std::string& filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ) ///< STL std::string version. + { +// StringToBuffer f( filename ); +// return ( f.buffer && LoadFile( f.buffer, encoding )); + return LoadFile( filename.c_str(), encoding ); + } + bool SaveFile( const std::string& filename ) const ///< STL std::string version. + { +// StringToBuffer f( filename ); +// return ( f.buffer && SaveFile( f.buffer )); + return SaveFile( filename.c_str() ); + } + #endif + + /** Parse the given null terminated block of xml data. Passing in an encoding to this + method (either TIXML_ENCODING_LEGACY or TIXML_ENCODING_UTF8 will force TinyXml + to use that encoding, regardless of what TinyXml might otherwise try to detect. + */ + virtual const char* Parse( const char* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); + + /** Get the root element -- the only top level element -- of the document. + In well formed XML, there should only be one. TinyXml is tolerant of + multiple elements at the document level. + */ + const TiXmlElement* RootElement() const { return FirstChildElement(); } + TiXmlElement* RootElement() { return FirstChildElement(); } + + /** If an error occurs, Error will be set to true. Also, + - The ErrorId() will contain the integer identifier of the error (not generally useful) + - The ErrorDesc() method will return the name of the error. (very useful) + - The ErrorRow() and ErrorCol() will return the location of the error (if known) + */ + bool Error() const { return error; } + + /// Contains a textual (english) description of the error if one occurs. + const char * ErrorDesc() const { return errorDesc.c_str (); } + + /** Generally, you probably want the error string ( ErrorDesc() ). But if you + prefer the ErrorId, this function will fetch it. + */ + int ErrorId() const { return errorId; } + + /** Returns the location (if known) of the error. The first column is column 1, + and the first row is row 1. A value of 0 means the row and column wasn't applicable + (memory errors, for example, have no row/column) or the parser lost the error. (An + error in the error reporting, in that case.) + + @sa SetTabSize, Row, Column + */ + int ErrorRow() const { return errorLocation.row+1; } + int ErrorCol() const { return errorLocation.col+1; } ///< The column where the error occured. See ErrorRow() + + /** SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) + to report the correct values for row and column. It does not change the output + or input in any way. + + By calling this method, with a tab size + greater than 0, the row and column of each node and attribute is stored + when the file is loaded. Very useful for tracking the DOM back in to + the source file. + + The tab size is required for calculating the location of nodes. If not + set, the default of 4 is used. The tabsize is set per document. Setting + the tabsize to 0 disables row/column tracking. + + Note that row and column tracking is not supported when using operator>>. + + The tab size needs to be enabled before the parse or load. Correct usage: + @verbatim + TiXmlDocument doc; + doc.SetTabSize( 8 ); + doc.Load( "myfile.xml" ); + @endverbatim + + @sa Row, Column + */ + void SetTabSize( int _tabsize ) { tabsize = _tabsize; } + + int TabSize() const { return tabsize; } + + /** If you have handled the error, it can be reset with this call. The error + state is automatically cleared if you Parse a new XML block. + */ + void ClearError() { error = false; + errorId = 0; + errorDesc = ""; + errorLocation.row = errorLocation.col = 0; + //errorLocation.last = 0; + } + + /** Write the document to standard out using formatted printing ("pretty print"). */ + void Print() const { Print( stdout, 0 ); } + + /* Write the document to a string using formatted printing ("pretty print"). This + will allocate a character array (new char[]) and return it as a pointer. The + calling code pust call delete[] on the return char* to avoid a memory leak. + */ + //char* PrintToMemory() const; + + /// Print this Document to a FILE stream. + virtual void Print( FILE* cfile, int depth = 0 ) const; + // [internal use] + void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding ); + + virtual const TiXmlDocument* ToDocument() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + virtual TiXmlDocument* ToDocument() { return this; } ///< Cast to a more defined type. Will return null not of the requested type. + + /** Walk the XML tree visiting this node and all of its children. + */ + virtual bool Accept( TiXmlVisitor* content ) const; + +protected : + // [internal use] + virtual TiXmlNode* Clone() const; + #ifdef TIXML_USE_STL + virtual void StreamIn( std::istream * in, TIXML_STRING * tag ); + #endif + +private: + void CopyTo( TiXmlDocument* target ) const; + + bool error; + int errorId; + TIXML_STRING errorDesc; + int tabsize; + TiXmlCursor errorLocation; + bool useMicrosoftBOM; // the UTF-8 BOM were found when read. Note this, and try to write. +}; + + +/** + A TiXmlHandle is a class that wraps a node pointer with null checks; this is + an incredibly useful thing. Note that TiXmlHandle is not part of the TinyXml + DOM structure. It is a separate utility class. + + Take an example: + @verbatim + + + + + + + @endverbatim + + Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very + easy to write a *lot* of code that looks like: + + @verbatim + TiXmlElement* root = document.FirstChildElement( "Document" ); + if ( root ) + { + TiXmlElement* element = root->FirstChildElement( "Element" ); + if ( element ) + { + TiXmlElement* child = element->FirstChildElement( "Child" ); + if ( child ) + { + TiXmlElement* child2 = child->NextSiblingElement( "Child" ); + if ( child2 ) + { + // Finally do something useful. + @endverbatim + + And that doesn't even cover "else" cases. TiXmlHandle addresses the verbosity + of such code. A TiXmlHandle checks for null pointers so it is perfectly safe + and correct to use: + + @verbatim + TiXmlHandle docHandle( &document ); + TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).ToElement(); + if ( child2 ) + { + // do something useful + @endverbatim + + Which is MUCH more concise and useful. + + It is also safe to copy handles - internally they are nothing more than node pointers. + @verbatim + TiXmlHandle handleCopy = handle; + @endverbatim + + What they should not be used for is iteration: + + @verbatim + int i=0; + while ( true ) + { + TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", i ).ToElement(); + if ( !child ) + break; + // do something + ++i; + } + @endverbatim + + It seems reasonable, but it is in fact two embedded while loops. The Child method is + a linear walk to find the element, so this code would iterate much more than it needs + to. Instead, prefer: + + @verbatim + TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).FirstChild( "Child" ).ToElement(); + + for( child; child; child=child->NextSiblingElement() ) + { + // do something + } + @endverbatim +*/ +class TiXmlHandle +{ +public: + /// Create a handle from any node (at any depth of the tree.) This can be a null pointer. + TiXmlHandle( TiXmlNode* _node ) { this->node = _node; } + /// Copy constructor + TiXmlHandle( const TiXmlHandle& ref ) { this->node = ref.node; } + TiXmlHandle operator=( const TiXmlHandle& ref ) { this->node = ref.node; return *this; } + + /// Return a handle to the first child node. + TiXmlHandle FirstChild() const; + /// Return a handle to the first child node with the given name. + TiXmlHandle FirstChild( const char * value ) const; + /// Return a handle to the first child element. + TiXmlHandle FirstChildElement() const; + /// Return a handle to the first child element with the given name. + TiXmlHandle FirstChildElement( const char * value ) const; + + /** Return a handle to the "index" child with the given name. + The first child is 0, the second 1, etc. + */ + TiXmlHandle Child( const char* value, int index ) const; + /** Return a handle to the "index" child. + The first child is 0, the second 1, etc. + */ + TiXmlHandle Child( int index ) const; + /** Return a handle to the "index" child element with the given name. + The first child element is 0, the second 1, etc. Note that only TiXmlElements + are indexed: other types are not counted. + */ + TiXmlHandle ChildElement( const char* value, int index ) const; + /** Return a handle to the "index" child element. + The first child element is 0, the second 1, etc. Note that only TiXmlElements + are indexed: other types are not counted. + */ + TiXmlHandle ChildElement( int index ) const; + + #ifdef TIXML_USE_STL + TiXmlHandle FirstChild( const std::string& _value ) const { return FirstChild( _value.c_str() ); } + TiXmlHandle FirstChildElement( const std::string& _value ) const { return FirstChildElement( _value.c_str() ); } + + TiXmlHandle Child( const std::string& _value, int index ) const { return Child( _value.c_str(), index ); } + TiXmlHandle ChildElement( const std::string& _value, int index ) const { return ChildElement( _value.c_str(), index ); } + #endif + + /** Return the handle as a TiXmlNode. This may return null. + */ + TiXmlNode* ToNode() const { return node; } + /** Return the handle as a TiXmlElement. This may return null. + */ + TiXmlElement* ToElement() const { return ( ( node && node->ToElement() ) ? node->ToElement() : 0 ); } + /** Return the handle as a TiXmlText. This may return null. + */ + TiXmlText* ToText() const { return ( ( node && node->ToText() ) ? node->ToText() : 0 ); } + /** Return the handle as a TiXmlUnknown. This may return null. + */ + TiXmlUnknown* ToUnknown() const { return ( ( node && node->ToUnknown() ) ? node->ToUnknown() : 0 ); } + + /** @deprecated use ToNode. + Return the handle as a TiXmlNode. This may return null. + */ + TiXmlNode* Node() const { return ToNode(); } + /** @deprecated use ToElement. + Return the handle as a TiXmlElement. This may return null. + */ + TiXmlElement* Element() const { return ToElement(); } + /** @deprecated use ToText() + Return the handle as a TiXmlText. This may return null. + */ + TiXmlText* Text() const { return ToText(); } + /** @deprecated use ToUnknown() + Return the handle as a TiXmlUnknown. This may return null. + */ + TiXmlUnknown* Unknown() const { return ToUnknown(); } + +private: + TiXmlNode* node; +}; + + +/** Print to memory functionality. The TiXmlPrinter is useful when you need to: + + -# Print to memory (especially in non-STL mode) + -# Control formatting (line endings, etc.) + + When constructed, the TiXmlPrinter is in its default "pretty printing" mode. + Before calling Accept() you can call methods to control the printing + of the XML document. After TiXmlNode::Accept() is called, the printed document can + be accessed via the CStr(), Str(), and Size() methods. + + TiXmlPrinter uses the Visitor API. + @verbatim + TiXmlPrinter printer; + printer.SetIndent( "\t" ); + + doc.Accept( &printer ); + fprintf( stdout, "%s", printer.CStr() ); + @endverbatim +*/ +class TiXmlPrinter : public TiXmlVisitor +{ +public: + TiXmlPrinter() : depth( 0 ), simpleTextPrint( false ), + buffer(), indent( " " ), lineBreak( "\n" ) {} + + virtual bool VisitEnter( const TiXmlDocument& doc ); + virtual bool VisitExit( const TiXmlDocument& doc ); + + virtual bool VisitEnter( const TiXmlElement& element, const TiXmlAttribute* firstAttribute ); + virtual bool VisitExit( const TiXmlElement& element ); + + virtual bool Visit( const TiXmlDeclaration& declaration ); + virtual bool Visit( const TiXmlText& text ); + virtual bool Visit( const TiXmlComment& comment ); + virtual bool Visit( const TiXmlUnknown& unknown ); + + /** Set the indent characters for printing. By default 4 spaces + but tab (\t) is also useful, or null/empty string for no indentation. + */ + void SetIndent( const char* _indent ) { indent = _indent ? _indent : "" ; } + /// Query the indention string. + const char* Indent() { return indent.c_str(); } + /** Set the line breaking string. By default set to newline (\n). + Some operating systems prefer other characters, or can be + set to the null/empty string for no indenation. + */ + void SetLineBreak( const char* _lineBreak ) { lineBreak = _lineBreak ? _lineBreak : ""; } + /// Query the current line breaking string. + const char* LineBreak() { return lineBreak.c_str(); } + + /** Switch over to "stream printing" which is the most dense formatting without + linebreaks. Common when the XML is needed for network transmission. + */ + void SetStreamPrinting() { indent = ""; + lineBreak = ""; + } + /// Return the result. + const char* CStr() { return buffer.c_str(); } + /// Return the length of the result string. + size_t Size() { return buffer.size(); } + + #ifdef TIXML_USE_STL + /// Return the result. + const std::string& Str() { return buffer; } + #endif + +private: + void DoIndent() { + for( int i=0; i +#include +#include + +#include +class DAE; + +/** + * The accessor element declares an access pattern to one of the array elements: + * float_array, int_array, Name_array, bool_array, and IDREF_array. The accessor + * element describes access to arrays that are organized in either an interleaved + * or non-interleaved manner, depending on the offset and stride attributes. + */ +class domAccessor : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ACCESSOR; } + static daeInt ID() { return 609; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The count attribute indicates the number of times the array is accessed. + * Required attribute. + */ + domUint attrCount; +/** + * The offset attribute indicates the index of the first value to be read + * from the array. The default value is 0. Optional attribute. + */ + domUint attrOffset; +/** + * The source attribute indicates the location of the array to access using + * a URL expression. Required attribute. + */ + xsAnyURI attrSource; +/** + * The stride attribute indicates number of values to be considered a unit + * during each access to the array. The default value is 1, indicating that + * a single value is accessed. Optional attribute. + */ + domUint attrStride; + +protected: // Element +/** + * The accessor element may have any number of param elements. @see domParam + */ + domParam_Array elemParam_array; + +public: //Accessors and Mutators + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[0] = true; } + + /** + * Gets the offset attribute. + * @return Returns a domUint of the offset attribute. + */ + domUint getOffset() const { return attrOffset; } + /** + * Sets the offset attribute. + * @param atOffset The new value for the offset attribute. + */ + void setOffset( domUint atOffset ) { attrOffset = atOffset; _validAttributeArray[1] = true; } + + /** + * Gets the source attribute. + * @return Returns a xsAnyURI reference of the source attribute. + */ + xsAnyURI &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant xsAnyURI reference of the source attribute. + */ + const xsAnyURI &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const xsAnyURI &atSource ) { attrSource = atSource; _validAttributeArray[2] = true; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[2] = true; } + + /** + * Gets the stride attribute. + * @return Returns a domUint of the stride attribute. + */ + domUint getStride() const { return attrStride; } + /** + * Sets the stride attribute. + * @param atStride The new value for the stride attribute. + */ + void setStride( domUint atStride ) { attrStride = atStride; _validAttributeArray[3] = true; } + + /** + * Gets the param element array. + * @return Returns a reference to the array of param elements. + */ + domParam_Array &getParam_array() { return elemParam_array; } + /** + * Gets the param element array. + * @return Returns a constant reference to the array of param elements. + */ + const domParam_Array &getParam_array() const { return elemParam_array; } +protected: + /** + * Constructor + */ + domAccessor(DAE& dae) : daeElement(dae), attrCount(), attrOffset(), attrSource(dae, *this), attrStride(), elemParam_array() {} + /** + * Destructor + */ + virtual ~domAccessor() {} + /** + * Overloaded assignment operator + */ + virtual domAccessor &operator=( const domAccessor &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domAnimation.h b/include/1.4/dom/domAnimation.h new file mode 100644 index 0000000..fc1d233 --- /dev/null +++ b/include/1.4/dom/domAnimation.h @@ -0,0 +1,217 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domAnimation_h__ +#define __domAnimation_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * The animation element categorizes the declaration of animation information. + * The animation hierarchy contains elements that describe the animation’s + * key-frame data and sampler functions, ordered in such a way to group together + * animations that should be executed together. + */ +class domAnimation : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANIMATION; } + static daeInt ID() { return 651; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The animation element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The animation element may contain any number of source elements. @see + * domSource + */ + domSource_Array elemSource_array; +/** + * The animation element may contain any number of sampler elements. @see + * domSampler + */ + domSampler_Array elemSampler_array; +/** + * The animation element may contain any number of channel elements. @see + * domChannel + */ + domChannel_Array elemChannel_array; +/** + * The animation may be hierarchical and may contain any number of other + * animation elements. @see domAnimation + */ + domAnimation_Array elemAnimation_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the source element array. + * @return Returns a reference to the array of source elements. + */ + domSource_Array &getSource_array() { return elemSource_array; } + /** + * Gets the source element array. + * @return Returns a constant reference to the array of source elements. + */ + const domSource_Array &getSource_array() const { return elemSource_array; } + /** + * Gets the sampler element array. + * @return Returns a reference to the array of sampler elements. + */ + domSampler_Array &getSampler_array() { return elemSampler_array; } + /** + * Gets the sampler element array. + * @return Returns a constant reference to the array of sampler elements. + */ + const domSampler_Array &getSampler_array() const { return elemSampler_array; } + /** + * Gets the channel element array. + * @return Returns a reference to the array of channel elements. + */ + domChannel_Array &getChannel_array() { return elemChannel_array; } + /** + * Gets the channel element array. + * @return Returns a constant reference to the array of channel elements. + */ + const domChannel_Array &getChannel_array() const { return elemChannel_array; } + /** + * Gets the animation element array. + * @return Returns a reference to the array of animation elements. + */ + domAnimation_Array &getAnimation_array() { return elemAnimation_array; } + /** + * Gets the animation element array. + * @return Returns a constant reference to the array of animation elements. + */ + const domAnimation_Array &getAnimation_array() const { return elemAnimation_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domAnimation(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemSource_array(), elemSampler_array(), elemChannel_array(), elemAnimation_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domAnimation() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domAnimation &operator=( const domAnimation &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domAnimation_clip.h b/include/1.4/dom/domAnimation_clip.h new file mode 100644 index 0000000..451bc75 --- /dev/null +++ b/include/1.4/dom/domAnimation_clip.h @@ -0,0 +1,179 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domAnimation_clip_h__ +#define __domAnimation_clip_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The animation_clip element defines a section of the animation curves to + * be used together as an animation clip. + */ +class domAnimation_clip : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANIMATION_CLIP; } + static daeInt ID() { return 652; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The start attribute is the time in seconds of the beginning of the clip. + * This time is the same as that used in the key-frame data and is used to + * determine which set of key-frames will be included in the clip. The start + * time does not specify when the clip will be played. If the time falls + * between two keyframes of a referenced animation, an interpolated value + * should be used. The default value is 0.0. Optional attribute. + */ + xsDouble attrStart; +/** + * The end attribute is the time in seconds of the end of the clip. This + * is used in the same way as the start time. If end is not specified, the + * value is taken to be the end time of the longest animation. Optional + * attribute. + */ + xsDouble attrEnd; + +protected: // Elements +/** + * The animation_clip element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The animation_clip must instance at least one animation element. @see domInstance_animation + */ + domInstanceWithExtra_Array elemInstance_animation_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the start attribute. + * @return Returns a xsDouble of the start attribute. + */ + xsDouble getStart() const { return attrStart; } + /** + * Sets the start attribute. + * @param atStart The new value for the start attribute. + */ + void setStart( xsDouble atStart ) { attrStart = atStart; _validAttributeArray[2] = true; } + + /** + * Gets the end attribute. + * @return Returns a xsDouble of the end attribute. + */ + xsDouble getEnd() const { return attrEnd; } + /** + * Sets the end attribute. + * @param atEnd The new value for the end attribute. + */ + void setEnd( xsDouble atEnd ) { attrEnd = atEnd; _validAttributeArray[3] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the instance_animation element array. + * @return Returns a reference to the array of instance_animation elements. + */ + domInstanceWithExtra_Array &getInstance_animation_array() { return elemInstance_animation_array; } + /** + * Gets the instance_animation element array. + * @return Returns a constant reference to the array of instance_animation elements. + */ + const domInstanceWithExtra_Array &getInstance_animation_array() const { return elemInstance_animation_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domAnimation_clip(DAE& dae) : daeElement(dae), attrId(), attrName(), attrStart(), attrEnd(), elemAsset(), elemInstance_animation_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domAnimation_clip() {} + /** + * Overloaded assignment operator + */ + virtual domAnimation_clip &operator=( const domAnimation_clip &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domAsset.h b/include/1.4/dom/domAsset.h new file mode 100644 index 0000000..c93fab3 --- /dev/null +++ b/include/1.4/dom/domAsset.h @@ -0,0 +1,1106 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domAsset_h__ +#define __domAsset_h__ + +#include +#include +#include + +class DAE; + +/** + * The asset element defines asset management information regarding its parent + * element. + */ +class domAsset : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ASSET; } + static daeInt ID() { return 664; } + virtual daeInt typeID() const { return ID(); } +public: + class domContributor; + + typedef daeSmartRef domContributorRef; + typedef daeTArray domContributor_Array; + +/** + * The contributor element defines authoring information for asset management + */ + class domContributor : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONTRIBUTOR; } + static daeInt ID() { return 665; } + virtual daeInt typeID() const { return ID(); } + public: + class domAuthor; + + typedef daeSmartRef domAuthorRef; + typedef daeTArray domAuthor_Array; + +/** + * The author element contains a string with the author's name. There may + * be only one author element. + */ + class domAuthor : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::AUTHOR; } + static daeInt ID() { return 666; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domAuthor(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domAuthor() {} + /** + * Overloaded assignment operator + */ + virtual domAuthor &operator=( const domAuthor &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domAuthoring_tool; + + typedef daeSmartRef domAuthoring_toolRef; + typedef daeTArray domAuthoring_tool_Array; + +/** + * The authoring_tool element contains a string with the authoring tool's + * name. There may be only one authoring_tool element. + */ + class domAuthoring_tool : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::AUTHORING_TOOL; } + static daeInt ID() { return 667; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domAuthoring_tool(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domAuthoring_tool() {} + /** + * Overloaded assignment operator + */ + virtual domAuthoring_tool &operator=( const domAuthoring_tool &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domComments; + + typedef daeSmartRef domCommentsRef; + typedef daeTArray domComments_Array; + +/** + * The comments element contains a string with comments from this contributor. + * There may be only one comments element. + */ + class domComments : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMENTS; } + static daeInt ID() { return 668; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domComments(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domComments() {} + /** + * Overloaded assignment operator + */ + virtual domComments &operator=( const domComments &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCopyright; + + typedef daeSmartRef domCopyrightRef; + typedef daeTArray domCopyright_Array; + +/** + * The copyright element contains a string with copyright information. There + * may be only one copyright element. + */ + class domCopyright : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COPYRIGHT; } + static daeInt ID() { return 669; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domCopyright(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domCopyright() {} + /** + * Overloaded assignment operator + */ + virtual domCopyright &operator=( const domCopyright &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSource_data; + + typedef daeSmartRef domSource_dataRef; + typedef daeTArray domSource_data_Array; + +/** + * The source_data element contains a URI reference to the source data used + * for this asset. There may be only one source_data element. + */ + class domSource_data : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE_DATA; } + static daeInt ID() { return 670; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsAnyURI value of the text data of this element. + */ + xsAnyURI _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsAnyURI of the value. + */ + xsAnyURI &getValue() { return _value; } + /** + * Gets the value of this element. + * @return Returns a constant xsAnyURI of the value. + */ + const xsAnyURI &getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( const xsAnyURI &val ) { _value = val; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { _value = val; } + + protected: + /** + * Constructor + */ + domSource_data(DAE& dae) : daeElement(dae), _value(dae, *this) {} + /** + * Destructor + */ + virtual ~domSource_data() {} + /** + * Overloaded assignment operator + */ + virtual domSource_data &operator=( const domSource_data &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The author element contains a string with the author's name. There may + * be only one author element. @see domAuthor + */ + domAuthorRef elemAuthor; +/** + * The authoring_tool element contains a string with the authoring tool's + * name. There may be only one authoring_tool element. @see domAuthoring_tool + */ + domAuthoring_toolRef elemAuthoring_tool; +/** + * The comments element contains a string with comments from this contributor. + * There may be only one comments element. @see domComments + */ + domCommentsRef elemComments; +/** + * The copyright element contains a string with copyright information. There + * may be only one copyright element. @see domCopyright + */ + domCopyrightRef elemCopyright; +/** + * The source_data element contains a URI reference to the source data used + * for this asset. There may be only one source_data element. @see domSource_data + */ + domSource_dataRef elemSource_data; + + public: //Accessors and Mutators + /** + * Gets the author element. + * @return a daeSmartRef to the author element. + */ + const domAuthorRef getAuthor() const { return elemAuthor; } + /** + * Gets the authoring_tool element. + * @return a daeSmartRef to the authoring_tool element. + */ + const domAuthoring_toolRef getAuthoring_tool() const { return elemAuthoring_tool; } + /** + * Gets the comments element. + * @return a daeSmartRef to the comments element. + */ + const domCommentsRef getComments() const { return elemComments; } + /** + * Gets the copyright element. + * @return a daeSmartRef to the copyright element. + */ + const domCopyrightRef getCopyright() const { return elemCopyright; } + /** + * Gets the source_data element. + * @return a daeSmartRef to the source_data element. + */ + const domSource_dataRef getSource_data() const { return elemSource_data; } + protected: + /** + * Constructor + */ + domContributor(DAE& dae) : daeElement(dae), elemAuthor(), elemAuthoring_tool(), elemComments(), elemCopyright(), elemSource_data() {} + /** + * Destructor + */ + virtual ~domContributor() {} + /** + * Overloaded assignment operator + */ + virtual domContributor &operator=( const domContributor &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCreated; + + typedef daeSmartRef domCreatedRef; + typedef daeTArray domCreated_Array; + +/** + * The created element contains the date and time that the parent element + * was created and is represented in an ISO 8601 format. The created element + * may appear zero or one time. + */ + class domCreated : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CREATED; } + static daeInt ID() { return 671; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsDateTime value of the text data of this element. + */ + xsDateTime _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsDateTime of the value. + */ + xsDateTime getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsDateTime val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domCreated(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domCreated() {} + /** + * Overloaded assignment operator + */ + virtual domCreated &operator=( const domCreated &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domKeywords; + + typedef daeSmartRef domKeywordsRef; + typedef daeTArray domKeywords_Array; + +/** + * The keywords element contains a list of words used as search criteria for + * the parent element. The keywords element may appear zero or more times. + */ + class domKeywords : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::KEYWORDS; } + static daeInt ID() { return 672; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domKeywords(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domKeywords() {} + /** + * Overloaded assignment operator + */ + virtual domKeywords &operator=( const domKeywords &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domModified; + + typedef daeSmartRef domModifiedRef; + typedef daeTArray domModified_Array; + +/** + * The modified element contains the date and time that the parent element + * was last modified and represented in an ISO 8601 format. The modified + * element may appear zero or one time. + */ + class domModified : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIED; } + static daeInt ID() { return 673; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsDateTime value of the text data of this element. + */ + xsDateTime _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsDateTime of the value. + */ + xsDateTime getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsDateTime val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domModified(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domModified() {} + /** + * Overloaded assignment operator + */ + virtual domModified &operator=( const domModified &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRevision; + + typedef daeSmartRef domRevisionRef; + typedef daeTArray domRevision_Array; + +/** + * The revision element contains the revision information for the parent element. + * The revision element may appear zero or one time. + */ + class domRevision : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REVISION; } + static daeInt ID() { return 674; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domRevision(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRevision() {} + /** + * Overloaded assignment operator + */ + virtual domRevision &operator=( const domRevision &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSubject; + + typedef daeSmartRef domSubjectRef; + typedef daeTArray domSubject_Array; + +/** + * The subject element contains a description of the topical subject of the + * parent element. The subject element may appear zero or one time. + */ + class domSubject : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SUBJECT; } + static daeInt ID() { return 675; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSubject(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSubject() {} + /** + * Overloaded assignment operator + */ + virtual domSubject &operator=( const domSubject &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTitle; + + typedef daeSmartRef domTitleRef; + typedef daeTArray domTitle_Array; + +/** + * The title element contains the title information for the parent element. + * The title element may appear zero or one time. + */ + class domTitle : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TITLE; } + static daeInt ID() { return 676; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domTitle(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domTitle() {} + /** + * Overloaded assignment operator + */ + virtual domTitle &operator=( const domTitle &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domUnit; + + typedef daeSmartRef domUnitRef; + typedef daeTArray domUnit_Array; + +/** + * The unit element contains descriptive information about unit of measure. + * It has attributes for the name of the unit and the measurement with respect + * to the meter. The unit element may appear zero or one time. + */ + class domUnit : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::UNIT; } + static daeInt ID() { return 677; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes +/** + * The meter attribute specifies the measurement with respect to the meter. + * The default value for the meter attribute is “1.0”. + */ + domFloat attrMeter; +/** + * The name attribute specifies the name of the unit. The default value for + * the name attribute is “meter”. + */ + xsNMTOKEN attrName; + + + public: //Accessors and Mutators + /** + * Gets the meter attribute. + * @return Returns a domFloat of the meter attribute. + */ + domFloat getMeter() const { return attrMeter; } + /** + * Sets the meter attribute. + * @param atMeter The new value for the meter attribute. + */ + void setMeter( domFloat atMeter ) { attrMeter = atMeter; _validAttributeArray[0] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNMTOKEN of the name attribute. + */ + xsNMTOKEN getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNMTOKEN atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domUnit(DAE& dae) : daeElement(dae), attrMeter(), attrName() {} + /** + * Destructor + */ + virtual ~domUnit() {} + /** + * Overloaded assignment operator + */ + virtual domUnit &operator=( const domUnit &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domUp_axis; + + typedef daeSmartRef domUp_axisRef; + typedef daeTArray domUp_axis_Array; + +/** + * The up_axis element contains descriptive information about coordinate system + * of the geometric data. All coordinates are right-handed by definition. + * This element specifies which axis is considered up. The default is the + * Y-axis. The up_axis element may appear zero or one time. + */ + class domUp_axis : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::UP_AXIS; } + static daeInt ID() { return 678; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domUpAxisType value of the text data of this element. + */ + domUpAxisType _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domUpAxisType of the value. + */ + domUpAxisType getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domUpAxisType val ) { _value = val; } + + protected: + /** + * Constructor + */ + domUp_axis(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domUp_axis() {} + /** + * Overloaded assignment operator + */ + virtual domUp_axis &operator=( const domUp_axis &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * The contributor element defines authoring information for asset management + * @see domContributor + */ + domContributor_Array elemContributor_array; +/** + * The created element contains the date and time that the parent element + * was created and is represented in an ISO 8601 format. The created element + * may appear zero or one time. @see domCreated + */ + domCreatedRef elemCreated; +/** + * The keywords element contains a list of words used as search criteria for + * the parent element. The keywords element may appear zero or more times. + * @see domKeywords + */ + domKeywordsRef elemKeywords; +/** + * The modified element contains the date and time that the parent element + * was last modified and represented in an ISO 8601 format. The modified + * element may appear zero or one time. @see domModified + */ + domModifiedRef elemModified; +/** + * The revision element contains the revision information for the parent element. + * The revision element may appear zero or one time. @see domRevision + */ + domRevisionRef elemRevision; +/** + * The subject element contains a description of the topical subject of the + * parent element. The subject element may appear zero or one time. @see + * domSubject + */ + domSubjectRef elemSubject; +/** + * The title element contains the title information for the parent element. + * The title element may appear zero or one time. @see domTitle + */ + domTitleRef elemTitle; +/** + * The unit element contains descriptive information about unit of measure. + * It has attributes for the name of the unit and the measurement with respect + * to the meter. The unit element may appear zero or one time. @see domUnit + */ + domUnitRef elemUnit; +/** + * The up_axis element contains descriptive information about coordinate system + * of the geometric data. All coordinates are right-handed by definition. + * This element specifies which axis is considered up. The default is the + * Y-axis. The up_axis element may appear zero or one time. @see domUp_axis + */ + domUp_axisRef elemUp_axis; + +public: //Accessors and Mutators + /** + * Gets the contributor element array. + * @return Returns a reference to the array of contributor elements. + */ + domContributor_Array &getContributor_array() { return elemContributor_array; } + /** + * Gets the contributor element array. + * @return Returns a constant reference to the array of contributor elements. + */ + const domContributor_Array &getContributor_array() const { return elemContributor_array; } + /** + * Gets the created element. + * @return a daeSmartRef to the created element. + */ + const domCreatedRef getCreated() const { return elemCreated; } + /** + * Gets the keywords element. + * @return a daeSmartRef to the keywords element. + */ + const domKeywordsRef getKeywords() const { return elemKeywords; } + /** + * Gets the modified element. + * @return a daeSmartRef to the modified element. + */ + const domModifiedRef getModified() const { return elemModified; } + /** + * Gets the revision element. + * @return a daeSmartRef to the revision element. + */ + const domRevisionRef getRevision() const { return elemRevision; } + /** + * Gets the subject element. + * @return a daeSmartRef to the subject element. + */ + const domSubjectRef getSubject() const { return elemSubject; } + /** + * Gets the title element. + * @return a daeSmartRef to the title element. + */ + const domTitleRef getTitle() const { return elemTitle; } + /** + * Gets the unit element. + * @return a daeSmartRef to the unit element. + */ + const domUnitRef getUnit() const { return elemUnit; } + /** + * Gets the up_axis element. + * @return a daeSmartRef to the up_axis element. + */ + const domUp_axisRef getUp_axis() const { return elemUp_axis; } +protected: + /** + * Constructor + */ + domAsset(DAE& dae) : daeElement(dae), elemContributor_array(), elemCreated(), elemKeywords(), elemModified(), elemRevision(), elemSubject(), elemTitle(), elemUnit(), elemUp_axis() {} + /** + * Destructor + */ + virtual ~domAsset() {} + /** + * Overloaded assignment operator + */ + virtual domAsset &operator=( const domAsset &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domBind_material.h b/include/1.4/dom/domBind_material.h new file mode 100644 index 0000000..1cc21b0 --- /dev/null +++ b/include/1.4/dom/domBind_material.h @@ -0,0 +1,190 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domBind_material_h__ +#define __domBind_material_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * Bind a specific material to a piece of geometry, binding varying and uniform + * parameters at the same time. + */ +class domBind_material : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_MATERIAL; } + static daeInt ID() { return 686; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the bind_material information for + * the common profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 687; } + virtual daeInt typeID() const { return ID(); } + + protected: // Element +/** + * The instance_material element specifies the information needed to bind + * a geometry to a material. This element must appear at least once. @see + * domInstance_material + */ + domInstance_material_Array elemInstance_material_array; + + public: //Accessors and Mutators + /** + * Gets the instance_material element array. + * @return Returns a reference to the array of instance_material elements. + */ + domInstance_material_Array &getInstance_material_array() { return elemInstance_material_array; } + /** + * Gets the instance_material element array. + * @return Returns a constant reference to the array of instance_material elements. + */ + const domInstance_material_Array &getInstance_material_array() const { return elemInstance_material_array; } + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemInstance_material_array() {} + /** + * Destructor + */ + virtual ~domTechnique_common() {} + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * The bind_material element may contain any number of param elements. @see + * domParam + */ + domParam_Array elemParam_array; +/** + * The technique_common element specifies the bind_material information for + * the common profile which all COLLADA implementations need to support. + * @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the param element array. + * @return Returns a reference to the array of param elements. + */ + domParam_Array &getParam_array() { return elemParam_array; } + /** + * Gets the param element array. + * @return Returns a constant reference to the array of param elements. + */ + const domParam_Array &getParam_array() const { return elemParam_array; } + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domBind_material(DAE& dae) : daeElement(dae), elemParam_array(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domBind_material() {} + /** + * Overloaded assignment operator + */ + virtual domBind_material &operator=( const domBind_material &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domBool_array.h b/include/1.4/dom/domBool_array.h new file mode 100644 index 0000000..5ca93f6 --- /dev/null +++ b/include/1.4/dom/domBool_array.h @@ -0,0 +1,137 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domBool_array_h__ +#define __domBool_array_h__ + +#include +#include +#include + +class DAE; + +/** + * The bool_array element declares the storage for a homogenous array of boolean + * values. + */ +class domBool_array : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL_ARRAY; } + static daeInt ID() { return 606; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of values in the array. Required + * attribute. + */ + domUint attrCount; + +protected: // Value + /** + * The domListOfBools value of the text data of this element. + */ + domListOfBools _value; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[2] = true; } + + /** + * Gets the _value array. + * @return Returns a domListOfBools reference of the _value array. + */ + domListOfBools &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfBools reference of the _value array. + */ + const domListOfBools &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfBools &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domBool_array(DAE& dae) : daeElement(dae), attrId(), attrName(), attrCount(), _value() {} + /** + * Destructor + */ + virtual ~domBool_array() {} + /** + * Overloaded assignment operator + */ + virtual domBool_array &operator=( const domBool_array &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domBox.h b/include/1.4/dom/domBox.h new file mode 100644 index 0000000..59248b0 --- /dev/null +++ b/include/1.4/dom/domBox.h @@ -0,0 +1,157 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domBox_h__ +#define __domBox_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * An axis-aligned, centered box primitive. + */ +class domBox : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOX; } + static daeInt ID() { return 767; } + virtual daeInt typeID() const { return ID(); } +public: + class domHalf_extents; + + typedef daeSmartRef domHalf_extentsRef; + typedef daeTArray domHalf_extents_Array; + +/** + * 3 float values that represent the extents of the box + */ + class domHalf_extents : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF_EXTENTS; } + static daeInt ID() { return 768; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat3 value of the text data of this element. + */ + domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat3 reference of the _value array. + */ + domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat3 reference of the _value array. + */ + const domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf_extents(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf_extents() {} + /** + * Overloaded assignment operator + */ + virtual domHalf_extents &operator=( const domHalf_extents &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * 3 float values that represent the extents of the box @see domHalf_extents + */ + domHalf_extentsRef elemHalf_extents; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the half_extents element. + * @return a daeSmartRef to the half_extents element. + */ + const domHalf_extentsRef getHalf_extents() const { return elemHalf_extents; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domBox(DAE& dae) : daeElement(dae), elemHalf_extents(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domBox() {} + /** + * Overloaded assignment operator + */ + virtual domBox &operator=( const domBox &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCOLLADA.h b/include/1.4/dom/domCOLLADA.h new file mode 100644 index 0000000..6cc9aa5 --- /dev/null +++ b/include/1.4/dom/domCOLLADA.h @@ -0,0 +1,527 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCOLLADA_h__ +#define __domCOLLADA_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * The COLLADA element declares the root of the document that comprises some + * of the content in the COLLADA schema. + */ +class domCOLLADA : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLLADA; } + static daeInt ID() { return 602; } + virtual daeInt typeID() const { return ID(); } +public: + class domScene; + + typedef daeSmartRef domSceneRef; + typedef daeTArray domScene_Array; + +/** + * The scene embodies the entire set of information that can be visualized + * from the contents of a COLLADA resource. The scene element declares the + * base of the scene hierarchy or scene graph. The scene contains elements + * that comprise much of the visual and transformational information content + * as created by the authoring tools. + */ + class domScene : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SCENE; } + static daeInt ID() { return 603; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The instance_physics_scene element declares the instantiation of a COLLADA + * physics_scene resource. The instance_physics_scene element may appear any + * number of times. @see domInstance_physics_scene + */ + domInstanceWithExtra_Array elemInstance_physics_scene_array; +/** + * The instance_visual_scene element declares the instantiation of a COLLADA + * visual_scene resource. The instance_visual_scene element may only appear + * once. @see domInstance_visual_scene + */ + domInstanceWithExtraRef elemInstance_visual_scene; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + + public: //Accessors and Mutators + /** + * Gets the instance_physics_scene element array. + * @return Returns a reference to the array of instance_physics_scene elements. + */ + domInstanceWithExtra_Array &getInstance_physics_scene_array() { return elemInstance_physics_scene_array; } + /** + * Gets the instance_physics_scene element array. + * @return Returns a constant reference to the array of instance_physics_scene elements. + */ + const domInstanceWithExtra_Array &getInstance_physics_scene_array() const { return elemInstance_physics_scene_array; } + /** + * Gets the instance_visual_scene element. + * @return a daeSmartRef to the instance_visual_scene element. + */ + const domInstanceWithExtraRef getInstance_visual_scene() const { return elemInstance_visual_scene; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + protected: + /** + * Constructor + */ + domScene(DAE& dae) : daeElement(dae), elemInstance_physics_scene_array(), elemInstance_visual_scene(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domScene() {} + /** + * Overloaded assignment operator + */ + virtual domScene &operator=( const domScene &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes + /** + * This element may specify its own xmlns. + */ + xsAnyURI attrXmlns; +/** + * The version attribute is the COLLADA schema revision with which the instance + * document conforms. Required Attribute. + */ + domVersionType attrVersion; +/** + * The xml:base attribute allows you to define the base URI for this COLLADA + * document. See http://www.w3.org/TR/xmlbase/ for more information. + */ + xsAnyURI attrXml_base; + +protected: // Elements +/** + * The COLLADA element must contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The COLLADA element may contain any number of library_animations elements. + * @see domLibrary_animations + */ + domLibrary_animations_Array elemLibrary_animations_array; +/** + * The COLLADA element may contain any number of library_animation_clips + * elements. @see domLibrary_animation_clips + */ + domLibrary_animation_clips_Array elemLibrary_animation_clips_array; +/** + * The COLLADA element may contain any number of library_cameras elements. + * @see domLibrary_cameras + */ + domLibrary_cameras_Array elemLibrary_cameras_array; +/** + * The COLLADA element may contain any number of library_controllerss elements. + * @see domLibrary_controllers + */ + domLibrary_controllers_Array elemLibrary_controllers_array; +/** + * The COLLADA element may contain any number of library_geometriess elements. + * @see domLibrary_geometries + */ + domLibrary_geometries_Array elemLibrary_geometries_array; +/** + * The COLLADA element may contain any number of library_effects elements. + * @see domLibrary_effects + */ + domLibrary_effects_Array elemLibrary_effects_array; +/** + * The COLLADA element may contain any number of library_force_fields elements. + * @see domLibrary_force_fields + */ + domLibrary_force_fields_Array elemLibrary_force_fields_array; +/** + * The COLLADA element may contain any number of library_images elements. + * @see domLibrary_images + */ + domLibrary_images_Array elemLibrary_images_array; +/** + * The COLLADA element may contain any number of library_lights elements. + * @see domLibrary_lights + */ + domLibrary_lights_Array elemLibrary_lights_array; +/** + * The COLLADA element may contain any number of library_materials elements. + * @see domLibrary_materials + */ + domLibrary_materials_Array elemLibrary_materials_array; +/** + * The COLLADA element may contain any number of library_nodes elements. + * @see domLibrary_nodes + */ + domLibrary_nodes_Array elemLibrary_nodes_array; +/** + * The COLLADA element may contain any number of library_materials elements. + * @see domLibrary_physics_materials + */ + domLibrary_physics_materials_Array elemLibrary_physics_materials_array; +/** + * The COLLADA element may contain any number of library_physics_models elements. + * @see domLibrary_physics_models + */ + domLibrary_physics_models_Array elemLibrary_physics_models_array; +/** + * The COLLADA element may contain any number of library_physics_scenes elements. + * @see domLibrary_physics_scenes + */ + domLibrary_physics_scenes_Array elemLibrary_physics_scenes_array; +/** + * The COLLADA element may contain any number of library_visual_scenes elements. + * @see domLibrary_visual_scenes + */ + domLibrary_visual_scenes_Array elemLibrary_visual_scenes_array; +/** + * The scene embodies the entire set of information that can be visualized + * from the contents of a COLLADA resource. The scene element declares the + * base of the scene hierarchy or scene graph. The scene contains elements + * that comprise much of the visual and transformational information content + * as created by the authoring tools. @see domScene + */ + domSceneRef elemScene; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the xmlns attribute. + * @return Returns a xsAnyURI reference of the xmlns attribute. + */ + xsAnyURI &getXmlns() { return attrXmlns; } + /** + * Gets the xmlns attribute. + * @return Returns a constant xsAnyURI reference of the xmlns attribute. + */ + const xsAnyURI &getXmlns() const { return attrXmlns; } + /** + * Sets the xmlns attribute. + * @param xmlns The new value for the xmlns attribute. + */ + void setXmlns( const xsAnyURI &xmlns ) { attrXmlns = xmlns; + _validAttributeArray[0] = true; } + + /** + * Gets the version attribute. + * @return Returns a domVersionType of the version attribute. + */ + domVersionType getVersion() const { return attrVersion; } + /** + * Sets the version attribute. + * @param atVersion The new value for the version attribute. + */ + void setVersion( domVersionType atVersion ) { attrVersion = atVersion; _validAttributeArray[1] = true; } + + /** + * Gets the xml_base attribute. + * @return Returns a xsAnyURI reference of the xml_base attribute. + */ + xsAnyURI &getXml_base() { return attrXml_base; } + /** + * Gets the xml_base attribute. + * @return Returns a constant xsAnyURI reference of the xml_base attribute. + */ + const xsAnyURI &getXml_base() const { return attrXml_base; } + /** + * Sets the xml_base attribute. + * @param atXml_base The new value for the xml_base attribute. + */ + void setXml_base( const xsAnyURI &atXml_base ) { attrXml_base = atXml_base; _validAttributeArray[2] = true; } + /** + * Sets the xml_base attribute. + * @param atXml_base The new value for the xml_base attribute. + */ + void setXml_base( xsString atXml_base ) { attrXml_base = atXml_base; _validAttributeArray[2] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the library_animations element array. + * @return Returns a reference to the array of library_animations elements. + */ + domLibrary_animations_Array &getLibrary_animations_array() { return elemLibrary_animations_array; } + /** + * Gets the library_animations element array. + * @return Returns a constant reference to the array of library_animations elements. + */ + const domLibrary_animations_Array &getLibrary_animations_array() const { return elemLibrary_animations_array; } + /** + * Gets the library_animation_clips element array. + * @return Returns a reference to the array of library_animation_clips elements. + */ + domLibrary_animation_clips_Array &getLibrary_animation_clips_array() { return elemLibrary_animation_clips_array; } + /** + * Gets the library_animation_clips element array. + * @return Returns a constant reference to the array of library_animation_clips elements. + */ + const domLibrary_animation_clips_Array &getLibrary_animation_clips_array() const { return elemLibrary_animation_clips_array; } + /** + * Gets the library_cameras element array. + * @return Returns a reference to the array of library_cameras elements. + */ + domLibrary_cameras_Array &getLibrary_cameras_array() { return elemLibrary_cameras_array; } + /** + * Gets the library_cameras element array. + * @return Returns a constant reference to the array of library_cameras elements. + */ + const domLibrary_cameras_Array &getLibrary_cameras_array() const { return elemLibrary_cameras_array; } + /** + * Gets the library_controllers element array. + * @return Returns a reference to the array of library_controllers elements. + */ + domLibrary_controllers_Array &getLibrary_controllers_array() { return elemLibrary_controllers_array; } + /** + * Gets the library_controllers element array. + * @return Returns a constant reference to the array of library_controllers elements. + */ + const domLibrary_controllers_Array &getLibrary_controllers_array() const { return elemLibrary_controllers_array; } + /** + * Gets the library_geometries element array. + * @return Returns a reference to the array of library_geometries elements. + */ + domLibrary_geometries_Array &getLibrary_geometries_array() { return elemLibrary_geometries_array; } + /** + * Gets the library_geometries element array. + * @return Returns a constant reference to the array of library_geometries elements. + */ + const domLibrary_geometries_Array &getLibrary_geometries_array() const { return elemLibrary_geometries_array; } + /** + * Gets the library_effects element array. + * @return Returns a reference to the array of library_effects elements. + */ + domLibrary_effects_Array &getLibrary_effects_array() { return elemLibrary_effects_array; } + /** + * Gets the library_effects element array. + * @return Returns a constant reference to the array of library_effects elements. + */ + const domLibrary_effects_Array &getLibrary_effects_array() const { return elemLibrary_effects_array; } + /** + * Gets the library_force_fields element array. + * @return Returns a reference to the array of library_force_fields elements. + */ + domLibrary_force_fields_Array &getLibrary_force_fields_array() { return elemLibrary_force_fields_array; } + /** + * Gets the library_force_fields element array. + * @return Returns a constant reference to the array of library_force_fields elements. + */ + const domLibrary_force_fields_Array &getLibrary_force_fields_array() const { return elemLibrary_force_fields_array; } + /** + * Gets the library_images element array. + * @return Returns a reference to the array of library_images elements. + */ + domLibrary_images_Array &getLibrary_images_array() { return elemLibrary_images_array; } + /** + * Gets the library_images element array. + * @return Returns a constant reference to the array of library_images elements. + */ + const domLibrary_images_Array &getLibrary_images_array() const { return elemLibrary_images_array; } + /** + * Gets the library_lights element array. + * @return Returns a reference to the array of library_lights elements. + */ + domLibrary_lights_Array &getLibrary_lights_array() { return elemLibrary_lights_array; } + /** + * Gets the library_lights element array. + * @return Returns a constant reference to the array of library_lights elements. + */ + const domLibrary_lights_Array &getLibrary_lights_array() const { return elemLibrary_lights_array; } + /** + * Gets the library_materials element array. + * @return Returns a reference to the array of library_materials elements. + */ + domLibrary_materials_Array &getLibrary_materials_array() { return elemLibrary_materials_array; } + /** + * Gets the library_materials element array. + * @return Returns a constant reference to the array of library_materials elements. + */ + const domLibrary_materials_Array &getLibrary_materials_array() const { return elemLibrary_materials_array; } + /** + * Gets the library_nodes element array. + * @return Returns a reference to the array of library_nodes elements. + */ + domLibrary_nodes_Array &getLibrary_nodes_array() { return elemLibrary_nodes_array; } + /** + * Gets the library_nodes element array. + * @return Returns a constant reference to the array of library_nodes elements. + */ + const domLibrary_nodes_Array &getLibrary_nodes_array() const { return elemLibrary_nodes_array; } + /** + * Gets the library_physics_materials element array. + * @return Returns a reference to the array of library_physics_materials elements. + */ + domLibrary_physics_materials_Array &getLibrary_physics_materials_array() { return elemLibrary_physics_materials_array; } + /** + * Gets the library_physics_materials element array. + * @return Returns a constant reference to the array of library_physics_materials elements. + */ + const domLibrary_physics_materials_Array &getLibrary_physics_materials_array() const { return elemLibrary_physics_materials_array; } + /** + * Gets the library_physics_models element array. + * @return Returns a reference to the array of library_physics_models elements. + */ + domLibrary_physics_models_Array &getLibrary_physics_models_array() { return elemLibrary_physics_models_array; } + /** + * Gets the library_physics_models element array. + * @return Returns a constant reference to the array of library_physics_models elements. + */ + const domLibrary_physics_models_Array &getLibrary_physics_models_array() const { return elemLibrary_physics_models_array; } + /** + * Gets the library_physics_scenes element array. + * @return Returns a reference to the array of library_physics_scenes elements. + */ + domLibrary_physics_scenes_Array &getLibrary_physics_scenes_array() { return elemLibrary_physics_scenes_array; } + /** + * Gets the library_physics_scenes element array. + * @return Returns a constant reference to the array of library_physics_scenes elements. + */ + const domLibrary_physics_scenes_Array &getLibrary_physics_scenes_array() const { return elemLibrary_physics_scenes_array; } + /** + * Gets the library_visual_scenes element array. + * @return Returns a reference to the array of library_visual_scenes elements. + */ + domLibrary_visual_scenes_Array &getLibrary_visual_scenes_array() { return elemLibrary_visual_scenes_array; } + /** + * Gets the library_visual_scenes element array. + * @return Returns a constant reference to the array of library_visual_scenes elements. + */ + const domLibrary_visual_scenes_Array &getLibrary_visual_scenes_array() const { return elemLibrary_visual_scenes_array; } + /** + * Gets the scene element. + * @return a daeSmartRef to the scene element. + */ + const domSceneRef getScene() const { return elemScene; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCOLLADA(DAE& dae) : daeElement(dae), attrXmlns(dae, *this), attrVersion(), attrXml_base(dae, *this), elemAsset(), elemLibrary_animations_array(), elemLibrary_animation_clips_array(), elemLibrary_cameras_array(), elemLibrary_controllers_array(), elemLibrary_geometries_array(), elemLibrary_effects_array(), elemLibrary_force_fields_array(), elemLibrary_images_array(), elemLibrary_lights_array(), elemLibrary_materials_array(), elemLibrary_nodes_array(), elemLibrary_physics_materials_array(), elemLibrary_physics_models_array(), elemLibrary_physics_scenes_array(), elemLibrary_visual_scenes_array(), elemScene(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domCOLLADA() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCOLLADA &operator=( const domCOLLADA &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCamera.h b/include/1.4/dom/domCamera.h new file mode 100644 index 0000000..9474158 --- /dev/null +++ b/include/1.4/dom/domCamera.h @@ -0,0 +1,658 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCamera_h__ +#define __domCamera_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * The camera element declares a view into the scene hierarchy or scene graph. + * The camera contains elements that describe the camera’s optics and imager. + */ +class domCamera : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CAMERA; } + static daeInt ID() { return 645; } + virtual daeInt typeID() const { return ID(); } +public: + class domOptics; + + typedef daeSmartRef domOpticsRef; + typedef daeTArray domOptics_Array; + +/** + * Optics represents the apparatus on a camera that projects the image onto + * the image sensor. + */ + class domOptics : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::OPTICS; } + static daeInt ID() { return 646; } + virtual daeInt typeID() const { return ID(); } + public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the optics information for the common + * profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 647; } + virtual daeInt typeID() const { return ID(); } + public: + class domOrthographic; + + typedef daeSmartRef domOrthographicRef; + typedef daeTArray domOrthographic_Array; + +/** + * The orthographic element describes the field of view of an orthographic + * camera. + */ + class domOrthographic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ORTHOGRAPHIC; } + static daeInt ID() { return 648; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The xmag element contains a floating point number describing the horizontal + * magnification of the view. @see domXmag + */ + domTargetableFloatRef elemXmag; +/** + * The ymag element contains a floating point number describing the vertical + * magnification of the view. It can also have a sid. @see domYmag + */ + domTargetableFloatRef elemYmag; +/** + * The aspect_ratio element contains a floating point number describing the + * aspect ratio of the field of view. If the aspect_ratio element is not + * present the aspect ratio is to be calculated from the xmag or ymag elements + * and the current viewport. @see domAspect_ratio + */ + domTargetableFloatRef elemAspect_ratio; +/** + * The znear element contains a floating point number that describes the distance + * to the near clipping plane. The znear element must occur exactly once. + * @see domZnear + */ + domTargetableFloatRef elemZnear; +/** + * The zfar element contains a floating point number that describes the distance + * to the far clipping plane. The zfar element must occur exactly once. @see + * domZfar + */ + domTargetableFloatRef elemZfar; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the xmag element. + * @return a daeSmartRef to the xmag element. + */ + const domTargetableFloatRef getXmag() const { return elemXmag; } + /** + * Gets the ymag element. + * @return a daeSmartRef to the ymag element. + */ + const domTargetableFloatRef getYmag() const { return elemYmag; } + /** + * Gets the aspect_ratio element. + * @return a daeSmartRef to the aspect_ratio element. + */ + const domTargetableFloatRef getAspect_ratio() const { return elemAspect_ratio; } + /** + * Gets the znear element. + * @return a daeSmartRef to the znear element. + */ + const domTargetableFloatRef getZnear() const { return elemZnear; } + /** + * Gets the zfar element. + * @return a daeSmartRef to the zfar element. + */ + const domTargetableFloatRef getZfar() const { return elemZfar; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domOrthographic(DAE& dae) : daeElement(dae), elemXmag(), elemYmag(), elemAspect_ratio(), elemZnear(), elemZfar() {} + /** + * Destructor + */ + virtual ~domOrthographic() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domOrthographic &operator=( const domOrthographic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPerspective; + + typedef daeSmartRef domPerspectiveRef; + typedef daeTArray domPerspective_Array; + +/** + * The perspective element describes the optics of a perspective camera. + */ + class domPerspective : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PERSPECTIVE; } + static daeInt ID() { return 649; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The xfov element contains a floating point number describing the horizontal + * field of view in degrees. @see domXfov + */ + domTargetableFloatRef elemXfov; +/** + * The yfov element contains a floating point number describing the verticle + * field of view in degrees. @see domYfov + */ + domTargetableFloatRef elemYfov; +/** + * The aspect_ratio element contains a floating point number describing the + * aspect ratio of the field of view. If the aspect_ratio element is not + * present the aspect ratio is to be calculated from the xfov or yfov elements + * and the current viewport. @see domAspect_ratio + */ + domTargetableFloatRef elemAspect_ratio; +/** + * The znear element contains a floating point number that describes the distance + * to the near clipping plane. The znear element must occur exactly once. + * @see domZnear + */ + domTargetableFloatRef elemZnear; +/** + * The zfar element contains a floating point number that describes the distance + * to the far clipping plane. The zfar element must occur exactly once. @see + * domZfar + */ + domTargetableFloatRef elemZfar; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the xfov element. + * @return a daeSmartRef to the xfov element. + */ + const domTargetableFloatRef getXfov() const { return elemXfov; } + /** + * Gets the yfov element. + * @return a daeSmartRef to the yfov element. + */ + const domTargetableFloatRef getYfov() const { return elemYfov; } + /** + * Gets the aspect_ratio element. + * @return a daeSmartRef to the aspect_ratio element. + */ + const domTargetableFloatRef getAspect_ratio() const { return elemAspect_ratio; } + /** + * Gets the znear element. + * @return a daeSmartRef to the znear element. + */ + const domTargetableFloatRef getZnear() const { return elemZnear; } + /** + * Gets the zfar element. + * @return a daeSmartRef to the zfar element. + */ + const domTargetableFloatRef getZfar() const { return elemZfar; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domPerspective(DAE& dae) : daeElement(dae), elemXfov(), elemYfov(), elemAspect_ratio(), elemZnear(), elemZfar() {} + /** + * Destructor + */ + virtual ~domPerspective() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domPerspective &operator=( const domPerspective &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The orthographic element describes the field of view of an orthographic + * camera. @see domOrthographic + */ + domOrthographicRef elemOrthographic; +/** + * The perspective element describes the optics of a perspective camera. @see + * domPerspective + */ + domPerspectiveRef elemPerspective; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the orthographic element. + * @return a daeSmartRef to the orthographic element. + */ + const domOrthographicRef getOrthographic() const { return elemOrthographic; } + /** + * Gets the perspective element. + * @return a daeSmartRef to the perspective element. + */ + const domPerspectiveRef getPerspective() const { return elemPerspective; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemOrthographic(), elemPerspective() {} + /** + * Destructor + */ + virtual ~domTechnique_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The technique_common element specifies the optics information for the common + * profile which all COLLADA implementations need to support. @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + + public: //Accessors and Mutators + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + protected: + /** + * Constructor + */ + domOptics(DAE& dae) : daeElement(dae), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domOptics() {} + /** + * Overloaded assignment operator + */ + virtual domOptics &operator=( const domOptics &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domImager; + + typedef daeSmartRef domImagerRef; + typedef daeTArray domImager_Array; + +/** + * Imagers represent the image sensor of a camera (for example film or CCD). + */ + class domImager : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::IMAGER; } + static daeInt ID() { return 650; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * This element may contain any number of non-common profile techniques. + * There is no common technique for imager. @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + + public: //Accessors and Mutators + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + protected: + /** + * Constructor + */ + domImager(DAE& dae) : daeElement(dae), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domImager() {} + /** + * Overloaded assignment operator + */ + virtual domImager &operator=( const domImager &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The camera element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * Optics represents the apparatus on a camera that projects the image onto + * the image sensor. @see domOptics + */ + domOpticsRef elemOptics; +/** + * Imagers represent the image sensor of a camera (for example film or CCD). + * @see domImager + */ + domImagerRef elemImager; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the optics element. + * @return a daeSmartRef to the optics element. + */ + const domOpticsRef getOptics() const { return elemOptics; } + /** + * Gets the imager element. + * @return a daeSmartRef to the imager element. + */ + const domImagerRef getImager() const { return elemImager; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domCamera(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemOptics(), elemImager(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domCamera() {} + /** + * Overloaded assignment operator + */ + virtual domCamera &operator=( const domCamera &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCapsule.h b/include/1.4/dom/domCapsule.h new file mode 100644 index 0000000..87ac3f8 --- /dev/null +++ b/include/1.4/dom/domCapsule.h @@ -0,0 +1,230 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCapsule_h__ +#define __domCapsule_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A capsule primitive that is centered on and aligned with the local Y axis. + */ +class domCapsule : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CAPSULE; } + static daeInt ID() { return 782; } + virtual daeInt typeID() const { return ID(); } +public: + class domHeight; + + typedef daeSmartRef domHeightRef; + typedef daeTArray domHeight_Array; + +/** + * A float value that represents the length of the line segment connecting + * the centers of the capping hemispheres. + */ + class domHeight : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HEIGHT; } + static daeInt ID() { return 783; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHeight(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHeight() {} + /** + * Overloaded assignment operator + */ + virtual domHeight &operator=( const domHeight &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRadius; + + typedef daeSmartRef domRadiusRef; + typedef daeTArray domRadius_Array; + +/** + * Two float values that represent the radii of the capsule (it may be elliptical) + */ + class domRadius : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS; } + static daeInt ID() { return 784; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat2 value of the text data of this element. + */ + domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat2 reference of the _value array. + */ + domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat2 reference of the _value array. + */ + const domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRadius(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRadius() {} + /** + * Overloaded assignment operator + */ + virtual domRadius &operator=( const domRadius &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * A float value that represents the length of the line segment connecting + * the centers of the capping hemispheres. @see domHeight + */ + domHeightRef elemHeight; +/** + * Two float values that represent the radii of the capsule (it may be elliptical) + * @see domRadius + */ + domRadiusRef elemRadius; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the height element. + * @return a daeSmartRef to the height element. + */ + const domHeightRef getHeight() const { return elemHeight; } + /** + * Gets the radius element. + * @return a daeSmartRef to the radius element. + */ + const domRadiusRef getRadius() const { return elemRadius; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domCapsule(DAE& dae) : daeElement(dae), elemHeight(), elemRadius(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domCapsule() {} + /** + * Overloaded assignment operator + */ + virtual domCapsule &operator=( const domCapsule &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_connect_param.h b/include/1.4/dom/domCg_connect_param.h new file mode 100644 index 0000000..315eca3 --- /dev/null +++ b/include/1.4/dom/domCg_connect_param.h @@ -0,0 +1,110 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_connect_param_h__ +#define __domCg_connect_param_h__ + +#include +#include +#include + +class DAE; + +/** + * Creates a symbolic connection between two previously defined parameters. + */ +class domCg_connect_param_complexType +{ +protected: // Attribute + domCg_identifier attrRef; + + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domCg_identifier of the ref attribute. + */ + domCg_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domCg_identifier atRef ) { attrRef = atRef; } + +protected: + /** + * Constructor + */ + domCg_connect_param_complexType(DAE& dae, daeElement* elt) : attrRef() {} + /** + * Destructor + */ + virtual ~domCg_connect_param_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_connect_param_complexType &operator=( const domCg_connect_param_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_connect_param_complexType. + */ +class domCg_connect_param : public daeElement, public domCg_connect_param_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_CONNECT_PARAM; } + static daeInt ID() { return 133; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domCg_identifier of the ref attribute. + */ + domCg_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domCg_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domCg_connect_param(DAE& dae) : daeElement(dae), domCg_connect_param_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_connect_param() {} + /** + * Overloaded assignment operator + */ + virtual domCg_connect_param &operator=( const domCg_connect_param &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_newarray_type.h b/include/1.4/dom/domCg_newarray_type.h new file mode 100644 index 0000000..450c4e9 --- /dev/null +++ b/include/1.4/dom/domCg_newarray_type.h @@ -0,0 +1,194 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_newarray_type_h__ +#define __domCg_newarray_type_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * Creates a parameter of a one-dimensional array type. + */ +class domCg_newarray_type_complexType +{ +protected: // Attribute +/** + * The length attribute specifies the length of the array. + */ + xsPositiveInteger attrLength; + +protected: // Elements + domCg_param_type_Array elemCg_param_type_array; +/** + * Nested array elements allow you to create multidemensional arrays. @see + * domArray + */ + domCg_newarray_type_Array elemArray_array; +/** + * The usertype element allows you to create arrays of usertypes. @see domUsertype + */ + domCg_setuser_type_Array elemUsertype_array; + domCg_connect_param_Array elemConnect_param_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; } + + /** + * Gets the cg_param_type element array. + * @return Returns a reference to the array of cg_param_type elements. + */ + domCg_param_type_Array &getCg_param_type_array() { return elemCg_param_type_array; } + /** + * Gets the cg_param_type element array. + * @return Returns a constant reference to the array of cg_param_type elements. + */ + const domCg_param_type_Array &getCg_param_type_array() const { return elemCg_param_type_array; } + /** + * Gets the array element array. + * @return Returns a reference to the array of array elements. + */ + domCg_newarray_type_Array &getArray_array() { return elemArray_array; } + /** + * Gets the array element array. + * @return Returns a constant reference to the array of array elements. + */ + const domCg_newarray_type_Array &getArray_array() const { return elemArray_array; } + /** + * Gets the usertype element array. + * @return Returns a reference to the array of usertype elements. + */ + domCg_setuser_type_Array &getUsertype_array() { return elemUsertype_array; } + /** + * Gets the usertype element array. + * @return Returns a constant reference to the array of usertype elements. + */ + const domCg_setuser_type_Array &getUsertype_array() const { return elemUsertype_array; } + /** + * Gets the connect_param element array. + * @return Returns a reference to the array of connect_param elements. + */ + domCg_connect_param_Array &getConnect_param_array() { return elemConnect_param_array; } + /** + * Gets the connect_param element array. + * @return Returns a constant reference to the array of connect_param elements. + */ + const domCg_connect_param_Array &getConnect_param_array() const { return elemConnect_param_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCg_newarray_type_complexType(DAE& dae, daeElement* elt) : attrLength(), elemCg_param_type_array(), elemArray_array(), elemUsertype_array(), elemConnect_param_array() {} + /** + * Destructor + */ + virtual ~domCg_newarray_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCg_newarray_type_complexType &operator=( const domCg_newarray_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_newarray_type_complexType. + */ +class domCg_newarray_type : public daeElement, public domCg_newarray_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_NEWARRAY_TYPE; } + static daeInt ID() { return 134; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domCg_newarray_type(DAE& dae) : daeElement(dae), domCg_newarray_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_newarray_type() {} + /** + * Overloaded assignment operator + */ + virtual domCg_newarray_type &operator=( const domCg_newarray_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_newparam.h b/include/1.4/dom/domCg_newparam.h new file mode 100644 index 0000000..90d2337 --- /dev/null +++ b/include/1.4/dom/domCg_newparam.h @@ -0,0 +1,318 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_newparam_h__ +#define __domCg_newparam_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * Create a new, named param object in the CG Runtime, assign it a type, an + * initial value, and additional attributes at declaration time. + */ +class domCg_newparam_complexType +{ +public: + class domSemantic; + + typedef daeSmartRef domSemanticRef; + typedef daeTArray domSemantic_Array; + +/** + * The semantic element allows you to specify a semantic for this new param. + */ + class domSemantic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; } + static daeInt ID() { return 140; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSemantic(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSemantic() {} + /** + * Overloaded assignment operator + */ + virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domModifier; + + typedef daeSmartRef domModifierRef; + typedef daeTArray domModifier_Array; + +/** + * The modifier element allows you to specify a modifier for this new param. + */ + class domModifier : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIER; } + static daeInt ID() { return 141; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_modifier_enum_common value of the text data of this element. + */ + domFx_modifier_enum_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_modifier_enum_common of the value. + */ + domFx_modifier_enum_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_modifier_enum_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domModifier(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domModifier() {} + /** + * Overloaded assignment operator + */ + virtual domModifier &operator=( const domModifier &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute + domCg_identifier attrSid; + +protected: // Elements +/** + * The annotate element allows you to specify an annotation for this new param. + * @see domAnnotate + */ + domFx_annotate_common_Array elemAnnotate_array; +/** + * The semantic element allows you to specify a semantic for this new param. + * @see domSemantic + */ + domSemanticRef elemSemantic; +/** + * The modifier element allows you to specify a modifier for this new param. + * @see domModifier + */ + domModifierRef elemModifier; + domCg_param_typeRef elemCg_param_type; + domCg_setuser_typeRef elemUsertype; + domCg_newarray_typeRef elemArray; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a domCg_identifier of the sid attribute. + */ + domCg_identifier getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( domCg_identifier atSid ) { attrSid = atSid; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the semantic element. + * @return a daeSmartRef to the semantic element. + */ + const domSemanticRef getSemantic() const { return elemSemantic; } + /** + * Gets the modifier element. + * @return a daeSmartRef to the modifier element. + */ + const domModifierRef getModifier() const { return elemModifier; } + /** + * Gets the cg_param_type element. + * @return a daeSmartRef to the cg_param_type element. + */ + const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; } + /** + * Gets the usertype element. + * @return a daeSmartRef to the usertype element. + */ + const domCg_setuser_typeRef getUsertype() const { return elemUsertype; } + /** + * Gets the array element. + * @return a daeSmartRef to the array element. + */ + const domCg_newarray_typeRef getArray() const { return elemArray; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCg_newparam_complexType(DAE& dae, daeElement* elt) : attrSid(), elemAnnotate_array(), elemSemantic(), elemModifier(), elemCg_param_type(), elemUsertype(), elemArray() {} + /** + * Destructor + */ + virtual ~domCg_newparam_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCg_newparam_complexType &operator=( const domCg_newparam_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_newparam_complexType. + */ +class domCg_newparam : public daeElement, public domCg_newparam_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_NEWPARAM; } + static daeInt ID() { return 142; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a domCg_identifier of the sid attribute. + */ + domCg_identifier getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( domCg_identifier atSid ) { attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domCg_newparam(DAE& dae) : daeElement(dae), domCg_newparam_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_newparam() {} + /** + * Overloaded assignment operator + */ + virtual domCg_newparam &operator=( const domCg_newparam &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_param_type.h b/include/1.4/dom/domCg_param_type.h new file mode 100644 index 0000000..3687c7c --- /dev/null +++ b/include/1.4/dom/domCg_param_type.h @@ -0,0 +1,7464 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_param_type_h__ +#define __domCg_param_type_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * A group that specifies the allowable types for CG profile parameters. + */ +class domCg_param_type : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_PARAM_TYPE; } + static daeInt ID() { return 380; } + virtual daeInt typeID() const { return ID(); } +public: + class domBool; + + typedef daeSmartRef domBoolRef; + typedef daeTArray domBool_Array; + + class domBool : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL; } + static daeInt ID() { return 381; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool value of the text data of this element. + */ + domCg_bool _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_bool of the value. + */ + domCg_bool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_bool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool() {} + /** + * Overloaded assignment operator + */ + virtual domBool &operator=( const domBool &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool1; + + typedef daeSmartRef domBool1Ref; + typedef daeTArray domBool1_Array; + + class domBool1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1; } + static daeInt ID() { return 382; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool1 value of the text data of this element. + */ + domCg_bool1 _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_bool1 of the value. + */ + domCg_bool1 getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_bool1 val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool1() {} + /** + * Overloaded assignment operator + */ + virtual domBool1 &operator=( const domBool1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2; + + typedef daeSmartRef domBool2Ref; + typedef daeTArray domBool2_Array; + + class domBool2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2; } + static daeInt ID() { return 383; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool2 value of the text data of this element. + */ + domCg_bool2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool2 reference of the _value array. + */ + domCg_bool2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool2 reference of the _value array. + */ + const domCg_bool2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2() {} + /** + * Overloaded assignment operator + */ + virtual domBool2 &operator=( const domBool2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3; + + typedef daeSmartRef domBool3Ref; + typedef daeTArray domBool3_Array; + + class domBool3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3; } + static daeInt ID() { return 384; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool3 value of the text data of this element. + */ + domCg_bool3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool3 reference of the _value array. + */ + domCg_bool3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool3 reference of the _value array. + */ + const domCg_bool3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3() {} + /** + * Overloaded assignment operator + */ + virtual domBool3 &operator=( const domBool3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4; + + typedef daeSmartRef domBool4Ref; + typedef daeTArray domBool4_Array; + + class domBool4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4; } + static daeInt ID() { return 385; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool4 value of the text data of this element. + */ + domCg_bool4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool4 reference of the _value array. + */ + domCg_bool4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool4 reference of the _value array. + */ + const domCg_bool4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4() {} + /** + * Overloaded assignment operator + */ + virtual domBool4 &operator=( const domBool4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool1x1; + + typedef daeSmartRef domBool1x1Ref; + typedef daeTArray domBool1x1_Array; + + class domBool1x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X1; } + static daeInt ID() { return 386; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool1x1 value of the text data of this element. + */ + domCg_bool1x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool1x1 reference of the _value array. + */ + domCg_bool1x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool1x1 reference of the _value array. + */ + const domCg_bool1x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool1x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool1x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool1x1() {} + /** + * Overloaded assignment operator + */ + virtual domBool1x1 &operator=( const domBool1x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool1x2; + + typedef daeSmartRef domBool1x2Ref; + typedef daeTArray domBool1x2_Array; + + class domBool1x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X2; } + static daeInt ID() { return 387; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool1x2 value of the text data of this element. + */ + domCg_bool1x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool1x2 reference of the _value array. + */ + domCg_bool1x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool1x2 reference of the _value array. + */ + const domCg_bool1x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool1x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool1x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool1x2() {} + /** + * Overloaded assignment operator + */ + virtual domBool1x2 &operator=( const domBool1x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool1x3; + + typedef daeSmartRef domBool1x3Ref; + typedef daeTArray domBool1x3_Array; + + class domBool1x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X3; } + static daeInt ID() { return 388; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool1x3 value of the text data of this element. + */ + domCg_bool1x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool1x3 reference of the _value array. + */ + domCg_bool1x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool1x3 reference of the _value array. + */ + const domCg_bool1x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool1x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool1x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool1x3() {} + /** + * Overloaded assignment operator + */ + virtual domBool1x3 &operator=( const domBool1x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool1x4; + + typedef daeSmartRef domBool1x4Ref; + typedef daeTArray domBool1x4_Array; + + class domBool1x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X4; } + static daeInt ID() { return 389; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool1x4 value of the text data of this element. + */ + domCg_bool1x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool1x4 reference of the _value array. + */ + domCg_bool1x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool1x4 reference of the _value array. + */ + const domCg_bool1x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool1x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool1x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool1x4() {} + /** + * Overloaded assignment operator + */ + virtual domBool1x4 &operator=( const domBool1x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2x1; + + typedef daeSmartRef domBool2x1Ref; + typedef daeTArray domBool2x1_Array; + + class domBool2x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X1; } + static daeInt ID() { return 390; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool2x1 value of the text data of this element. + */ + domCg_bool2x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool2x1 reference of the _value array. + */ + domCg_bool2x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool2x1 reference of the _value array. + */ + const domCg_bool2x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool2x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2x1() {} + /** + * Overloaded assignment operator + */ + virtual domBool2x1 &operator=( const domBool2x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2x2; + + typedef daeSmartRef domBool2x2Ref; + typedef daeTArray domBool2x2_Array; + + class domBool2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X2; } + static daeInt ID() { return 391; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool2x2 value of the text data of this element. + */ + domCg_bool2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool2x2 reference of the _value array. + */ + domCg_bool2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool2x2 reference of the _value array. + */ + const domCg_bool2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2x2() {} + /** + * Overloaded assignment operator + */ + virtual domBool2x2 &operator=( const domBool2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2x3; + + typedef daeSmartRef domBool2x3Ref; + typedef daeTArray domBool2x3_Array; + + class domBool2x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X3; } + static daeInt ID() { return 392; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool2x3 value of the text data of this element. + */ + domCg_bool2x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool2x3 reference of the _value array. + */ + domCg_bool2x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool2x3 reference of the _value array. + */ + const domCg_bool2x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool2x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2x3() {} + /** + * Overloaded assignment operator + */ + virtual domBool2x3 &operator=( const domBool2x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2x4; + + typedef daeSmartRef domBool2x4Ref; + typedef daeTArray domBool2x4_Array; + + class domBool2x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X4; } + static daeInt ID() { return 393; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool2x4 value of the text data of this element. + */ + domCg_bool2x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool2x4 reference of the _value array. + */ + domCg_bool2x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool2x4 reference of the _value array. + */ + const domCg_bool2x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool2x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2x4() {} + /** + * Overloaded assignment operator + */ + virtual domBool2x4 &operator=( const domBool2x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3x1; + + typedef daeSmartRef domBool3x1Ref; + typedef daeTArray domBool3x1_Array; + + class domBool3x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X1; } + static daeInt ID() { return 394; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool3x1 value of the text data of this element. + */ + domCg_bool3x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool3x1 reference of the _value array. + */ + domCg_bool3x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool3x1 reference of the _value array. + */ + const domCg_bool3x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool3x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3x1() {} + /** + * Overloaded assignment operator + */ + virtual domBool3x1 &operator=( const domBool3x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3x2; + + typedef daeSmartRef domBool3x2Ref; + typedef daeTArray domBool3x2_Array; + + class domBool3x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X2; } + static daeInt ID() { return 395; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool3x2 value of the text data of this element. + */ + domCg_bool3x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool3x2 reference of the _value array. + */ + domCg_bool3x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool3x2 reference of the _value array. + */ + const domCg_bool3x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool3x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3x2() {} + /** + * Overloaded assignment operator + */ + virtual domBool3x2 &operator=( const domBool3x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3x3; + + typedef daeSmartRef domBool3x3Ref; + typedef daeTArray domBool3x3_Array; + + class domBool3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X3; } + static daeInt ID() { return 396; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool3x3 value of the text data of this element. + */ + domCg_bool3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool3x3 reference of the _value array. + */ + domCg_bool3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool3x3 reference of the _value array. + */ + const domCg_bool3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3x3() {} + /** + * Overloaded assignment operator + */ + virtual domBool3x3 &operator=( const domBool3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3x4; + + typedef daeSmartRef domBool3x4Ref; + typedef daeTArray domBool3x4_Array; + + class domBool3x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X4; } + static daeInt ID() { return 397; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool3x4 value of the text data of this element. + */ + domCg_bool3x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool3x4 reference of the _value array. + */ + domCg_bool3x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool3x4 reference of the _value array. + */ + const domCg_bool3x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool3x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3x4() {} + /** + * Overloaded assignment operator + */ + virtual domBool3x4 &operator=( const domBool3x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4x1; + + typedef daeSmartRef domBool4x1Ref; + typedef daeTArray domBool4x1_Array; + + class domBool4x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X1; } + static daeInt ID() { return 398; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool4x1 value of the text data of this element. + */ + domCg_bool4x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool4x1 reference of the _value array. + */ + domCg_bool4x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool4x1 reference of the _value array. + */ + const domCg_bool4x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool4x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4x1() {} + /** + * Overloaded assignment operator + */ + virtual domBool4x1 &operator=( const domBool4x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4x2; + + typedef daeSmartRef domBool4x2Ref; + typedef daeTArray domBool4x2_Array; + + class domBool4x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X2; } + static daeInt ID() { return 399; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool4x2 value of the text data of this element. + */ + domCg_bool4x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool4x2 reference of the _value array. + */ + domCg_bool4x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool4x2 reference of the _value array. + */ + const domCg_bool4x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool4x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4x2() {} + /** + * Overloaded assignment operator + */ + virtual domBool4x2 &operator=( const domBool4x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4x3; + + typedef daeSmartRef domBool4x3Ref; + typedef daeTArray domBool4x3_Array; + + class domBool4x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X3; } + static daeInt ID() { return 400; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool4x3 value of the text data of this element. + */ + domCg_bool4x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool4x3 reference of the _value array. + */ + domCg_bool4x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool4x3 reference of the _value array. + */ + const domCg_bool4x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool4x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4x3() {} + /** + * Overloaded assignment operator + */ + virtual domBool4x3 &operator=( const domBool4x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4x4; + + typedef daeSmartRef domBool4x4Ref; + typedef daeTArray domBool4x4_Array; + + class domBool4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X4; } + static daeInt ID() { return 401; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_bool4x4 value of the text data of this element. + */ + domCg_bool4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_bool4x4 reference of the _value array. + */ + domCg_bool4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_bool4x4 reference of the _value array. + */ + const domCg_bool4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_bool4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4x4() {} + /** + * Overloaded assignment operator + */ + virtual domBool4x4 &operator=( const domBool4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat; + + typedef daeSmartRef domFloatRef; + typedef daeTArray domFloat_Array; + + class domFloat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; } + static daeInt ID() { return 402; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float value of the text data of this element. + */ + domCg_float _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_float of the value. + */ + domCg_float getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_float val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat() {} + /** + * Overloaded assignment operator + */ + virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1; + + typedef daeSmartRef domFloat1Ref; + typedef daeTArray domFloat1_Array; + + class domFloat1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1; } + static daeInt ID() { return 403; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float1 value of the text data of this element. + */ + domCg_float1 _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_float1 of the value. + */ + domCg_float1 getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_float1 val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1 &operator=( const domFloat1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2; + + typedef daeSmartRef domFloat2Ref; + typedef daeTArray domFloat2_Array; + + class domFloat2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; } + static daeInt ID() { return 404; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float2 value of the text data of this element. + */ + domCg_float2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float2 reference of the _value array. + */ + domCg_float2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float2 reference of the _value array. + */ + const domCg_float2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3; + + typedef daeSmartRef domFloat3Ref; + typedef daeTArray domFloat3_Array; + + class domFloat3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; } + static daeInt ID() { return 405; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float3 value of the text data of this element. + */ + domCg_float3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float3 reference of the _value array. + */ + domCg_float3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float3 reference of the _value array. + */ + const domCg_float3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4; + + typedef daeSmartRef domFloat4Ref; + typedef daeTArray domFloat4_Array; + + class domFloat4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; } + static daeInt ID() { return 406; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float4 value of the text data of this element. + */ + domCg_float4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float4 reference of the _value array. + */ + domCg_float4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float4 reference of the _value array. + */ + const domCg_float4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x1; + + typedef daeSmartRef domFloat1x1Ref; + typedef daeTArray domFloat1x1_Array; + + class domFloat1x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X1; } + static daeInt ID() { return 407; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float1x1 value of the text data of this element. + */ + domCg_float1x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float1x1 reference of the _value array. + */ + domCg_float1x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float1x1 reference of the _value array. + */ + const domCg_float1x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float1x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x1 &operator=( const domFloat1x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x2; + + typedef daeSmartRef domFloat1x2Ref; + typedef daeTArray domFloat1x2_Array; + + class domFloat1x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X2; } + static daeInt ID() { return 408; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float1x2 value of the text data of this element. + */ + domCg_float1x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float1x2 reference of the _value array. + */ + domCg_float1x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float1x2 reference of the _value array. + */ + const domCg_float1x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float1x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x2 &operator=( const domFloat1x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x3; + + typedef daeSmartRef domFloat1x3Ref; + typedef daeTArray domFloat1x3_Array; + + class domFloat1x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X3; } + static daeInt ID() { return 409; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float1x3 value of the text data of this element. + */ + domCg_float1x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float1x3 reference of the _value array. + */ + domCg_float1x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float1x3 reference of the _value array. + */ + const domCg_float1x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float1x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x3 &operator=( const domFloat1x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x4; + + typedef daeSmartRef domFloat1x4Ref; + typedef daeTArray domFloat1x4_Array; + + class domFloat1x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X4; } + static daeInt ID() { return 410; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float1x4 value of the text data of this element. + */ + domCg_float1x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float1x4 reference of the _value array. + */ + domCg_float1x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float1x4 reference of the _value array. + */ + const domCg_float1x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float1x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x4 &operator=( const domFloat1x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x1; + + typedef daeSmartRef domFloat2x1Ref; + typedef daeTArray domFloat2x1_Array; + + class domFloat2x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X1; } + static daeInt ID() { return 411; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float2x1 value of the text data of this element. + */ + domCg_float2x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float2x1 reference of the _value array. + */ + domCg_float2x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float2x1 reference of the _value array. + */ + const domCg_float2x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float2x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x1 &operator=( const domFloat2x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x2; + + typedef daeSmartRef domFloat2x2Ref; + typedef daeTArray domFloat2x2_Array; + + class domFloat2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X2; } + static daeInt ID() { return 412; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float2x2 value of the text data of this element. + */ + domCg_float2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float2x2 reference of the _value array. + */ + domCg_float2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float2x2 reference of the _value array. + */ + const domCg_float2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x2 &operator=( const domFloat2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x3; + + typedef daeSmartRef domFloat2x3Ref; + typedef daeTArray domFloat2x3_Array; + + class domFloat2x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X3; } + static daeInt ID() { return 413; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float2x3 value of the text data of this element. + */ + domCg_float2x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float2x3 reference of the _value array. + */ + domCg_float2x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float2x3 reference of the _value array. + */ + const domCg_float2x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float2x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x3 &operator=( const domFloat2x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x4; + + typedef daeSmartRef domFloat2x4Ref; + typedef daeTArray domFloat2x4_Array; + + class domFloat2x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X4; } + static daeInt ID() { return 414; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float2x4 value of the text data of this element. + */ + domCg_float2x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float2x4 reference of the _value array. + */ + domCg_float2x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float2x4 reference of the _value array. + */ + const domCg_float2x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float2x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x4 &operator=( const domFloat2x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x1; + + typedef daeSmartRef domFloat3x1Ref; + typedef daeTArray domFloat3x1_Array; + + class domFloat3x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X1; } + static daeInt ID() { return 415; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float3x1 value of the text data of this element. + */ + domCg_float3x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float3x1 reference of the _value array. + */ + domCg_float3x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float3x1 reference of the _value array. + */ + const domCg_float3x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float3x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x1 &operator=( const domFloat3x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x2; + + typedef daeSmartRef domFloat3x2Ref; + typedef daeTArray domFloat3x2_Array; + + class domFloat3x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X2; } + static daeInt ID() { return 416; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float3x2 value of the text data of this element. + */ + domCg_float3x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float3x2 reference of the _value array. + */ + domCg_float3x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float3x2 reference of the _value array. + */ + const domCg_float3x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float3x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x2 &operator=( const domFloat3x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x3; + + typedef daeSmartRef domFloat3x3Ref; + typedef daeTArray domFloat3x3_Array; + + class domFloat3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X3; } + static daeInt ID() { return 417; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float3x3 value of the text data of this element. + */ + domCg_float3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float3x3 reference of the _value array. + */ + domCg_float3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float3x3 reference of the _value array. + */ + const domCg_float3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x3 &operator=( const domFloat3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x4; + + typedef daeSmartRef domFloat3x4Ref; + typedef daeTArray domFloat3x4_Array; + + class domFloat3x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X4; } + static daeInt ID() { return 418; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float3x4 value of the text data of this element. + */ + domCg_float3x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float3x4 reference of the _value array. + */ + domCg_float3x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float3x4 reference of the _value array. + */ + const domCg_float3x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float3x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x4 &operator=( const domFloat3x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x1; + + typedef daeSmartRef domFloat4x1Ref; + typedef daeTArray domFloat4x1_Array; + + class domFloat4x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X1; } + static daeInt ID() { return 419; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float4x1 value of the text data of this element. + */ + domCg_float4x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float4x1 reference of the _value array. + */ + domCg_float4x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float4x1 reference of the _value array. + */ + const domCg_float4x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float4x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x1 &operator=( const domFloat4x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x2; + + typedef daeSmartRef domFloat4x2Ref; + typedef daeTArray domFloat4x2_Array; + + class domFloat4x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X2; } + static daeInt ID() { return 420; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float4x2 value of the text data of this element. + */ + domCg_float4x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float4x2 reference of the _value array. + */ + domCg_float4x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float4x2 reference of the _value array. + */ + const domCg_float4x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float4x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x2 &operator=( const domFloat4x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x3; + + typedef daeSmartRef domFloat4x3Ref; + typedef daeTArray domFloat4x3_Array; + + class domFloat4x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X3; } + static daeInt ID() { return 421; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float4x3 value of the text data of this element. + */ + domCg_float4x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float4x3 reference of the _value array. + */ + domCg_float4x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float4x3 reference of the _value array. + */ + const domCg_float4x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float4x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x3 &operator=( const domFloat4x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x4; + + typedef daeSmartRef domFloat4x4Ref; + typedef daeTArray domFloat4x4_Array; + + class domFloat4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X4; } + static daeInt ID() { return 422; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_float4x4 value of the text data of this element. + */ + domCg_float4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_float4x4 reference of the _value array. + */ + domCg_float4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_float4x4 reference of the _value array. + */ + const domCg_float4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_float4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x4 &operator=( const domFloat4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt; + + typedef daeSmartRef domIntRef; + typedef daeTArray domInt_Array; + + class domInt : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT; } + static daeInt ID() { return 423; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int value of the text data of this element. + */ + domCg_int _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_int of the value. + */ + domCg_int getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_int val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt() {} + /** + * Overloaded assignment operator + */ + virtual domInt &operator=( const domInt &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt1; + + typedef daeSmartRef domInt1Ref; + typedef daeTArray domInt1_Array; + + class domInt1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1; } + static daeInt ID() { return 424; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int1 value of the text data of this element. + */ + domCg_int1 _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_int1 of the value. + */ + domCg_int1 getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_int1 val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt1() {} + /** + * Overloaded assignment operator + */ + virtual domInt1 &operator=( const domInt1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2; + + typedef daeSmartRef domInt2Ref; + typedef daeTArray domInt2_Array; + + class domInt2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2; } + static daeInt ID() { return 425; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int2 value of the text data of this element. + */ + domCg_int2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int2 reference of the _value array. + */ + domCg_int2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int2 reference of the _value array. + */ + const domCg_int2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2() {} + /** + * Overloaded assignment operator + */ + virtual domInt2 &operator=( const domInt2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3; + + typedef daeSmartRef domInt3Ref; + typedef daeTArray domInt3_Array; + + class domInt3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3; } + static daeInt ID() { return 426; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int3 value of the text data of this element. + */ + domCg_int3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int3 reference of the _value array. + */ + domCg_int3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int3 reference of the _value array. + */ + const domCg_int3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3() {} + /** + * Overloaded assignment operator + */ + virtual domInt3 &operator=( const domInt3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4; + + typedef daeSmartRef domInt4Ref; + typedef daeTArray domInt4_Array; + + class domInt4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4; } + static daeInt ID() { return 427; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int4 value of the text data of this element. + */ + domCg_int4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int4 reference of the _value array. + */ + domCg_int4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int4 reference of the _value array. + */ + const domCg_int4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4() {} + /** + * Overloaded assignment operator + */ + virtual domInt4 &operator=( const domInt4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt1x1; + + typedef daeSmartRef domInt1x1Ref; + typedef daeTArray domInt1x1_Array; + + class domInt1x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X1; } + static daeInt ID() { return 428; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int1x1 value of the text data of this element. + */ + domCg_int1x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int1x1 reference of the _value array. + */ + domCg_int1x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int1x1 reference of the _value array. + */ + const domCg_int1x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int1x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt1x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt1x1() {} + /** + * Overloaded assignment operator + */ + virtual domInt1x1 &operator=( const domInt1x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt1x2; + + typedef daeSmartRef domInt1x2Ref; + typedef daeTArray domInt1x2_Array; + + class domInt1x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X2; } + static daeInt ID() { return 429; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int1x2 value of the text data of this element. + */ + domCg_int1x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int1x2 reference of the _value array. + */ + domCg_int1x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int1x2 reference of the _value array. + */ + const domCg_int1x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int1x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt1x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt1x2() {} + /** + * Overloaded assignment operator + */ + virtual domInt1x2 &operator=( const domInt1x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt1x3; + + typedef daeSmartRef domInt1x3Ref; + typedef daeTArray domInt1x3_Array; + + class domInt1x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X3; } + static daeInt ID() { return 430; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int1x3 value of the text data of this element. + */ + domCg_int1x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int1x3 reference of the _value array. + */ + domCg_int1x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int1x3 reference of the _value array. + */ + const domCg_int1x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int1x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt1x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt1x3() {} + /** + * Overloaded assignment operator + */ + virtual domInt1x3 &operator=( const domInt1x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt1x4; + + typedef daeSmartRef domInt1x4Ref; + typedef daeTArray domInt1x4_Array; + + class domInt1x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X4; } + static daeInt ID() { return 431; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int1x4 value of the text data of this element. + */ + domCg_int1x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int1x4 reference of the _value array. + */ + domCg_int1x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int1x4 reference of the _value array. + */ + const domCg_int1x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int1x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt1x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt1x4() {} + /** + * Overloaded assignment operator + */ + virtual domInt1x4 &operator=( const domInt1x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2x1; + + typedef daeSmartRef domInt2x1Ref; + typedef daeTArray domInt2x1_Array; + + class domInt2x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X1; } + static daeInt ID() { return 432; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int2x1 value of the text data of this element. + */ + domCg_int2x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int2x1 reference of the _value array. + */ + domCg_int2x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int2x1 reference of the _value array. + */ + const domCg_int2x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int2x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2x1() {} + /** + * Overloaded assignment operator + */ + virtual domInt2x1 &operator=( const domInt2x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2x2; + + typedef daeSmartRef domInt2x2Ref; + typedef daeTArray domInt2x2_Array; + + class domInt2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X2; } + static daeInt ID() { return 433; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int2x2 value of the text data of this element. + */ + domCg_int2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int2x2 reference of the _value array. + */ + domCg_int2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int2x2 reference of the _value array. + */ + const domCg_int2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2x2() {} + /** + * Overloaded assignment operator + */ + virtual domInt2x2 &operator=( const domInt2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2x3; + + typedef daeSmartRef domInt2x3Ref; + typedef daeTArray domInt2x3_Array; + + class domInt2x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X3; } + static daeInt ID() { return 434; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int2x3 value of the text data of this element. + */ + domCg_int2x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int2x3 reference of the _value array. + */ + domCg_int2x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int2x3 reference of the _value array. + */ + const domCg_int2x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int2x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2x3() {} + /** + * Overloaded assignment operator + */ + virtual domInt2x3 &operator=( const domInt2x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2x4; + + typedef daeSmartRef domInt2x4Ref; + typedef daeTArray domInt2x4_Array; + + class domInt2x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X4; } + static daeInt ID() { return 435; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int2x4 value of the text data of this element. + */ + domCg_int2x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int2x4 reference of the _value array. + */ + domCg_int2x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int2x4 reference of the _value array. + */ + const domCg_int2x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int2x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2x4() {} + /** + * Overloaded assignment operator + */ + virtual domInt2x4 &operator=( const domInt2x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3x1; + + typedef daeSmartRef domInt3x1Ref; + typedef daeTArray domInt3x1_Array; + + class domInt3x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X1; } + static daeInt ID() { return 436; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int3x1 value of the text data of this element. + */ + domCg_int3x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int3x1 reference of the _value array. + */ + domCg_int3x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int3x1 reference of the _value array. + */ + const domCg_int3x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int3x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3x1() {} + /** + * Overloaded assignment operator + */ + virtual domInt3x1 &operator=( const domInt3x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3x2; + + typedef daeSmartRef domInt3x2Ref; + typedef daeTArray domInt3x2_Array; + + class domInt3x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X2; } + static daeInt ID() { return 437; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int3x2 value of the text data of this element. + */ + domCg_int3x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int3x2 reference of the _value array. + */ + domCg_int3x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int3x2 reference of the _value array. + */ + const domCg_int3x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int3x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3x2() {} + /** + * Overloaded assignment operator + */ + virtual domInt3x2 &operator=( const domInt3x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3x3; + + typedef daeSmartRef domInt3x3Ref; + typedef daeTArray domInt3x3_Array; + + class domInt3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X3; } + static daeInt ID() { return 438; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int3x3 value of the text data of this element. + */ + domCg_int3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int3x3 reference of the _value array. + */ + domCg_int3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int3x3 reference of the _value array. + */ + const domCg_int3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3x3() {} + /** + * Overloaded assignment operator + */ + virtual domInt3x3 &operator=( const domInt3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3x4; + + typedef daeSmartRef domInt3x4Ref; + typedef daeTArray domInt3x4_Array; + + class domInt3x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X4; } + static daeInt ID() { return 439; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int3x4 value of the text data of this element. + */ + domCg_int3x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int3x4 reference of the _value array. + */ + domCg_int3x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int3x4 reference of the _value array. + */ + const domCg_int3x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int3x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3x4() {} + /** + * Overloaded assignment operator + */ + virtual domInt3x4 &operator=( const domInt3x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4x1; + + typedef daeSmartRef domInt4x1Ref; + typedef daeTArray domInt4x1_Array; + + class domInt4x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X1; } + static daeInt ID() { return 440; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int4x1 value of the text data of this element. + */ + domCg_int4x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int4x1 reference of the _value array. + */ + domCg_int4x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int4x1 reference of the _value array. + */ + const domCg_int4x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int4x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4x1() {} + /** + * Overloaded assignment operator + */ + virtual domInt4x1 &operator=( const domInt4x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4x2; + + typedef daeSmartRef domInt4x2Ref; + typedef daeTArray domInt4x2_Array; + + class domInt4x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X2; } + static daeInt ID() { return 441; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int4x2 value of the text data of this element. + */ + domCg_int4x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int4x2 reference of the _value array. + */ + domCg_int4x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int4x2 reference of the _value array. + */ + const domCg_int4x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int4x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4x2() {} + /** + * Overloaded assignment operator + */ + virtual domInt4x2 &operator=( const domInt4x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4x3; + + typedef daeSmartRef domInt4x3Ref; + typedef daeTArray domInt4x3_Array; + + class domInt4x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X3; } + static daeInt ID() { return 442; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int4x3 value of the text data of this element. + */ + domCg_int4x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int4x3 reference of the _value array. + */ + domCg_int4x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int4x3 reference of the _value array. + */ + const domCg_int4x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int4x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4x3() {} + /** + * Overloaded assignment operator + */ + virtual domInt4x3 &operator=( const domInt4x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4x4; + + typedef daeSmartRef domInt4x4Ref; + typedef daeTArray domInt4x4_Array; + + class domInt4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X4; } + static daeInt ID() { return 443; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_int4x4 value of the text data of this element. + */ + domCg_int4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_int4x4 reference of the _value array. + */ + domCg_int4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_int4x4 reference of the _value array. + */ + const domCg_int4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_int4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4x4() {} + /** + * Overloaded assignment operator + */ + virtual domInt4x4 &operator=( const domInt4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf; + + typedef daeSmartRef domHalfRef; + typedef daeTArray domHalf_Array; + + class domHalf : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF; } + static daeInt ID() { return 444; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half value of the text data of this element. + */ + domCg_half _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_half of the value. + */ + domCg_half getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_half val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf() {} + /** + * Overloaded assignment operator + */ + virtual domHalf &operator=( const domHalf &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf1; + + typedef daeSmartRef domHalf1Ref; + typedef daeTArray domHalf1_Array; + + class domHalf1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1; } + static daeInt ID() { return 445; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half1 value of the text data of this element. + */ + domCg_half1 _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_half1 of the value. + */ + domCg_half1 getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_half1 val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf1() {} + /** + * Overloaded assignment operator + */ + virtual domHalf1 &operator=( const domHalf1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf2; + + typedef daeSmartRef domHalf2Ref; + typedef daeTArray domHalf2_Array; + + class domHalf2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2; } + static daeInt ID() { return 446; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half2 value of the text data of this element. + */ + domCg_half2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half2 reference of the _value array. + */ + domCg_half2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half2 reference of the _value array. + */ + const domCg_half2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf2() {} + /** + * Overloaded assignment operator + */ + virtual domHalf2 &operator=( const domHalf2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf3; + + typedef daeSmartRef domHalf3Ref; + typedef daeTArray domHalf3_Array; + + class domHalf3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3; } + static daeInt ID() { return 447; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half3 value of the text data of this element. + */ + domCg_half3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half3 reference of the _value array. + */ + domCg_half3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half3 reference of the _value array. + */ + const domCg_half3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf3() {} + /** + * Overloaded assignment operator + */ + virtual domHalf3 &operator=( const domHalf3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf4; + + typedef daeSmartRef domHalf4Ref; + typedef daeTArray domHalf4_Array; + + class domHalf4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4; } + static daeInt ID() { return 448; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half4 value of the text data of this element. + */ + domCg_half4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half4 reference of the _value array. + */ + domCg_half4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half4 reference of the _value array. + */ + const domCg_half4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf4() {} + /** + * Overloaded assignment operator + */ + virtual domHalf4 &operator=( const domHalf4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf1x1; + + typedef daeSmartRef domHalf1x1Ref; + typedef daeTArray domHalf1x1_Array; + + class domHalf1x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X1; } + static daeInt ID() { return 449; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half1x1 value of the text data of this element. + */ + domCg_half1x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half1x1 reference of the _value array. + */ + domCg_half1x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half1x1 reference of the _value array. + */ + const domCg_half1x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half1x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf1x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf1x1() {} + /** + * Overloaded assignment operator + */ + virtual domHalf1x1 &operator=( const domHalf1x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf1x2; + + typedef daeSmartRef domHalf1x2Ref; + typedef daeTArray domHalf1x2_Array; + + class domHalf1x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X2; } + static daeInt ID() { return 450; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half1x2 value of the text data of this element. + */ + domCg_half1x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half1x2 reference of the _value array. + */ + domCg_half1x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half1x2 reference of the _value array. + */ + const domCg_half1x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half1x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf1x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf1x2() {} + /** + * Overloaded assignment operator + */ + virtual domHalf1x2 &operator=( const domHalf1x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf1x3; + + typedef daeSmartRef domHalf1x3Ref; + typedef daeTArray domHalf1x3_Array; + + class domHalf1x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X3; } + static daeInt ID() { return 451; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half1x3 value of the text data of this element. + */ + domCg_half1x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half1x3 reference of the _value array. + */ + domCg_half1x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half1x3 reference of the _value array. + */ + const domCg_half1x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half1x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf1x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf1x3() {} + /** + * Overloaded assignment operator + */ + virtual domHalf1x3 &operator=( const domHalf1x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf1x4; + + typedef daeSmartRef domHalf1x4Ref; + typedef daeTArray domHalf1x4_Array; + + class domHalf1x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X4; } + static daeInt ID() { return 452; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half1x4 value of the text data of this element. + */ + domCg_half1x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half1x4 reference of the _value array. + */ + domCg_half1x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half1x4 reference of the _value array. + */ + const domCg_half1x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half1x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf1x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf1x4() {} + /** + * Overloaded assignment operator + */ + virtual domHalf1x4 &operator=( const domHalf1x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf2x1; + + typedef daeSmartRef domHalf2x1Ref; + typedef daeTArray domHalf2x1_Array; + + class domHalf2x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X1; } + static daeInt ID() { return 453; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half2x1 value of the text data of this element. + */ + domCg_half2x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half2x1 reference of the _value array. + */ + domCg_half2x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half2x1 reference of the _value array. + */ + const domCg_half2x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half2x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf2x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf2x1() {} + /** + * Overloaded assignment operator + */ + virtual domHalf2x1 &operator=( const domHalf2x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf2x2; + + typedef daeSmartRef domHalf2x2Ref; + typedef daeTArray domHalf2x2_Array; + + class domHalf2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X2; } + static daeInt ID() { return 454; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half2x2 value of the text data of this element. + */ + domCg_half2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half2x2 reference of the _value array. + */ + domCg_half2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half2x2 reference of the _value array. + */ + const domCg_half2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf2x2() {} + /** + * Overloaded assignment operator + */ + virtual domHalf2x2 &operator=( const domHalf2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf2x3; + + typedef daeSmartRef domHalf2x3Ref; + typedef daeTArray domHalf2x3_Array; + + class domHalf2x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X3; } + static daeInt ID() { return 455; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half2x3 value of the text data of this element. + */ + domCg_half2x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half2x3 reference of the _value array. + */ + domCg_half2x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half2x3 reference of the _value array. + */ + const domCg_half2x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half2x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf2x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf2x3() {} + /** + * Overloaded assignment operator + */ + virtual domHalf2x3 &operator=( const domHalf2x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf2x4; + + typedef daeSmartRef domHalf2x4Ref; + typedef daeTArray domHalf2x4_Array; + + class domHalf2x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X4; } + static daeInt ID() { return 456; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half2x4 value of the text data of this element. + */ + domCg_half2x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half2x4 reference of the _value array. + */ + domCg_half2x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half2x4 reference of the _value array. + */ + const domCg_half2x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half2x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf2x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf2x4() {} + /** + * Overloaded assignment operator + */ + virtual domHalf2x4 &operator=( const domHalf2x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf3x1; + + typedef daeSmartRef domHalf3x1Ref; + typedef daeTArray domHalf3x1_Array; + + class domHalf3x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X1; } + static daeInt ID() { return 457; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half3x1 value of the text data of this element. + */ + domCg_half3x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half3x1 reference of the _value array. + */ + domCg_half3x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half3x1 reference of the _value array. + */ + const domCg_half3x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half3x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf3x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf3x1() {} + /** + * Overloaded assignment operator + */ + virtual domHalf3x1 &operator=( const domHalf3x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf3x2; + + typedef daeSmartRef domHalf3x2Ref; + typedef daeTArray domHalf3x2_Array; + + class domHalf3x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X2; } + static daeInt ID() { return 458; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half3x2 value of the text data of this element. + */ + domCg_half3x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half3x2 reference of the _value array. + */ + domCg_half3x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half3x2 reference of the _value array. + */ + const domCg_half3x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half3x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf3x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf3x2() {} + /** + * Overloaded assignment operator + */ + virtual domHalf3x2 &operator=( const domHalf3x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf3x3; + + typedef daeSmartRef domHalf3x3Ref; + typedef daeTArray domHalf3x3_Array; + + class domHalf3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X3; } + static daeInt ID() { return 459; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half3x3 value of the text data of this element. + */ + domCg_half3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half3x3 reference of the _value array. + */ + domCg_half3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half3x3 reference of the _value array. + */ + const domCg_half3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf3x3() {} + /** + * Overloaded assignment operator + */ + virtual domHalf3x3 &operator=( const domHalf3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf3x4; + + typedef daeSmartRef domHalf3x4Ref; + typedef daeTArray domHalf3x4_Array; + + class domHalf3x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X4; } + static daeInt ID() { return 460; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half3x4 value of the text data of this element. + */ + domCg_half3x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half3x4 reference of the _value array. + */ + domCg_half3x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half3x4 reference of the _value array. + */ + const domCg_half3x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half3x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf3x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf3x4() {} + /** + * Overloaded assignment operator + */ + virtual domHalf3x4 &operator=( const domHalf3x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf4x1; + + typedef daeSmartRef domHalf4x1Ref; + typedef daeTArray domHalf4x1_Array; + + class domHalf4x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X1; } + static daeInt ID() { return 461; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half4x1 value of the text data of this element. + */ + domCg_half4x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half4x1 reference of the _value array. + */ + domCg_half4x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half4x1 reference of the _value array. + */ + const domCg_half4x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half4x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf4x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf4x1() {} + /** + * Overloaded assignment operator + */ + virtual domHalf4x1 &operator=( const domHalf4x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf4x2; + + typedef daeSmartRef domHalf4x2Ref; + typedef daeTArray domHalf4x2_Array; + + class domHalf4x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X2; } + static daeInt ID() { return 462; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half4x2 value of the text data of this element. + */ + domCg_half4x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half4x2 reference of the _value array. + */ + domCg_half4x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half4x2 reference of the _value array. + */ + const domCg_half4x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half4x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf4x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf4x2() {} + /** + * Overloaded assignment operator + */ + virtual domHalf4x2 &operator=( const domHalf4x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf4x3; + + typedef daeSmartRef domHalf4x3Ref; + typedef daeTArray domHalf4x3_Array; + + class domHalf4x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X3; } + static daeInt ID() { return 463; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half4x3 value of the text data of this element. + */ + domCg_half4x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half4x3 reference of the _value array. + */ + domCg_half4x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half4x3 reference of the _value array. + */ + const domCg_half4x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half4x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf4x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf4x3() {} + /** + * Overloaded assignment operator + */ + virtual domHalf4x3 &operator=( const domHalf4x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domHalf4x4; + + typedef daeSmartRef domHalf4x4Ref; + typedef daeTArray domHalf4x4_Array; + + class domHalf4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X4; } + static daeInt ID() { return 464; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_half4x4 value of the text data of this element. + */ + domCg_half4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_half4x4 reference of the _value array. + */ + domCg_half4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_half4x4 reference of the _value array. + */ + const domCg_half4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_half4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHalf4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHalf4x4() {} + /** + * Overloaded assignment operator + */ + virtual domHalf4x4 &operator=( const domHalf4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed; + + typedef daeSmartRef domFixedRef; + typedef daeTArray domFixed_Array; + + class domFixed : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED; } + static daeInt ID() { return 465; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed value of the text data of this element. + */ + domCg_fixed _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_fixed of the value. + */ + domCg_fixed getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_fixed val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed() {} + /** + * Overloaded assignment operator + */ + virtual domFixed &operator=( const domFixed &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed1; + + typedef daeSmartRef domFixed1Ref; + typedef daeTArray domFixed1_Array; + + class domFixed1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1; } + static daeInt ID() { return 466; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed1 value of the text data of this element. + */ + domCg_fixed1 _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domCg_fixed1 of the value. + */ + domCg_fixed1 getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domCg_fixed1 val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed1() {} + /** + * Overloaded assignment operator + */ + virtual domFixed1 &operator=( const domFixed1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed2; + + typedef daeSmartRef domFixed2Ref; + typedef daeTArray domFixed2_Array; + + class domFixed2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2; } + static daeInt ID() { return 467; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed2 value of the text data of this element. + */ + domCg_fixed2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed2 reference of the _value array. + */ + domCg_fixed2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed2 reference of the _value array. + */ + const domCg_fixed2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed2() {} + /** + * Overloaded assignment operator + */ + virtual domFixed2 &operator=( const domFixed2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed3; + + typedef daeSmartRef domFixed3Ref; + typedef daeTArray domFixed3_Array; + + class domFixed3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3; } + static daeInt ID() { return 468; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed3 value of the text data of this element. + */ + domCg_fixed3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed3 reference of the _value array. + */ + domCg_fixed3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed3 reference of the _value array. + */ + const domCg_fixed3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed3() {} + /** + * Overloaded assignment operator + */ + virtual domFixed3 &operator=( const domFixed3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed4; + + typedef daeSmartRef domFixed4Ref; + typedef daeTArray domFixed4_Array; + + class domFixed4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4; } + static daeInt ID() { return 469; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed4 value of the text data of this element. + */ + domCg_fixed4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed4 reference of the _value array. + */ + domCg_fixed4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed4 reference of the _value array. + */ + const domCg_fixed4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed4() {} + /** + * Overloaded assignment operator + */ + virtual domFixed4 &operator=( const domFixed4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed1x1; + + typedef daeSmartRef domFixed1x1Ref; + typedef daeTArray domFixed1x1_Array; + + class domFixed1x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X1; } + static daeInt ID() { return 470; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed1x1 value of the text data of this element. + */ + domCg_fixed1x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed1x1 reference of the _value array. + */ + domCg_fixed1x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed1x1 reference of the _value array. + */ + const domCg_fixed1x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed1x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed1x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed1x1() {} + /** + * Overloaded assignment operator + */ + virtual domFixed1x1 &operator=( const domFixed1x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed1x2; + + typedef daeSmartRef domFixed1x2Ref; + typedef daeTArray domFixed1x2_Array; + + class domFixed1x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X2; } + static daeInt ID() { return 471; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed1x2 value of the text data of this element. + */ + domCg_fixed1x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed1x2 reference of the _value array. + */ + domCg_fixed1x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed1x2 reference of the _value array. + */ + const domCg_fixed1x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed1x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed1x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed1x2() {} + /** + * Overloaded assignment operator + */ + virtual domFixed1x2 &operator=( const domFixed1x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed1x3; + + typedef daeSmartRef domFixed1x3Ref; + typedef daeTArray domFixed1x3_Array; + + class domFixed1x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X3; } + static daeInt ID() { return 472; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed1x3 value of the text data of this element. + */ + domCg_fixed1x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed1x3 reference of the _value array. + */ + domCg_fixed1x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed1x3 reference of the _value array. + */ + const domCg_fixed1x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed1x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed1x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed1x3() {} + /** + * Overloaded assignment operator + */ + virtual domFixed1x3 &operator=( const domFixed1x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed1x4; + + typedef daeSmartRef domFixed1x4Ref; + typedef daeTArray domFixed1x4_Array; + + class domFixed1x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X4; } + static daeInt ID() { return 473; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed1x4 value of the text data of this element. + */ + domCg_fixed1x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed1x4 reference of the _value array. + */ + domCg_fixed1x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed1x4 reference of the _value array. + */ + const domCg_fixed1x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed1x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed1x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed1x4() {} + /** + * Overloaded assignment operator + */ + virtual domFixed1x4 &operator=( const domFixed1x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed2x1; + + typedef daeSmartRef domFixed2x1Ref; + typedef daeTArray domFixed2x1_Array; + + class domFixed2x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X1; } + static daeInt ID() { return 474; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed2x1 value of the text data of this element. + */ + domCg_fixed2x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed2x1 reference of the _value array. + */ + domCg_fixed2x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed2x1 reference of the _value array. + */ + const domCg_fixed2x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed2x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed2x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed2x1() {} + /** + * Overloaded assignment operator + */ + virtual domFixed2x1 &operator=( const domFixed2x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed2x2; + + typedef daeSmartRef domFixed2x2Ref; + typedef daeTArray domFixed2x2_Array; + + class domFixed2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X2; } + static daeInt ID() { return 475; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed2x2 value of the text data of this element. + */ + domCg_fixed2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed2x2 reference of the _value array. + */ + domCg_fixed2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed2x2 reference of the _value array. + */ + const domCg_fixed2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed2x2() {} + /** + * Overloaded assignment operator + */ + virtual domFixed2x2 &operator=( const domFixed2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed2x3; + + typedef daeSmartRef domFixed2x3Ref; + typedef daeTArray domFixed2x3_Array; + + class domFixed2x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X3; } + static daeInt ID() { return 476; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed2x3 value of the text data of this element. + */ + domCg_fixed2x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed2x3 reference of the _value array. + */ + domCg_fixed2x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed2x3 reference of the _value array. + */ + const domCg_fixed2x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed2x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed2x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed2x3() {} + /** + * Overloaded assignment operator + */ + virtual domFixed2x3 &operator=( const domFixed2x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed2x4; + + typedef daeSmartRef domFixed2x4Ref; + typedef daeTArray domFixed2x4_Array; + + class domFixed2x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X4; } + static daeInt ID() { return 477; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed2x4 value of the text data of this element. + */ + domCg_fixed2x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed2x4 reference of the _value array. + */ + domCg_fixed2x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed2x4 reference of the _value array. + */ + const domCg_fixed2x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed2x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed2x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed2x4() {} + /** + * Overloaded assignment operator + */ + virtual domFixed2x4 &operator=( const domFixed2x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed3x1; + + typedef daeSmartRef domFixed3x1Ref; + typedef daeTArray domFixed3x1_Array; + + class domFixed3x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X1; } + static daeInt ID() { return 478; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed3x1 value of the text data of this element. + */ + domCg_fixed3x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed3x1 reference of the _value array. + */ + domCg_fixed3x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed3x1 reference of the _value array. + */ + const domCg_fixed3x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed3x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed3x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed3x1() {} + /** + * Overloaded assignment operator + */ + virtual domFixed3x1 &operator=( const domFixed3x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed3x2; + + typedef daeSmartRef domFixed3x2Ref; + typedef daeTArray domFixed3x2_Array; + + class domFixed3x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X2; } + static daeInt ID() { return 479; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed3x2 value of the text data of this element. + */ + domCg_fixed3x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed3x2 reference of the _value array. + */ + domCg_fixed3x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed3x2 reference of the _value array. + */ + const domCg_fixed3x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed3x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed3x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed3x2() {} + /** + * Overloaded assignment operator + */ + virtual domFixed3x2 &operator=( const domFixed3x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed3x3; + + typedef daeSmartRef domFixed3x3Ref; + typedef daeTArray domFixed3x3_Array; + + class domFixed3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X3; } + static daeInt ID() { return 480; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed3x3 value of the text data of this element. + */ + domCg_fixed3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed3x3 reference of the _value array. + */ + domCg_fixed3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed3x3 reference of the _value array. + */ + const domCg_fixed3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed3x3() {} + /** + * Overloaded assignment operator + */ + virtual domFixed3x3 &operator=( const domFixed3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed3x4; + + typedef daeSmartRef domFixed3x4Ref; + typedef daeTArray domFixed3x4_Array; + + class domFixed3x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X4; } + static daeInt ID() { return 481; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed3x4 value of the text data of this element. + */ + domCg_fixed3x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed3x4 reference of the _value array. + */ + domCg_fixed3x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed3x4 reference of the _value array. + */ + const domCg_fixed3x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed3x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed3x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed3x4() {} + /** + * Overloaded assignment operator + */ + virtual domFixed3x4 &operator=( const domFixed3x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed4x1; + + typedef daeSmartRef domFixed4x1Ref; + typedef daeTArray domFixed4x1_Array; + + class domFixed4x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X1; } + static daeInt ID() { return 482; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed4x1 value of the text data of this element. + */ + domCg_fixed4x1 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed4x1 reference of the _value array. + */ + domCg_fixed4x1 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed4x1 reference of the _value array. + */ + const domCg_fixed4x1 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed4x1 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed4x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed4x1() {} + /** + * Overloaded assignment operator + */ + virtual domFixed4x1 &operator=( const domFixed4x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed4x2; + + typedef daeSmartRef domFixed4x2Ref; + typedef daeTArray domFixed4x2_Array; + + class domFixed4x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X2; } + static daeInt ID() { return 483; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed4x2 value of the text data of this element. + */ + domCg_fixed4x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed4x2 reference of the _value array. + */ + domCg_fixed4x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed4x2 reference of the _value array. + */ + const domCg_fixed4x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed4x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed4x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed4x2() {} + /** + * Overloaded assignment operator + */ + virtual domFixed4x2 &operator=( const domFixed4x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed4x3; + + typedef daeSmartRef domFixed4x3Ref; + typedef daeTArray domFixed4x3_Array; + + class domFixed4x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X3; } + static daeInt ID() { return 484; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed4x3 value of the text data of this element. + */ + domCg_fixed4x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed4x3 reference of the _value array. + */ + domCg_fixed4x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed4x3 reference of the _value array. + */ + const domCg_fixed4x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed4x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed4x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed4x3() {} + /** + * Overloaded assignment operator + */ + virtual domFixed4x3 &operator=( const domFixed4x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFixed4x4; + + typedef daeSmartRef domFixed4x4Ref; + typedef daeTArray domFixed4x4_Array; + + class domFixed4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X4; } + static daeInt ID() { return 485; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domCg_fixed4x4 value of the text data of this element. + */ + domCg_fixed4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domCg_fixed4x4 reference of the _value array. + */ + domCg_fixed4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domCg_fixed4x4 reference of the _value array. + */ + const domCg_fixed4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domCg_fixed4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFixed4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFixed4x4() {} + /** + * Overloaded assignment operator + */ + virtual domFixed4x4 &operator=( const domFixed4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domString; + + typedef daeSmartRef domStringRef; + typedef daeTArray domString_Array; + + class domString : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STRING; } + static daeInt ID() { return 486; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::xsString value of the text data of this element. + */ + ::xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a ::xsString of the value. + */ + ::xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domString(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domString() {} + /** + * Overloaded assignment operator + */ + virtual domString &operator=( const domString &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domEnum; + + typedef daeSmartRef domEnumRef; + typedef daeTArray domEnum_Array; + + class domEnum : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ENUM; } + static daeInt ID() { return 487; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGl_enumeration value of the text data of this element. + */ + domGl_enumeration _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGl_enumeration of the value. + */ + domGl_enumeration getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGl_enumeration val ) { _value = val; } + + protected: + /** + * Constructor + */ + domEnum(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domEnum() {} + /** + * Overloaded assignment operator + */ + virtual domEnum &operator=( const domEnum &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domBoolRef elemBool; + domBool1Ref elemBool1; + domBool2Ref elemBool2; + domBool3Ref elemBool3; + domBool4Ref elemBool4; + domBool1x1Ref elemBool1x1; + domBool1x2Ref elemBool1x2; + domBool1x3Ref elemBool1x3; + domBool1x4Ref elemBool1x4; + domBool2x1Ref elemBool2x1; + domBool2x2Ref elemBool2x2; + domBool2x3Ref elemBool2x3; + domBool2x4Ref elemBool2x4; + domBool3x1Ref elemBool3x1; + domBool3x2Ref elemBool3x2; + domBool3x3Ref elemBool3x3; + domBool3x4Ref elemBool3x4; + domBool4x1Ref elemBool4x1; + domBool4x2Ref elemBool4x2; + domBool4x3Ref elemBool4x3; + domBool4x4Ref elemBool4x4; + domFloatRef elemFloat; + domFloat1Ref elemFloat1; + domFloat2Ref elemFloat2; + domFloat3Ref elemFloat3; + domFloat4Ref elemFloat4; + domFloat1x1Ref elemFloat1x1; + domFloat1x2Ref elemFloat1x2; + domFloat1x3Ref elemFloat1x3; + domFloat1x4Ref elemFloat1x4; + domFloat2x1Ref elemFloat2x1; + domFloat2x2Ref elemFloat2x2; + domFloat2x3Ref elemFloat2x3; + domFloat2x4Ref elemFloat2x4; + domFloat3x1Ref elemFloat3x1; + domFloat3x2Ref elemFloat3x2; + domFloat3x3Ref elemFloat3x3; + domFloat3x4Ref elemFloat3x4; + domFloat4x1Ref elemFloat4x1; + domFloat4x2Ref elemFloat4x2; + domFloat4x3Ref elemFloat4x3; + domFloat4x4Ref elemFloat4x4; + domIntRef elemInt; + domInt1Ref elemInt1; + domInt2Ref elemInt2; + domInt3Ref elemInt3; + domInt4Ref elemInt4; + domInt1x1Ref elemInt1x1; + domInt1x2Ref elemInt1x2; + domInt1x3Ref elemInt1x3; + domInt1x4Ref elemInt1x4; + domInt2x1Ref elemInt2x1; + domInt2x2Ref elemInt2x2; + domInt2x3Ref elemInt2x3; + domInt2x4Ref elemInt2x4; + domInt3x1Ref elemInt3x1; + domInt3x2Ref elemInt3x2; + domInt3x3Ref elemInt3x3; + domInt3x4Ref elemInt3x4; + domInt4x1Ref elemInt4x1; + domInt4x2Ref elemInt4x2; + domInt4x3Ref elemInt4x3; + domInt4x4Ref elemInt4x4; + domHalfRef elemHalf; + domHalf1Ref elemHalf1; + domHalf2Ref elemHalf2; + domHalf3Ref elemHalf3; + domHalf4Ref elemHalf4; + domHalf1x1Ref elemHalf1x1; + domHalf1x2Ref elemHalf1x2; + domHalf1x3Ref elemHalf1x3; + domHalf1x4Ref elemHalf1x4; + domHalf2x1Ref elemHalf2x1; + domHalf2x2Ref elemHalf2x2; + domHalf2x3Ref elemHalf2x3; + domHalf2x4Ref elemHalf2x4; + domHalf3x1Ref elemHalf3x1; + domHalf3x2Ref elemHalf3x2; + domHalf3x3Ref elemHalf3x3; + domHalf3x4Ref elemHalf3x4; + domHalf4x1Ref elemHalf4x1; + domHalf4x2Ref elemHalf4x2; + domHalf4x3Ref elemHalf4x3; + domHalf4x4Ref elemHalf4x4; + domFixedRef elemFixed; + domFixed1Ref elemFixed1; + domFixed2Ref elemFixed2; + domFixed3Ref elemFixed3; + domFixed4Ref elemFixed4; + domFixed1x1Ref elemFixed1x1; + domFixed1x2Ref elemFixed1x2; + domFixed1x3Ref elemFixed1x3; + domFixed1x4Ref elemFixed1x4; + domFixed2x1Ref elemFixed2x1; + domFixed2x2Ref elemFixed2x2; + domFixed2x3Ref elemFixed2x3; + domFixed2x4Ref elemFixed2x4; + domFixed3x1Ref elemFixed3x1; + domFixed3x2Ref elemFixed3x2; + domFixed3x3Ref elemFixed3x3; + domFixed3x4Ref elemFixed3x4; + domFixed4x1Ref elemFixed4x1; + domFixed4x2Ref elemFixed4x2; + domFixed4x3Ref elemFixed4x3; + domFixed4x4Ref elemFixed4x4; + domCg_surface_typeRef elemSurface; + domCg_sampler1DRef elemSampler1D; + domCg_sampler2DRef elemSampler2D; + domCg_sampler3DRef elemSampler3D; + domCg_samplerRECTRef elemSamplerRECT; + domCg_samplerCUBERef elemSamplerCUBE; + domCg_samplerDEPTHRef elemSamplerDEPTH; + domStringRef elemString; + domEnumRef elemEnum; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the bool element. + * @return a daeSmartRef to the bool element. + */ + const domBoolRef getBool() const { return elemBool; } + /** + * Gets the bool1 element. + * @return a daeSmartRef to the bool1 element. + */ + const domBool1Ref getBool1() const { return elemBool1; } + /** + * Gets the bool2 element. + * @return a daeSmartRef to the bool2 element. + */ + const domBool2Ref getBool2() const { return elemBool2; } + /** + * Gets the bool3 element. + * @return a daeSmartRef to the bool3 element. + */ + const domBool3Ref getBool3() const { return elemBool3; } + /** + * Gets the bool4 element. + * @return a daeSmartRef to the bool4 element. + */ + const domBool4Ref getBool4() const { return elemBool4; } + /** + * Gets the bool1x1 element. + * @return a daeSmartRef to the bool1x1 element. + */ + const domBool1x1Ref getBool1x1() const { return elemBool1x1; } + /** + * Gets the bool1x2 element. + * @return a daeSmartRef to the bool1x2 element. + */ + const domBool1x2Ref getBool1x2() const { return elemBool1x2; } + /** + * Gets the bool1x3 element. + * @return a daeSmartRef to the bool1x3 element. + */ + const domBool1x3Ref getBool1x3() const { return elemBool1x3; } + /** + * Gets the bool1x4 element. + * @return a daeSmartRef to the bool1x4 element. + */ + const domBool1x4Ref getBool1x4() const { return elemBool1x4; } + /** + * Gets the bool2x1 element. + * @return a daeSmartRef to the bool2x1 element. + */ + const domBool2x1Ref getBool2x1() const { return elemBool2x1; } + /** + * Gets the bool2x2 element. + * @return a daeSmartRef to the bool2x2 element. + */ + const domBool2x2Ref getBool2x2() const { return elemBool2x2; } + /** + * Gets the bool2x3 element. + * @return a daeSmartRef to the bool2x3 element. + */ + const domBool2x3Ref getBool2x3() const { return elemBool2x3; } + /** + * Gets the bool2x4 element. + * @return a daeSmartRef to the bool2x4 element. + */ + const domBool2x4Ref getBool2x4() const { return elemBool2x4; } + /** + * Gets the bool3x1 element. + * @return a daeSmartRef to the bool3x1 element. + */ + const domBool3x1Ref getBool3x1() const { return elemBool3x1; } + /** + * Gets the bool3x2 element. + * @return a daeSmartRef to the bool3x2 element. + */ + const domBool3x2Ref getBool3x2() const { return elemBool3x2; } + /** + * Gets the bool3x3 element. + * @return a daeSmartRef to the bool3x3 element. + */ + const domBool3x3Ref getBool3x3() const { return elemBool3x3; } + /** + * Gets the bool3x4 element. + * @return a daeSmartRef to the bool3x4 element. + */ + const domBool3x4Ref getBool3x4() const { return elemBool3x4; } + /** + * Gets the bool4x1 element. + * @return a daeSmartRef to the bool4x1 element. + */ + const domBool4x1Ref getBool4x1() const { return elemBool4x1; } + /** + * Gets the bool4x2 element. + * @return a daeSmartRef to the bool4x2 element. + */ + const domBool4x2Ref getBool4x2() const { return elemBool4x2; } + /** + * Gets the bool4x3 element. + * @return a daeSmartRef to the bool4x3 element. + */ + const domBool4x3Ref getBool4x3() const { return elemBool4x3; } + /** + * Gets the bool4x4 element. + * @return a daeSmartRef to the bool4x4 element. + */ + const domBool4x4Ref getBool4x4() const { return elemBool4x4; } + /** + * Gets the float element. + * @return a daeSmartRef to the float element. + */ + const domFloatRef getFloat() const { return elemFloat; } + /** + * Gets the float1 element. + * @return a daeSmartRef to the float1 element. + */ + const domFloat1Ref getFloat1() const { return elemFloat1; } + /** + * Gets the float2 element. + * @return a daeSmartRef to the float2 element. + */ + const domFloat2Ref getFloat2() const { return elemFloat2; } + /** + * Gets the float3 element. + * @return a daeSmartRef to the float3 element. + */ + const domFloat3Ref getFloat3() const { return elemFloat3; } + /** + * Gets the float4 element. + * @return a daeSmartRef to the float4 element. + */ + const domFloat4Ref getFloat4() const { return elemFloat4; } + /** + * Gets the float1x1 element. + * @return a daeSmartRef to the float1x1 element. + */ + const domFloat1x1Ref getFloat1x1() const { return elemFloat1x1; } + /** + * Gets the float1x2 element. + * @return a daeSmartRef to the float1x2 element. + */ + const domFloat1x2Ref getFloat1x2() const { return elemFloat1x2; } + /** + * Gets the float1x3 element. + * @return a daeSmartRef to the float1x3 element. + */ + const domFloat1x3Ref getFloat1x3() const { return elemFloat1x3; } + /** + * Gets the float1x4 element. + * @return a daeSmartRef to the float1x4 element. + */ + const domFloat1x4Ref getFloat1x4() const { return elemFloat1x4; } + /** + * Gets the float2x1 element. + * @return a daeSmartRef to the float2x1 element. + */ + const domFloat2x1Ref getFloat2x1() const { return elemFloat2x1; } + /** + * Gets the float2x2 element. + * @return a daeSmartRef to the float2x2 element. + */ + const domFloat2x2Ref getFloat2x2() const { return elemFloat2x2; } + /** + * Gets the float2x3 element. + * @return a daeSmartRef to the float2x3 element. + */ + const domFloat2x3Ref getFloat2x3() const { return elemFloat2x3; } + /** + * Gets the float2x4 element. + * @return a daeSmartRef to the float2x4 element. + */ + const domFloat2x4Ref getFloat2x4() const { return elemFloat2x4; } + /** + * Gets the float3x1 element. + * @return a daeSmartRef to the float3x1 element. + */ + const domFloat3x1Ref getFloat3x1() const { return elemFloat3x1; } + /** + * Gets the float3x2 element. + * @return a daeSmartRef to the float3x2 element. + */ + const domFloat3x2Ref getFloat3x2() const { return elemFloat3x2; } + /** + * Gets the float3x3 element. + * @return a daeSmartRef to the float3x3 element. + */ + const domFloat3x3Ref getFloat3x3() const { return elemFloat3x3; } + /** + * Gets the float3x4 element. + * @return a daeSmartRef to the float3x4 element. + */ + const domFloat3x4Ref getFloat3x4() const { return elemFloat3x4; } + /** + * Gets the float4x1 element. + * @return a daeSmartRef to the float4x1 element. + */ + const domFloat4x1Ref getFloat4x1() const { return elemFloat4x1; } + /** + * Gets the float4x2 element. + * @return a daeSmartRef to the float4x2 element. + */ + const domFloat4x2Ref getFloat4x2() const { return elemFloat4x2; } + /** + * Gets the float4x3 element. + * @return a daeSmartRef to the float4x3 element. + */ + const domFloat4x3Ref getFloat4x3() const { return elemFloat4x3; } + /** + * Gets the float4x4 element. + * @return a daeSmartRef to the float4x4 element. + */ + const domFloat4x4Ref getFloat4x4() const { return elemFloat4x4; } + /** + * Gets the int element. + * @return a daeSmartRef to the int element. + */ + const domIntRef getInt() const { return elemInt; } + /** + * Gets the int1 element. + * @return a daeSmartRef to the int1 element. + */ + const domInt1Ref getInt1() const { return elemInt1; } + /** + * Gets the int2 element. + * @return a daeSmartRef to the int2 element. + */ + const domInt2Ref getInt2() const { return elemInt2; } + /** + * Gets the int3 element. + * @return a daeSmartRef to the int3 element. + */ + const domInt3Ref getInt3() const { return elemInt3; } + /** + * Gets the int4 element. + * @return a daeSmartRef to the int4 element. + */ + const domInt4Ref getInt4() const { return elemInt4; } + /** + * Gets the int1x1 element. + * @return a daeSmartRef to the int1x1 element. + */ + const domInt1x1Ref getInt1x1() const { return elemInt1x1; } + /** + * Gets the int1x2 element. + * @return a daeSmartRef to the int1x2 element. + */ + const domInt1x2Ref getInt1x2() const { return elemInt1x2; } + /** + * Gets the int1x3 element. + * @return a daeSmartRef to the int1x3 element. + */ + const domInt1x3Ref getInt1x3() const { return elemInt1x3; } + /** + * Gets the int1x4 element. + * @return a daeSmartRef to the int1x4 element. + */ + const domInt1x4Ref getInt1x4() const { return elemInt1x4; } + /** + * Gets the int2x1 element. + * @return a daeSmartRef to the int2x1 element. + */ + const domInt2x1Ref getInt2x1() const { return elemInt2x1; } + /** + * Gets the int2x2 element. + * @return a daeSmartRef to the int2x2 element. + */ + const domInt2x2Ref getInt2x2() const { return elemInt2x2; } + /** + * Gets the int2x3 element. + * @return a daeSmartRef to the int2x3 element. + */ + const domInt2x3Ref getInt2x3() const { return elemInt2x3; } + /** + * Gets the int2x4 element. + * @return a daeSmartRef to the int2x4 element. + */ + const domInt2x4Ref getInt2x4() const { return elemInt2x4; } + /** + * Gets the int3x1 element. + * @return a daeSmartRef to the int3x1 element. + */ + const domInt3x1Ref getInt3x1() const { return elemInt3x1; } + /** + * Gets the int3x2 element. + * @return a daeSmartRef to the int3x2 element. + */ + const domInt3x2Ref getInt3x2() const { return elemInt3x2; } + /** + * Gets the int3x3 element. + * @return a daeSmartRef to the int3x3 element. + */ + const domInt3x3Ref getInt3x3() const { return elemInt3x3; } + /** + * Gets the int3x4 element. + * @return a daeSmartRef to the int3x4 element. + */ + const domInt3x4Ref getInt3x4() const { return elemInt3x4; } + /** + * Gets the int4x1 element. + * @return a daeSmartRef to the int4x1 element. + */ + const domInt4x1Ref getInt4x1() const { return elemInt4x1; } + /** + * Gets the int4x2 element. + * @return a daeSmartRef to the int4x2 element. + */ + const domInt4x2Ref getInt4x2() const { return elemInt4x2; } + /** + * Gets the int4x3 element. + * @return a daeSmartRef to the int4x3 element. + */ + const domInt4x3Ref getInt4x3() const { return elemInt4x3; } + /** + * Gets the int4x4 element. + * @return a daeSmartRef to the int4x4 element. + */ + const domInt4x4Ref getInt4x4() const { return elemInt4x4; } + /** + * Gets the half element. + * @return a daeSmartRef to the half element. + */ + const domHalfRef getHalf() const { return elemHalf; } + /** + * Gets the half1 element. + * @return a daeSmartRef to the half1 element. + */ + const domHalf1Ref getHalf1() const { return elemHalf1; } + /** + * Gets the half2 element. + * @return a daeSmartRef to the half2 element. + */ + const domHalf2Ref getHalf2() const { return elemHalf2; } + /** + * Gets the half3 element. + * @return a daeSmartRef to the half3 element. + */ + const domHalf3Ref getHalf3() const { return elemHalf3; } + /** + * Gets the half4 element. + * @return a daeSmartRef to the half4 element. + */ + const domHalf4Ref getHalf4() const { return elemHalf4; } + /** + * Gets the half1x1 element. + * @return a daeSmartRef to the half1x1 element. + */ + const domHalf1x1Ref getHalf1x1() const { return elemHalf1x1; } + /** + * Gets the half1x2 element. + * @return a daeSmartRef to the half1x2 element. + */ + const domHalf1x2Ref getHalf1x2() const { return elemHalf1x2; } + /** + * Gets the half1x3 element. + * @return a daeSmartRef to the half1x3 element. + */ + const domHalf1x3Ref getHalf1x3() const { return elemHalf1x3; } + /** + * Gets the half1x4 element. + * @return a daeSmartRef to the half1x4 element. + */ + const domHalf1x4Ref getHalf1x4() const { return elemHalf1x4; } + /** + * Gets the half2x1 element. + * @return a daeSmartRef to the half2x1 element. + */ + const domHalf2x1Ref getHalf2x1() const { return elemHalf2x1; } + /** + * Gets the half2x2 element. + * @return a daeSmartRef to the half2x2 element. + */ + const domHalf2x2Ref getHalf2x2() const { return elemHalf2x2; } + /** + * Gets the half2x3 element. + * @return a daeSmartRef to the half2x3 element. + */ + const domHalf2x3Ref getHalf2x3() const { return elemHalf2x3; } + /** + * Gets the half2x4 element. + * @return a daeSmartRef to the half2x4 element. + */ + const domHalf2x4Ref getHalf2x4() const { return elemHalf2x4; } + /** + * Gets the half3x1 element. + * @return a daeSmartRef to the half3x1 element. + */ + const domHalf3x1Ref getHalf3x1() const { return elemHalf3x1; } + /** + * Gets the half3x2 element. + * @return a daeSmartRef to the half3x2 element. + */ + const domHalf3x2Ref getHalf3x2() const { return elemHalf3x2; } + /** + * Gets the half3x3 element. + * @return a daeSmartRef to the half3x3 element. + */ + const domHalf3x3Ref getHalf3x3() const { return elemHalf3x3; } + /** + * Gets the half3x4 element. + * @return a daeSmartRef to the half3x4 element. + */ + const domHalf3x4Ref getHalf3x4() const { return elemHalf3x4; } + /** + * Gets the half4x1 element. + * @return a daeSmartRef to the half4x1 element. + */ + const domHalf4x1Ref getHalf4x1() const { return elemHalf4x1; } + /** + * Gets the half4x2 element. + * @return a daeSmartRef to the half4x2 element. + */ + const domHalf4x2Ref getHalf4x2() const { return elemHalf4x2; } + /** + * Gets the half4x3 element. + * @return a daeSmartRef to the half4x3 element. + */ + const domHalf4x3Ref getHalf4x3() const { return elemHalf4x3; } + /** + * Gets the half4x4 element. + * @return a daeSmartRef to the half4x4 element. + */ + const domHalf4x4Ref getHalf4x4() const { return elemHalf4x4; } + /** + * Gets the fixed element. + * @return a daeSmartRef to the fixed element. + */ + const domFixedRef getFixed() const { return elemFixed; } + /** + * Gets the fixed1 element. + * @return a daeSmartRef to the fixed1 element. + */ + const domFixed1Ref getFixed1() const { return elemFixed1; } + /** + * Gets the fixed2 element. + * @return a daeSmartRef to the fixed2 element. + */ + const domFixed2Ref getFixed2() const { return elemFixed2; } + /** + * Gets the fixed3 element. + * @return a daeSmartRef to the fixed3 element. + */ + const domFixed3Ref getFixed3() const { return elemFixed3; } + /** + * Gets the fixed4 element. + * @return a daeSmartRef to the fixed4 element. + */ + const domFixed4Ref getFixed4() const { return elemFixed4; } + /** + * Gets the fixed1x1 element. + * @return a daeSmartRef to the fixed1x1 element. + */ + const domFixed1x1Ref getFixed1x1() const { return elemFixed1x1; } + /** + * Gets the fixed1x2 element. + * @return a daeSmartRef to the fixed1x2 element. + */ + const domFixed1x2Ref getFixed1x2() const { return elemFixed1x2; } + /** + * Gets the fixed1x3 element. + * @return a daeSmartRef to the fixed1x3 element. + */ + const domFixed1x3Ref getFixed1x3() const { return elemFixed1x3; } + /** + * Gets the fixed1x4 element. + * @return a daeSmartRef to the fixed1x4 element. + */ + const domFixed1x4Ref getFixed1x4() const { return elemFixed1x4; } + /** + * Gets the fixed2x1 element. + * @return a daeSmartRef to the fixed2x1 element. + */ + const domFixed2x1Ref getFixed2x1() const { return elemFixed2x1; } + /** + * Gets the fixed2x2 element. + * @return a daeSmartRef to the fixed2x2 element. + */ + const domFixed2x2Ref getFixed2x2() const { return elemFixed2x2; } + /** + * Gets the fixed2x3 element. + * @return a daeSmartRef to the fixed2x3 element. + */ + const domFixed2x3Ref getFixed2x3() const { return elemFixed2x3; } + /** + * Gets the fixed2x4 element. + * @return a daeSmartRef to the fixed2x4 element. + */ + const domFixed2x4Ref getFixed2x4() const { return elemFixed2x4; } + /** + * Gets the fixed3x1 element. + * @return a daeSmartRef to the fixed3x1 element. + */ + const domFixed3x1Ref getFixed3x1() const { return elemFixed3x1; } + /** + * Gets the fixed3x2 element. + * @return a daeSmartRef to the fixed3x2 element. + */ + const domFixed3x2Ref getFixed3x2() const { return elemFixed3x2; } + /** + * Gets the fixed3x3 element. + * @return a daeSmartRef to the fixed3x3 element. + */ + const domFixed3x3Ref getFixed3x3() const { return elemFixed3x3; } + /** + * Gets the fixed3x4 element. + * @return a daeSmartRef to the fixed3x4 element. + */ + const domFixed3x4Ref getFixed3x4() const { return elemFixed3x4; } + /** + * Gets the fixed4x1 element. + * @return a daeSmartRef to the fixed4x1 element. + */ + const domFixed4x1Ref getFixed4x1() const { return elemFixed4x1; } + /** + * Gets the fixed4x2 element. + * @return a daeSmartRef to the fixed4x2 element. + */ + const domFixed4x2Ref getFixed4x2() const { return elemFixed4x2; } + /** + * Gets the fixed4x3 element. + * @return a daeSmartRef to the fixed4x3 element. + */ + const domFixed4x3Ref getFixed4x3() const { return elemFixed4x3; } + /** + * Gets the fixed4x4 element. + * @return a daeSmartRef to the fixed4x4 element. + */ + const domFixed4x4Ref getFixed4x4() const { return elemFixed4x4; } + /** + * Gets the surface element. + * @return a daeSmartRef to the surface element. + */ + const domCg_surface_typeRef getSurface() const { return elemSurface; } + /** + * Gets the sampler1D element. + * @return a daeSmartRef to the sampler1D element. + */ + const domCg_sampler1DRef getSampler1D() const { return elemSampler1D; } + /** + * Gets the sampler2D element. + * @return a daeSmartRef to the sampler2D element. + */ + const domCg_sampler2DRef getSampler2D() const { return elemSampler2D; } + /** + * Gets the sampler3D element. + * @return a daeSmartRef to the sampler3D element. + */ + const domCg_sampler3DRef getSampler3D() const { return elemSampler3D; } + /** + * Gets the samplerRECT element. + * @return a daeSmartRef to the samplerRECT element. + */ + const domCg_samplerRECTRef getSamplerRECT() const { return elemSamplerRECT; } + /** + * Gets the samplerCUBE element. + * @return a daeSmartRef to the samplerCUBE element. + */ + const domCg_samplerCUBERef getSamplerCUBE() const { return elemSamplerCUBE; } + /** + * Gets the samplerDEPTH element. + * @return a daeSmartRef to the samplerDEPTH element. + */ + const domCg_samplerDEPTHRef getSamplerDEPTH() const { return elemSamplerDEPTH; } + /** + * Gets the string element. + * @return a daeSmartRef to the string element. + */ + const domStringRef getString() const { return elemString; } + /** + * Gets the enum element. + * @return a daeSmartRef to the enum element. + */ + const domEnumRef getEnum() const { return elemEnum; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCg_param_type(DAE& dae) : daeElement(dae), elemBool(), elemBool1(), elemBool2(), elemBool3(), elemBool4(), elemBool1x1(), elemBool1x2(), elemBool1x3(), elemBool1x4(), elemBool2x1(), elemBool2x2(), elemBool2x3(), elemBool2x4(), elemBool3x1(), elemBool3x2(), elemBool3x3(), elemBool3x4(), elemBool4x1(), elemBool4x2(), elemBool4x3(), elemBool4x4(), elemFloat(), elemFloat1(), elemFloat2(), elemFloat3(), elemFloat4(), elemFloat1x1(), elemFloat1x2(), elemFloat1x3(), elemFloat1x4(), elemFloat2x1(), elemFloat2x2(), elemFloat2x3(), elemFloat2x4(), elemFloat3x1(), elemFloat3x2(), elemFloat3x3(), elemFloat3x4(), elemFloat4x1(), elemFloat4x2(), elemFloat4x3(), elemFloat4x4(), elemInt(), elemInt1(), elemInt2(), elemInt3(), elemInt4(), elemInt1x1(), elemInt1x2(), elemInt1x3(), elemInt1x4(), elemInt2x1(), elemInt2x2(), elemInt2x3(), elemInt2x4(), elemInt3x1(), elemInt3x2(), elemInt3x3(), elemInt3x4(), elemInt4x1(), elemInt4x2(), elemInt4x3(), elemInt4x4(), elemHalf(), elemHalf1(), elemHalf2(), elemHalf3(), elemHalf4(), elemHalf1x1(), elemHalf1x2(), elemHalf1x3(), elemHalf1x4(), elemHalf2x1(), elemHalf2x2(), elemHalf2x3(), elemHalf2x4(), elemHalf3x1(), elemHalf3x2(), elemHalf3x3(), elemHalf3x4(), elemHalf4x1(), elemHalf4x2(), elemHalf4x3(), elemHalf4x4(), elemFixed(), elemFixed1(), elemFixed2(), elemFixed3(), elemFixed4(), elemFixed1x1(), elemFixed1x2(), elemFixed1x3(), elemFixed1x4(), elemFixed2x1(), elemFixed2x2(), elemFixed2x3(), elemFixed2x4(), elemFixed3x1(), elemFixed3x2(), elemFixed3x3(), elemFixed3x4(), elemFixed4x1(), elemFixed4x2(), elemFixed4x3(), elemFixed4x4(), elemSurface(), elemSampler1D(), elemSampler2D(), elemSampler3D(), elemSamplerRECT(), elemSamplerCUBE(), elemSamplerDEPTH(), elemString(), elemEnum() {} + /** + * Destructor + */ + virtual ~domCg_param_type() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCg_param_type &operator=( const domCg_param_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_sampler1D.h b/include/1.4/dom/domCg_sampler1D.h new file mode 100644 index 0000000..8df40d5 --- /dev/null +++ b/include/1.4/dom/domCg_sampler1D.h @@ -0,0 +1,80 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_sampler1D_h__ +#define __domCg_sampler1D_h__ + +#include +#include +#include + +#include +class DAE; + +class domCg_sampler1D_complexType : public domFx_sampler1D_common_complexType +{ + +protected: + /** + * Constructor + */ + domCg_sampler1D_complexType(DAE& dae, daeElement* elt) : domFx_sampler1D_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domCg_sampler1D_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_sampler1D_complexType &operator=( const domCg_sampler1D_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_sampler1D_complexType. + */ +class domCg_sampler1D : public daeElement, public domCg_sampler1D_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLER1D; } + static daeInt ID() { return 127; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCg_sampler1D(DAE& dae) : daeElement(dae), domCg_sampler1D_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_sampler1D() {} + /** + * Overloaded assignment operator + */ + virtual domCg_sampler1D &operator=( const domCg_sampler1D &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_sampler2D.h b/include/1.4/dom/domCg_sampler2D.h new file mode 100644 index 0000000..b895c67 --- /dev/null +++ b/include/1.4/dom/domCg_sampler2D.h @@ -0,0 +1,80 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_sampler2D_h__ +#define __domCg_sampler2D_h__ + +#include +#include +#include + +#include +class DAE; + +class domCg_sampler2D_complexType : public domFx_sampler2D_common_complexType +{ + +protected: + /** + * Constructor + */ + domCg_sampler2D_complexType(DAE& dae, daeElement* elt) : domFx_sampler2D_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domCg_sampler2D_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_sampler2D_complexType &operator=( const domCg_sampler2D_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_sampler2D_complexType. + */ +class domCg_sampler2D : public daeElement, public domCg_sampler2D_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLER2D; } + static daeInt ID() { return 128; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCg_sampler2D(DAE& dae) : daeElement(dae), domCg_sampler2D_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_sampler2D() {} + /** + * Overloaded assignment operator + */ + virtual domCg_sampler2D &operator=( const domCg_sampler2D &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_sampler3D.h b/include/1.4/dom/domCg_sampler3D.h new file mode 100644 index 0000000..f09a32f --- /dev/null +++ b/include/1.4/dom/domCg_sampler3D.h @@ -0,0 +1,80 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_sampler3D_h__ +#define __domCg_sampler3D_h__ + +#include +#include +#include + +#include +class DAE; + +class domCg_sampler3D_complexType : public domFx_sampler3D_common_complexType +{ + +protected: + /** + * Constructor + */ + domCg_sampler3D_complexType(DAE& dae, daeElement* elt) : domFx_sampler3D_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domCg_sampler3D_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_sampler3D_complexType &operator=( const domCg_sampler3D_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_sampler3D_complexType. + */ +class domCg_sampler3D : public daeElement, public domCg_sampler3D_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLER3D; } + static daeInt ID() { return 129; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCg_sampler3D(DAE& dae) : daeElement(dae), domCg_sampler3D_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_sampler3D() {} + /** + * Overloaded assignment operator + */ + virtual domCg_sampler3D &operator=( const domCg_sampler3D &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_samplerCUBE.h b/include/1.4/dom/domCg_samplerCUBE.h new file mode 100644 index 0000000..73aaccd --- /dev/null +++ b/include/1.4/dom/domCg_samplerCUBE.h @@ -0,0 +1,80 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_samplerCUBE_h__ +#define __domCg_samplerCUBE_h__ + +#include +#include +#include + +#include +class DAE; + +class domCg_samplerCUBE_complexType : public domFx_samplerCUBE_common_complexType +{ + +protected: + /** + * Constructor + */ + domCg_samplerCUBE_complexType(DAE& dae, daeElement* elt) : domFx_samplerCUBE_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domCg_samplerCUBE_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_samplerCUBE_complexType &operator=( const domCg_samplerCUBE_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_samplerCUBE_complexType. + */ +class domCg_samplerCUBE : public daeElement, public domCg_samplerCUBE_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLERCUBE; } + static daeInt ID() { return 130; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCg_samplerCUBE(DAE& dae) : daeElement(dae), domCg_samplerCUBE_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_samplerCUBE() {} + /** + * Overloaded assignment operator + */ + virtual domCg_samplerCUBE &operator=( const domCg_samplerCUBE &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_samplerDEPTH.h b/include/1.4/dom/domCg_samplerDEPTH.h new file mode 100644 index 0000000..79cd9c6 --- /dev/null +++ b/include/1.4/dom/domCg_samplerDEPTH.h @@ -0,0 +1,80 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_samplerDEPTH_h__ +#define __domCg_samplerDEPTH_h__ + +#include +#include +#include + +#include +class DAE; + +class domCg_samplerDEPTH_complexType : public domFx_samplerDEPTH_common_complexType +{ + +protected: + /** + * Constructor + */ + domCg_samplerDEPTH_complexType(DAE& dae, daeElement* elt) : domFx_samplerDEPTH_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domCg_samplerDEPTH_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_samplerDEPTH_complexType &operator=( const domCg_samplerDEPTH_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_samplerDEPTH_complexType. + */ +class domCg_samplerDEPTH : public daeElement, public domCg_samplerDEPTH_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLERDEPTH; } + static daeInt ID() { return 132; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCg_samplerDEPTH(DAE& dae) : daeElement(dae), domCg_samplerDEPTH_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_samplerDEPTH() {} + /** + * Overloaded assignment operator + */ + virtual domCg_samplerDEPTH &operator=( const domCg_samplerDEPTH &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_samplerRECT.h b/include/1.4/dom/domCg_samplerRECT.h new file mode 100644 index 0000000..04c9b48 --- /dev/null +++ b/include/1.4/dom/domCg_samplerRECT.h @@ -0,0 +1,80 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_samplerRECT_h__ +#define __domCg_samplerRECT_h__ + +#include +#include +#include + +#include +class DAE; + +class domCg_samplerRECT_complexType : public domFx_samplerRECT_common_complexType +{ + +protected: + /** + * Constructor + */ + domCg_samplerRECT_complexType(DAE& dae, daeElement* elt) : domFx_samplerRECT_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domCg_samplerRECT_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_samplerRECT_complexType &operator=( const domCg_samplerRECT_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_samplerRECT_complexType. + */ +class domCg_samplerRECT : public daeElement, public domCg_samplerRECT_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLERRECT; } + static daeInt ID() { return 131; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCg_samplerRECT(DAE& dae) : daeElement(dae), domCg_samplerRECT_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_samplerRECT() {} + /** + * Overloaded assignment operator + */ + virtual domCg_samplerRECT &operator=( const domCg_samplerRECT &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_setarray_type.h b/include/1.4/dom/domCg_setarray_type.h new file mode 100644 index 0000000..c699011 --- /dev/null +++ b/include/1.4/dom/domCg_setarray_type.h @@ -0,0 +1,182 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_setarray_type_h__ +#define __domCg_setarray_type_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * Creates a parameter of a one-dimensional array type. + */ +class domCg_setarray_type_complexType +{ +protected: // Attribute +/** + * The length attribute specifies the length of the array. + */ + xsPositiveInteger attrLength; + +protected: // Elements + domCg_param_type_Array elemCg_param_type_array; +/** + * Nested array elements allow you to create multidemensional arrays. @see + * domArray + */ + domCg_setarray_type_Array elemArray_array; +/** + * The usertype element allows you to create arrays of usertypes. @see domUsertype + */ + domCg_setuser_type_Array elemUsertype_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; } + + /** + * Gets the cg_param_type element array. + * @return Returns a reference to the array of cg_param_type elements. + */ + domCg_param_type_Array &getCg_param_type_array() { return elemCg_param_type_array; } + /** + * Gets the cg_param_type element array. + * @return Returns a constant reference to the array of cg_param_type elements. + */ + const domCg_param_type_Array &getCg_param_type_array() const { return elemCg_param_type_array; } + /** + * Gets the array element array. + * @return Returns a reference to the array of array elements. + */ + domCg_setarray_type_Array &getArray_array() { return elemArray_array; } + /** + * Gets the array element array. + * @return Returns a constant reference to the array of array elements. + */ + const domCg_setarray_type_Array &getArray_array() const { return elemArray_array; } + /** + * Gets the usertype element array. + * @return Returns a reference to the array of usertype elements. + */ + domCg_setuser_type_Array &getUsertype_array() { return elemUsertype_array; } + /** + * Gets the usertype element array. + * @return Returns a constant reference to the array of usertype elements. + */ + const domCg_setuser_type_Array &getUsertype_array() const { return elemUsertype_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCg_setarray_type_complexType(DAE& dae, daeElement* elt) : attrLength(), elemCg_param_type_array(), elemArray_array(), elemUsertype_array() {} + /** + * Destructor + */ + virtual ~domCg_setarray_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCg_setarray_type_complexType &operator=( const domCg_setarray_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_setarray_type_complexType. + */ +class domCg_setarray_type : public daeElement, public domCg_setarray_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETARRAY_TYPE; } + static daeInt ID() { return 135; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domCg_setarray_type(DAE& dae) : daeElement(dae), domCg_setarray_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_setarray_type() {} + /** + * Overloaded assignment operator + */ + virtual domCg_setarray_type &operator=( const domCg_setarray_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_setparam.h b/include/1.4/dom/domCg_setparam.h new file mode 100644 index 0000000..4783082 --- /dev/null +++ b/include/1.4/dom/domCg_setparam.h @@ -0,0 +1,187 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_setparam_h__ +#define __domCg_setparam_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * Assigns a new value to a previously defined parameter. + */ +class domCg_setparam_complexType +{ +protected: // Attributes + domCg_identifier attrRef; + xsNCName attrProgram; + +protected: // Elements + domCg_param_typeRef elemCg_param_type; + domCg_setuser_typeRef elemUsertype; + domCg_setarray_typeRef elemArray; + domCg_connect_paramRef elemConnect_param; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domCg_identifier of the ref attribute. + */ + domCg_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domCg_identifier atRef ) { attrRef = atRef; } + + /** + * Gets the program attribute. + * @return Returns a xsNCName of the program attribute. + */ + xsNCName getProgram() const { return attrProgram; } + /** + * Sets the program attribute. + * @param atProgram The new value for the program attribute. + */ + void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram;} + + /** + * Gets the cg_param_type element. + * @return a daeSmartRef to the cg_param_type element. + */ + const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; } + /** + * Gets the usertype element. + * @return a daeSmartRef to the usertype element. + */ + const domCg_setuser_typeRef getUsertype() const { return elemUsertype; } + /** + * Gets the array element. + * @return a daeSmartRef to the array element. + */ + const domCg_setarray_typeRef getArray() const { return elemArray; } + /** + * Gets the connect_param element. + * @return a daeSmartRef to the connect_param element. + */ + const domCg_connect_paramRef getConnect_param() const { return elemConnect_param; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCg_setparam_complexType(DAE& dae, daeElement* elt) : attrRef(), attrProgram(), elemCg_param_type(), elemUsertype(), elemArray(), elemConnect_param() {} + /** + * Destructor + */ + virtual ~domCg_setparam_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCg_setparam_complexType &operator=( const domCg_setparam_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_setparam_complexType. + */ +class domCg_setparam : public daeElement, public domCg_setparam_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETPARAM; } + static daeInt ID() { return 144; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domCg_identifier of the ref attribute. + */ + domCg_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domCg_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + /** + * Gets the program attribute. + * @return Returns a xsNCName of the program attribute. + */ + xsNCName getProgram() const { return attrProgram; } + /** + * Sets the program attribute. + * @param atProgram The new value for the program attribute. + */ + void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domCg_setparam(DAE& dae) : daeElement(dae), domCg_setparam_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_setparam() {} + /** + * Overloaded assignment operator + */ + virtual domCg_setparam &operator=( const domCg_setparam &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_setparam_simple.h b/include/1.4/dom/domCg_setparam_simple.h new file mode 100644 index 0000000..bb692d1 --- /dev/null +++ b/include/1.4/dom/domCg_setparam_simple.h @@ -0,0 +1,127 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_setparam_simple_h__ +#define __domCg_setparam_simple_h__ + +#include +#include +#include + +#include +#include +class DAE; + +class domCg_setparam_simple_complexType +{ +protected: // Attribute + domCg_identifier attrRef; + +protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domCg_param_typeRef elemCg_param_type; + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domCg_identifier of the ref attribute. + */ + domCg_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domCg_identifier atRef ) { attrRef = atRef; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the cg_param_type element. + * @return a daeSmartRef to the cg_param_type element. + */ + const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; } +protected: + /** + * Constructor + */ + domCg_setparam_simple_complexType(DAE& dae, daeElement* elt) : attrRef(), elemAnnotate_array(), elemCg_param_type() {} + /** + * Destructor + */ + virtual ~domCg_setparam_simple_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_setparam_simple_complexType &operator=( const domCg_setparam_simple_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_setparam_simple_complexType. + */ +class domCg_setparam_simple : public daeElement, public domCg_setparam_simple_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETPARAM_SIMPLE; } + static daeInt ID() { return 143; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domCg_identifier of the ref attribute. + */ + domCg_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domCg_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domCg_setparam_simple(DAE& dae) : daeElement(dae), domCg_setparam_simple_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_setparam_simple() {} + /** + * Overloaded assignment operator + */ + virtual domCg_setparam_simple &operator=( const domCg_setparam_simple &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_setuser_type.h b/include/1.4/dom/domCg_setuser_type.h new file mode 100644 index 0000000..dd711ac --- /dev/null +++ b/include/1.4/dom/domCg_setuser_type.h @@ -0,0 +1,226 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_setuser_type_h__ +#define __domCg_setuser_type_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +class DAE; + +/** + * Creates an instance of a structured class. + */ +class domCg_setuser_type_complexType +{ +protected: // Attributes + domCg_identifier attrName; +/** + * Reference a code or include element which defines the usertype + */ + xsNCName attrSource; + +protected: // Elements + domCg_param_type_Array elemCg_param_type_array; + domCg_setarray_type_Array elemArray_array; + domCg_setuser_type_Array elemUsertype_array; + domCg_connect_param_Array elemConnect_param_array; +/** + * Use a series of these to set the members by name. The ref attribute will + * be relative to the usertype you are in right now. @see domSetparam + */ + domCg_setparam_Array elemSetparam_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a domCg_identifier of the name attribute. + */ + domCg_identifier getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( domCg_identifier atName ) { attrName = atName; } + + /** + * Gets the source attribute. + * @return Returns a xsNCName of the source attribute. + */ + xsNCName getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource;} + + /** + * Gets the cg_param_type element array. + * @return Returns a reference to the array of cg_param_type elements. + */ + domCg_param_type_Array &getCg_param_type_array() { return elemCg_param_type_array; } + /** + * Gets the cg_param_type element array. + * @return Returns a constant reference to the array of cg_param_type elements. + */ + const domCg_param_type_Array &getCg_param_type_array() const { return elemCg_param_type_array; } + /** + * Gets the array element array. + * @return Returns a reference to the array of array elements. + */ + domCg_setarray_type_Array &getArray_array() { return elemArray_array; } + /** + * Gets the array element array. + * @return Returns a constant reference to the array of array elements. + */ + const domCg_setarray_type_Array &getArray_array() const { return elemArray_array; } + /** + * Gets the usertype element array. + * @return Returns a reference to the array of usertype elements. + */ + domCg_setuser_type_Array &getUsertype_array() { return elemUsertype_array; } + /** + * Gets the usertype element array. + * @return Returns a constant reference to the array of usertype elements. + */ + const domCg_setuser_type_Array &getUsertype_array() const { return elemUsertype_array; } + /** + * Gets the connect_param element array. + * @return Returns a reference to the array of connect_param elements. + */ + domCg_connect_param_Array &getConnect_param_array() { return elemConnect_param_array; } + /** + * Gets the connect_param element array. + * @return Returns a constant reference to the array of connect_param elements. + */ + const domCg_connect_param_Array &getConnect_param_array() const { return elemConnect_param_array; } + /** + * Gets the setparam element array. + * @return Returns a reference to the array of setparam elements. + */ + domCg_setparam_Array &getSetparam_array() { return elemSetparam_array; } + /** + * Gets the setparam element array. + * @return Returns a constant reference to the array of setparam elements. + */ + const domCg_setparam_Array &getSetparam_array() const { return elemSetparam_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCg_setuser_type_complexType(DAE& dae, daeElement* elt) : attrName(), attrSource(), elemCg_param_type_array(), elemArray_array(), elemUsertype_array(), elemConnect_param_array(), elemSetparam_array() {} + /** + * Destructor + */ + virtual ~domCg_setuser_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCg_setuser_type_complexType &operator=( const domCg_setuser_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_setuser_type_complexType. + */ +class domCg_setuser_type : public daeElement, public domCg_setuser_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETUSER_TYPE; } + static daeInt ID() { return 136; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a domCg_identifier of the name attribute. + */ + domCg_identifier getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( domCg_identifier atName ) { attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the source attribute. + * @return Returns a xsNCName of the source attribute. + */ + xsNCName getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domCg_setuser_type(DAE& dae) : daeElement(dae), domCg_setuser_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_setuser_type() {} + /** + * Overloaded assignment operator + */ + virtual domCg_setuser_type &operator=( const domCg_setuser_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCg_surface_type.h b/include/1.4/dom/domCg_surface_type.h new file mode 100644 index 0000000..fc20524 --- /dev/null +++ b/include/1.4/dom/domCg_surface_type.h @@ -0,0 +1,317 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCg_surface_type_h__ +#define __domCg_surface_type_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +class DAE; + +/** + * Declares a resource that can be used both as the source for texture samples + * and as the target of a rendering pass. + */ +class domCg_surface_type_complexType : public domFx_surface_common_complexType +{ +public: + class domGenerator; + + typedef daeSmartRef domGeneratorRef; + typedef daeTArray domGenerator_Array; + +/** + * A procedural surface generator for the cg profile. + */ + class domGenerator : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GENERATOR; } + static daeInt ID() { return 137; } + virtual daeInt typeID() const { return ID(); } + public: + class domName; + + typedef daeSmartRef domNameRef; + typedef daeTArray domName_Array; + +/** + * The entry symbol for the shader function. + */ + class domName : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME; } + static daeInt ID() { return 138; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrSource; + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a xsNCName of the source attribute. + */ + xsNCName getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domName(DAE& dae) : daeElement(dae), attrSource(), _value() {} + /** + * Destructor + */ + virtual ~domName() {} + /** + * Overloaded assignment operator + */ + virtual domName &operator=( const domName &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The annotate element allows you to specify an annotation for this generator. + * @see domAnnotate + */ + domFx_annotate_common_Array elemAnnotate_array; +/** + * The code element allows you to embed cg sourcecode for the surface generator. + * @see domCode + */ + domFx_code_profile_Array elemCode_array; +/** + * The include element imports cg source code or precompiled binary shaders + * into the FX Runtime by referencing an external resource. @see domInclude + */ + domFx_include_common_Array elemInclude_array; +/** + * The entry symbol for the shader function. @see domName + */ + domNameRef elemName; +/** + * Assigns a new value to a previously defined parameter. @see domSetparam + */ + domCg_setparam_simple_Array elemSetparam_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the code element array. + * @return Returns a reference to the array of code elements. + */ + domFx_code_profile_Array &getCode_array() { return elemCode_array; } + /** + * Gets the code element array. + * @return Returns a constant reference to the array of code elements. + */ + const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } + /** + * Gets the include element array. + * @return Returns a reference to the array of include elements. + */ + domFx_include_common_Array &getInclude_array() { return elemInclude_array; } + /** + * Gets the include element array. + * @return Returns a constant reference to the array of include elements. + */ + const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } + /** + * Gets the name element. + * @return a daeSmartRef to the name element. + */ + const domNameRef getName() const { return elemName; } + /** + * Gets the setparam element array. + * @return Returns a reference to the array of setparam elements. + */ + domCg_setparam_simple_Array &getSetparam_array() { return elemSetparam_array; } + /** + * Gets the setparam element array. + * @return Returns a constant reference to the array of setparam elements. + */ + const domCg_setparam_simple_Array &getSetparam_array() const { return elemSetparam_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domGenerator(DAE& dae) : daeElement(dae), elemAnnotate_array(), elemCode_array(), elemInclude_array(), elemName(), elemSetparam_array() {} + /** + * Destructor + */ + virtual ~domGenerator() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGenerator &operator=( const domGenerator &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Element +/** + * A procedural surface generator for the cg profile. @see domGenerator + */ + domGeneratorRef elemGenerator; + +public: //Accessors and Mutators + /** + * Gets the generator element. + * @return a daeSmartRef to the generator element. + */ + const domGeneratorRef getGenerator() const { return elemGenerator; } +protected: + /** + * Constructor + */ + domCg_surface_type_complexType(DAE& dae, daeElement* elt) : domFx_surface_common_complexType(dae, elt), elemGenerator() {} + /** + * Destructor + */ + virtual ~domCg_surface_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCg_surface_type_complexType &operator=( const domCg_surface_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCg_surface_type_complexType. + */ +class domCg_surface_type : public daeElement, public domCg_surface_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SURFACE_TYPE; } + static daeInt ID() { return 139; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCg_surface_type(DAE& dae) : daeElement(dae), domCg_surface_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCg_surface_type() {} + /** + * Overloaded assignment operator + */ + virtual domCg_surface_type &operator=( const domCg_surface_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domChannel.h b/include/1.4/dom/domChannel.h new file mode 100644 index 0000000..3edda0e --- /dev/null +++ b/include/1.4/dom/domChannel.h @@ -0,0 +1,109 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domChannel_h__ +#define __domChannel_h__ + +#include +#include +#include + +class DAE; + +/** + * The channel element declares an output channel of an animation. + */ +class domChannel : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CHANNEL; } + static daeInt ID() { return 653; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The source attribute indicates the location of the sampler using a URL + * expression. The sampler must be declared within the same document. Required + * attribute. + */ + domURIFragmentType attrSource; +/** + * The target attribute indicates the location of the element bound to the + * output of the sampler. This text string is a path-name following a simple + * syntax described in Address Syntax. Required attribute. + */ + xsToken attrTarget; + + +public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a domURIFragmentType reference of the source attribute. + */ + domURIFragmentType &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant domURIFragmentType reference of the source attribute. + */ + const domURIFragmentType &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const domURIFragmentType &atSource ) { attrSource = atSource; _validAttributeArray[0] = true; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the target attribute. + * @return Returns a xsToken of the target attribute. + */ + xsToken getTarget() const { return attrTarget; } + /** + * Sets the target attribute. + * @param atTarget The new value for the target attribute. + */ + void setTarget( xsToken atTarget ) { *(daeStringRef*)&attrTarget = atTarget; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domChannel(DAE& dae) : daeElement(dae), attrSource(dae, *this), attrTarget() {} + /** + * Destructor + */ + virtual ~domChannel() {} + /** + * Overloaded assignment operator + */ + virtual domChannel &operator=( const domChannel &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCommon_color_or_texture_type.h b/include/1.4/dom/domCommon_color_or_texture_type.h new file mode 100644 index 0000000..2958e58 --- /dev/null +++ b/include/1.4/dom/domCommon_color_or_texture_type.h @@ -0,0 +1,333 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCommon_color_or_texture_type_h__ +#define __domCommon_color_or_texture_type_h__ + +#include +#include +#include + +#include +class DAE; + +class domCommon_color_or_texture_type_complexType +{ +public: + class domColor; + + typedef daeSmartRef domColorRef; + typedef daeTArray domColor_Array; + + class domColor : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR; } + static daeInt ID() { return 116; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrSid; + + protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domColor(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domColor() {} + /** + * Overloaded assignment operator + */ + virtual domColor &operator=( const domColor &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 117; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsNCName of the ref attribute. + */ + xsNCName getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), attrRef() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture; + + typedef daeSmartRef domTextureRef; + typedef daeTArray domTexture_Array; + + class domTexture : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE; } + static daeInt ID() { return 118; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsNCName attrTexture; + xsNCName attrTexcoord; + + protected: // Element + domExtraRef elemExtra; + + public: //Accessors and Mutators + /** + * Gets the texture attribute. + * @return Returns a xsNCName of the texture attribute. + */ + xsNCName getTexture() const { return attrTexture; } + /** + * Sets the texture attribute. + * @param atTexture The new value for the texture attribute. + */ + void setTexture( xsNCName atTexture ) { *(daeStringRef*)&attrTexture = atTexture; _validAttributeArray[0] = true; } + + /** + * Gets the texcoord attribute. + * @return Returns a xsNCName of the texcoord attribute. + */ + xsNCName getTexcoord() const { return attrTexcoord; } + /** + * Sets the texcoord attribute. + * @param atTexcoord The new value for the texcoord attribute. + */ + void setTexcoord( xsNCName atTexcoord ) { *(daeStringRef*)&attrTexcoord = atTexcoord; _validAttributeArray[1] = true; } + + /** + * Gets the extra element. + * @return a daeSmartRef to the extra element. + */ + const domExtraRef getExtra() const { return elemExtra; } + protected: + /** + * Constructor + */ + domTexture(DAE& dae) : daeElement(dae), attrTexture(), attrTexcoord(), elemExtra() {} + /** + * Destructor + */ + virtual ~domTexture() {} + /** + * Overloaded assignment operator + */ + virtual domTexture &operator=( const domTexture &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domColorRef elemColor; + domParamRef elemParam; + domTextureRef elemTexture; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the color element. + * @return a daeSmartRef to the color element. + */ + const domColorRef getColor() const { return elemColor; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the texture element. + * @return a daeSmartRef to the texture element. + */ + const domTextureRef getTexture() const { return elemTexture; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCommon_color_or_texture_type_complexType(DAE& dae, daeElement* elt) : elemColor(), elemParam(), elemTexture() {} + /** + * Destructor + */ + virtual ~domCommon_color_or_texture_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCommon_color_or_texture_type_complexType &operator=( const domCommon_color_or_texture_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCommon_color_or_texture_type_complexType. + */ +class domCommon_color_or_texture_type : public daeElement, public domCommon_color_or_texture_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_COLOR_OR_TEXTURE_TYPE; } + static daeInt ID() { return 119; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCommon_color_or_texture_type(DAE& dae) : daeElement(dae), domCommon_color_or_texture_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCommon_color_or_texture_type() {} + /** + * Overloaded assignment operator + */ + virtual domCommon_color_or_texture_type &operator=( const domCommon_color_or_texture_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCommon_float_or_param_type.h b/include/1.4/dom/domCommon_float_or_param_type.h new file mode 100644 index 0000000..339aa66 --- /dev/null +++ b/include/1.4/dom/domCommon_float_or_param_type.h @@ -0,0 +1,247 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCommon_float_or_param_type_h__ +#define __domCommon_float_or_param_type_h__ + +#include +#include +#include + +class DAE; + +class domCommon_float_or_param_type_complexType +{ +public: + class domFloat; + + typedef daeSmartRef domFloatRef; + typedef daeTArray domFloat_Array; + + class domFloat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; } + static daeInt ID() { return 113; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrSid; + + protected: // Value + /** + * The ::domFloat value of the text data of this element. + */ + ::domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return a ::domFloat of the value. + */ + ::domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domFloat() {} + /** + * Overloaded assignment operator + */ + virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 114; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsNCName of the ref attribute. + */ + xsNCName getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), attrRef() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domFloatRef elemFloat; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the float element. + * @return a daeSmartRef to the float element. + */ + const domFloatRef getFloat() const { return elemFloat; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCommon_float_or_param_type_complexType(DAE& dae, daeElement* elt) : elemFloat(), elemParam() {} + /** + * Destructor + */ + virtual ~domCommon_float_or_param_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCommon_float_or_param_type_complexType &operator=( const domCommon_float_or_param_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCommon_float_or_param_type_complexType. + */ +class domCommon_float_or_param_type : public daeElement, public domCommon_float_or_param_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_FLOAT_OR_PARAM_TYPE; } + static daeInt ID() { return 115; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domCommon_float_or_param_type(DAE& dae) : daeElement(dae), domCommon_float_or_param_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCommon_float_or_param_type() {} + /** + * Overloaded assignment operator + */ + virtual domCommon_float_or_param_type &operator=( const domCommon_float_or_param_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCommon_newparam_type.h b/include/1.4/dom/domCommon_newparam_type.h new file mode 100644 index 0000000..187b68b --- /dev/null +++ b/include/1.4/dom/domCommon_newparam_type.h @@ -0,0 +1,489 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCommon_newparam_type_h__ +#define __domCommon_newparam_type_h__ + +#include +#include +#include + +#include +#include +class DAE; + +class domCommon_newparam_type_complexType +{ +public: + class domSemantic; + + typedef daeSmartRef domSemanticRef; + typedef daeTArray domSemantic_Array; + + class domSemantic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; } + static daeInt ID() { return 121; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSemantic(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSemantic() {} + /** + * Overloaded assignment operator + */ + virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat; + + typedef daeSmartRef domFloatRef; + typedef daeTArray domFloat_Array; + + class domFloat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; } + static daeInt ID() { return 122; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat value of the text data of this element. + */ + ::domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domFloat of the value. + */ + ::domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat() {} + /** + * Overloaded assignment operator + */ + virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2; + + typedef daeSmartRef domFloat2Ref; + typedef daeTArray domFloat2_Array; + + class domFloat2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; } + static daeInt ID() { return 123; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3; + + typedef daeSmartRef domFloat3Ref; + typedef daeTArray domFloat3_Array; + + class domFloat3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; } + static daeInt ID() { return 124; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4; + + typedef daeSmartRef domFloat4Ref; + typedef daeTArray domFloat4_Array; + + class domFloat4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; } + static daeInt ID() { return 125; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Elements + domSemanticRef elemSemantic; + domFloatRef elemFloat; + domFloat2Ref elemFloat2; + domFloat3Ref elemFloat3; + domFloat4Ref elemFloat4; + domFx_surface_commonRef elemSurface; + domFx_sampler2D_commonRef elemSampler2D; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the semantic element. + * @return a daeSmartRef to the semantic element. + */ + const domSemanticRef getSemantic() const { return elemSemantic; } + /** + * Gets the float element. + * @return a daeSmartRef to the float element. + */ + const domFloatRef getFloat() const { return elemFloat; } + /** + * Gets the float2 element. + * @return a daeSmartRef to the float2 element. + */ + const domFloat2Ref getFloat2() const { return elemFloat2; } + /** + * Gets the float3 element. + * @return a daeSmartRef to the float3 element. + */ + const domFloat3Ref getFloat3() const { return elemFloat3; } + /** + * Gets the float4 element. + * @return a daeSmartRef to the float4 element. + */ + const domFloat4Ref getFloat4() const { return elemFloat4; } + /** + * Gets the surface element. + * @return a daeSmartRef to the surface element. + */ + const domFx_surface_commonRef getSurface() const { return elemSurface; } + /** + * Gets the sampler2D element. + * @return a daeSmartRef to the sampler2D element. + */ + const domFx_sampler2D_commonRef getSampler2D() const { return elemSampler2D; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domCommon_newparam_type_complexType(DAE& dae, daeElement* elt) : attrSid(), elemSemantic(), elemFloat(), elemFloat2(), elemFloat3(), elemFloat4(), elemSurface(), elemSampler2D() {} + /** + * Destructor + */ + virtual ~domCommon_newparam_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domCommon_newparam_type_complexType &operator=( const domCommon_newparam_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCommon_newparam_type_complexType. + */ +class domCommon_newparam_type : public daeElement, public domCommon_newparam_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_NEWPARAM_TYPE; } + static daeInt ID() { return 126; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domCommon_newparam_type(DAE& dae) : daeElement(dae), domCommon_newparam_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCommon_newparam_type() {} + /** + * Overloaded assignment operator + */ + virtual domCommon_newparam_type &operator=( const domCommon_newparam_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCommon_transparent_type.h b/include/1.4/dom/domCommon_transparent_type.h new file mode 100644 index 0000000..7a82629 --- /dev/null +++ b/include/1.4/dom/domCommon_transparent_type.h @@ -0,0 +1,108 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCommon_transparent_type_h__ +#define __domCommon_transparent_type_h__ + +#include +#include +#include + +#include +class DAE; + +class domCommon_transparent_type_complexType : public domCommon_color_or_texture_type_complexType +{ +protected: // Attribute + domFx_opaque_enum attrOpaque; + + +public: //Accessors and Mutators + /** + * Gets the opaque attribute. + * @return Returns a domFx_opaque_enum of the opaque attribute. + */ + domFx_opaque_enum getOpaque() const { return attrOpaque; } + /** + * Sets the opaque attribute. + * @param atOpaque The new value for the opaque attribute. + */ + void setOpaque( domFx_opaque_enum atOpaque ) { attrOpaque = atOpaque; } + +protected: + /** + * Constructor + */ + domCommon_transparent_type_complexType(DAE& dae, daeElement* elt) : domCommon_color_or_texture_type_complexType(dae, elt), attrOpaque() {} + /** + * Destructor + */ + virtual ~domCommon_transparent_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domCommon_transparent_type_complexType &operator=( const domCommon_transparent_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domCommon_transparent_type_complexType. + */ +class domCommon_transparent_type : public daeElement, public domCommon_transparent_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_TRANSPARENT_TYPE; } + static daeInt ID() { return 120; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the opaque attribute. + * @return Returns a domFx_opaque_enum of the opaque attribute. + */ + domFx_opaque_enum getOpaque() const { return attrOpaque; } + /** + * Sets the opaque attribute. + * @param atOpaque The new value for the opaque attribute. + */ + void setOpaque( domFx_opaque_enum atOpaque ) { attrOpaque = atOpaque; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domCommon_transparent_type(DAE& dae) : daeElement(dae), domCommon_transparent_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domCommon_transparent_type() {} + /** + * Overloaded assignment operator + */ + virtual domCommon_transparent_type &operator=( const domCommon_transparent_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domConstants.h b/include/1.4/dom/domConstants.h new file mode 100644 index 0000000..cec9156 --- /dev/null +++ b/include/1.4/dom/domConstants.h @@ -0,0 +1,1093 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DOM_CONSTANTS_H__ +#define __DOM_CONSTANTS_H__ + +#include + +extern DLLSPEC daeString COLLADA_VERSION; +extern DLLSPEC daeString COLLADA_NAMESPACE; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_BINORMAL; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_COLOR; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_CONTINUITY; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_IMAGE; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_IN_TANGENT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_INPUT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_INTERPOLATION; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_INV_BIND_MATRIX; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_JOINT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_LINEAR_STEPS; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_MORPH_TARGET; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_MORPH_WEIGHT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_NORMAL; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_OUTPUT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_OUT_TANGENT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_POSITION; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_TANGENT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_TEXBINORMAL; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_TEXCOORD; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_TEXTANGENT; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_UV; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_VERTEX; +extern DLLSPEC daeString COMMON_PROFILE_INPUT_WEIGHT; + +extern DLLSPEC daeString COMMON_PROFILE_PARAM_A; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_ANGLE; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_B; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_DOUBLE_SIDED; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_G; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_P; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_Q; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_R; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_S; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_T; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_TIME; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_U; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_V; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_W; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_X; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_Y; +extern DLLSPEC daeString COMMON_PROFILE_PARAM_Z; + + +extern DLLSPEC daeString COLLADA_TYPE_INPUTGLOBAL; +extern DLLSPEC daeString COLLADA_TYPE_INPUTLOCAL; +extern DLLSPEC daeString COLLADA_TYPE_INPUTLOCALOFFSET; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCEWITHEXTRA; +extern DLLSPEC daeString COLLADA_TYPE_TARGETABLEFLOAT; +extern DLLSPEC daeString COLLADA_TYPE_TARGETABLEFLOAT3; +extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_FORMAT_HINT_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_CHANNELS; +extern DLLSPEC daeString COLLADA_TYPE_RANGE; +extern DLLSPEC daeString COLLADA_TYPE_PRECISION; +extern DLLSPEC daeString COLLADA_TYPE_OPTION; +extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_PLANAR_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_ALL; +extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_VOLUME_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_PRIMARY; +extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_CUBE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_ORDER; +extern DLLSPEC daeString COLLADA_TYPE_FACE; +extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_FROM_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FORMAT; +extern DLLSPEC daeString COLLADA_TYPE_SIZE; +extern DLLSPEC daeString COLLADA_TYPE_VIEWPORT_RATIO; +extern DLLSPEC daeString COLLADA_TYPE_MIP_LEVELS; +extern DLLSPEC daeString COLLADA_TYPE_MIPMAP_GENERATE; +extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER1D_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_SOURCE; +extern DLLSPEC daeString COLLADA_TYPE_WRAP_S; +extern DLLSPEC daeString COLLADA_TYPE_MINFILTER; +extern DLLSPEC daeString COLLADA_TYPE_MAGFILTER; +extern DLLSPEC daeString COLLADA_TYPE_MIPFILTER; +extern DLLSPEC daeString COLLADA_TYPE_BORDER_COLOR; +extern DLLSPEC daeString COLLADA_TYPE_MIPMAP_MAXLEVEL; +extern DLLSPEC daeString COLLADA_TYPE_MIPMAP_BIAS; +extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER2D_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_WRAP_T; +extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER3D_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_WRAP_P; +extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERCUBE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERRECT_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERDEPTH_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_COLORTARGET_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_DEPTHTARGET_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_STENCILTARGET_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_CLEARCOLOR_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_CLEARDEPTH_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_CLEARSTENCIL_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_ANNOTATE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_INCLUDE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FX_NEWPARAM_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_SEMANTIC; +extern DLLSPEC daeString COLLADA_TYPE_MODIFIER; +extern DLLSPEC daeString COLLADA_TYPE_FX_CODE_PROFILE; +extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER1D; +extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER2D; +extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER3D; +extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERCUBE; +extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERRECT; +extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERDEPTH; +extern DLLSPEC daeString COLLADA_TYPE_GLSL_NEWARRAY_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLSL_SETARRAY_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLSL_SURFACE_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GENERATOR; +extern DLLSPEC daeString COLLADA_TYPE_NAME; +extern DLLSPEC daeString COLLADA_TYPE_GLSL_NEWPARAM; +extern DLLSPEC daeString COLLADA_TYPE_GLSL_SETPARAM_SIMPLE; +extern DLLSPEC daeString COLLADA_TYPE_GLSL_SETPARAM; +extern DLLSPEC daeString COLLADA_TYPE_COMMON_FLOAT_OR_PARAM_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT; +extern DLLSPEC daeString COLLADA_TYPE_PARAM; +extern DLLSPEC daeString COLLADA_TYPE_COMMON_COLOR_OR_TEXTURE_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_COLOR; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE; +extern DLLSPEC daeString COLLADA_TYPE_COMMON_TRANSPARENT_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_COMMON_NEWPARAM_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT2; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT3; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT4; +extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER1D; +extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER2D; +extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER3D; +extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERCUBE; +extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERRECT; +extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERDEPTH; +extern DLLSPEC daeString COLLADA_TYPE_CG_CONNECT_PARAM; +extern DLLSPEC daeString COLLADA_TYPE_CG_NEWARRAY_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_CG_SETARRAY_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_CG_SETUSER_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_CG_SURFACE_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_CG_NEWPARAM; +extern DLLSPEC daeString COLLADA_TYPE_CG_SETPARAM_SIMPLE; +extern DLLSPEC daeString COLLADA_TYPE_CG_SETPARAM; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_CONSTANT_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXENV_COMMAND_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_ARGUMENTRGB_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_ARGUMENTALPHA_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMANDRGB_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMANDALPHA_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMAND_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_PIPELINE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_UNIT; +extern DLLSPEC daeString COLLADA_TYPE_SURFACE; +extern DLLSPEC daeString COLLADA_TYPE_SAMPLER_STATE; +extern DLLSPEC daeString COLLADA_TYPE_TEXCOORD; +extern DLLSPEC daeString COLLADA_TYPE_GLES_SAMPLER_STATE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_NEWPARAM; +extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_INIT_AS_NULL; +extern DLLSPEC daeString COLLADA_TYPE_INIT_AS_TARGET; +extern DLLSPEC daeString COLLADA_TYPE_FX_ANNOTATE_TYPE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_BOOL; +extern DLLSPEC daeString COLLADA_TYPE_BOOL2; +extern DLLSPEC daeString COLLADA_TYPE_BOOL3; +extern DLLSPEC daeString COLLADA_TYPE_BOOL4; +extern DLLSPEC daeString COLLADA_TYPE_INT; +extern DLLSPEC daeString COLLADA_TYPE_INT2; +extern DLLSPEC daeString COLLADA_TYPE_INT3; +extern DLLSPEC daeString COLLADA_TYPE_INT4; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X2; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X3; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X4; +extern DLLSPEC daeString COLLADA_TYPE_STRING; +extern DLLSPEC daeString COLLADA_TYPE_FX_BASIC_TYPE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X1; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X2; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X3; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X4; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X1; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X3; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X4; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X1; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X2; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X4; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X1; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X2; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X3; +extern DLLSPEC daeString COLLADA_TYPE_ENUM; +extern DLLSPEC daeString COLLADA_TYPE_GL_PIPELINE_SETTINGS; +extern DLLSPEC daeString COLLADA_TYPE_ALPHA_FUNC; +extern DLLSPEC daeString COLLADA_TYPE_FUNC; +extern DLLSPEC daeString COLLADA_TYPE_VALUE; +extern DLLSPEC daeString COLLADA_TYPE_BLEND_FUNC; +extern DLLSPEC daeString COLLADA_TYPE_SRC; +extern DLLSPEC daeString COLLADA_TYPE_DEST; +extern DLLSPEC daeString COLLADA_TYPE_BLEND_FUNC_SEPARATE; +extern DLLSPEC daeString COLLADA_TYPE_SRC_RGB; +extern DLLSPEC daeString COLLADA_TYPE_DEST_RGB; +extern DLLSPEC daeString COLLADA_TYPE_SRC_ALPHA; +extern DLLSPEC daeString COLLADA_TYPE_DEST_ALPHA; +extern DLLSPEC daeString COLLADA_TYPE_BLEND_EQUATION; +extern DLLSPEC daeString COLLADA_TYPE_BLEND_EQUATION_SEPARATE; +extern DLLSPEC daeString COLLADA_TYPE_RGB; +extern DLLSPEC daeString COLLADA_TYPE_ALPHA; +extern DLLSPEC daeString COLLADA_TYPE_COLOR_MATERIAL; +extern DLLSPEC daeString COLLADA_TYPE_MODE; +extern DLLSPEC daeString COLLADA_TYPE_CULL_FACE; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_FUNC; +extern DLLSPEC daeString COLLADA_TYPE_FOG_MODE; +extern DLLSPEC daeString COLLADA_TYPE_FOG_COORD_SRC; +extern DLLSPEC daeString COLLADA_TYPE_FRONT_FACE; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_COLOR_CONTROL; +extern DLLSPEC daeString COLLADA_TYPE_LOGIC_OP; +extern DLLSPEC daeString COLLADA_TYPE_POLYGON_MODE; +extern DLLSPEC daeString COLLADA_TYPE_SHADE_MODEL; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_FUNC; +extern DLLSPEC daeString COLLADA_TYPE_REF; +extern DLLSPEC daeString COLLADA_TYPE_MASK; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_OP; +extern DLLSPEC daeString COLLADA_TYPE_FAIL; +extern DLLSPEC daeString COLLADA_TYPE_ZFAIL; +extern DLLSPEC daeString COLLADA_TYPE_ZPASS; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_FUNC_SEPARATE; +extern DLLSPEC daeString COLLADA_TYPE_FRONT; +extern DLLSPEC daeString COLLADA_TYPE_BACK; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_OP_SEPARATE; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_MASK_SEPARATE; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_AMBIENT; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_DIFFUSE; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPECULAR; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_POSITION; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_CONSTANT_ATTENUATION; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_LINEAR_ATTENUATION; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_QUADRATIC_ATTENUATION; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_CUTOFF; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_DIRECTION; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_EXPONENT; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE1D; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE2D; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE3D; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURECUBE; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURERECT; +extern DLLSPEC daeString COLLADA_TYPE_TEXTUREDEPTH; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE1D_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE2D_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE3D_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURECUBE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURERECT_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_TEXTUREDEPTH_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_ENV_COLOR; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_ENV_MODE; +extern DLLSPEC daeString COLLADA_TYPE_CLIP_PLANE; +extern DLLSPEC daeString COLLADA_TYPE_CLIP_PLANE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_BLEND_COLOR; +extern DLLSPEC daeString COLLADA_TYPE_CLEAR_COLOR; +extern DLLSPEC daeString COLLADA_TYPE_CLEAR_STENCIL; +extern DLLSPEC daeString COLLADA_TYPE_CLEAR_DEPTH; +extern DLLSPEC daeString COLLADA_TYPE_COLOR_MASK; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_BOUNDS; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_MASK; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_RANGE; +extern DLLSPEC daeString COLLADA_TYPE_FOG_DENSITY; +extern DLLSPEC daeString COLLADA_TYPE_FOG_START; +extern DLLSPEC daeString COLLADA_TYPE_FOG_END; +extern DLLSPEC daeString COLLADA_TYPE_FOG_COLOR; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_AMBIENT; +extern DLLSPEC daeString COLLADA_TYPE_LIGHTING_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_LINE_STIPPLE; +extern DLLSPEC daeString COLLADA_TYPE_LINE_WIDTH; +extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_AMBIENT; +extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_DIFFUSE; +extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_EMISSION; +extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_SHININESS; +extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_SPECULAR; +extern DLLSPEC daeString COLLADA_TYPE_MODEL_VIEW_MATRIX; +extern DLLSPEC daeString COLLADA_TYPE_POINT_DISTANCE_ATTENUATION; +extern DLLSPEC daeString COLLADA_TYPE_POINT_FADE_THRESHOLD_SIZE; +extern DLLSPEC daeString COLLADA_TYPE_POINT_SIZE; +extern DLLSPEC daeString COLLADA_TYPE_POINT_SIZE_MIN; +extern DLLSPEC daeString COLLADA_TYPE_POINT_SIZE_MAX; +extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET; +extern DLLSPEC daeString COLLADA_TYPE_PROJECTION_MATRIX; +extern DLLSPEC daeString COLLADA_TYPE_SCISSOR; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_MASK; +extern DLLSPEC daeString COLLADA_TYPE_ALPHA_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_AUTO_NORMAL_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_BLEND_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_COLOR_LOGIC_OP_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_COLOR_MATERIAL_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_CULL_FACE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_BOUNDS_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_CLAMP_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_DITHER_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_FOG_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_LOCAL_VIEWER_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_TWO_SIDE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_LINE_SMOOTH_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_LINE_STIPPLE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_LOGIC_OP_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_MULTISAMPLE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_NORMALIZE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_POINT_SMOOTH_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_FILL_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_LINE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_POINT_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_POLYGON_SMOOTH_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_POLYGON_STIPPLE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_RESCALE_NORMAL_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_SAMPLE_ALPHA_TO_COVERAGE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_SAMPLE_ALPHA_TO_ONE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_SAMPLE_COVERAGE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_SCISSOR_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_GLSL_PARAM_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_CG_PARAM_TYPE; +extern DLLSPEC daeString COLLADA_TYPE_BOOL1; +extern DLLSPEC daeString COLLADA_TYPE_BOOL1X1; +extern DLLSPEC daeString COLLADA_TYPE_BOOL1X2; +extern DLLSPEC daeString COLLADA_TYPE_BOOL1X3; +extern DLLSPEC daeString COLLADA_TYPE_BOOL1X4; +extern DLLSPEC daeString COLLADA_TYPE_BOOL2X1; +extern DLLSPEC daeString COLLADA_TYPE_BOOL2X2; +extern DLLSPEC daeString COLLADA_TYPE_BOOL2X3; +extern DLLSPEC daeString COLLADA_TYPE_BOOL2X4; +extern DLLSPEC daeString COLLADA_TYPE_BOOL3X1; +extern DLLSPEC daeString COLLADA_TYPE_BOOL3X2; +extern DLLSPEC daeString COLLADA_TYPE_BOOL3X3; +extern DLLSPEC daeString COLLADA_TYPE_BOOL3X4; +extern DLLSPEC daeString COLLADA_TYPE_BOOL4X1; +extern DLLSPEC daeString COLLADA_TYPE_BOOL4X2; +extern DLLSPEC daeString COLLADA_TYPE_BOOL4X3; +extern DLLSPEC daeString COLLADA_TYPE_BOOL4X4; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT1; +extern DLLSPEC daeString COLLADA_TYPE_INT1; +extern DLLSPEC daeString COLLADA_TYPE_INT1X1; +extern DLLSPEC daeString COLLADA_TYPE_INT1X2; +extern DLLSPEC daeString COLLADA_TYPE_INT1X3; +extern DLLSPEC daeString COLLADA_TYPE_INT1X4; +extern DLLSPEC daeString COLLADA_TYPE_INT2X1; +extern DLLSPEC daeString COLLADA_TYPE_INT2X2; +extern DLLSPEC daeString COLLADA_TYPE_INT2X3; +extern DLLSPEC daeString COLLADA_TYPE_INT2X4; +extern DLLSPEC daeString COLLADA_TYPE_INT3X1; +extern DLLSPEC daeString COLLADA_TYPE_INT3X2; +extern DLLSPEC daeString COLLADA_TYPE_INT3X3; +extern DLLSPEC daeString COLLADA_TYPE_INT3X4; +extern DLLSPEC daeString COLLADA_TYPE_INT4X1; +extern DLLSPEC daeString COLLADA_TYPE_INT4X2; +extern DLLSPEC daeString COLLADA_TYPE_INT4X3; +extern DLLSPEC daeString COLLADA_TYPE_INT4X4; +extern DLLSPEC daeString COLLADA_TYPE_HALF; +extern DLLSPEC daeString COLLADA_TYPE_HALF1; +extern DLLSPEC daeString COLLADA_TYPE_HALF2; +extern DLLSPEC daeString COLLADA_TYPE_HALF3; +extern DLLSPEC daeString COLLADA_TYPE_HALF4; +extern DLLSPEC daeString COLLADA_TYPE_HALF1X1; +extern DLLSPEC daeString COLLADA_TYPE_HALF1X2; +extern DLLSPEC daeString COLLADA_TYPE_HALF1X3; +extern DLLSPEC daeString COLLADA_TYPE_HALF1X4; +extern DLLSPEC daeString COLLADA_TYPE_HALF2X1; +extern DLLSPEC daeString COLLADA_TYPE_HALF2X2; +extern DLLSPEC daeString COLLADA_TYPE_HALF2X3; +extern DLLSPEC daeString COLLADA_TYPE_HALF2X4; +extern DLLSPEC daeString COLLADA_TYPE_HALF3X1; +extern DLLSPEC daeString COLLADA_TYPE_HALF3X2; +extern DLLSPEC daeString COLLADA_TYPE_HALF3X3; +extern DLLSPEC daeString COLLADA_TYPE_HALF3X4; +extern DLLSPEC daeString COLLADA_TYPE_HALF4X1; +extern DLLSPEC daeString COLLADA_TYPE_HALF4X2; +extern DLLSPEC daeString COLLADA_TYPE_HALF4X3; +extern DLLSPEC daeString COLLADA_TYPE_HALF4X4; +extern DLLSPEC daeString COLLADA_TYPE_FIXED; +extern DLLSPEC daeString COLLADA_TYPE_FIXED1; +extern DLLSPEC daeString COLLADA_TYPE_FIXED2; +extern DLLSPEC daeString COLLADA_TYPE_FIXED3; +extern DLLSPEC daeString COLLADA_TYPE_FIXED4; +extern DLLSPEC daeString COLLADA_TYPE_FIXED1X1; +extern DLLSPEC daeString COLLADA_TYPE_FIXED1X2; +extern DLLSPEC daeString COLLADA_TYPE_FIXED1X3; +extern DLLSPEC daeString COLLADA_TYPE_FIXED1X4; +extern DLLSPEC daeString COLLADA_TYPE_FIXED2X1; +extern DLLSPEC daeString COLLADA_TYPE_FIXED2X2; +extern DLLSPEC daeString COLLADA_TYPE_FIXED2X3; +extern DLLSPEC daeString COLLADA_TYPE_FIXED2X4; +extern DLLSPEC daeString COLLADA_TYPE_FIXED3X1; +extern DLLSPEC daeString COLLADA_TYPE_FIXED3X2; +extern DLLSPEC daeString COLLADA_TYPE_FIXED3X3; +extern DLLSPEC daeString COLLADA_TYPE_FIXED3X4; +extern DLLSPEC daeString COLLADA_TYPE_FIXED4X1; +extern DLLSPEC daeString COLLADA_TYPE_FIXED4X2; +extern DLLSPEC daeString COLLADA_TYPE_FIXED4X3; +extern DLLSPEC daeString COLLADA_TYPE_FIXED4X4; +extern DLLSPEC daeString COLLADA_TYPE_GLES_PIPELINE_SETTINGS; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_PIPELINE; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT_LINEAR_ATTENUTATION; +extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_PIPELINE_ENABLE; +extern DLLSPEC daeString COLLADA_TYPE_GLES_BASIC_TYPE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_COLLADA; +extern DLLSPEC daeString COLLADA_TYPE_SCENE; +extern DLLSPEC daeString COLLADA_TYPE_IDREF_ARRAY; +extern DLLSPEC daeString COLLADA_TYPE_NAME_ARRAY; +extern DLLSPEC daeString COLLADA_TYPE_BOOL_ARRAY; +extern DLLSPEC daeString COLLADA_TYPE_FLOAT_ARRAY; +extern DLLSPEC daeString COLLADA_TYPE_INT_ARRAY; +extern DLLSPEC daeString COLLADA_TYPE_ACCESSOR; +extern DLLSPEC daeString COLLADA_TYPE_TECHNIQUE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_GEOMETRY; +extern DLLSPEC daeString COLLADA_TYPE_MESH; +extern DLLSPEC daeString COLLADA_TYPE_SPLINE; +extern DLLSPEC daeString COLLADA_TYPE_CONTROL_VERTICES; +extern DLLSPEC daeString COLLADA_TYPE_P; +extern DLLSPEC daeString COLLADA_TYPE_LINES; +extern DLLSPEC daeString COLLADA_TYPE_LINESTRIPS; +extern DLLSPEC daeString COLLADA_TYPE_POLYGONS; +extern DLLSPEC daeString COLLADA_TYPE_PH; +extern DLLSPEC daeString COLLADA_TYPE_H; +extern DLLSPEC daeString COLLADA_TYPE_POLYLIST; +extern DLLSPEC daeString COLLADA_TYPE_VCOUNT; +extern DLLSPEC daeString COLLADA_TYPE_TRIANGLES; +extern DLLSPEC daeString COLLADA_TYPE_TRIFANS; +extern DLLSPEC daeString COLLADA_TYPE_TRISTRIPS; +extern DLLSPEC daeString COLLADA_TYPE_VERTICES; +extern DLLSPEC daeString COLLADA_TYPE_LOOKAT; +extern DLLSPEC daeString COLLADA_TYPE_MATRIX; +extern DLLSPEC daeString COLLADA_TYPE_ROTATE; +extern DLLSPEC daeString COLLADA_TYPE_SCALE; +extern DLLSPEC daeString COLLADA_TYPE_SKEW; +extern DLLSPEC daeString COLLADA_TYPE_TRANSLATE; +extern DLLSPEC daeString COLLADA_TYPE_IMAGE; +extern DLLSPEC daeString COLLADA_TYPE_DATA; +extern DLLSPEC daeString COLLADA_TYPE_INIT_FROM; +extern DLLSPEC daeString COLLADA_TYPE_LIGHT; +extern DLLSPEC daeString COLLADA_TYPE_AMBIENT; +extern DLLSPEC daeString COLLADA_TYPE_DIRECTIONAL; +extern DLLSPEC daeString COLLADA_TYPE_POINT; +extern DLLSPEC daeString COLLADA_TYPE_SPOT; +extern DLLSPEC daeString COLLADA_TYPE_MATERIAL; +extern DLLSPEC daeString COLLADA_TYPE_CAMERA; +extern DLLSPEC daeString COLLADA_TYPE_OPTICS; +extern DLLSPEC daeString COLLADA_TYPE_ORTHOGRAPHIC; +extern DLLSPEC daeString COLLADA_TYPE_PERSPECTIVE; +extern DLLSPEC daeString COLLADA_TYPE_IMAGER; +extern DLLSPEC daeString COLLADA_TYPE_ANIMATION; +extern DLLSPEC daeString COLLADA_TYPE_ANIMATION_CLIP; +extern DLLSPEC daeString COLLADA_TYPE_CHANNEL; +extern DLLSPEC daeString COLLADA_TYPE_SAMPLER; +extern DLLSPEC daeString COLLADA_TYPE_CONTROLLER; +extern DLLSPEC daeString COLLADA_TYPE_SKIN; +extern DLLSPEC daeString COLLADA_TYPE_BIND_SHAPE_MATRIX; +extern DLLSPEC daeString COLLADA_TYPE_JOINTS; +extern DLLSPEC daeString COLLADA_TYPE_VERTEX_WEIGHTS; +extern DLLSPEC daeString COLLADA_TYPE_V; +extern DLLSPEC daeString COLLADA_TYPE_MORPH; +extern DLLSPEC daeString COLLADA_TYPE_TARGETS; +extern DLLSPEC daeString COLLADA_TYPE_ASSET; +extern DLLSPEC daeString COLLADA_TYPE_CONTRIBUTOR; +extern DLLSPEC daeString COLLADA_TYPE_AUTHOR; +extern DLLSPEC daeString COLLADA_TYPE_AUTHORING_TOOL; +extern DLLSPEC daeString COLLADA_TYPE_COMMENTS; +extern DLLSPEC daeString COLLADA_TYPE_COPYRIGHT; +extern DLLSPEC daeString COLLADA_TYPE_SOURCE_DATA; +extern DLLSPEC daeString COLLADA_TYPE_CREATED; +extern DLLSPEC daeString COLLADA_TYPE_KEYWORDS; +extern DLLSPEC daeString COLLADA_TYPE_MODIFIED; +extern DLLSPEC daeString COLLADA_TYPE_REVISION; +extern DLLSPEC daeString COLLADA_TYPE_SUBJECT; +extern DLLSPEC daeString COLLADA_TYPE_TITLE; +extern DLLSPEC daeString COLLADA_TYPE_UNIT; +extern DLLSPEC daeString COLLADA_TYPE_UP_AXIS; +extern DLLSPEC daeString COLLADA_TYPE_EXTRA; +extern DLLSPEC daeString COLLADA_TYPE_TECHNIQUE; +extern DLLSPEC daeString COLLADA_TYPE_NODE; +extern DLLSPEC daeString COLLADA_TYPE_VISUAL_SCENE; +extern DLLSPEC daeString COLLADA_TYPE_EVALUATE_SCENE; +extern DLLSPEC daeString COLLADA_TYPE_RENDER; +extern DLLSPEC daeString COLLADA_TYPE_LAYER; +extern DLLSPEC daeString COLLADA_TYPE_BIND_MATERIAL; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_CAMERA; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_CONTROLLER; +extern DLLSPEC daeString COLLADA_TYPE_SKELETON; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_EFFECT; +extern DLLSPEC daeString COLLADA_TYPE_TECHNIQUE_HINT; +extern DLLSPEC daeString COLLADA_TYPE_SETPARAM; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_FORCE_FIELD; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_GEOMETRY; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_LIGHT; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_MATERIAL; +extern DLLSPEC daeString COLLADA_TYPE_BIND; +extern DLLSPEC daeString COLLADA_TYPE_BIND_VERTEX_INPUT; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_NODE; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_PHYSICS_MATERIAL; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_PHYSICS_MODEL; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_RIGID_BODY; +extern DLLSPEC daeString COLLADA_TYPE_ANGULAR_VELOCITY; +extern DLLSPEC daeString COLLADA_TYPE_VELOCITY; +extern DLLSPEC daeString COLLADA_TYPE_DYNAMIC; +extern DLLSPEC daeString COLLADA_TYPE_MASS_FRAME; +extern DLLSPEC daeString COLLADA_TYPE_SHAPE; +extern DLLSPEC daeString COLLADA_TYPE_HOLLOW; +extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_RIGID_CONSTRAINT; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_ANIMATIONS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_ANIMATION_CLIPS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_CAMERAS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_CONTROLLERS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_GEOMETRIES; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_EFFECTS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_FORCE_FIELDS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_IMAGES; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_LIGHTS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_MATERIALS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_NODES; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_MATERIALS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_MODELS; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_SCENES; +extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_VISUAL_SCENES; +extern DLLSPEC daeString COLLADA_TYPE_FX_PROFILE_ABSTRACT; +extern DLLSPEC daeString COLLADA_TYPE_EFFECT; +extern DLLSPEC daeString COLLADA_TYPE_GL_HOOK_ABSTRACT; +extern DLLSPEC daeString COLLADA_TYPE_PROFILE_GLSL; +extern DLLSPEC daeString COLLADA_TYPE_PASS; +extern DLLSPEC daeString COLLADA_TYPE_DRAW; +extern DLLSPEC daeString COLLADA_TYPE_SHADER; +extern DLLSPEC daeString COLLADA_TYPE_COMPILER_TARGET; +extern DLLSPEC daeString COLLADA_TYPE_COMPILER_OPTIONS; +extern DLLSPEC daeString COLLADA_TYPE_PROFILE_COMMON; +extern DLLSPEC daeString COLLADA_TYPE_CONSTANT; +extern DLLSPEC daeString COLLADA_TYPE_LAMBERT; +extern DLLSPEC daeString COLLADA_TYPE_PHONG; +extern DLLSPEC daeString COLLADA_TYPE_BLINN; +extern DLLSPEC daeString COLLADA_TYPE_PROFILE_CG; +extern DLLSPEC daeString COLLADA_TYPE_PROFILE_GLES; +extern DLLSPEC daeString COLLADA_TYPE_COLOR_TARGET; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_TARGET; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_TARGET; +extern DLLSPEC daeString COLLADA_TYPE_COLOR_CLEAR; +extern DLLSPEC daeString COLLADA_TYPE_DEPTH_CLEAR; +extern DLLSPEC daeString COLLADA_TYPE_STENCIL_CLEAR; +extern DLLSPEC daeString COLLADA_TYPE_BOX; +extern DLLSPEC daeString COLLADA_TYPE_HALF_EXTENTS; +extern DLLSPEC daeString COLLADA_TYPE_PLANE; +extern DLLSPEC daeString COLLADA_TYPE_EQUATION; +extern DLLSPEC daeString COLLADA_TYPE_SPHERE; +extern DLLSPEC daeString COLLADA_TYPE_RADIUS; +extern DLLSPEC daeString COLLADA_TYPE_ELLIPSOID; +extern DLLSPEC daeString COLLADA_TYPE_CYLINDER; +extern DLLSPEC daeString COLLADA_TYPE_HEIGHT; +extern DLLSPEC daeString COLLADA_TYPE_TAPERED_CYLINDER; +extern DLLSPEC daeString COLLADA_TYPE_RADIUS1; +extern DLLSPEC daeString COLLADA_TYPE_RADIUS2; +extern DLLSPEC daeString COLLADA_TYPE_CAPSULE; +extern DLLSPEC daeString COLLADA_TYPE_TAPERED_CAPSULE; +extern DLLSPEC daeString COLLADA_TYPE_CONVEX_MESH; +extern DLLSPEC daeString COLLADA_TYPE_FORCE_FIELD; +extern DLLSPEC daeString COLLADA_TYPE_PHYSICS_MATERIAL; +extern DLLSPEC daeString COLLADA_TYPE_PHYSICS_SCENE; +extern DLLSPEC daeString COLLADA_TYPE_RIGID_BODY; +extern DLLSPEC daeString COLLADA_TYPE_RIGID_CONSTRAINT; +extern DLLSPEC daeString COLLADA_TYPE_REF_ATTACHMENT; +extern DLLSPEC daeString COLLADA_TYPE_ATTACHMENT; +extern DLLSPEC daeString COLLADA_TYPE_ENABLED; +extern DLLSPEC daeString COLLADA_TYPE_INTERPENETRATE; +extern DLLSPEC daeString COLLADA_TYPE_LIMITS; +extern DLLSPEC daeString COLLADA_TYPE_SWING_CONE_AND_TWIST; +extern DLLSPEC daeString COLLADA_TYPE_LINEAR; +extern DLLSPEC daeString COLLADA_TYPE_SPRING; +extern DLLSPEC daeString COLLADA_TYPE_ANGULAR; +extern DLLSPEC daeString COLLADA_TYPE_PHYSICS_MODEL; + +extern DLLSPEC daeString COLLADA_ELEMENT_COLLADA; +extern DLLSPEC daeString COLLADA_ELEMENT_EXTRA; +extern DLLSPEC daeString COLLADA_ELEMENT_CHANNELS; +extern DLLSPEC daeString COLLADA_ELEMENT_RANGE; +extern DLLSPEC daeString COLLADA_ELEMENT_PRECISION; +extern DLLSPEC daeString COLLADA_ELEMENT_OPTION; +extern DLLSPEC daeString COLLADA_ELEMENT_ALL; +extern DLLSPEC daeString COLLADA_ELEMENT_PRIMARY; +extern DLLSPEC daeString COLLADA_ELEMENT_FACE; +extern DLLSPEC daeString COLLADA_ELEMENT_ORDER; +extern DLLSPEC daeString COLLADA_ELEMENT_FX_SURFACE_INIT_COMMON; +extern DLLSPEC daeString COLLADA_ELEMENT_FORMAT; +extern DLLSPEC daeString COLLADA_ELEMENT_FORMAT_HINT; +extern DLLSPEC daeString COLLADA_ELEMENT_SIZE; +extern DLLSPEC daeString COLLADA_ELEMENT_VIEWPORT_RATIO; +extern DLLSPEC daeString COLLADA_ELEMENT_MIP_LEVELS; +extern DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_GENERATE; +extern DLLSPEC daeString COLLADA_ELEMENT_SOURCE; +extern DLLSPEC daeString COLLADA_ELEMENT_WRAP_S; +extern DLLSPEC daeString COLLADA_ELEMENT_MINFILTER; +extern DLLSPEC daeString COLLADA_ELEMENT_MAGFILTER; +extern DLLSPEC daeString COLLADA_ELEMENT_MIPFILTER; +extern DLLSPEC daeString COLLADA_ELEMENT_BORDER_COLOR; +extern DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_MAXLEVEL; +extern DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_BIAS; +extern DLLSPEC daeString COLLADA_ELEMENT_WRAP_T; +extern DLLSPEC daeString COLLADA_ELEMENT_WRAP_P; +extern DLLSPEC daeString COLLADA_ELEMENT_FX_ANNOTATE_TYPE_COMMON; +extern DLLSPEC daeString COLLADA_ELEMENT_ANNOTATE; +extern DLLSPEC daeString COLLADA_ELEMENT_SEMANTIC; +extern DLLSPEC daeString COLLADA_ELEMENT_MODIFIER; +extern DLLSPEC daeString COLLADA_ELEMENT_FX_BASIC_TYPE_COMMON; +extern DLLSPEC daeString COLLADA_ELEMENT_GLSL_PARAM_TYPE; +extern DLLSPEC daeString COLLADA_ELEMENT_ARRAY; +extern DLLSPEC daeString COLLADA_ELEMENT_GENERATOR; +extern DLLSPEC daeString COLLADA_ELEMENT_CODE; +extern DLLSPEC daeString COLLADA_ELEMENT_INCLUDE; +extern DLLSPEC daeString COLLADA_ELEMENT_NAME; +extern DLLSPEC daeString COLLADA_ELEMENT_SETPARAM; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT; +extern DLLSPEC daeString COLLADA_ELEMENT_PARAM; +extern DLLSPEC daeString COLLADA_ELEMENT_COLOR; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4; +extern DLLSPEC daeString COLLADA_ELEMENT_SURFACE; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER2D; +extern DLLSPEC daeString COLLADA_ELEMENT_CG_PARAM_TYPE; +extern DLLSPEC daeString COLLADA_ELEMENT_USERTYPE; +extern DLLSPEC daeString COLLADA_ELEMENT_CONNECT_PARAM; +extern DLLSPEC daeString COLLADA_ELEMENT_CONSTANT; +extern DLLSPEC daeString COLLADA_ELEMENT_ARGUMENT; +extern DLLSPEC daeString COLLADA_ELEMENT_RGB; +extern DLLSPEC daeString COLLADA_ELEMENT_ALPHA; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXCOMBINER; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXENV; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER_STATE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXCOORD; +extern DLLSPEC daeString COLLADA_ELEMENT_GLES_BASIC_TYPE_COMMON; +extern DLLSPEC daeString COLLADA_ELEMENT_INIT_AS_NULL; +extern DLLSPEC daeString COLLADA_ELEMENT_INIT_AS_TARGET; +extern DLLSPEC daeString COLLADA_ELEMENT_INIT_CUBE; +extern DLLSPEC daeString COLLADA_ELEMENT_INIT_VOLUME; +extern DLLSPEC daeString COLLADA_ELEMENT_INIT_PLANAR; +extern DLLSPEC daeString COLLADA_ELEMENT_INIT_FROM; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4; +extern DLLSPEC daeString COLLADA_ELEMENT_INT; +extern DLLSPEC daeString COLLADA_ELEMENT_INT2; +extern DLLSPEC daeString COLLADA_ELEMENT_INT3; +extern DLLSPEC daeString COLLADA_ELEMENT_INT4; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X3; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X4; +extern DLLSPEC daeString COLLADA_ELEMENT_STRING; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X3; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X3; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X3; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER1D; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER3D; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLERCUBE; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLERRECT; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLERDEPTH; +extern DLLSPEC daeString COLLADA_ELEMENT_ENUM; +extern DLLSPEC daeString COLLADA_ELEMENT_ALPHA_FUNC; +extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_FUNC; +extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_FUNC_SEPARATE; +extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_EQUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_EQUATION_SEPARATE; +extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_MATERIAL; +extern DLLSPEC daeString COLLADA_ELEMENT_CULL_FACE; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_FUNC; +extern DLLSPEC daeString COLLADA_ELEMENT_FOG_MODE; +extern DLLSPEC daeString COLLADA_ELEMENT_FOG_COORD_SRC; +extern DLLSPEC daeString COLLADA_ELEMENT_FRONT_FACE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_COLOR_CONTROL; +extern DLLSPEC daeString COLLADA_ELEMENT_LOGIC_OP; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_MODE; +extern DLLSPEC daeString COLLADA_ELEMENT_SHADE_MODEL; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_FUNC; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_OP; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_FUNC_SEPARATE; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_OP_SEPARATE; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_MASK_SEPARATE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_AMBIENT; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_DIFFUSE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPECULAR; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_POSITION; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_CONSTANT_ATTENUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_LINEAR_ATTENUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_QUADRATIC_ATTENUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_CUTOFF; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_DIRECTION; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_EXPONENT; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE1D; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE2D; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE3D; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURECUBE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURERECT; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTUREDEPTH; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE1D_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE2D_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE3D_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURECUBE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURERECT_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTUREDEPTH_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_ENV_COLOR; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_ENV_MODE; +extern DLLSPEC daeString COLLADA_ELEMENT_CLIP_PLANE; +extern DLLSPEC daeString COLLADA_ELEMENT_CLIP_PLANE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_COLOR; +extern DLLSPEC daeString COLLADA_ELEMENT_CLEAR_COLOR; +extern DLLSPEC daeString COLLADA_ELEMENT_CLEAR_STENCIL; +extern DLLSPEC daeString COLLADA_ELEMENT_CLEAR_DEPTH; +extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_MASK; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_BOUNDS; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_MASK; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_RANGE; +extern DLLSPEC daeString COLLADA_ELEMENT_FOG_DENSITY; +extern DLLSPEC daeString COLLADA_ELEMENT_FOG_START; +extern DLLSPEC daeString COLLADA_ELEMENT_FOG_END; +extern DLLSPEC daeString COLLADA_ELEMENT_FOG_COLOR; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_AMBIENT; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHTING_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LINE_STIPPLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LINE_WIDTH; +extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_AMBIENT; +extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_DIFFUSE; +extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_EMISSION; +extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_SHININESS; +extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_SPECULAR; +extern DLLSPEC daeString COLLADA_ELEMENT_MODEL_VIEW_MATRIX; +extern DLLSPEC daeString COLLADA_ELEMENT_POINT_DISTANCE_ATTENUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_POINT_FADE_THRESHOLD_SIZE; +extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE; +extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE_MIN; +extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE_MAX; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET; +extern DLLSPEC daeString COLLADA_ELEMENT_PROJECTION_MATRIX; +extern DLLSPEC daeString COLLADA_ELEMENT_SCISSOR; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_MASK; +extern DLLSPEC daeString COLLADA_ELEMENT_ALPHA_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_AUTO_NORMAL_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_LOGIC_OP_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_MATERIAL_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_CULL_FACE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_BOUNDS_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_CLAMP_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_DITHER_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_FOG_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_LOCAL_VIEWER_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_TWO_SIDE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LINE_SMOOTH_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LINE_STIPPLE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_LOGIC_OP_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_MULTISAMPLE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_NORMALIZE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SMOOTH_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_FILL_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_LINE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_POINT_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_SMOOTH_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_STIPPLE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_RESCALE_NORMAL_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_ALPHA_TO_COVERAGE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_ALPHA_TO_ONE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_COVERAGE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_SCISSOR_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_TEST_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_GL_HOOK_ABSTRACT; +extern DLLSPEC daeString COLLADA_ELEMENT_FUNC; +extern DLLSPEC daeString COLLADA_ELEMENT_VALUE; +extern DLLSPEC daeString COLLADA_ELEMENT_SRC; +extern DLLSPEC daeString COLLADA_ELEMENT_DEST; +extern DLLSPEC daeString COLLADA_ELEMENT_SRC_RGB; +extern DLLSPEC daeString COLLADA_ELEMENT_DEST_RGB; +extern DLLSPEC daeString COLLADA_ELEMENT_SRC_ALPHA; +extern DLLSPEC daeString COLLADA_ELEMENT_DEST_ALPHA; +extern DLLSPEC daeString COLLADA_ELEMENT_rgb; +extern DLLSPEC daeString COLLADA_ELEMENT_MODE; +extern DLLSPEC daeString COLLADA_ELEMENT_REF; +extern DLLSPEC daeString COLLADA_ELEMENT_MASK; +extern DLLSPEC daeString COLLADA_ELEMENT_FAIL; +extern DLLSPEC daeString COLLADA_ELEMENT_ZFAIL; +extern DLLSPEC daeString COLLADA_ELEMENT_ZPASS; +extern DLLSPEC daeString COLLADA_ELEMENT_FRONT; +extern DLLSPEC daeString COLLADA_ELEMENT_BACK; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X1; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X2; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X3; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X4; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X1; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X2; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X3; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X4; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X1; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X2; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X3; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X4; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X1; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X2; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X3; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1; +extern DLLSPEC daeString COLLADA_ELEMENT_INT1; +extern DLLSPEC daeString COLLADA_ELEMENT_INT1X1; +extern DLLSPEC daeString COLLADA_ELEMENT_INT1X2; +extern DLLSPEC daeString COLLADA_ELEMENT_INT1X3; +extern DLLSPEC daeString COLLADA_ELEMENT_INT1X4; +extern DLLSPEC daeString COLLADA_ELEMENT_INT2X1; +extern DLLSPEC daeString COLLADA_ELEMENT_INT2X2; +extern DLLSPEC daeString COLLADA_ELEMENT_INT2X3; +extern DLLSPEC daeString COLLADA_ELEMENT_INT2X4; +extern DLLSPEC daeString COLLADA_ELEMENT_INT3X1; +extern DLLSPEC daeString COLLADA_ELEMENT_INT3X2; +extern DLLSPEC daeString COLLADA_ELEMENT_INT3X3; +extern DLLSPEC daeString COLLADA_ELEMENT_INT3X4; +extern DLLSPEC daeString COLLADA_ELEMENT_INT4X1; +extern DLLSPEC daeString COLLADA_ELEMENT_INT4X2; +extern DLLSPEC daeString COLLADA_ELEMENT_INT4X3; +extern DLLSPEC daeString COLLADA_ELEMENT_INT4X4; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF1; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF2; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF3; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF4; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X1; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X2; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X3; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X4; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X1; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X2; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X3; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X4; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X1; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X2; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X3; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X4; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X1; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X2; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X3; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X3; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X3; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X3; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X4; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X1; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X2; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X3; +extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X4; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_PIPELINE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_LINEAR_ATTENUTATION; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_PIPELINE_ENABLE; +extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_UNIT; +extern DLLSPEC daeString COLLADA_ELEMENT_ASSET; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_ANIMATIONS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_ANIMATION_CLIPS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_CAMERAS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_CONTROLLERS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_GEOMETRIES; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_EFFECTS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_FORCE_FIELDS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_IMAGES; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_LIGHTS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_MATERIALS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_NODES; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_MATERIALS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_MODELS; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_SCENES; +extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_VISUAL_SCENES; +extern DLLSPEC daeString COLLADA_ELEMENT_SCENE; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_PHYSICS_SCENE; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_VISUAL_SCENE; +extern DLLSPEC daeString COLLADA_ELEMENT_IDREF_ARRAY; +extern DLLSPEC daeString COLLADA_ELEMENT_NAME_ARRAY; +extern DLLSPEC daeString COLLADA_ELEMENT_BOOL_ARRAY; +extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT_ARRAY; +extern DLLSPEC daeString COLLADA_ELEMENT_INT_ARRAY; +extern DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE_COMMON; +extern DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE; +extern DLLSPEC daeString COLLADA_ELEMENT_ACCESSOR; +extern DLLSPEC daeString COLLADA_ELEMENT_CONVEX_MESH; +extern DLLSPEC daeString COLLADA_ELEMENT_MESH; +extern DLLSPEC daeString COLLADA_ELEMENT_SPLINE; +extern DLLSPEC daeString COLLADA_ELEMENT_VERTICES; +extern DLLSPEC daeString COLLADA_ELEMENT_LINES; +extern DLLSPEC daeString COLLADA_ELEMENT_LINESTRIPS; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYGONS; +extern DLLSPEC daeString COLLADA_ELEMENT_POLYLIST; +extern DLLSPEC daeString COLLADA_ELEMENT_TRIANGLES; +extern DLLSPEC daeString COLLADA_ELEMENT_TRIFANS; +extern DLLSPEC daeString COLLADA_ELEMENT_TRISTRIPS; +extern DLLSPEC daeString COLLADA_ELEMENT_CONTROL_VERTICES; +extern DLLSPEC daeString COLLADA_ELEMENT_INPUT; +extern DLLSPEC daeString COLLADA_ELEMENT_P; +extern DLLSPEC daeString COLLADA_ELEMENT_PH; +extern DLLSPEC daeString COLLADA_ELEMENT_H; +extern DLLSPEC daeString COLLADA_ELEMENT_VCOUNT; +extern DLLSPEC daeString COLLADA_ELEMENT_DATA; +extern DLLSPEC daeString COLLADA_ELEMENT_AMBIENT; +extern DLLSPEC daeString COLLADA_ELEMENT_DIRECTIONAL; +extern DLLSPEC daeString COLLADA_ELEMENT_POINT; +extern DLLSPEC daeString COLLADA_ELEMENT_SPOT; +extern DLLSPEC daeString COLLADA_ELEMENT_CONSTANT_ATTENUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_LINEAR_ATTENUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_QUADRATIC_ATTENUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_FALLOFF_ANGLE; +extern DLLSPEC daeString COLLADA_ELEMENT_FALLOFF_EXPONENT; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_EFFECT; +extern DLLSPEC daeString COLLADA_ELEMENT_OPTICS; +extern DLLSPEC daeString COLLADA_ELEMENT_IMAGER; +extern DLLSPEC daeString COLLADA_ELEMENT_ORTHOGRAPHIC; +extern DLLSPEC daeString COLLADA_ELEMENT_PERSPECTIVE; +extern DLLSPEC daeString COLLADA_ELEMENT_XMAG; +extern DLLSPEC daeString COLLADA_ELEMENT_YMAG; +extern DLLSPEC daeString COLLADA_ELEMENT_ASPECT_RATIO; +extern DLLSPEC daeString COLLADA_ELEMENT_ZNEAR; +extern DLLSPEC daeString COLLADA_ELEMENT_ZFAR; +extern DLLSPEC daeString COLLADA_ELEMENT_XFOV; +extern DLLSPEC daeString COLLADA_ELEMENT_YFOV; +extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER; +extern DLLSPEC daeString COLLADA_ELEMENT_CHANNEL; +extern DLLSPEC daeString COLLADA_ELEMENT_ANIMATION; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_ANIMATION; +extern DLLSPEC daeString COLLADA_ELEMENT_SKIN; +extern DLLSPEC daeString COLLADA_ELEMENT_MORPH; +extern DLLSPEC daeString COLLADA_ELEMENT_BIND_SHAPE_MATRIX; +extern DLLSPEC daeString COLLADA_ELEMENT_JOINTS; +extern DLLSPEC daeString COLLADA_ELEMENT_VERTEX_WEIGHTS; +extern DLLSPEC daeString COLLADA_ELEMENT_V; +extern DLLSPEC daeString COLLADA_ELEMENT_TARGETS; +extern DLLSPEC daeString COLLADA_ELEMENT_CONTRIBUTOR; +extern DLLSPEC daeString COLLADA_ELEMENT_CREATED; +extern DLLSPEC daeString COLLADA_ELEMENT_KEYWORDS; +extern DLLSPEC daeString COLLADA_ELEMENT_MODIFIED; +extern DLLSPEC daeString COLLADA_ELEMENT_REVISION; +extern DLLSPEC daeString COLLADA_ELEMENT_SUBJECT; +extern DLLSPEC daeString COLLADA_ELEMENT_TITLE; +extern DLLSPEC daeString COLLADA_ELEMENT_UNIT; +extern DLLSPEC daeString COLLADA_ELEMENT_UP_AXIS; +extern DLLSPEC daeString COLLADA_ELEMENT_AUTHOR; +extern DLLSPEC daeString COLLADA_ELEMENT_AUTHORING_TOOL; +extern DLLSPEC daeString COLLADA_ELEMENT_COMMENTS; +extern DLLSPEC daeString COLLADA_ELEMENT_COPYRIGHT; +extern DLLSPEC daeString COLLADA_ELEMENT_SOURCE_DATA; +extern DLLSPEC daeString COLLADA_ELEMENT_LOOKAT; +extern DLLSPEC daeString COLLADA_ELEMENT_MATRIX; +extern DLLSPEC daeString COLLADA_ELEMENT_ROTATE; +extern DLLSPEC daeString COLLADA_ELEMENT_SCALE; +extern DLLSPEC daeString COLLADA_ELEMENT_SKEW; +extern DLLSPEC daeString COLLADA_ELEMENT_TRANSLATE; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_CAMERA; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_CONTROLLER; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_GEOMETRY; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_LIGHT; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_NODE; +extern DLLSPEC daeString COLLADA_ELEMENT_NODE; +extern DLLSPEC daeString COLLADA_ELEMENT_EVALUATE_SCENE; +extern DLLSPEC daeString COLLADA_ELEMENT_RENDER; +extern DLLSPEC daeString COLLADA_ELEMENT_LAYER; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_MATERIAL; +extern DLLSPEC daeString COLLADA_ELEMENT_SKELETON; +extern DLLSPEC daeString COLLADA_ELEMENT_BIND_MATERIAL; +extern DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE_HINT; +extern DLLSPEC daeString COLLADA_ELEMENT_BIND; +extern DLLSPEC daeString COLLADA_ELEMENT_BIND_VERTEX_INPUT; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_FORCE_FIELD; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_RIGID_BODY; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_RIGID_CONSTRAINT; +extern DLLSPEC daeString COLLADA_ELEMENT_ANGULAR_VELOCITY; +extern DLLSPEC daeString COLLADA_ELEMENT_VELOCITY; +extern DLLSPEC daeString COLLADA_ELEMENT_DYNAMIC; +extern DLLSPEC daeString COLLADA_ELEMENT_MASS; +extern DLLSPEC daeString COLLADA_ELEMENT_MASS_FRAME; +extern DLLSPEC daeString COLLADA_ELEMENT_INERTIA; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_PHYSICS_MATERIAL; +extern DLLSPEC daeString COLLADA_ELEMENT_PHYSICS_MATERIAL; +extern DLLSPEC daeString COLLADA_ELEMENT_SHAPE; +extern DLLSPEC daeString COLLADA_ELEMENT_HOLLOW; +extern DLLSPEC daeString COLLADA_ELEMENT_DENSITY; +extern DLLSPEC daeString COLLADA_ELEMENT_PLANE; +extern DLLSPEC daeString COLLADA_ELEMENT_BOX; +extern DLLSPEC daeString COLLADA_ELEMENT_SPHERE; +extern DLLSPEC daeString COLLADA_ELEMENT_CYLINDER; +extern DLLSPEC daeString COLLADA_ELEMENT_TAPERED_CYLINDER; +extern DLLSPEC daeString COLLADA_ELEMENT_CAPSULE; +extern DLLSPEC daeString COLLADA_ELEMENT_TAPERED_CAPSULE; +extern DLLSPEC daeString COLLADA_ELEMENT_ANIMATION_CLIP; +extern DLLSPEC daeString COLLADA_ELEMENT_CAMERA; +extern DLLSPEC daeString COLLADA_ELEMENT_CONTROLLER; +extern DLLSPEC daeString COLLADA_ELEMENT_GEOMETRY; +extern DLLSPEC daeString COLLADA_ELEMENT_EFFECT; +extern DLLSPEC daeString COLLADA_ELEMENT_FORCE_FIELD; +extern DLLSPEC daeString COLLADA_ELEMENT_IMAGE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT; +extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL; +extern DLLSPEC daeString COLLADA_ELEMENT_PHYSICS_MODEL; +extern DLLSPEC daeString COLLADA_ELEMENT_PHYSICS_SCENE; +extern DLLSPEC daeString COLLADA_ELEMENT_VISUAL_SCENE; +extern DLLSPEC daeString COLLADA_ELEMENT_NEWPARAM; +extern DLLSPEC daeString COLLADA_ELEMENT_FX_PROFILE_ABSTRACT; +extern DLLSPEC daeString COLLADA_ELEMENT_PROFILE_GLSL; +extern DLLSPEC daeString COLLADA_ELEMENT_PASS; +extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_TARGET; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_TARGET; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_TARGET; +extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_CLEAR; +extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_CLEAR; +extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_CLEAR; +extern DLLSPEC daeString COLLADA_ELEMENT_DRAW; +extern DLLSPEC daeString COLLADA_ELEMENT_GL_PIPELINE_SETTINGS; +extern DLLSPEC daeString COLLADA_ELEMENT_SHADER; +extern DLLSPEC daeString COLLADA_ELEMENT_COMPILER_TARGET; +extern DLLSPEC daeString COLLADA_ELEMENT_COMPILER_OPTIONS; +extern DLLSPEC daeString COLLADA_ELEMENT_PROFILE_COMMON; +extern DLLSPEC daeString COLLADA_ELEMENT_LAMBERT; +extern DLLSPEC daeString COLLADA_ELEMENT_PHONG; +extern DLLSPEC daeString COLLADA_ELEMENT_BLINN; +extern DLLSPEC daeString COLLADA_ELEMENT_EMISSION; +extern DLLSPEC daeString COLLADA_ELEMENT_REFLECTIVE; +extern DLLSPEC daeString COLLADA_ELEMENT_REFLECTIVITY; +extern DLLSPEC daeString COLLADA_ELEMENT_TRANSPARENT; +extern DLLSPEC daeString COLLADA_ELEMENT_TRANSPARENCY; +extern DLLSPEC daeString COLLADA_ELEMENT_INDEX_OF_REFRACTION; +extern DLLSPEC daeString COLLADA_ELEMENT_DIFFUSE; +extern DLLSPEC daeString COLLADA_ELEMENT_SPECULAR; +extern DLLSPEC daeString COLLADA_ELEMENT_SHININESS; +extern DLLSPEC daeString COLLADA_ELEMENT_PROFILE_CG; +extern DLLSPEC daeString COLLADA_ELEMENT_PROFILE_GLES; +extern DLLSPEC daeString COLLADA_ELEMENT_GLES_PIPELINE_SETTINGS; +extern DLLSPEC daeString COLLADA_ELEMENT_HALF_EXTENTS; +extern DLLSPEC daeString COLLADA_ELEMENT_EQUATION; +extern DLLSPEC daeString COLLADA_ELEMENT_RADIUS; +extern DLLSPEC daeString COLLADA_ELEMENT_HEIGHT; +extern DLLSPEC daeString COLLADA_ELEMENT_RADIUS1; +extern DLLSPEC daeString COLLADA_ELEMENT_RADIUS2; +extern DLLSPEC daeString COLLADA_ELEMENT_DYNAMIC_FRICTION; +extern DLLSPEC daeString COLLADA_ELEMENT_RESTITUTION; +extern DLLSPEC daeString COLLADA_ELEMENT_STATIC_FRICTION; +extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_PHYSICS_MODEL; +extern DLLSPEC daeString COLLADA_ELEMENT_GRAVITY; +extern DLLSPEC daeString COLLADA_ELEMENT_TIME_STEP; +extern DLLSPEC daeString COLLADA_ELEMENT_REF_ATTACHMENT; +extern DLLSPEC daeString COLLADA_ELEMENT_ATTACHMENT; +extern DLLSPEC daeString COLLADA_ELEMENT_ENABLED; +extern DLLSPEC daeString COLLADA_ELEMENT_INTERPENETRATE; +extern DLLSPEC daeString COLLADA_ELEMENT_LIMITS; +extern DLLSPEC daeString COLLADA_ELEMENT_SPRING; +extern DLLSPEC daeString COLLADA_ELEMENT_SWING_CONE_AND_TWIST; +extern DLLSPEC daeString COLLADA_ELEMENT_LINEAR; +extern DLLSPEC daeString COLLADA_ELEMENT_MIN; +extern DLLSPEC daeString COLLADA_ELEMENT_MAX; +extern DLLSPEC daeString COLLADA_ELEMENT_ANGULAR; +extern DLLSPEC daeString COLLADA_ELEMENT_STIFFNESS; +extern DLLSPEC daeString COLLADA_ELEMENT_DAMPING; +extern DLLSPEC daeString COLLADA_ELEMENT_TARGET_VALUE; +extern DLLSPEC daeString COLLADA_ELEMENT_RIGID_BODY; +extern DLLSPEC daeString COLLADA_ELEMENT_RIGID_CONSTRAINT; + +#endif //__DOM_CONSTANTS_H__ + diff --git a/include/1.4/dom/domController.h b/include/1.4/dom/domController.h new file mode 100644 index 0000000..54c7bd5 --- /dev/null +++ b/include/1.4/dom/domController.h @@ -0,0 +1,174 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domController_h__ +#define __domController_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * The controller element categorizes the declaration of generic control information. + * A controller is a device or mechanism that manages and directs the operations + * of another object. + */ +class domController : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONTROLLER; } + static daeInt ID() { return 655; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The controller element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The controller element may contain either a skin element or a morph element. + * @see domSkin + */ + domSkinRef elemSkin; +/** + * The controller element may contain either a skin element or a morph element. + * @see domMorph + */ + domMorphRef elemMorph; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the skin element. + * @return a daeSmartRef to the skin element. + */ + const domSkinRef getSkin() const { return elemSkin; } + /** + * Gets the morph element. + * @return a daeSmartRef to the morph element. + */ + const domMorphRef getMorph() const { return elemMorph; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domController(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemSkin(), elemMorph(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domController() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domController &operator=( const domController &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domConvex_mesh.h b/include/1.4/dom/domConvex_mesh.h new file mode 100644 index 0000000..7695ea7 --- /dev/null +++ b/include/1.4/dom/domConvex_mesh.h @@ -0,0 +1,239 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domConvex_mesh_h__ +#define __domConvex_mesh_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * The definition of the convex_mesh element is identical to the mesh element + * with the exception that instead of a complete description (source, vertices, + * polygons etc.), it may simply point to another geometry to derive its + * shape. The latter case means that the convex hull of that geometry should + * be computed and is indicated by the optional “convex_hull_of” attribute. + */ +class domConvex_mesh : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONVEX_MESH; } + static daeInt ID() { return 789; } + virtual daeInt typeID() const { return ID(); } +protected: // Attribute +/** + * The convex_hull_of attribute is a URI string of geometry to compute the + * convex hull of. Optional attribute. + */ + xsAnyURI attrConvex_hull_of; + +protected: // Elements + domSource_Array elemSource_array; + domVerticesRef elemVertices; + domLines_Array elemLines_array; + domLinestrips_Array elemLinestrips_array; + domPolygons_Array elemPolygons_array; + domPolylist_Array elemPolylist_array; + domTriangles_Array elemTriangles_array; + domTrifans_Array elemTrifans_array; + domTristrips_Array elemTristrips_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the convex_hull_of attribute. + * @return Returns a xsAnyURI reference of the convex_hull_of attribute. + */ + xsAnyURI &getConvex_hull_of() { return attrConvex_hull_of; } + /** + * Gets the convex_hull_of attribute. + * @return Returns a constant xsAnyURI reference of the convex_hull_of attribute. + */ + const xsAnyURI &getConvex_hull_of() const { return attrConvex_hull_of; } + /** + * Sets the convex_hull_of attribute. + * @param atConvex_hull_of The new value for the convex_hull_of attribute. + */ + void setConvex_hull_of( const xsAnyURI &atConvex_hull_of ) { attrConvex_hull_of = atConvex_hull_of; _validAttributeArray[0] = true; } + /** + * Sets the convex_hull_of attribute. + * @param atConvex_hull_of The new value for the convex_hull_of attribute. + */ + void setConvex_hull_of( xsString atConvex_hull_of ) { attrConvex_hull_of = atConvex_hull_of; _validAttributeArray[0] = true; } + + /** + * Gets the source element array. + * @return Returns a reference to the array of source elements. + */ + domSource_Array &getSource_array() { return elemSource_array; } + /** + * Gets the source element array. + * @return Returns a constant reference to the array of source elements. + */ + const domSource_Array &getSource_array() const { return elemSource_array; } + /** + * Gets the vertices element. + * @return a daeSmartRef to the vertices element. + */ + const domVerticesRef getVertices() const { return elemVertices; } + /** + * Gets the lines element array. + * @return Returns a reference to the array of lines elements. + */ + domLines_Array &getLines_array() { return elemLines_array; } + /** + * Gets the lines element array. + * @return Returns a constant reference to the array of lines elements. + */ + const domLines_Array &getLines_array() const { return elemLines_array; } + /** + * Gets the linestrips element array. + * @return Returns a reference to the array of linestrips elements. + */ + domLinestrips_Array &getLinestrips_array() { return elemLinestrips_array; } + /** + * Gets the linestrips element array. + * @return Returns a constant reference to the array of linestrips elements. + */ + const domLinestrips_Array &getLinestrips_array() const { return elemLinestrips_array; } + /** + * Gets the polygons element array. + * @return Returns a reference to the array of polygons elements. + */ + domPolygons_Array &getPolygons_array() { return elemPolygons_array; } + /** + * Gets the polygons element array. + * @return Returns a constant reference to the array of polygons elements. + */ + const domPolygons_Array &getPolygons_array() const { return elemPolygons_array; } + /** + * Gets the polylist element array. + * @return Returns a reference to the array of polylist elements. + */ + domPolylist_Array &getPolylist_array() { return elemPolylist_array; } + /** + * Gets the polylist element array. + * @return Returns a constant reference to the array of polylist elements. + */ + const domPolylist_Array &getPolylist_array() const { return elemPolylist_array; } + /** + * Gets the triangles element array. + * @return Returns a reference to the array of triangles elements. + */ + domTriangles_Array &getTriangles_array() { return elemTriangles_array; } + /** + * Gets the triangles element array. + * @return Returns a constant reference to the array of triangles elements. + */ + const domTriangles_Array &getTriangles_array() const { return elemTriangles_array; } + /** + * Gets the trifans element array. + * @return Returns a reference to the array of trifans elements. + */ + domTrifans_Array &getTrifans_array() { return elemTrifans_array; } + /** + * Gets the trifans element array. + * @return Returns a constant reference to the array of trifans elements. + */ + const domTrifans_Array &getTrifans_array() const { return elemTrifans_array; } + /** + * Gets the tristrips element array. + * @return Returns a reference to the array of tristrips elements. + */ + domTristrips_Array &getTristrips_array() { return elemTristrips_array; } + /** + * Gets the tristrips element array. + * @return Returns a constant reference to the array of tristrips elements. + */ + const domTristrips_Array &getTristrips_array() const { return elemTristrips_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domConvex_mesh(DAE& dae) : daeElement(dae), attrConvex_hull_of(dae, *this), elemSource_array(), elemVertices(), elemLines_array(), elemLinestrips_array(), elemPolygons_array(), elemPolylist_array(), elemTriangles_array(), elemTrifans_array(), elemTristrips_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domConvex_mesh() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domConvex_mesh &operator=( const domConvex_mesh &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domCylinder.h b/include/1.4/dom/domCylinder.h new file mode 100644 index 0000000..b642feb --- /dev/null +++ b/include/1.4/dom/domCylinder.h @@ -0,0 +1,229 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domCylinder_h__ +#define __domCylinder_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A cylinder primitive that is centered on, and aligned with. the local Y + * axis. + */ +class domCylinder : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CYLINDER; } + static daeInt ID() { return 775; } + virtual daeInt typeID() const { return ID(); } +public: + class domHeight; + + typedef daeSmartRef domHeightRef; + typedef daeTArray domHeight_Array; + +/** + * A float value that represents the length of the cylinder along the Y axis. + */ + class domHeight : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HEIGHT; } + static daeInt ID() { return 776; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHeight(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHeight() {} + /** + * Overloaded assignment operator + */ + virtual domHeight &operator=( const domHeight &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRadius; + + typedef daeSmartRef domRadiusRef; + typedef daeTArray domRadius_Array; + +/** + * float2 values that represent the radii of the cylinder. + */ + class domRadius : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS; } + static daeInt ID() { return 777; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat2 value of the text data of this element. + */ + domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat2 reference of the _value array. + */ + domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat2 reference of the _value array. + */ + const domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRadius(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRadius() {} + /** + * Overloaded assignment operator + */ + virtual domRadius &operator=( const domRadius &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * A float value that represents the length of the cylinder along the Y axis. + * @see domHeight + */ + domHeightRef elemHeight; +/** + * float2 values that represent the radii of the cylinder. @see domRadius + */ + domRadiusRef elemRadius; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the height element. + * @return a daeSmartRef to the height element. + */ + const domHeightRef getHeight() const { return elemHeight; } + /** + * Gets the radius element. + * @return a daeSmartRef to the radius element. + */ + const domRadiusRef getRadius() const { return elemRadius; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domCylinder(DAE& dae) : daeElement(dae), elemHeight(), elemRadius(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domCylinder() {} + /** + * Overloaded assignment operator + */ + virtual domCylinder &operator=( const domCylinder &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domEffect.h b/include/1.4/dom/domEffect.h new file mode 100644 index 0000000..d3a90e0 --- /dev/null +++ b/include/1.4/dom/domEffect.h @@ -0,0 +1,209 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domEffect_h__ +#define __domEffect_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * A self contained description of a shader effect. + */ +class domEffect : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::EFFECT; } + static daeInt ID() { return 728; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The effect element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The annotate element allows you to specify an annotation on this effect. + * @see domAnnotate + */ + domFx_annotate_common_Array elemAnnotate_array; +/** + * The image element allows you to create image resources which can be shared + * by multipe profiles. @see domImage + */ + domImage_Array elemImage_array; +/** + * The newparam element allows you to create new effect parameters which can + * be shared by multipe profiles. @see domNewparam + */ + domFx_newparam_common_Array elemNewparam_array; +/** + * This is the substituion group hook which allows you to swap in other COLLADA + * FX profiles. @see domFx_profile_abstract + */ + domFx_profile_abstract_Array elemFx_profile_abstract_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domFx_newparam_common_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domFx_newparam_common_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the fx_profile_abstract element array. + * @return Returns a reference to the array of fx_profile_abstract elements. + */ + domFx_profile_abstract_Array &getFx_profile_abstract_array() { return elemFx_profile_abstract_array; } + /** + * Gets the fx_profile_abstract element array. + * @return Returns a constant reference to the array of fx_profile_abstract elements. + */ + const domFx_profile_abstract_Array &getFx_profile_abstract_array() const { return elemFx_profile_abstract_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domEffect(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemAnnotate_array(), elemImage_array(), elemNewparam_array(), elemFx_profile_abstract_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domEffect() {} + /** + * Overloaded assignment operator + */ + virtual domEffect &operator=( const domEffect &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domElements.h b/include/1.4/dom/domElements.h new file mode 100644 index 0000000..121a94b --- /dev/null +++ b/include/1.4/dom/domElements.h @@ -0,0 +1,871 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DOM_ELEMENTS_H__ +#define __DOM_ELEMENTS_H__ + +#include + +class domInputGlobal; + +typedef daeSmartRef domInputGlobalRef; +typedef daeTArray domInputGlobal_Array; + +class domInputLocal; + +typedef daeSmartRef domInputLocalRef; +typedef daeTArray domInputLocal_Array; + +class domInputLocalOffset; + +typedef daeSmartRef domInputLocalOffsetRef; +typedef daeTArray domInputLocalOffset_Array; + +class domInstanceWithExtra; + +typedef daeSmartRef domInstanceWithExtraRef; +typedef daeTArray domInstanceWithExtra_Array; + +class domTargetableFloat; + +typedef daeSmartRef domTargetableFloatRef; +typedef daeTArray domTargetableFloat_Array; + +class domTargetableFloat3; + +typedef daeSmartRef domTargetableFloat3Ref; +typedef daeTArray domTargetableFloat3_Array; + +class domFx_surface_format_hint_common; + +typedef daeSmartRef domFx_surface_format_hint_commonRef; +typedef daeTArray domFx_surface_format_hint_common_Array; + +class domFx_surface_init_planar_common; + +typedef daeSmartRef domFx_surface_init_planar_commonRef; +typedef daeTArray domFx_surface_init_planar_common_Array; + +class domFx_surface_init_volume_common; + +typedef daeSmartRef domFx_surface_init_volume_commonRef; +typedef daeTArray domFx_surface_init_volume_common_Array; + +class domFx_surface_init_cube_common; + +typedef daeSmartRef domFx_surface_init_cube_commonRef; +typedef daeTArray domFx_surface_init_cube_common_Array; + +class domFx_surface_init_from_common; + +typedef daeSmartRef domFx_surface_init_from_commonRef; +typedef daeTArray domFx_surface_init_from_common_Array; + +class domFx_surface_common; + +typedef daeSmartRef domFx_surface_commonRef; +typedef daeTArray domFx_surface_common_Array; + +class domFx_sampler1D_common; + +typedef daeSmartRef domFx_sampler1D_commonRef; +typedef daeTArray domFx_sampler1D_common_Array; + +class domFx_sampler2D_common; + +typedef daeSmartRef domFx_sampler2D_commonRef; +typedef daeTArray domFx_sampler2D_common_Array; + +class domFx_sampler3D_common; + +typedef daeSmartRef domFx_sampler3D_commonRef; +typedef daeTArray domFx_sampler3D_common_Array; + +class domFx_samplerCUBE_common; + +typedef daeSmartRef domFx_samplerCUBE_commonRef; +typedef daeTArray domFx_samplerCUBE_common_Array; + +class domFx_samplerRECT_common; + +typedef daeSmartRef domFx_samplerRECT_commonRef; +typedef daeTArray domFx_samplerRECT_common_Array; + +class domFx_samplerDEPTH_common; + +typedef daeSmartRef domFx_samplerDEPTH_commonRef; +typedef daeTArray domFx_samplerDEPTH_common_Array; + +class domFx_colortarget_common; + +typedef daeSmartRef domFx_colortarget_commonRef; +typedef daeTArray domFx_colortarget_common_Array; + +class domFx_depthtarget_common; + +typedef daeSmartRef domFx_depthtarget_commonRef; +typedef daeTArray domFx_depthtarget_common_Array; + +class domFx_stenciltarget_common; + +typedef daeSmartRef domFx_stenciltarget_commonRef; +typedef daeTArray domFx_stenciltarget_common_Array; + +class domFx_clearcolor_common; + +typedef daeSmartRef domFx_clearcolor_commonRef; +typedef daeTArray domFx_clearcolor_common_Array; + +class domFx_cleardepth_common; + +typedef daeSmartRef domFx_cleardepth_commonRef; +typedef daeTArray domFx_cleardepth_common_Array; + +class domFx_clearstencil_common; + +typedef daeSmartRef domFx_clearstencil_commonRef; +typedef daeTArray domFx_clearstencil_common_Array; + +class domFx_annotate_common; + +typedef daeSmartRef domFx_annotate_commonRef; +typedef daeTArray domFx_annotate_common_Array; + +class domFx_include_common; + +typedef daeSmartRef domFx_include_commonRef; +typedef daeTArray domFx_include_common_Array; + +class domFx_newparam_common; + +typedef daeSmartRef domFx_newparam_commonRef; +typedef daeTArray domFx_newparam_common_Array; + +class domFx_code_profile; + +typedef daeSmartRef domFx_code_profileRef; +typedef daeTArray domFx_code_profile_Array; + +class domGl_sampler1D; + +typedef daeSmartRef domGl_sampler1DRef; +typedef daeTArray domGl_sampler1D_Array; + +class domGl_sampler2D; + +typedef daeSmartRef domGl_sampler2DRef; +typedef daeTArray domGl_sampler2D_Array; + +class domGl_sampler3D; + +typedef daeSmartRef domGl_sampler3DRef; +typedef daeTArray domGl_sampler3D_Array; + +class domGl_samplerCUBE; + +typedef daeSmartRef domGl_samplerCUBERef; +typedef daeTArray domGl_samplerCUBE_Array; + +class domGl_samplerRECT; + +typedef daeSmartRef domGl_samplerRECTRef; +typedef daeTArray domGl_samplerRECT_Array; + +class domGl_samplerDEPTH; + +typedef daeSmartRef domGl_samplerDEPTHRef; +typedef daeTArray domGl_samplerDEPTH_Array; + +class domGlsl_newarray_type; + +typedef daeSmartRef domGlsl_newarray_typeRef; +typedef daeTArray domGlsl_newarray_type_Array; + +class domGlsl_setarray_type; + +typedef daeSmartRef domGlsl_setarray_typeRef; +typedef daeTArray domGlsl_setarray_type_Array; + +class domGlsl_surface_type; + +typedef daeSmartRef domGlsl_surface_typeRef; +typedef daeTArray domGlsl_surface_type_Array; + +class domGlsl_newparam; + +typedef daeSmartRef domGlsl_newparamRef; +typedef daeTArray domGlsl_newparam_Array; + +class domGlsl_setparam_simple; + +typedef daeSmartRef domGlsl_setparam_simpleRef; +typedef daeTArray domGlsl_setparam_simple_Array; + +class domGlsl_setparam; + +typedef daeSmartRef domGlsl_setparamRef; +typedef daeTArray domGlsl_setparam_Array; + +class domCommon_float_or_param_type; + +typedef daeSmartRef domCommon_float_or_param_typeRef; +typedef daeTArray domCommon_float_or_param_type_Array; + +class domCommon_color_or_texture_type; + +typedef daeSmartRef domCommon_color_or_texture_typeRef; +typedef daeTArray domCommon_color_or_texture_type_Array; + +class domCommon_transparent_type; + +typedef daeSmartRef domCommon_transparent_typeRef; +typedef daeTArray domCommon_transparent_type_Array; + +class domCommon_newparam_type; + +typedef daeSmartRef domCommon_newparam_typeRef; +typedef daeTArray domCommon_newparam_type_Array; + +class domCg_sampler1D; + +typedef daeSmartRef domCg_sampler1DRef; +typedef daeTArray domCg_sampler1D_Array; + +class domCg_sampler2D; + +typedef daeSmartRef domCg_sampler2DRef; +typedef daeTArray domCg_sampler2D_Array; + +class domCg_sampler3D; + +typedef daeSmartRef domCg_sampler3DRef; +typedef daeTArray domCg_sampler3D_Array; + +class domCg_samplerCUBE; + +typedef daeSmartRef domCg_samplerCUBERef; +typedef daeTArray domCg_samplerCUBE_Array; + +class domCg_samplerRECT; + +typedef daeSmartRef domCg_samplerRECTRef; +typedef daeTArray domCg_samplerRECT_Array; + +class domCg_samplerDEPTH; + +typedef daeSmartRef domCg_samplerDEPTHRef; +typedef daeTArray domCg_samplerDEPTH_Array; + +class domCg_connect_param; + +typedef daeSmartRef domCg_connect_paramRef; +typedef daeTArray domCg_connect_param_Array; + +class domCg_newarray_type; + +typedef daeSmartRef domCg_newarray_typeRef; +typedef daeTArray domCg_newarray_type_Array; + +class domCg_setarray_type; + +typedef daeSmartRef domCg_setarray_typeRef; +typedef daeTArray domCg_setarray_type_Array; + +class domCg_setuser_type; + +typedef daeSmartRef domCg_setuser_typeRef; +typedef daeTArray domCg_setuser_type_Array; + +class domCg_surface_type; + +typedef daeSmartRef domCg_surface_typeRef; +typedef daeTArray domCg_surface_type_Array; + +class domCg_newparam; + +typedef daeSmartRef domCg_newparamRef; +typedef daeTArray domCg_newparam_Array; + +class domCg_setparam_simple; + +typedef daeSmartRef domCg_setparam_simpleRef; +typedef daeTArray domCg_setparam_simple_Array; + +class domCg_setparam; + +typedef daeSmartRef domCg_setparamRef; +typedef daeTArray domCg_setparam_Array; + +class domGles_texture_constant_type; + +typedef daeSmartRef domGles_texture_constant_typeRef; +typedef daeTArray domGles_texture_constant_type_Array; + +class domGles_texenv_command_type; + +typedef daeSmartRef domGles_texenv_command_typeRef; +typedef daeTArray domGles_texenv_command_type_Array; + +class domGles_texcombiner_argumentRGB_type; + +typedef daeSmartRef domGles_texcombiner_argumentRGB_typeRef; +typedef daeTArray domGles_texcombiner_argumentRGB_type_Array; + +class domGles_texcombiner_argumentAlpha_type; + +typedef daeSmartRef domGles_texcombiner_argumentAlpha_typeRef; +typedef daeTArray domGles_texcombiner_argumentAlpha_type_Array; + +class domGles_texcombiner_commandRGB_type; + +typedef daeSmartRef domGles_texcombiner_commandRGB_typeRef; +typedef daeTArray domGles_texcombiner_commandRGB_type_Array; + +class domGles_texcombiner_commandAlpha_type; + +typedef daeSmartRef domGles_texcombiner_commandAlpha_typeRef; +typedef daeTArray domGles_texcombiner_commandAlpha_type_Array; + +class domGles_texcombiner_command_type; + +typedef daeSmartRef domGles_texcombiner_command_typeRef; +typedef daeTArray domGles_texcombiner_command_type_Array; + +class domGles_texture_pipeline; + +typedef daeSmartRef domGles_texture_pipelineRef; +typedef daeTArray domGles_texture_pipeline_Array; + +class domGles_texture_unit; + +typedef daeSmartRef domGles_texture_unitRef; +typedef daeTArray domGles_texture_unit_Array; + +class domGles_sampler_state; + +typedef daeSmartRef domGles_sampler_stateRef; +typedef daeTArray domGles_sampler_state_Array; + +class domGles_newparam; + +typedef daeSmartRef domGles_newparamRef; +typedef daeTArray domGles_newparam_Array; + +class domFx_surface_init_common; + +typedef daeSmartRef domFx_surface_init_commonRef; +typedef daeTArray domFx_surface_init_common_Array; + +class domFx_annotate_type_common; + +typedef daeSmartRef domFx_annotate_type_commonRef; +typedef daeTArray domFx_annotate_type_common_Array; + +class domFx_basic_type_common; + +typedef daeSmartRef domFx_basic_type_commonRef; +typedef daeTArray domFx_basic_type_common_Array; + +class domGl_pipeline_settings; + +typedef daeSmartRef domGl_pipeline_settingsRef; +typedef daeTArray domGl_pipeline_settings_Array; + +class domGlsl_param_type; + +typedef daeSmartRef domGlsl_param_typeRef; +typedef daeTArray domGlsl_param_type_Array; + +class domCg_param_type; + +typedef daeSmartRef domCg_param_typeRef; +typedef daeTArray domCg_param_type_Array; + +class domGles_pipeline_settings; + +typedef daeSmartRef domGles_pipeline_settingsRef; +typedef daeTArray domGles_pipeline_settings_Array; + +class domGles_basic_type_common; + +typedef daeSmartRef domGles_basic_type_commonRef; +typedef daeTArray domGles_basic_type_common_Array; + +class domCOLLADA; + +typedef daeSmartRef domCOLLADARef; +typedef daeTArray domCOLLADA_Array; + +class domIDREF_array; + +typedef daeSmartRef domIDREF_arrayRef; +typedef daeTArray domIDREF_array_Array; + +class domName_array; + +typedef daeSmartRef domName_arrayRef; +typedef daeTArray domName_array_Array; + +class domBool_array; + +typedef daeSmartRef domBool_arrayRef; +typedef daeTArray domBool_array_Array; + +class domFloat_array; + +typedef daeSmartRef domFloat_arrayRef; +typedef daeTArray domFloat_array_Array; + +class domInt_array; + +typedef daeSmartRef domInt_arrayRef; +typedef daeTArray domInt_array_Array; + +class domAccessor; + +typedef daeSmartRef domAccessorRef; +typedef daeTArray domAccessor_Array; + +class domParam; + +typedef daeSmartRef domParamRef; +typedef daeTArray domParam_Array; + +class domSource; + +typedef daeSmartRef domSourceRef; +typedef daeTArray domSource_Array; + +class domGeometry; + +typedef daeSmartRef domGeometryRef; +typedef daeTArray domGeometry_Array; + +class domMesh; + +typedef daeSmartRef domMeshRef; +typedef daeTArray domMesh_Array; + +class domSpline; + +typedef daeSmartRef domSplineRef; +typedef daeTArray domSpline_Array; + +class domP; + +typedef daeSmartRef domPRef; +typedef daeTArray domP_Array; + +class domLines; + +typedef daeSmartRef domLinesRef; +typedef daeTArray domLines_Array; + +class domLinestrips; + +typedef daeSmartRef domLinestripsRef; +typedef daeTArray domLinestrips_Array; + +class domPolygons; + +typedef daeSmartRef domPolygonsRef; +typedef daeTArray domPolygons_Array; + +class domPolylist; + +typedef daeSmartRef domPolylistRef; +typedef daeTArray domPolylist_Array; + +class domTriangles; + +typedef daeSmartRef domTrianglesRef; +typedef daeTArray domTriangles_Array; + +class domTrifans; + +typedef daeSmartRef domTrifansRef; +typedef daeTArray domTrifans_Array; + +class domTristrips; + +typedef daeSmartRef domTristripsRef; +typedef daeTArray domTristrips_Array; + +class domVertices; + +typedef daeSmartRef domVerticesRef; +typedef daeTArray domVertices_Array; + +class domLookat; + +typedef daeSmartRef domLookatRef; +typedef daeTArray domLookat_Array; + +class domMatrix; + +typedef daeSmartRef domMatrixRef; +typedef daeTArray domMatrix_Array; + +class domRotate; + +typedef daeSmartRef domRotateRef; +typedef daeTArray domRotate_Array; + +class domScale; + +typedef daeSmartRef domScaleRef; +typedef daeTArray domScale_Array; + +class domSkew; + +typedef daeSmartRef domSkewRef; +typedef daeTArray domSkew_Array; + +class domTranslate; + +typedef daeSmartRef domTranslateRef; +typedef daeTArray domTranslate_Array; + +class domImage; + +typedef daeSmartRef domImageRef; +typedef daeTArray domImage_Array; + +class domLight; + +typedef daeSmartRef domLightRef; +typedef daeTArray domLight_Array; + +class domMaterial; + +typedef daeSmartRef domMaterialRef; +typedef daeTArray domMaterial_Array; + +class domCamera; + +typedef daeSmartRef domCameraRef; +typedef daeTArray domCamera_Array; + +class domAnimation; + +typedef daeSmartRef domAnimationRef; +typedef daeTArray domAnimation_Array; + +class domAnimation_clip; + +typedef daeSmartRef domAnimation_clipRef; +typedef daeTArray domAnimation_clip_Array; + +class domChannel; + +typedef daeSmartRef domChannelRef; +typedef daeTArray domChannel_Array; + +class domSampler; + +typedef daeSmartRef domSamplerRef; +typedef daeTArray domSampler_Array; + +class domController; + +typedef daeSmartRef domControllerRef; +typedef daeTArray domController_Array; + +class domSkin; + +typedef daeSmartRef domSkinRef; +typedef daeTArray domSkin_Array; + +class domMorph; + +typedef daeSmartRef domMorphRef; +typedef daeTArray domMorph_Array; + +class domAsset; + +typedef daeSmartRef domAssetRef; +typedef daeTArray domAsset_Array; + +class domExtra; + +typedef daeSmartRef domExtraRef; +typedef daeTArray domExtra_Array; + +class domTechnique; + +typedef daeSmartRef domTechniqueRef; +typedef daeTArray domTechnique_Array; + +class domNode; + +typedef daeSmartRef domNodeRef; +typedef daeTArray domNode_Array; + +class domVisual_scene; + +typedef daeSmartRef domVisual_sceneRef; +typedef daeTArray domVisual_scene_Array; + +class domBind_material; + +typedef daeSmartRef domBind_materialRef; +typedef daeTArray domBind_material_Array; + +class domInstance_camera; + +typedef daeSmartRef domInstance_cameraRef; +typedef daeTArray domInstance_camera_Array; + +class domInstance_controller; + +typedef daeSmartRef domInstance_controllerRef; +typedef daeTArray domInstance_controller_Array; + +class domInstance_effect; + +typedef daeSmartRef domInstance_effectRef; +typedef daeTArray domInstance_effect_Array; + +class domInstance_force_field; + +typedef daeSmartRef domInstance_force_fieldRef; +typedef daeTArray domInstance_force_field_Array; + +class domInstance_geometry; + +typedef daeSmartRef domInstance_geometryRef; +typedef daeTArray domInstance_geometry_Array; + +class domInstance_light; + +typedef daeSmartRef domInstance_lightRef; +typedef daeTArray domInstance_light_Array; + +class domInstance_material; + +typedef daeSmartRef domInstance_materialRef; +typedef daeTArray domInstance_material_Array; + +class domInstance_node; + +typedef daeSmartRef domInstance_nodeRef; +typedef daeTArray domInstance_node_Array; + +class domInstance_physics_material; + +typedef daeSmartRef domInstance_physics_materialRef; +typedef daeTArray domInstance_physics_material_Array; + +class domInstance_physics_model; + +typedef daeSmartRef domInstance_physics_modelRef; +typedef daeTArray domInstance_physics_model_Array; + +class domInstance_rigid_body; + +typedef daeSmartRef domInstance_rigid_bodyRef; +typedef daeTArray domInstance_rigid_body_Array; + +class domInstance_rigid_constraint; + +typedef daeSmartRef domInstance_rigid_constraintRef; +typedef daeTArray domInstance_rigid_constraint_Array; + +class domLibrary_animations; + +typedef daeSmartRef domLibrary_animationsRef; +typedef daeTArray domLibrary_animations_Array; + +class domLibrary_animation_clips; + +typedef daeSmartRef domLibrary_animation_clipsRef; +typedef daeTArray domLibrary_animation_clips_Array; + +class domLibrary_cameras; + +typedef daeSmartRef domLibrary_camerasRef; +typedef daeTArray domLibrary_cameras_Array; + +class domLibrary_controllers; + +typedef daeSmartRef domLibrary_controllersRef; +typedef daeTArray domLibrary_controllers_Array; + +class domLibrary_geometries; + +typedef daeSmartRef domLibrary_geometriesRef; +typedef daeTArray domLibrary_geometries_Array; + +class domLibrary_effects; + +typedef daeSmartRef domLibrary_effectsRef; +typedef daeTArray domLibrary_effects_Array; + +class domLibrary_force_fields; + +typedef daeSmartRef domLibrary_force_fieldsRef; +typedef daeTArray domLibrary_force_fields_Array; + +class domLibrary_images; + +typedef daeSmartRef domLibrary_imagesRef; +typedef daeTArray domLibrary_images_Array; + +class domLibrary_lights; + +typedef daeSmartRef domLibrary_lightsRef; +typedef daeTArray domLibrary_lights_Array; + +class domLibrary_materials; + +typedef daeSmartRef domLibrary_materialsRef; +typedef daeTArray domLibrary_materials_Array; + +class domLibrary_nodes; + +typedef daeSmartRef domLibrary_nodesRef; +typedef daeTArray domLibrary_nodes_Array; + +class domLibrary_physics_materials; + +typedef daeSmartRef domLibrary_physics_materialsRef; +typedef daeTArray domLibrary_physics_materials_Array; + +class domLibrary_physics_models; + +typedef daeSmartRef domLibrary_physics_modelsRef; +typedef daeTArray domLibrary_physics_models_Array; + +class domLibrary_physics_scenes; + +typedef daeSmartRef domLibrary_physics_scenesRef; +typedef daeTArray domLibrary_physics_scenes_Array; + +class domLibrary_visual_scenes; + +typedef daeSmartRef domLibrary_visual_scenesRef; +typedef daeTArray domLibrary_visual_scenes_Array; + +class domFx_profile_abstract; + +typedef daeSmartRef domFx_profile_abstractRef; +typedef daeTArray domFx_profile_abstract_Array; + +class domEffect; + +typedef daeSmartRef domEffectRef; +typedef daeTArray domEffect_Array; + +class domGl_hook_abstract; + +typedef daeSmartRef domGl_hook_abstractRef; +typedef daeTArray domGl_hook_abstract_Array; + +class domProfile_GLSL; + +typedef daeSmartRef domProfile_GLSLRef; +typedef daeTArray domProfile_GLSL_Array; + +class domProfile_COMMON; + +typedef daeSmartRef domProfile_COMMONRef; +typedef daeTArray domProfile_COMMON_Array; + +class domProfile_CG; + +typedef daeSmartRef domProfile_CGRef; +typedef daeTArray domProfile_CG_Array; + +class domProfile_GLES; + +typedef daeSmartRef domProfile_GLESRef; +typedef daeTArray domProfile_GLES_Array; + +class domBox; + +typedef daeSmartRef domBoxRef; +typedef daeTArray domBox_Array; + +class domPlane; + +typedef daeSmartRef domPlaneRef; +typedef daeTArray domPlane_Array; + +class domSphere; + +typedef daeSmartRef domSphereRef; +typedef daeTArray domSphere_Array; + +class domEllipsoid; + +typedef daeSmartRef domEllipsoidRef; +typedef daeTArray domEllipsoid_Array; + +class domCylinder; + +typedef daeSmartRef domCylinderRef; +typedef daeTArray domCylinder_Array; + +class domTapered_cylinder; + +typedef daeSmartRef domTapered_cylinderRef; +typedef daeTArray domTapered_cylinder_Array; + +class domCapsule; + +typedef daeSmartRef domCapsuleRef; +typedef daeTArray domCapsule_Array; + +class domTapered_capsule; + +typedef daeSmartRef domTapered_capsuleRef; +typedef daeTArray domTapered_capsule_Array; + +class domConvex_mesh; + +typedef daeSmartRef domConvex_meshRef; +typedef daeTArray domConvex_mesh_Array; + +class domForce_field; + +typedef daeSmartRef domForce_fieldRef; +typedef daeTArray domForce_field_Array; + +class domPhysics_material; + +typedef daeSmartRef domPhysics_materialRef; +typedef daeTArray domPhysics_material_Array; + +class domPhysics_scene; + +typedef daeSmartRef domPhysics_sceneRef; +typedef daeTArray domPhysics_scene_Array; + +class domRigid_body; + +typedef daeSmartRef domRigid_bodyRef; +typedef daeTArray domRigid_body_Array; + +class domRigid_constraint; + +typedef daeSmartRef domRigid_constraintRef; +typedef daeTArray domRigid_constraint_Array; + +class domPhysics_model; + +typedef daeSmartRef domPhysics_modelRef; +typedef daeTArray domPhysics_model_Array; + + +#endif //__DOM_ELEMENTS_H__ + diff --git a/include/1.4/dom/domEllipsoid.h b/include/1.4/dom/domEllipsoid.h new file mode 100644 index 0000000..f5577a7 --- /dev/null +++ b/include/1.4/dom/domEllipsoid.h @@ -0,0 +1,133 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domEllipsoid_h__ +#define __domEllipsoid_h__ + +#include +#include +#include + +class DAE; + +class domEllipsoid : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ELLIPSOID; } + static daeInt ID() { return 773; } + virtual daeInt typeID() const { return ID(); } +public: + class domSize; + + typedef daeSmartRef domSizeRef; + typedef daeTArray domSize_Array; + + class domSize : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SIZE; } + static daeInt ID() { return 774; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat3 value of the text data of this element. + */ + domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat3 reference of the _value array. + */ + domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat3 reference of the _value array. + */ + const domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domSize(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSize() {} + /** + * Overloaded assignment operator + */ + virtual domSize &operator=( const domSize &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Element + domSizeRef elemSize; + +public: //Accessors and Mutators + /** + * Gets the size element. + * @return a daeSmartRef to the size element. + */ + const domSizeRef getSize() const { return elemSize; } +protected: + /** + * Constructor + */ + domEllipsoid(DAE& dae) : daeElement(dae), elemSize() {} + /** + * Destructor + */ + virtual ~domEllipsoid() {} + /** + * Overloaded assignment operator + */ + virtual domEllipsoid &operator=( const domEllipsoid &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domExtra.h b/include/1.4/dom/domExtra.h new file mode 100644 index 0000000..a50306b --- /dev/null +++ b/include/1.4/dom/domExtra.h @@ -0,0 +1,143 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domExtra_h__ +#define __domExtra_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The extra element declares additional information regarding its parent + * element. + */ +class domExtra : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::EXTRA; } + static daeInt ID() { return 679; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The type attribute indicates the type of the value data. This text string + * must be understood by the application. Optional attribute. + */ + xsNMTOKEN attrType; + +protected: // Elements +/** + * The extra element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * This element must contain at least one non-common profile technique. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the type attribute. + * @return Returns a xsNMTOKEN of the type attribute. + */ + xsNMTOKEN getType() const { return attrType; } + /** + * Sets the type attribute. + * @param atType The new value for the type attribute. + */ + void setType( xsNMTOKEN atType ) { *(daeStringRef*)&attrType = atType; _validAttributeArray[2] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } +protected: + /** + * Constructor + */ + domExtra(DAE& dae) : daeElement(dae), attrId(), attrName(), attrType(), elemAsset(), elemTechnique_array() {} + /** + * Destructor + */ + virtual ~domExtra() {} + /** + * Overloaded assignment operator + */ + virtual domExtra &operator=( const domExtra &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFloat_array.h b/include/1.4/dom/domFloat_array.h new file mode 100644 index 0000000..4e5e169 --- /dev/null +++ b/include/1.4/dom/domFloat_array.h @@ -0,0 +1,171 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFloat_array_h__ +#define __domFloat_array_h__ + +#include +#include +#include + +class DAE; + +/** + * The float_array element declares the storage for a homogenous array of + * floating point values. + */ +class domFloat_array : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT_ARRAY; } + static daeInt ID() { return 607; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of values in the array. Required + * attribute. + */ + domUint attrCount; +/** + * The digits attribute indicates the number of significant decimal digits + * of the float values that can be contained in the array. The default value + * is 6. Optional attribute. + */ + xsShort attrDigits; +/** + * The magnitude attribute indicates the largest exponent of the float values + * that can be contained in the array. The default value is 38. Optional + * attribute. + */ + xsShort attrMagnitude; + +protected: // Value + /** + * The domListOfFloats value of the text data of this element. + */ + domListOfFloats _value; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[2] = true; } + + /** + * Gets the digits attribute. + * @return Returns a xsShort of the digits attribute. + */ + xsShort getDigits() const { return attrDigits; } + /** + * Sets the digits attribute. + * @param atDigits The new value for the digits attribute. + */ + void setDigits( xsShort atDigits ) { attrDigits = atDigits; _validAttributeArray[3] = true; } + + /** + * Gets the magnitude attribute. + * @return Returns a xsShort of the magnitude attribute. + */ + xsShort getMagnitude() const { return attrMagnitude; } + /** + * Sets the magnitude attribute. + * @param atMagnitude The new value for the magnitude attribute. + */ + void setMagnitude( xsShort atMagnitude ) { attrMagnitude = atMagnitude; _validAttributeArray[4] = true; } + + /** + * Gets the _value array. + * @return Returns a domListOfFloats reference of the _value array. + */ + domListOfFloats &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfFloats reference of the _value array. + */ + const domListOfFloats &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfFloats &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domFloat_array(DAE& dae) : daeElement(dae), attrId(), attrName(), attrCount(), attrDigits(), attrMagnitude(), _value() {} + /** + * Destructor + */ + virtual ~domFloat_array() {} + /** + * Overloaded assignment operator + */ + virtual domFloat_array &operator=( const domFloat_array &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domForce_field.h b/include/1.4/dom/domForce_field.h new file mode 100644 index 0000000..64c2065 --- /dev/null +++ b/include/1.4/dom/domForce_field.h @@ -0,0 +1,142 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domForce_field_h__ +#define __domForce_field_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * A general container for force-fields. At the moment, it only has techniques + * and extra elements. + */ +class domForce_field : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FORCE_FIELD; } + static daeInt ID() { return 790; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The force_field element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * This element must contain at least one non-common profile technique. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domForce_field(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domForce_field() {} + /** + * Overloaded assignment operator + */ + virtual domForce_field &operator=( const domForce_field &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_annotate_common.h b/include/1.4/dom/domFx_annotate_common.h new file mode 100644 index 0000000..f35b21c --- /dev/null +++ b/include/1.4/dom/domFx_annotate_common.h @@ -0,0 +1,115 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_annotate_common_h__ +#define __domFx_annotate_common_h__ + +#include +#include +#include + +#include +class DAE; + +class domFx_annotate_common_complexType +{ +protected: // Attribute + xsNCName attrName; + +protected: // Element + domFx_annotate_type_commonRef elemFx_annotate_type_common; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName;} + + /** + * Gets the fx_annotate_type_common element. + * @return a daeSmartRef to the fx_annotate_type_common element. + */ + const domFx_annotate_type_commonRef getFx_annotate_type_common() const { return elemFx_annotate_type_common; } +protected: + /** + * Constructor + */ + domFx_annotate_common_complexType(DAE& dae, daeElement* elt) : attrName(), elemFx_annotate_type_common() {} + /** + * Destructor + */ + virtual ~domFx_annotate_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_annotate_common_complexType &operator=( const domFx_annotate_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_annotate_common_complexType. + */ +class domFx_annotate_common : public daeElement, public domFx_annotate_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_ANNOTATE_COMMON; } + static daeInt ID() { return 91; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domFx_annotate_common(DAE& dae) : daeElement(dae), domFx_annotate_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_annotate_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_annotate_common &operator=( const domFx_annotate_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_annotate_type_common.h b/include/1.4/dom/domFx_annotate_type_common.h new file mode 100644 index 0000000..9f9f1c9 --- /dev/null +++ b/include/1.4/dom/domFx_annotate_type_common.h @@ -0,0 +1,1176 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_annotate_type_common_h__ +#define __domFx_annotate_type_common_h__ + +#include +#include +#include + +class DAE; + +/** + * A group that specifies the allowable types for an annotation. + */ +class domFx_annotate_type_common : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_ANNOTATE_TYPE_COMMON; } + static daeInt ID() { return 171; } + virtual daeInt typeID() const { return ID(); } +public: + class domBool; + + typedef daeSmartRef domBoolRef; + typedef daeTArray domBool_Array; + + class domBool : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL; } + static daeInt ID() { return 172; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool value of the text data of this element. + */ + ::domBool _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domBool of the value. + */ + ::domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool() {} + /** + * Overloaded assignment operator + */ + virtual domBool &operator=( const domBool &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2; + + typedef daeSmartRef domBool2Ref; + typedef daeTArray domBool2_Array; + + class domBool2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2; } + static daeInt ID() { return 173; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool2 value of the text data of this element. + */ + ::domBool2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool2 reference of the _value array. + */ + ::domBool2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool2 reference of the _value array. + */ + const ::domBool2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2() {} + /** + * Overloaded assignment operator + */ + virtual domBool2 &operator=( const domBool2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3; + + typedef daeSmartRef domBool3Ref; + typedef daeTArray domBool3_Array; + + class domBool3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3; } + static daeInt ID() { return 174; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool3 value of the text data of this element. + */ + ::domBool3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool3 reference of the _value array. + */ + ::domBool3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool3 reference of the _value array. + */ + const ::domBool3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3() {} + /** + * Overloaded assignment operator + */ + virtual domBool3 &operator=( const domBool3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4; + + typedef daeSmartRef domBool4Ref; + typedef daeTArray domBool4_Array; + + class domBool4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4; } + static daeInt ID() { return 175; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool4 value of the text data of this element. + */ + ::domBool4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool4 reference of the _value array. + */ + ::domBool4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool4 reference of the _value array. + */ + const ::domBool4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4() {} + /** + * Overloaded assignment operator + */ + virtual domBool4 &operator=( const domBool4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt; + + typedef daeSmartRef domIntRef; + typedef daeTArray domInt_Array; + + class domInt : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT; } + static daeInt ID() { return 176; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt value of the text data of this element. + */ + ::domInt _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domInt of the value. + */ + ::domInt getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domInt val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt() {} + /** + * Overloaded assignment operator + */ + virtual domInt &operator=( const domInt &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2; + + typedef daeSmartRef domInt2Ref; + typedef daeTArray domInt2_Array; + + class domInt2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2; } + static daeInt ID() { return 177; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt2 value of the text data of this element. + */ + ::domInt2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt2 reference of the _value array. + */ + ::domInt2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt2 reference of the _value array. + */ + const ::domInt2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2() {} + /** + * Overloaded assignment operator + */ + virtual domInt2 &operator=( const domInt2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3; + + typedef daeSmartRef domInt3Ref; + typedef daeTArray domInt3_Array; + + class domInt3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3; } + static daeInt ID() { return 178; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt3 value of the text data of this element. + */ + ::domInt3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt3 reference of the _value array. + */ + ::domInt3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt3 reference of the _value array. + */ + const ::domInt3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3() {} + /** + * Overloaded assignment operator + */ + virtual domInt3 &operator=( const domInt3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4; + + typedef daeSmartRef domInt4Ref; + typedef daeTArray domInt4_Array; + + class domInt4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4; } + static daeInt ID() { return 179; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt4 value of the text data of this element. + */ + ::domInt4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt4 reference of the _value array. + */ + ::domInt4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt4 reference of the _value array. + */ + const ::domInt4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4() {} + /** + * Overloaded assignment operator + */ + virtual domInt4 &operator=( const domInt4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat; + + typedef daeSmartRef domFloatRef; + typedef daeTArray domFloat_Array; + + class domFloat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; } + static daeInt ID() { return 180; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat value of the text data of this element. + */ + ::domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domFloat of the value. + */ + ::domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat() {} + /** + * Overloaded assignment operator + */ + virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2; + + typedef daeSmartRef domFloat2Ref; + typedef daeTArray domFloat2_Array; + + class domFloat2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; } + static daeInt ID() { return 181; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3; + + typedef daeSmartRef domFloat3Ref; + typedef daeTArray domFloat3_Array; + + class domFloat3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; } + static daeInt ID() { return 182; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4; + + typedef daeSmartRef domFloat4Ref; + typedef daeTArray domFloat4_Array; + + class domFloat4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; } + static daeInt ID() { return 183; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x2; + + typedef daeSmartRef domFloat2x2Ref; + typedef daeTArray domFloat2x2_Array; + + class domFloat2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X2; } + static daeInt ID() { return 184; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2x2 value of the text data of this element. + */ + ::domFloat2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2x2 reference of the _value array. + */ + ::domFloat2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2x2 reference of the _value array. + */ + const ::domFloat2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x2 &operator=( const domFloat2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x3; + + typedef daeSmartRef domFloat3x3Ref; + typedef daeTArray domFloat3x3_Array; + + class domFloat3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X3; } + static daeInt ID() { return 185; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3x3 value of the text data of this element. + */ + ::domFloat3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3x3 reference of the _value array. + */ + ::domFloat3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3x3 reference of the _value array. + */ + const ::domFloat3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x3 &operator=( const domFloat3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x4; + + typedef daeSmartRef domFloat4x4Ref; + typedef daeTArray domFloat4x4_Array; + + class domFloat4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X4; } + static daeInt ID() { return 186; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4x4 value of the text data of this element. + */ + ::domFloat4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4x4 reference of the _value array. + */ + ::domFloat4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4x4 reference of the _value array. + */ + const ::domFloat4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x4 &operator=( const domFloat4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domString; + + typedef daeSmartRef domStringRef; + typedef daeTArray domString_Array; + + class domString : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STRING; } + static daeInt ID() { return 187; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::xsString value of the text data of this element. + */ + ::xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a ::xsString of the value. + */ + ::xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domString(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domString() {} + /** + * Overloaded assignment operator + */ + virtual domString &operator=( const domString &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domBoolRef elemBool; + domBool2Ref elemBool2; + domBool3Ref elemBool3; + domBool4Ref elemBool4; + domIntRef elemInt; + domInt2Ref elemInt2; + domInt3Ref elemInt3; + domInt4Ref elemInt4; + domFloatRef elemFloat; + domFloat2Ref elemFloat2; + domFloat3Ref elemFloat3; + domFloat4Ref elemFloat4; + domFloat2x2Ref elemFloat2x2; + domFloat3x3Ref elemFloat3x3; + domFloat4x4Ref elemFloat4x4; + domStringRef elemString; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the bool element. + * @return a daeSmartRef to the bool element. + */ + const domBoolRef getBool() const { return elemBool; } + /** + * Gets the bool2 element. + * @return a daeSmartRef to the bool2 element. + */ + const domBool2Ref getBool2() const { return elemBool2; } + /** + * Gets the bool3 element. + * @return a daeSmartRef to the bool3 element. + */ + const domBool3Ref getBool3() const { return elemBool3; } + /** + * Gets the bool4 element. + * @return a daeSmartRef to the bool4 element. + */ + const domBool4Ref getBool4() const { return elemBool4; } + /** + * Gets the int element. + * @return a daeSmartRef to the int element. + */ + const domIntRef getInt() const { return elemInt; } + /** + * Gets the int2 element. + * @return a daeSmartRef to the int2 element. + */ + const domInt2Ref getInt2() const { return elemInt2; } + /** + * Gets the int3 element. + * @return a daeSmartRef to the int3 element. + */ + const domInt3Ref getInt3() const { return elemInt3; } + /** + * Gets the int4 element. + * @return a daeSmartRef to the int4 element. + */ + const domInt4Ref getInt4() const { return elemInt4; } + /** + * Gets the float element. + * @return a daeSmartRef to the float element. + */ + const domFloatRef getFloat() const { return elemFloat; } + /** + * Gets the float2 element. + * @return a daeSmartRef to the float2 element. + */ + const domFloat2Ref getFloat2() const { return elemFloat2; } + /** + * Gets the float3 element. + * @return a daeSmartRef to the float3 element. + */ + const domFloat3Ref getFloat3() const { return elemFloat3; } + /** + * Gets the float4 element. + * @return a daeSmartRef to the float4 element. + */ + const domFloat4Ref getFloat4() const { return elemFloat4; } + /** + * Gets the float2x2 element. + * @return a daeSmartRef to the float2x2 element. + */ + const domFloat2x2Ref getFloat2x2() const { return elemFloat2x2; } + /** + * Gets the float3x3 element. + * @return a daeSmartRef to the float3x3 element. + */ + const domFloat3x3Ref getFloat3x3() const { return elemFloat3x3; } + /** + * Gets the float4x4 element. + * @return a daeSmartRef to the float4x4 element. + */ + const domFloat4x4Ref getFloat4x4() const { return elemFloat4x4; } + /** + * Gets the string element. + * @return a daeSmartRef to the string element. + */ + const domStringRef getString() const { return elemString; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domFx_annotate_type_common(DAE& dae) : daeElement(dae), elemBool(), elemBool2(), elemBool3(), elemBool4(), elemInt(), elemInt2(), elemInt3(), elemInt4(), elemFloat(), elemFloat2(), elemFloat3(), elemFloat4(), elemFloat2x2(), elemFloat3x3(), elemFloat4x4(), elemString() {} + /** + * Destructor + */ + virtual ~domFx_annotate_type_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domFx_annotate_type_common &operator=( const domFx_annotate_type_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_basic_type_common.h b/include/1.4/dom/domFx_basic_type_common.h new file mode 100644 index 0000000..7011433 --- /dev/null +++ b/include/1.4/dom/domFx_basic_type_common.h @@ -0,0 +1,2117 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_basic_type_common_h__ +#define __domFx_basic_type_common_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * A group that specifies the allowable types for effect scoped parameters. + */ +class domFx_basic_type_common : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_BASIC_TYPE_COMMON; } + static daeInt ID() { return 188; } + virtual daeInt typeID() const { return ID(); } +public: + class domBool; + + typedef daeSmartRef domBoolRef; + typedef daeTArray domBool_Array; + + class domBool : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL; } + static daeInt ID() { return 189; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool value of the text data of this element. + */ + ::domBool _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domBool of the value. + */ + ::domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool() {} + /** + * Overloaded assignment operator + */ + virtual domBool &operator=( const domBool &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2; + + typedef daeSmartRef domBool2Ref; + typedef daeTArray domBool2_Array; + + class domBool2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2; } + static daeInt ID() { return 190; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool2 value of the text data of this element. + */ + ::domBool2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool2 reference of the _value array. + */ + ::domBool2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool2 reference of the _value array. + */ + const ::domBool2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2() {} + /** + * Overloaded assignment operator + */ + virtual domBool2 &operator=( const domBool2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3; + + typedef daeSmartRef domBool3Ref; + typedef daeTArray domBool3_Array; + + class domBool3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3; } + static daeInt ID() { return 191; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool3 value of the text data of this element. + */ + ::domBool3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool3 reference of the _value array. + */ + ::domBool3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool3 reference of the _value array. + */ + const ::domBool3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3() {} + /** + * Overloaded assignment operator + */ + virtual domBool3 &operator=( const domBool3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4; + + typedef daeSmartRef domBool4Ref; + typedef daeTArray domBool4_Array; + + class domBool4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4; } + static daeInt ID() { return 192; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool4 value of the text data of this element. + */ + ::domBool4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool4 reference of the _value array. + */ + ::domBool4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool4 reference of the _value array. + */ + const ::domBool4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4() {} + /** + * Overloaded assignment operator + */ + virtual domBool4 &operator=( const domBool4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt; + + typedef daeSmartRef domIntRef; + typedef daeTArray domInt_Array; + + class domInt : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT; } + static daeInt ID() { return 193; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt value of the text data of this element. + */ + ::domInt _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domInt of the value. + */ + ::domInt getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domInt val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt() {} + /** + * Overloaded assignment operator + */ + virtual domInt &operator=( const domInt &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2; + + typedef daeSmartRef domInt2Ref; + typedef daeTArray domInt2_Array; + + class domInt2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2; } + static daeInt ID() { return 194; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt2 value of the text data of this element. + */ + ::domInt2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt2 reference of the _value array. + */ + ::domInt2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt2 reference of the _value array. + */ + const ::domInt2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2() {} + /** + * Overloaded assignment operator + */ + virtual domInt2 &operator=( const domInt2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3; + + typedef daeSmartRef domInt3Ref; + typedef daeTArray domInt3_Array; + + class domInt3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3; } + static daeInt ID() { return 195; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt3 value of the text data of this element. + */ + ::domInt3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt3 reference of the _value array. + */ + ::domInt3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt3 reference of the _value array. + */ + const ::domInt3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3() {} + /** + * Overloaded assignment operator + */ + virtual domInt3 &operator=( const domInt3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4; + + typedef daeSmartRef domInt4Ref; + typedef daeTArray domInt4_Array; + + class domInt4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4; } + static daeInt ID() { return 196; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt4 value of the text data of this element. + */ + ::domInt4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt4 reference of the _value array. + */ + ::domInt4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt4 reference of the _value array. + */ + const ::domInt4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4() {} + /** + * Overloaded assignment operator + */ + virtual domInt4 &operator=( const domInt4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat; + + typedef daeSmartRef domFloatRef; + typedef daeTArray domFloat_Array; + + class domFloat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; } + static daeInt ID() { return 197; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat value of the text data of this element. + */ + ::domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domFloat of the value. + */ + ::domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat() {} + /** + * Overloaded assignment operator + */ + virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2; + + typedef daeSmartRef domFloat2Ref; + typedef daeTArray domFloat2_Array; + + class domFloat2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; } + static daeInt ID() { return 198; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3; + + typedef daeSmartRef domFloat3Ref; + typedef daeTArray domFloat3_Array; + + class domFloat3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; } + static daeInt ID() { return 199; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4; + + typedef daeSmartRef domFloat4Ref; + typedef daeTArray domFloat4_Array; + + class domFloat4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; } + static daeInt ID() { return 200; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x1; + + typedef daeSmartRef domFloat1x1Ref; + typedef daeTArray domFloat1x1_Array; + + class domFloat1x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X1; } + static daeInt ID() { return 201; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat value of the text data of this element. + */ + ::domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domFloat of the value. + */ + ::domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x1 &operator=( const domFloat1x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x2; + + typedef daeSmartRef domFloat1x2Ref; + typedef daeTArray domFloat1x2_Array; + + class domFloat1x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X2; } + static daeInt ID() { return 202; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x2 &operator=( const domFloat1x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x3; + + typedef daeSmartRef domFloat1x3Ref; + typedef daeTArray domFloat1x3_Array; + + class domFloat1x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X3; } + static daeInt ID() { return 203; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x3 &operator=( const domFloat1x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x4; + + typedef daeSmartRef domFloat1x4Ref; + typedef daeTArray domFloat1x4_Array; + + class domFloat1x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X4; } + static daeInt ID() { return 204; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x4 &operator=( const domFloat1x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x1; + + typedef daeSmartRef domFloat2x1Ref; + typedef daeTArray domFloat2x1_Array; + + class domFloat2x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X1; } + static daeInt ID() { return 205; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x1 &operator=( const domFloat2x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x2; + + typedef daeSmartRef domFloat2x2Ref; + typedef daeTArray domFloat2x2_Array; + + class domFloat2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X2; } + static daeInt ID() { return 206; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2x2 value of the text data of this element. + */ + ::domFloat2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2x2 reference of the _value array. + */ + ::domFloat2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2x2 reference of the _value array. + */ + const ::domFloat2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x2 &operator=( const domFloat2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x3; + + typedef daeSmartRef domFloat2x3Ref; + typedef daeTArray domFloat2x3_Array; + + class domFloat2x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X3; } + static daeInt ID() { return 207; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2x3 value of the text data of this element. + */ + ::domFloat2x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2x3 reference of the _value array. + */ + ::domFloat2x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2x3 reference of the _value array. + */ + const ::domFloat2x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x3 &operator=( const domFloat2x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x4; + + typedef daeSmartRef domFloat2x4Ref; + typedef daeTArray domFloat2x4_Array; + + class domFloat2x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X4; } + static daeInt ID() { return 208; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2x4 value of the text data of this element. + */ + ::domFloat2x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2x4 reference of the _value array. + */ + ::domFloat2x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2x4 reference of the _value array. + */ + const ::domFloat2x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x4 &operator=( const domFloat2x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x1; + + typedef daeSmartRef domFloat3x1Ref; + typedef daeTArray domFloat3x1_Array; + + class domFloat3x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X1; } + static daeInt ID() { return 209; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x1 &operator=( const domFloat3x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x2; + + typedef daeSmartRef domFloat3x2Ref; + typedef daeTArray domFloat3x2_Array; + + class domFloat3x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X2; } + static daeInt ID() { return 210; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3x2 value of the text data of this element. + */ + ::domFloat3x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3x2 reference of the _value array. + */ + ::domFloat3x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3x2 reference of the _value array. + */ + const ::domFloat3x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x2 &operator=( const domFloat3x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x3; + + typedef daeSmartRef domFloat3x3Ref; + typedef daeTArray domFloat3x3_Array; + + class domFloat3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X3; } + static daeInt ID() { return 211; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3x3 value of the text data of this element. + */ + ::domFloat3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3x3 reference of the _value array. + */ + ::domFloat3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3x3 reference of the _value array. + */ + const ::domFloat3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x3 &operator=( const domFloat3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x4; + + typedef daeSmartRef domFloat3x4Ref; + typedef daeTArray domFloat3x4_Array; + + class domFloat3x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X4; } + static daeInt ID() { return 212; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3x4 value of the text data of this element. + */ + ::domFloat3x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3x4 reference of the _value array. + */ + ::domFloat3x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3x4 reference of the _value array. + */ + const ::domFloat3x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x4 &operator=( const domFloat3x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x1; + + typedef daeSmartRef domFloat4x1Ref; + typedef daeTArray domFloat4x1_Array; + + class domFloat4x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X1; } + static daeInt ID() { return 213; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x1 &operator=( const domFloat4x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x2; + + typedef daeSmartRef domFloat4x2Ref; + typedef daeTArray domFloat4x2_Array; + + class domFloat4x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X2; } + static daeInt ID() { return 214; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4x2 value of the text data of this element. + */ + ::domFloat4x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4x2 reference of the _value array. + */ + ::domFloat4x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4x2 reference of the _value array. + */ + const ::domFloat4x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x2 &operator=( const domFloat4x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x3; + + typedef daeSmartRef domFloat4x3Ref; + typedef daeTArray domFloat4x3_Array; + + class domFloat4x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X3; } + static daeInt ID() { return 215; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4x3 value of the text data of this element. + */ + ::domFloat4x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4x3 reference of the _value array. + */ + ::domFloat4x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4x3 reference of the _value array. + */ + const ::domFloat4x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x3 &operator=( const domFloat4x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x4; + + typedef daeSmartRef domFloat4x4Ref; + typedef daeTArray domFloat4x4_Array; + + class domFloat4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X4; } + static daeInt ID() { return 216; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4x4 value of the text data of this element. + */ + ::domFloat4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4x4 reference of the _value array. + */ + ::domFloat4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4x4 reference of the _value array. + */ + const ::domFloat4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x4 &operator=( const domFloat4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domEnum; + + typedef daeSmartRef domEnumRef; + typedef daeTArray domEnum_Array; + + class domEnum : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ENUM; } + static daeInt ID() { return 217; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domEnum(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domEnum() {} + /** + * Overloaded assignment operator + */ + virtual domEnum &operator=( const domEnum &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domBoolRef elemBool; + domBool2Ref elemBool2; + domBool3Ref elemBool3; + domBool4Ref elemBool4; + domIntRef elemInt; + domInt2Ref elemInt2; + domInt3Ref elemInt3; + domInt4Ref elemInt4; + domFloatRef elemFloat; + domFloat2Ref elemFloat2; + domFloat3Ref elemFloat3; + domFloat4Ref elemFloat4; + domFloat1x1Ref elemFloat1x1; + domFloat1x2Ref elemFloat1x2; + domFloat1x3Ref elemFloat1x3; + domFloat1x4Ref elemFloat1x4; + domFloat2x1Ref elemFloat2x1; + domFloat2x2Ref elemFloat2x2; + domFloat2x3Ref elemFloat2x3; + domFloat2x4Ref elemFloat2x4; + domFloat3x1Ref elemFloat3x1; + domFloat3x2Ref elemFloat3x2; + domFloat3x3Ref elemFloat3x3; + domFloat3x4Ref elemFloat3x4; + domFloat4x1Ref elemFloat4x1; + domFloat4x2Ref elemFloat4x2; + domFloat4x3Ref elemFloat4x3; + domFloat4x4Ref elemFloat4x4; + domFx_surface_commonRef elemSurface; + domFx_sampler1D_commonRef elemSampler1D; + domFx_sampler2D_commonRef elemSampler2D; + domFx_sampler3D_commonRef elemSampler3D; + domFx_samplerCUBE_commonRef elemSamplerCUBE; + domFx_samplerRECT_commonRef elemSamplerRECT; + domFx_samplerDEPTH_commonRef elemSamplerDEPTH; + domEnumRef elemEnum; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the bool element. + * @return a daeSmartRef to the bool element. + */ + const domBoolRef getBool() const { return elemBool; } + /** + * Gets the bool2 element. + * @return a daeSmartRef to the bool2 element. + */ + const domBool2Ref getBool2() const { return elemBool2; } + /** + * Gets the bool3 element. + * @return a daeSmartRef to the bool3 element. + */ + const domBool3Ref getBool3() const { return elemBool3; } + /** + * Gets the bool4 element. + * @return a daeSmartRef to the bool4 element. + */ + const domBool4Ref getBool4() const { return elemBool4; } + /** + * Gets the int element. + * @return a daeSmartRef to the int element. + */ + const domIntRef getInt() const { return elemInt; } + /** + * Gets the int2 element. + * @return a daeSmartRef to the int2 element. + */ + const domInt2Ref getInt2() const { return elemInt2; } + /** + * Gets the int3 element. + * @return a daeSmartRef to the int3 element. + */ + const domInt3Ref getInt3() const { return elemInt3; } + /** + * Gets the int4 element. + * @return a daeSmartRef to the int4 element. + */ + const domInt4Ref getInt4() const { return elemInt4; } + /** + * Gets the float element. + * @return a daeSmartRef to the float element. + */ + const domFloatRef getFloat() const { return elemFloat; } + /** + * Gets the float2 element. + * @return a daeSmartRef to the float2 element. + */ + const domFloat2Ref getFloat2() const { return elemFloat2; } + /** + * Gets the float3 element. + * @return a daeSmartRef to the float3 element. + */ + const domFloat3Ref getFloat3() const { return elemFloat3; } + /** + * Gets the float4 element. + * @return a daeSmartRef to the float4 element. + */ + const domFloat4Ref getFloat4() const { return elemFloat4; } + /** + * Gets the float1x1 element. + * @return a daeSmartRef to the float1x1 element. + */ + const domFloat1x1Ref getFloat1x1() const { return elemFloat1x1; } + /** + * Gets the float1x2 element. + * @return a daeSmartRef to the float1x2 element. + */ + const domFloat1x2Ref getFloat1x2() const { return elemFloat1x2; } + /** + * Gets the float1x3 element. + * @return a daeSmartRef to the float1x3 element. + */ + const domFloat1x3Ref getFloat1x3() const { return elemFloat1x3; } + /** + * Gets the float1x4 element. + * @return a daeSmartRef to the float1x4 element. + */ + const domFloat1x4Ref getFloat1x4() const { return elemFloat1x4; } + /** + * Gets the float2x1 element. + * @return a daeSmartRef to the float2x1 element. + */ + const domFloat2x1Ref getFloat2x1() const { return elemFloat2x1; } + /** + * Gets the float2x2 element. + * @return a daeSmartRef to the float2x2 element. + */ + const domFloat2x2Ref getFloat2x2() const { return elemFloat2x2; } + /** + * Gets the float2x3 element. + * @return a daeSmartRef to the float2x3 element. + */ + const domFloat2x3Ref getFloat2x3() const { return elemFloat2x3; } + /** + * Gets the float2x4 element. + * @return a daeSmartRef to the float2x4 element. + */ + const domFloat2x4Ref getFloat2x4() const { return elemFloat2x4; } + /** + * Gets the float3x1 element. + * @return a daeSmartRef to the float3x1 element. + */ + const domFloat3x1Ref getFloat3x1() const { return elemFloat3x1; } + /** + * Gets the float3x2 element. + * @return a daeSmartRef to the float3x2 element. + */ + const domFloat3x2Ref getFloat3x2() const { return elemFloat3x2; } + /** + * Gets the float3x3 element. + * @return a daeSmartRef to the float3x3 element. + */ + const domFloat3x3Ref getFloat3x3() const { return elemFloat3x3; } + /** + * Gets the float3x4 element. + * @return a daeSmartRef to the float3x4 element. + */ + const domFloat3x4Ref getFloat3x4() const { return elemFloat3x4; } + /** + * Gets the float4x1 element. + * @return a daeSmartRef to the float4x1 element. + */ + const domFloat4x1Ref getFloat4x1() const { return elemFloat4x1; } + /** + * Gets the float4x2 element. + * @return a daeSmartRef to the float4x2 element. + */ + const domFloat4x2Ref getFloat4x2() const { return elemFloat4x2; } + /** + * Gets the float4x3 element. + * @return a daeSmartRef to the float4x3 element. + */ + const domFloat4x3Ref getFloat4x3() const { return elemFloat4x3; } + /** + * Gets the float4x4 element. + * @return a daeSmartRef to the float4x4 element. + */ + const domFloat4x4Ref getFloat4x4() const { return elemFloat4x4; } + /** + * Gets the surface element. + * @return a daeSmartRef to the surface element. + */ + const domFx_surface_commonRef getSurface() const { return elemSurface; } + /** + * Gets the sampler1D element. + * @return a daeSmartRef to the sampler1D element. + */ + const domFx_sampler1D_commonRef getSampler1D() const { return elemSampler1D; } + /** + * Gets the sampler2D element. + * @return a daeSmartRef to the sampler2D element. + */ + const domFx_sampler2D_commonRef getSampler2D() const { return elemSampler2D; } + /** + * Gets the sampler3D element. + * @return a daeSmartRef to the sampler3D element. + */ + const domFx_sampler3D_commonRef getSampler3D() const { return elemSampler3D; } + /** + * Gets the samplerCUBE element. + * @return a daeSmartRef to the samplerCUBE element. + */ + const domFx_samplerCUBE_commonRef getSamplerCUBE() const { return elemSamplerCUBE; } + /** + * Gets the samplerRECT element. + * @return a daeSmartRef to the samplerRECT element. + */ + const domFx_samplerRECT_commonRef getSamplerRECT() const { return elemSamplerRECT; } + /** + * Gets the samplerDEPTH element. + * @return a daeSmartRef to the samplerDEPTH element. + */ + const domFx_samplerDEPTH_commonRef getSamplerDEPTH() const { return elemSamplerDEPTH; } + /** + * Gets the enum element. + * @return a daeSmartRef to the enum element. + */ + const domEnumRef getEnum() const { return elemEnum; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domFx_basic_type_common(DAE& dae) : daeElement(dae), elemBool(), elemBool2(), elemBool3(), elemBool4(), elemInt(), elemInt2(), elemInt3(), elemInt4(), elemFloat(), elemFloat2(), elemFloat3(), elemFloat4(), elemFloat1x1(), elemFloat1x2(), elemFloat1x3(), elemFloat1x4(), elemFloat2x1(), elemFloat2x2(), elemFloat2x3(), elemFloat2x4(), elemFloat3x1(), elemFloat3x2(), elemFloat3x3(), elemFloat3x4(), elemFloat4x1(), elemFloat4x2(), elemFloat4x3(), elemFloat4x4(), elemSurface(), elemSampler1D(), elemSampler2D(), elemSampler3D(), elemSamplerCUBE(), elemSamplerRECT(), elemSamplerDEPTH(), elemEnum() {} + /** + * Destructor + */ + virtual ~domFx_basic_type_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domFx_basic_type_common &operator=( const domFx_basic_type_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_clearcolor_common.h b/include/1.4/dom/domFx_clearcolor_common.h new file mode 100644 index 0000000..21c8613 --- /dev/null +++ b/include/1.4/dom/domFx_clearcolor_common.h @@ -0,0 +1,128 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_clearcolor_common_h__ +#define __domFx_clearcolor_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_clearcolor_common_complexType +{ +protected: // Attribute + xsNonNegativeInteger attrIndex; + +protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; } + + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domFx_clearcolor_common_complexType(DAE& dae, daeElement* elt) : attrIndex(), _value() {} + /** + * Destructor + */ + virtual ~domFx_clearcolor_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_clearcolor_common_complexType &operator=( const domFx_clearcolor_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_clearcolor_common_complexType. + */ +class domFx_clearcolor_common : public daeElement, public domFx_clearcolor_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_CLEARCOLOR_COMMON; } + static daeInt ID() { return 88; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domFx_clearcolor_common(DAE& dae) : daeElement(dae), domFx_clearcolor_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_clearcolor_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_clearcolor_common &operator=( const domFx_clearcolor_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_cleardepth_common.h b/include/1.4/dom/domFx_cleardepth_common.h new file mode 100644 index 0000000..1fb444a --- /dev/null +++ b/include/1.4/dom/domFx_cleardepth_common.h @@ -0,0 +1,123 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_cleardepth_common_h__ +#define __domFx_cleardepth_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_cleardepth_common_complexType +{ +protected: // Attribute + xsNonNegativeInteger attrIndex; + +protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; } + + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + +protected: + /** + * Constructor + */ + domFx_cleardepth_common_complexType(DAE& dae, daeElement* elt) : attrIndex(), _value() {} + /** + * Destructor + */ + virtual ~domFx_cleardepth_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_cleardepth_common_complexType &operator=( const domFx_cleardepth_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_cleardepth_common_complexType. + */ +class domFx_cleardepth_common : public daeElement, public domFx_cleardepth_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_CLEARDEPTH_COMMON; } + static daeInt ID() { return 89; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domFx_cleardepth_common(DAE& dae) : daeElement(dae), domFx_cleardepth_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_cleardepth_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_cleardepth_common &operator=( const domFx_cleardepth_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_clearstencil_common.h b/include/1.4/dom/domFx_clearstencil_common.h new file mode 100644 index 0000000..492642e --- /dev/null +++ b/include/1.4/dom/domFx_clearstencil_common.h @@ -0,0 +1,123 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_clearstencil_common_h__ +#define __domFx_clearstencil_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_clearstencil_common_complexType +{ +protected: // Attribute + xsNonNegativeInteger attrIndex; + +protected: // Value + /** + * The xsByte value of the text data of this element. + */ + xsByte _value; + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; } + + /** + * Gets the value of this element. + * @return a xsByte of the value. + */ + xsByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsByte val ) { _value = val; } + +protected: + /** + * Constructor + */ + domFx_clearstencil_common_complexType(DAE& dae, daeElement* elt) : attrIndex(), _value() {} + /** + * Destructor + */ + virtual ~domFx_clearstencil_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_clearstencil_common_complexType &operator=( const domFx_clearstencil_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_clearstencil_common_complexType. + */ +class domFx_clearstencil_common : public daeElement, public domFx_clearstencil_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_CLEARSTENCIL_COMMON; } + static daeInt ID() { return 90; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domFx_clearstencil_common(DAE& dae) : daeElement(dae), domFx_clearstencil_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_clearstencil_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_clearstencil_common &operator=( const domFx_clearstencil_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_code_profile.h b/include/1.4/dom/domFx_code_profile.h new file mode 100644 index 0000000..96442be --- /dev/null +++ b/include/1.4/dom/domFx_code_profile.h @@ -0,0 +1,132 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_code_profile_h__ +#define __domFx_code_profile_h__ + +#include +#include +#include + +class DAE; + +/** + * The fx_code_profile type allows you to specify an inline block of source + * code. + */ +class domFx_code_profile_complexType +{ +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + +protected: + /** + * Constructor + */ + domFx_code_profile_complexType(DAE& dae, daeElement* elt) : attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domFx_code_profile_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_code_profile_complexType &operator=( const domFx_code_profile_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_code_profile_complexType. + */ +class domFx_code_profile : public daeElement, public domFx_code_profile_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_CODE_PROFILE; } + static daeInt ID() { return 96; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domFx_code_profile(DAE& dae) : daeElement(dae), domFx_code_profile_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_code_profile() {} + /** + * Overloaded assignment operator + */ + virtual domFx_code_profile &operator=( const domFx_code_profile &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_colortarget_common.h b/include/1.4/dom/domFx_colortarget_common.h new file mode 100644 index 0000000..49e0033 --- /dev/null +++ b/include/1.4/dom/domFx_colortarget_common.h @@ -0,0 +1,192 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_colortarget_common_h__ +#define __domFx_colortarget_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_colortarget_common_complexType +{ +protected: // Attributes + xsNonNegativeInteger attrIndex; + domFx_surface_face_enum attrFace; + xsNonNegativeInteger attrMip; + xsNonNegativeInteger attrSlice; + +protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; } + + /** + * Gets the mip attribute. + * @return Returns a xsNonNegativeInteger of the mip attribute. + */ + xsNonNegativeInteger getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsNonNegativeInteger atMip ) { attrMip = atMip; } + + /** + * Gets the slice attribute. + * @return Returns a xsNonNegativeInteger of the slice attribute. + */ + xsNonNegativeInteger getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsNonNegativeInteger atSlice ) { attrSlice = atSlice; } + + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + +protected: + /** + * Constructor + */ + domFx_colortarget_common_complexType(DAE& dae, daeElement* elt) : attrIndex(), attrFace(), attrMip(), attrSlice(), _value() {} + /** + * Destructor + */ + virtual ~domFx_colortarget_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_colortarget_common_complexType &operator=( const domFx_colortarget_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_colortarget_common_complexType. + */ +class domFx_colortarget_common : public daeElement, public domFx_colortarget_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_COLORTARGET_COMMON; } + static daeInt ID() { return 85; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; _validAttributeArray[1] = true; } + + /** + * Gets the mip attribute. + * @return Returns a xsNonNegativeInteger of the mip attribute. + */ + xsNonNegativeInteger getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsNonNegativeInteger atMip ) { attrMip = atMip; _validAttributeArray[2] = true; } + + /** + * Gets the slice attribute. + * @return Returns a xsNonNegativeInteger of the slice attribute. + */ + xsNonNegativeInteger getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsNonNegativeInteger atSlice ) { attrSlice = atSlice; _validAttributeArray[3] = true; } + +protected: + /** + * Constructor + */ + domFx_colortarget_common(DAE& dae) : daeElement(dae), domFx_colortarget_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_colortarget_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_colortarget_common &operator=( const domFx_colortarget_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_depthtarget_common.h b/include/1.4/dom/domFx_depthtarget_common.h new file mode 100644 index 0000000..f8478bc --- /dev/null +++ b/include/1.4/dom/domFx_depthtarget_common.h @@ -0,0 +1,192 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_depthtarget_common_h__ +#define __domFx_depthtarget_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_depthtarget_common_complexType +{ +protected: // Attributes + xsNonNegativeInteger attrIndex; + domFx_surface_face_enum attrFace; + xsNonNegativeInteger attrMip; + xsNonNegativeInteger attrSlice; + +protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; } + + /** + * Gets the mip attribute. + * @return Returns a xsNonNegativeInteger of the mip attribute. + */ + xsNonNegativeInteger getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsNonNegativeInteger atMip ) { attrMip = atMip; } + + /** + * Gets the slice attribute. + * @return Returns a xsNonNegativeInteger of the slice attribute. + */ + xsNonNegativeInteger getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsNonNegativeInteger atSlice ) { attrSlice = atSlice; } + + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + +protected: + /** + * Constructor + */ + domFx_depthtarget_common_complexType(DAE& dae, daeElement* elt) : attrIndex(), attrFace(), attrMip(), attrSlice(), _value() {} + /** + * Destructor + */ + virtual ~domFx_depthtarget_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_depthtarget_common_complexType &operator=( const domFx_depthtarget_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_depthtarget_common_complexType. + */ +class domFx_depthtarget_common : public daeElement, public domFx_depthtarget_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_DEPTHTARGET_COMMON; } + static daeInt ID() { return 86; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; _validAttributeArray[1] = true; } + + /** + * Gets the mip attribute. + * @return Returns a xsNonNegativeInteger of the mip attribute. + */ + xsNonNegativeInteger getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsNonNegativeInteger atMip ) { attrMip = atMip; _validAttributeArray[2] = true; } + + /** + * Gets the slice attribute. + * @return Returns a xsNonNegativeInteger of the slice attribute. + */ + xsNonNegativeInteger getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsNonNegativeInteger atSlice ) { attrSlice = atSlice; _validAttributeArray[3] = true; } + +protected: + /** + * Constructor + */ + domFx_depthtarget_common(DAE& dae) : daeElement(dae), domFx_depthtarget_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_depthtarget_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_depthtarget_common &operator=( const domFx_depthtarget_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_include_common.h b/include/1.4/dom/domFx_include_common.h new file mode 100644 index 0000000..8b52d9c --- /dev/null +++ b/include/1.4/dom/domFx_include_common.h @@ -0,0 +1,165 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_include_common_h__ +#define __domFx_include_common_h__ + +#include +#include +#include + +class DAE; + +/** + * The include element is used to import source code or precompiled binary + * shaders into the FX Runtime by referencing an external resource. + */ +class domFx_include_common_complexType +{ +protected: // Attributes +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The url attribute refers to resource. This may refer to a local resource + * using a relative URL fragment identifier that begins with the “#” + * character. The url attribute may refer to an external resource using an + * absolute or relative URL. + */ + xsAnyURI attrUrl; + + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; } + +protected: + /** + * Constructor + */ + domFx_include_common_complexType(DAE& dae, daeElement* elt) : attrSid(), attrUrl(dae, *elt) {} + /** + * Destructor + */ + virtual ~domFx_include_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_include_common_complexType &operator=( const domFx_include_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_include_common_complexType. + */ +class domFx_include_common : public daeElement, public domFx_include_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_INCLUDE_COMMON; } + static daeInt ID() { return 92; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[1] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domFx_include_common(DAE& dae) : daeElement(dae), domFx_include_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_include_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_include_common &operator=( const domFx_include_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_newparam_common.h b/include/1.4/dom/domFx_newparam_common.h new file mode 100644 index 0000000..90d0937 --- /dev/null +++ b/include/1.4/dom/domFx_newparam_common.h @@ -0,0 +1,284 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_newparam_common_h__ +#define __domFx_newparam_common_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * This element creates a new, named param object in the FX Runtime, assigns + * it a type, an initial value, and additional attributes at declaration time. + */ +class domFx_newparam_common_complexType +{ +public: + class domSemantic; + + typedef daeSmartRef domSemanticRef; + typedef daeTArray domSemantic_Array; + +/** + * The semantic element allows you to specify a semantic for this new param. + */ + class domSemantic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; } + static daeInt ID() { return 93; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSemantic(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSemantic() {} + /** + * Overloaded assignment operator + */ + virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domModifier; + + typedef daeSmartRef domModifierRef; + typedef daeTArray domModifier_Array; + +/** + * The modifier element allows you to specify a modifier for this new param. + */ + class domModifier : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIER; } + static daeInt ID() { return 94; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_modifier_enum_common value of the text data of this element. + */ + domFx_modifier_enum_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_modifier_enum_common of the value. + */ + domFx_modifier_enum_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_modifier_enum_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domModifier(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domModifier() {} + /** + * Overloaded assignment operator + */ + virtual domModifier &operator=( const domModifier &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Elements +/** + * The annotate element allows you to specify an annotation for this new param. + * @see domAnnotate + */ + domFx_annotate_common_Array elemAnnotate_array; +/** + * The semantic element allows you to specify a semantic for this new param. + * @see domSemantic + */ + domSemanticRef elemSemantic; +/** + * The modifier element allows you to specify a modifier for this new param. + * @see domModifier + */ + domModifierRef elemModifier; + domFx_basic_type_commonRef elemFx_basic_type_common; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the semantic element. + * @return a daeSmartRef to the semantic element. + */ + const domSemanticRef getSemantic() const { return elemSemantic; } + /** + * Gets the modifier element. + * @return a daeSmartRef to the modifier element. + */ + const domModifierRef getModifier() const { return elemModifier; } + /** + * Gets the fx_basic_type_common element. + * @return a daeSmartRef to the fx_basic_type_common element. + */ + const domFx_basic_type_commonRef getFx_basic_type_common() const { return elemFx_basic_type_common; } +protected: + /** + * Constructor + */ + domFx_newparam_common_complexType(DAE& dae, daeElement* elt) : attrSid(), elemAnnotate_array(), elemSemantic(), elemModifier(), elemFx_basic_type_common() {} + /** + * Destructor + */ + virtual ~domFx_newparam_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_newparam_common_complexType &operator=( const domFx_newparam_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_newparam_common_complexType. + */ +class domFx_newparam_common : public daeElement, public domFx_newparam_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_NEWPARAM_COMMON; } + static daeInt ID() { return 95; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domFx_newparam_common(DAE& dae) : daeElement(dae), domFx_newparam_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_newparam_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_newparam_common &operator=( const domFx_newparam_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_profile_abstract.h b/include/1.4/dom/domFx_profile_abstract.h new file mode 100644 index 0000000..53ad37a --- /dev/null +++ b/include/1.4/dom/domFx_profile_abstract.h @@ -0,0 +1,63 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_profile_abstract_h__ +#define __domFx_profile_abstract_h__ + +#include +#include +#include + +class DAE; + +/** + * The fx_profile_abstract element is only used as a substitution group hook + * for COLLADA FX profiles. + */ +class domFx_profile_abstract : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_PROFILE_ABSTRACT; } + static daeInt ID() { return 727; } + virtual daeInt typeID() const { return ID(); } + +protected: + /** + * Constructor + */ + domFx_profile_abstract(DAE& dae) : daeElement(dae) {} + /** + * Destructor + */ + virtual ~domFx_profile_abstract() {} + /** + * Overloaded assignment operator + */ + virtual domFx_profile_abstract &operator=( const domFx_profile_abstract &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_sampler1D_common.h b/include/1.4/dom/domFx_sampler1D_common.h new file mode 100644 index 0000000..e662e20 --- /dev/null +++ b/include/1.4/dom/domFx_sampler1D_common.h @@ -0,0 +1,616 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_sampler1D_common_h__ +#define __domFx_sampler1D_common_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A one-dimensional texture sampler. + */ +class domFx_sampler1D_common_complexType +{ +public: + class domSource; + + typedef daeSmartRef domSourceRef; + typedef daeTArray domSource_Array; + + class domSource : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; } + static daeInt ID() { return 28; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSource(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSource() {} + /** + * Overloaded assignment operator + */ + virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_s; + + typedef daeSmartRef domWrap_sRef; + typedef daeTArray domWrap_s_Array; + + class domWrap_s : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; } + static daeInt ID() { return 29; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_s(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_s() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMinfilter; + + typedef daeSmartRef domMinfilterRef; + typedef daeTArray domMinfilter_Array; + + class domMinfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; } + static daeInt ID() { return 30; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMinfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMinfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMinfilter &operator=( const domMinfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMagfilter; + + typedef daeSmartRef domMagfilterRef; + typedef daeTArray domMagfilter_Array; + + class domMagfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; } + static daeInt ID() { return 31; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMagfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMagfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMagfilter &operator=( const domMagfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipfilter; + + typedef daeSmartRef domMipfilterRef; + typedef daeTArray domMipfilter_Array; + + class domMipfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPFILTER; } + static daeInt ID() { return 32; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMipfilter &operator=( const domMipfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBorder_color; + + typedef daeSmartRef domBorder_colorRef; + typedef daeTArray domBorder_color_Array; + + class domBorder_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BORDER_COLOR; } + static daeInt ID() { return 33; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBorder_color(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBorder_color() {} + /** + * Overloaded assignment operator + */ + virtual domBorder_color &operator=( const domBorder_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_maxlevel; + + typedef daeSmartRef domMipmap_maxlevelRef; + typedef daeTArray domMipmap_maxlevel_Array; + + class domMipmap_maxlevel : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_MAXLEVEL; } + static daeInt ID() { return 34; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsUnsignedByte value of the text data of this element. + */ + xsUnsignedByte _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsUnsignedByte of the value. + */ + xsUnsignedByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsUnsignedByte val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_maxlevel(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_maxlevel() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_maxlevel &operator=( const domMipmap_maxlevel &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_bias; + + typedef daeSmartRef domMipmap_biasRef; + typedef daeTArray domMipmap_bias_Array; + + class domMipmap_bias : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_BIAS; } + static daeInt ID() { return 35; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsFloat value of the text data of this element. + */ + xsFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsFloat of the value. + */ + xsFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_bias(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_bias() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_bias &operator=( const domMipmap_bias &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domSourceRef elemSource; + domWrap_sRef elemWrap_s; + domMinfilterRef elemMinfilter; + domMagfilterRef elemMagfilter; + domMipfilterRef elemMipfilter; + domBorder_colorRef elemBorder_color; + domMipmap_maxlevelRef elemMipmap_maxlevel; + domMipmap_biasRef elemMipmap_bias; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the source element. + * @return a daeSmartRef to the source element. + */ + const domSourceRef getSource() const { return elemSource; } + /** + * Gets the wrap_s element. + * @return a daeSmartRef to the wrap_s element. + */ + const domWrap_sRef getWrap_s() const { return elemWrap_s; } + /** + * Gets the minfilter element. + * @return a daeSmartRef to the minfilter element. + */ + const domMinfilterRef getMinfilter() const { return elemMinfilter; } + /** + * Gets the magfilter element. + * @return a daeSmartRef to the magfilter element. + */ + const domMagfilterRef getMagfilter() const { return elemMagfilter; } + /** + * Gets the mipfilter element. + * @return a daeSmartRef to the mipfilter element. + */ + const domMipfilterRef getMipfilter() const { return elemMipfilter; } + /** + * Gets the border_color element. + * @return a daeSmartRef to the border_color element. + */ + const domBorder_colorRef getBorder_color() const { return elemBorder_color; } + /** + * Gets the mipmap_maxlevel element. + * @return a daeSmartRef to the mipmap_maxlevel element. + */ + const domMipmap_maxlevelRef getMipmap_maxlevel() const { return elemMipmap_maxlevel; } + /** + * Gets the mipmap_bias element. + * @return a daeSmartRef to the mipmap_bias element. + */ + const domMipmap_biasRef getMipmap_bias() const { return elemMipmap_bias; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domFx_sampler1D_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemMinfilter(), elemMagfilter(), elemMipfilter(), elemBorder_color(), elemMipmap_maxlevel(), elemMipmap_bias(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_sampler1D_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_sampler1D_common_complexType &operator=( const domFx_sampler1D_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_sampler1D_common_complexType. + */ +class domFx_sampler1D_common : public daeElement, public domFx_sampler1D_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLER1D_COMMON; } + static daeInt ID() { return 36; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_sampler1D_common(DAE& dae) : daeElement(dae), domFx_sampler1D_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_sampler1D_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_sampler1D_common &operator=( const domFx_sampler1D_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_sampler2D_common.h b/include/1.4/dom/domFx_sampler2D_common.h new file mode 100644 index 0000000..5e3c359 --- /dev/null +++ b/include/1.4/dom/domFx_sampler2D_common.h @@ -0,0 +1,680 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_sampler2D_common_h__ +#define __domFx_sampler2D_common_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A two-dimensional texture sampler. + */ +class domFx_sampler2D_common_complexType +{ +public: + class domSource; + + typedef daeSmartRef domSourceRef; + typedef daeTArray domSource_Array; + + class domSource : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; } + static daeInt ID() { return 37; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSource(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSource() {} + /** + * Overloaded assignment operator + */ + virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_s; + + typedef daeSmartRef domWrap_sRef; + typedef daeTArray domWrap_s_Array; + + class domWrap_s : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; } + static daeInt ID() { return 38; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_s(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_s() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_t; + + typedef daeSmartRef domWrap_tRef; + typedef daeTArray domWrap_t_Array; + + class domWrap_t : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_T; } + static daeInt ID() { return 39; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_t(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_t() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_t &operator=( const domWrap_t &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMinfilter; + + typedef daeSmartRef domMinfilterRef; + typedef daeTArray domMinfilter_Array; + + class domMinfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; } + static daeInt ID() { return 40; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMinfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMinfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMinfilter &operator=( const domMinfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMagfilter; + + typedef daeSmartRef domMagfilterRef; + typedef daeTArray domMagfilter_Array; + + class domMagfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; } + static daeInt ID() { return 41; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMagfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMagfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMagfilter &operator=( const domMagfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipfilter; + + typedef daeSmartRef domMipfilterRef; + typedef daeTArray domMipfilter_Array; + + class domMipfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPFILTER; } + static daeInt ID() { return 42; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMipfilter &operator=( const domMipfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBorder_color; + + typedef daeSmartRef domBorder_colorRef; + typedef daeTArray domBorder_color_Array; + + class domBorder_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BORDER_COLOR; } + static daeInt ID() { return 43; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBorder_color(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBorder_color() {} + /** + * Overloaded assignment operator + */ + virtual domBorder_color &operator=( const domBorder_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_maxlevel; + + typedef daeSmartRef domMipmap_maxlevelRef; + typedef daeTArray domMipmap_maxlevel_Array; + + class domMipmap_maxlevel : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_MAXLEVEL; } + static daeInt ID() { return 44; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsUnsignedByte value of the text data of this element. + */ + xsUnsignedByte _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsUnsignedByte of the value. + */ + xsUnsignedByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsUnsignedByte val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_maxlevel(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_maxlevel() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_maxlevel &operator=( const domMipmap_maxlevel &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_bias; + + typedef daeSmartRef domMipmap_biasRef; + typedef daeTArray domMipmap_bias_Array; + + class domMipmap_bias : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_BIAS; } + static daeInt ID() { return 45; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsFloat value of the text data of this element. + */ + xsFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsFloat of the value. + */ + xsFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_bias(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_bias() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_bias &operator=( const domMipmap_bias &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domSourceRef elemSource; + domWrap_sRef elemWrap_s; + domWrap_tRef elemWrap_t; + domMinfilterRef elemMinfilter; + domMagfilterRef elemMagfilter; + domMipfilterRef elemMipfilter; + domBorder_colorRef elemBorder_color; + domMipmap_maxlevelRef elemMipmap_maxlevel; + domMipmap_biasRef elemMipmap_bias; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the source element. + * @return a daeSmartRef to the source element. + */ + const domSourceRef getSource() const { return elemSource; } + /** + * Gets the wrap_s element. + * @return a daeSmartRef to the wrap_s element. + */ + const domWrap_sRef getWrap_s() const { return elemWrap_s; } + /** + * Gets the wrap_t element. + * @return a daeSmartRef to the wrap_t element. + */ + const domWrap_tRef getWrap_t() const { return elemWrap_t; } + /** + * Gets the minfilter element. + * @return a daeSmartRef to the minfilter element. + */ + const domMinfilterRef getMinfilter() const { return elemMinfilter; } + /** + * Gets the magfilter element. + * @return a daeSmartRef to the magfilter element. + */ + const domMagfilterRef getMagfilter() const { return elemMagfilter; } + /** + * Gets the mipfilter element. + * @return a daeSmartRef to the mipfilter element. + */ + const domMipfilterRef getMipfilter() const { return elemMipfilter; } + /** + * Gets the border_color element. + * @return a daeSmartRef to the border_color element. + */ + const domBorder_colorRef getBorder_color() const { return elemBorder_color; } + /** + * Gets the mipmap_maxlevel element. + * @return a daeSmartRef to the mipmap_maxlevel element. + */ + const domMipmap_maxlevelRef getMipmap_maxlevel() const { return elemMipmap_maxlevel; } + /** + * Gets the mipmap_bias element. + * @return a daeSmartRef to the mipmap_bias element. + */ + const domMipmap_biasRef getMipmap_bias() const { return elemMipmap_bias; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domFx_sampler2D_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemWrap_t(), elemMinfilter(), elemMagfilter(), elemMipfilter(), elemBorder_color(), elemMipmap_maxlevel(), elemMipmap_bias(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_sampler2D_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_sampler2D_common_complexType &operator=( const domFx_sampler2D_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_sampler2D_common_complexType. + */ +class domFx_sampler2D_common : public daeElement, public domFx_sampler2D_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLER2D_COMMON; } + static daeInt ID() { return 46; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_sampler2D_common(DAE& dae) : daeElement(dae), domFx_sampler2D_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_sampler2D_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_sampler2D_common &operator=( const domFx_sampler2D_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_sampler3D_common.h b/include/1.4/dom/domFx_sampler3D_common.h new file mode 100644 index 0000000..ec93ac2 --- /dev/null +++ b/include/1.4/dom/domFx_sampler3D_common.h @@ -0,0 +1,744 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_sampler3D_common_h__ +#define __domFx_sampler3D_common_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A three-dimensional texture sampler. + */ +class domFx_sampler3D_common_complexType +{ +public: + class domSource; + + typedef daeSmartRef domSourceRef; + typedef daeTArray domSource_Array; + + class domSource : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; } + static daeInt ID() { return 47; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSource(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSource() {} + /** + * Overloaded assignment operator + */ + virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_s; + + typedef daeSmartRef domWrap_sRef; + typedef daeTArray domWrap_s_Array; + + class domWrap_s : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; } + static daeInt ID() { return 48; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_s(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_s() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_t; + + typedef daeSmartRef domWrap_tRef; + typedef daeTArray domWrap_t_Array; + + class domWrap_t : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_T; } + static daeInt ID() { return 49; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_t(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_t() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_t &operator=( const domWrap_t &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_p; + + typedef daeSmartRef domWrap_pRef; + typedef daeTArray domWrap_p_Array; + + class domWrap_p : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_P; } + static daeInt ID() { return 50; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_p(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_p() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_p &operator=( const domWrap_p &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMinfilter; + + typedef daeSmartRef domMinfilterRef; + typedef daeTArray domMinfilter_Array; + + class domMinfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; } + static daeInt ID() { return 51; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMinfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMinfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMinfilter &operator=( const domMinfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMagfilter; + + typedef daeSmartRef domMagfilterRef; + typedef daeTArray domMagfilter_Array; + + class domMagfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; } + static daeInt ID() { return 52; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMagfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMagfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMagfilter &operator=( const domMagfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipfilter; + + typedef daeSmartRef domMipfilterRef; + typedef daeTArray domMipfilter_Array; + + class domMipfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPFILTER; } + static daeInt ID() { return 53; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMipfilter &operator=( const domMipfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBorder_color; + + typedef daeSmartRef domBorder_colorRef; + typedef daeTArray domBorder_color_Array; + + class domBorder_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BORDER_COLOR; } + static daeInt ID() { return 54; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBorder_color(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBorder_color() {} + /** + * Overloaded assignment operator + */ + virtual domBorder_color &operator=( const domBorder_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_maxlevel; + + typedef daeSmartRef domMipmap_maxlevelRef; + typedef daeTArray domMipmap_maxlevel_Array; + + class domMipmap_maxlevel : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_MAXLEVEL; } + static daeInt ID() { return 55; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsUnsignedByte value of the text data of this element. + */ + xsUnsignedByte _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsUnsignedByte of the value. + */ + xsUnsignedByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsUnsignedByte val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_maxlevel(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_maxlevel() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_maxlevel &operator=( const domMipmap_maxlevel &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_bias; + + typedef daeSmartRef domMipmap_biasRef; + typedef daeTArray domMipmap_bias_Array; + + class domMipmap_bias : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_BIAS; } + static daeInt ID() { return 56; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsFloat value of the text data of this element. + */ + xsFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsFloat of the value. + */ + xsFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_bias(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_bias() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_bias &operator=( const domMipmap_bias &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domSourceRef elemSource; + domWrap_sRef elemWrap_s; + domWrap_tRef elemWrap_t; + domWrap_pRef elemWrap_p; + domMinfilterRef elemMinfilter; + domMagfilterRef elemMagfilter; + domMipfilterRef elemMipfilter; + domBorder_colorRef elemBorder_color; + domMipmap_maxlevelRef elemMipmap_maxlevel; + domMipmap_biasRef elemMipmap_bias; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the source element. + * @return a daeSmartRef to the source element. + */ + const domSourceRef getSource() const { return elemSource; } + /** + * Gets the wrap_s element. + * @return a daeSmartRef to the wrap_s element. + */ + const domWrap_sRef getWrap_s() const { return elemWrap_s; } + /** + * Gets the wrap_t element. + * @return a daeSmartRef to the wrap_t element. + */ + const domWrap_tRef getWrap_t() const { return elemWrap_t; } + /** + * Gets the wrap_p element. + * @return a daeSmartRef to the wrap_p element. + */ + const domWrap_pRef getWrap_p() const { return elemWrap_p; } + /** + * Gets the minfilter element. + * @return a daeSmartRef to the minfilter element. + */ + const domMinfilterRef getMinfilter() const { return elemMinfilter; } + /** + * Gets the magfilter element. + * @return a daeSmartRef to the magfilter element. + */ + const domMagfilterRef getMagfilter() const { return elemMagfilter; } + /** + * Gets the mipfilter element. + * @return a daeSmartRef to the mipfilter element. + */ + const domMipfilterRef getMipfilter() const { return elemMipfilter; } + /** + * Gets the border_color element. + * @return a daeSmartRef to the border_color element. + */ + const domBorder_colorRef getBorder_color() const { return elemBorder_color; } + /** + * Gets the mipmap_maxlevel element. + * @return a daeSmartRef to the mipmap_maxlevel element. + */ + const domMipmap_maxlevelRef getMipmap_maxlevel() const { return elemMipmap_maxlevel; } + /** + * Gets the mipmap_bias element. + * @return a daeSmartRef to the mipmap_bias element. + */ + const domMipmap_biasRef getMipmap_bias() const { return elemMipmap_bias; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domFx_sampler3D_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemWrap_t(), elemWrap_p(), elemMinfilter(), elemMagfilter(), elemMipfilter(), elemBorder_color(), elemMipmap_maxlevel(), elemMipmap_bias(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_sampler3D_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_sampler3D_common_complexType &operator=( const domFx_sampler3D_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_sampler3D_common_complexType. + */ +class domFx_sampler3D_common : public daeElement, public domFx_sampler3D_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLER3D_COMMON; } + static daeInt ID() { return 57; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_sampler3D_common(DAE& dae) : daeElement(dae), domFx_sampler3D_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_sampler3D_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_sampler3D_common &operator=( const domFx_sampler3D_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_samplerCUBE_common.h b/include/1.4/dom/domFx_samplerCUBE_common.h new file mode 100644 index 0000000..91e719c --- /dev/null +++ b/include/1.4/dom/domFx_samplerCUBE_common.h @@ -0,0 +1,744 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_samplerCUBE_common_h__ +#define __domFx_samplerCUBE_common_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A texture sampler for cube maps. + */ +class domFx_samplerCUBE_common_complexType +{ +public: + class domSource; + + typedef daeSmartRef domSourceRef; + typedef daeTArray domSource_Array; + + class domSource : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; } + static daeInt ID() { return 58; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSource(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSource() {} + /** + * Overloaded assignment operator + */ + virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_s; + + typedef daeSmartRef domWrap_sRef; + typedef daeTArray domWrap_s_Array; + + class domWrap_s : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; } + static daeInt ID() { return 59; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_s(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_s() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_t; + + typedef daeSmartRef domWrap_tRef; + typedef daeTArray domWrap_t_Array; + + class domWrap_t : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_T; } + static daeInt ID() { return 60; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_t(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_t() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_t &operator=( const domWrap_t &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_p; + + typedef daeSmartRef domWrap_pRef; + typedef daeTArray domWrap_p_Array; + + class domWrap_p : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_P; } + static daeInt ID() { return 61; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_p(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_p() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_p &operator=( const domWrap_p &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMinfilter; + + typedef daeSmartRef domMinfilterRef; + typedef daeTArray domMinfilter_Array; + + class domMinfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; } + static daeInt ID() { return 62; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMinfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMinfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMinfilter &operator=( const domMinfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMagfilter; + + typedef daeSmartRef domMagfilterRef; + typedef daeTArray domMagfilter_Array; + + class domMagfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; } + static daeInt ID() { return 63; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMagfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMagfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMagfilter &operator=( const domMagfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipfilter; + + typedef daeSmartRef domMipfilterRef; + typedef daeTArray domMipfilter_Array; + + class domMipfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPFILTER; } + static daeInt ID() { return 64; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMipfilter &operator=( const domMipfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBorder_color; + + typedef daeSmartRef domBorder_colorRef; + typedef daeTArray domBorder_color_Array; + + class domBorder_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BORDER_COLOR; } + static daeInt ID() { return 65; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBorder_color(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBorder_color() {} + /** + * Overloaded assignment operator + */ + virtual domBorder_color &operator=( const domBorder_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_maxlevel; + + typedef daeSmartRef domMipmap_maxlevelRef; + typedef daeTArray domMipmap_maxlevel_Array; + + class domMipmap_maxlevel : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_MAXLEVEL; } + static daeInt ID() { return 66; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsUnsignedByte value of the text data of this element. + */ + xsUnsignedByte _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsUnsignedByte of the value. + */ + xsUnsignedByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsUnsignedByte val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_maxlevel(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_maxlevel() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_maxlevel &operator=( const domMipmap_maxlevel &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_bias; + + typedef daeSmartRef domMipmap_biasRef; + typedef daeTArray domMipmap_bias_Array; + + class domMipmap_bias : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_BIAS; } + static daeInt ID() { return 67; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsFloat value of the text data of this element. + */ + xsFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsFloat of the value. + */ + xsFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_bias(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_bias() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_bias &operator=( const domMipmap_bias &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domSourceRef elemSource; + domWrap_sRef elemWrap_s; + domWrap_tRef elemWrap_t; + domWrap_pRef elemWrap_p; + domMinfilterRef elemMinfilter; + domMagfilterRef elemMagfilter; + domMipfilterRef elemMipfilter; + domBorder_colorRef elemBorder_color; + domMipmap_maxlevelRef elemMipmap_maxlevel; + domMipmap_biasRef elemMipmap_bias; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the source element. + * @return a daeSmartRef to the source element. + */ + const domSourceRef getSource() const { return elemSource; } + /** + * Gets the wrap_s element. + * @return a daeSmartRef to the wrap_s element. + */ + const domWrap_sRef getWrap_s() const { return elemWrap_s; } + /** + * Gets the wrap_t element. + * @return a daeSmartRef to the wrap_t element. + */ + const domWrap_tRef getWrap_t() const { return elemWrap_t; } + /** + * Gets the wrap_p element. + * @return a daeSmartRef to the wrap_p element. + */ + const domWrap_pRef getWrap_p() const { return elemWrap_p; } + /** + * Gets the minfilter element. + * @return a daeSmartRef to the minfilter element. + */ + const domMinfilterRef getMinfilter() const { return elemMinfilter; } + /** + * Gets the magfilter element. + * @return a daeSmartRef to the magfilter element. + */ + const domMagfilterRef getMagfilter() const { return elemMagfilter; } + /** + * Gets the mipfilter element. + * @return a daeSmartRef to the mipfilter element. + */ + const domMipfilterRef getMipfilter() const { return elemMipfilter; } + /** + * Gets the border_color element. + * @return a daeSmartRef to the border_color element. + */ + const domBorder_colorRef getBorder_color() const { return elemBorder_color; } + /** + * Gets the mipmap_maxlevel element. + * @return a daeSmartRef to the mipmap_maxlevel element. + */ + const domMipmap_maxlevelRef getMipmap_maxlevel() const { return elemMipmap_maxlevel; } + /** + * Gets the mipmap_bias element. + * @return a daeSmartRef to the mipmap_bias element. + */ + const domMipmap_biasRef getMipmap_bias() const { return elemMipmap_bias; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domFx_samplerCUBE_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemWrap_t(), elemWrap_p(), elemMinfilter(), elemMagfilter(), elemMipfilter(), elemBorder_color(), elemMipmap_maxlevel(), elemMipmap_bias(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_samplerCUBE_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_samplerCUBE_common_complexType &operator=( const domFx_samplerCUBE_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_samplerCUBE_common_complexType. + */ +class domFx_samplerCUBE_common : public daeElement, public domFx_samplerCUBE_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLERCUBE_COMMON; } + static daeInt ID() { return 68; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_samplerCUBE_common(DAE& dae) : daeElement(dae), domFx_samplerCUBE_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_samplerCUBE_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_samplerCUBE_common &operator=( const domFx_samplerCUBE_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_samplerDEPTH_common.h b/include/1.4/dom/domFx_samplerDEPTH_common.h new file mode 100644 index 0000000..15a637b --- /dev/null +++ b/include/1.4/dom/domFx_samplerDEPTH_common.h @@ -0,0 +1,419 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_samplerDEPTH_common_h__ +#define __domFx_samplerDEPTH_common_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A texture sampler for depth maps. + */ +class domFx_samplerDEPTH_common_complexType +{ +public: + class domSource; + + typedef daeSmartRef domSourceRef; + typedef daeTArray domSource_Array; + + class domSource : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; } + static daeInt ID() { return 79; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSource(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSource() {} + /** + * Overloaded assignment operator + */ + virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_s; + + typedef daeSmartRef domWrap_sRef; + typedef daeTArray domWrap_s_Array; + + class domWrap_s : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; } + static daeInt ID() { return 80; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_s(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_s() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_t; + + typedef daeSmartRef domWrap_tRef; + typedef daeTArray domWrap_t_Array; + + class domWrap_t : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_T; } + static daeInt ID() { return 81; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_t(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_t() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_t &operator=( const domWrap_t &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMinfilter; + + typedef daeSmartRef domMinfilterRef; + typedef daeTArray domMinfilter_Array; + + class domMinfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; } + static daeInt ID() { return 82; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMinfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMinfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMinfilter &operator=( const domMinfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMagfilter; + + typedef daeSmartRef domMagfilterRef; + typedef daeTArray domMagfilter_Array; + + class domMagfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; } + static daeInt ID() { return 83; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMagfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMagfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMagfilter &operator=( const domMagfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domSourceRef elemSource; + domWrap_sRef elemWrap_s; + domWrap_tRef elemWrap_t; + domMinfilterRef elemMinfilter; + domMagfilterRef elemMagfilter; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the source element. + * @return a daeSmartRef to the source element. + */ + const domSourceRef getSource() const { return elemSource; } + /** + * Gets the wrap_s element. + * @return a daeSmartRef to the wrap_s element. + */ + const domWrap_sRef getWrap_s() const { return elemWrap_s; } + /** + * Gets the wrap_t element. + * @return a daeSmartRef to the wrap_t element. + */ + const domWrap_tRef getWrap_t() const { return elemWrap_t; } + /** + * Gets the minfilter element. + * @return a daeSmartRef to the minfilter element. + */ + const domMinfilterRef getMinfilter() const { return elemMinfilter; } + /** + * Gets the magfilter element. + * @return a daeSmartRef to the magfilter element. + */ + const domMagfilterRef getMagfilter() const { return elemMagfilter; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domFx_samplerDEPTH_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemWrap_t(), elemMinfilter(), elemMagfilter(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_samplerDEPTH_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_samplerDEPTH_common_complexType &operator=( const domFx_samplerDEPTH_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_samplerDEPTH_common_complexType. + */ +class domFx_samplerDEPTH_common : public daeElement, public domFx_samplerDEPTH_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLERDEPTH_COMMON; } + static daeInt ID() { return 84; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_samplerDEPTH_common(DAE& dae) : daeElement(dae), domFx_samplerDEPTH_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_samplerDEPTH_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_samplerDEPTH_common &operator=( const domFx_samplerDEPTH_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_samplerRECT_common.h b/include/1.4/dom/domFx_samplerRECT_common.h new file mode 100644 index 0000000..45df67a --- /dev/null +++ b/include/1.4/dom/domFx_samplerRECT_common.h @@ -0,0 +1,680 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_samplerRECT_common_h__ +#define __domFx_samplerRECT_common_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A two-dimensional texture sampler. + */ +class domFx_samplerRECT_common_complexType +{ +public: + class domSource; + + typedef daeSmartRef domSourceRef; + typedef daeTArray domSource_Array; + + class domSource : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; } + static daeInt ID() { return 69; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSource(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSource() {} + /** + * Overloaded assignment operator + */ + virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_s; + + typedef daeSmartRef domWrap_sRef; + typedef daeTArray domWrap_s_Array; + + class domWrap_s : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; } + static daeInt ID() { return 70; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_s(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_s() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_t; + + typedef daeSmartRef domWrap_tRef; + typedef daeTArray domWrap_t_Array; + + class domWrap_t : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_T; } + static daeInt ID() { return 71; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_wrap_common value of the text data of this element. + */ + domFx_sampler_wrap_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_wrap_common of the value. + */ + domFx_sampler_wrap_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_wrap_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_t(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_t() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_t &operator=( const domWrap_t &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMinfilter; + + typedef daeSmartRef domMinfilterRef; + typedef daeTArray domMinfilter_Array; + + class domMinfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; } + static daeInt ID() { return 72; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMinfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMinfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMinfilter &operator=( const domMinfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMagfilter; + + typedef daeSmartRef domMagfilterRef; + typedef daeTArray domMagfilter_Array; + + class domMagfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; } + static daeInt ID() { return 73; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMagfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMagfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMagfilter &operator=( const domMagfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipfilter; + + typedef daeSmartRef domMipfilterRef; + typedef daeTArray domMipfilter_Array; + + class domMipfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPFILTER; } + static daeInt ID() { return 74; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMipfilter &operator=( const domMipfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBorder_color; + + typedef daeSmartRef domBorder_colorRef; + typedef daeTArray domBorder_color_Array; + + class domBorder_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BORDER_COLOR; } + static daeInt ID() { return 75; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBorder_color(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBorder_color() {} + /** + * Overloaded assignment operator + */ + virtual domBorder_color &operator=( const domBorder_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_maxlevel; + + typedef daeSmartRef domMipmap_maxlevelRef; + typedef daeTArray domMipmap_maxlevel_Array; + + class domMipmap_maxlevel : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_MAXLEVEL; } + static daeInt ID() { return 76; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsUnsignedByte value of the text data of this element. + */ + xsUnsignedByte _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsUnsignedByte of the value. + */ + xsUnsignedByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsUnsignedByte val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_maxlevel(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_maxlevel() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_maxlevel &operator=( const domMipmap_maxlevel &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_bias; + + typedef daeSmartRef domMipmap_biasRef; + typedef daeTArray domMipmap_bias_Array; + + class domMipmap_bias : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_BIAS; } + static daeInt ID() { return 77; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsFloat value of the text data of this element. + */ + xsFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsFloat of the value. + */ + xsFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_bias(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_bias() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_bias &operator=( const domMipmap_bias &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domSourceRef elemSource; + domWrap_sRef elemWrap_s; + domWrap_tRef elemWrap_t; + domMinfilterRef elemMinfilter; + domMagfilterRef elemMagfilter; + domMipfilterRef elemMipfilter; + domBorder_colorRef elemBorder_color; + domMipmap_maxlevelRef elemMipmap_maxlevel; + domMipmap_biasRef elemMipmap_bias; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the source element. + * @return a daeSmartRef to the source element. + */ + const domSourceRef getSource() const { return elemSource; } + /** + * Gets the wrap_s element. + * @return a daeSmartRef to the wrap_s element. + */ + const domWrap_sRef getWrap_s() const { return elemWrap_s; } + /** + * Gets the wrap_t element. + * @return a daeSmartRef to the wrap_t element. + */ + const domWrap_tRef getWrap_t() const { return elemWrap_t; } + /** + * Gets the minfilter element. + * @return a daeSmartRef to the minfilter element. + */ + const domMinfilterRef getMinfilter() const { return elemMinfilter; } + /** + * Gets the magfilter element. + * @return a daeSmartRef to the magfilter element. + */ + const domMagfilterRef getMagfilter() const { return elemMagfilter; } + /** + * Gets the mipfilter element. + * @return a daeSmartRef to the mipfilter element. + */ + const domMipfilterRef getMipfilter() const { return elemMipfilter; } + /** + * Gets the border_color element. + * @return a daeSmartRef to the border_color element. + */ + const domBorder_colorRef getBorder_color() const { return elemBorder_color; } + /** + * Gets the mipmap_maxlevel element. + * @return a daeSmartRef to the mipmap_maxlevel element. + */ + const domMipmap_maxlevelRef getMipmap_maxlevel() const { return elemMipmap_maxlevel; } + /** + * Gets the mipmap_bias element. + * @return a daeSmartRef to the mipmap_bias element. + */ + const domMipmap_biasRef getMipmap_bias() const { return elemMipmap_bias; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domFx_samplerRECT_common_complexType(DAE& dae, daeElement* elt) : elemSource(), elemWrap_s(), elemWrap_t(), elemMinfilter(), elemMagfilter(), elemMipfilter(), elemBorder_color(), elemMipmap_maxlevel(), elemMipmap_bias(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_samplerRECT_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_samplerRECT_common_complexType &operator=( const domFx_samplerRECT_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_samplerRECT_common_complexType. + */ +class domFx_samplerRECT_common : public daeElement, public domFx_samplerRECT_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SAMPLERRECT_COMMON; } + static daeInt ID() { return 78; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_samplerRECT_common(DAE& dae) : daeElement(dae), domFx_samplerRECT_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_samplerRECT_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_samplerRECT_common &operator=( const domFx_samplerRECT_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_stenciltarget_common.h b/include/1.4/dom/domFx_stenciltarget_common.h new file mode 100644 index 0000000..7f5d478 --- /dev/null +++ b/include/1.4/dom/domFx_stenciltarget_common.h @@ -0,0 +1,192 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_stenciltarget_common_h__ +#define __domFx_stenciltarget_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_stenciltarget_common_complexType +{ +protected: // Attributes + xsNonNegativeInteger attrIndex; + domFx_surface_face_enum attrFace; + xsNonNegativeInteger attrMip; + xsNonNegativeInteger attrSlice; + +protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; } + + /** + * Gets the mip attribute. + * @return Returns a xsNonNegativeInteger of the mip attribute. + */ + xsNonNegativeInteger getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsNonNegativeInteger atMip ) { attrMip = atMip; } + + /** + * Gets the slice attribute. + * @return Returns a xsNonNegativeInteger of the slice attribute. + */ + xsNonNegativeInteger getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsNonNegativeInteger atSlice ) { attrSlice = atSlice; } + + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + +protected: + /** + * Constructor + */ + domFx_stenciltarget_common_complexType(DAE& dae, daeElement* elt) : attrIndex(), attrFace(), attrMip(), attrSlice(), _value() {} + /** + * Destructor + */ + virtual ~domFx_stenciltarget_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_stenciltarget_common_complexType &operator=( const domFx_stenciltarget_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_stenciltarget_common_complexType. + */ +class domFx_stenciltarget_common : public daeElement, public domFx_stenciltarget_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_STENCILTARGET_COMMON; } + static daeInt ID() { return 87; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a xsNonNegativeInteger of the index attribute. + */ + xsNonNegativeInteger getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( xsNonNegativeInteger atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; _validAttributeArray[1] = true; } + + /** + * Gets the mip attribute. + * @return Returns a xsNonNegativeInteger of the mip attribute. + */ + xsNonNegativeInteger getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsNonNegativeInteger atMip ) { attrMip = atMip; _validAttributeArray[2] = true; } + + /** + * Gets the slice attribute. + * @return Returns a xsNonNegativeInteger of the slice attribute. + */ + xsNonNegativeInteger getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsNonNegativeInteger atSlice ) { attrSlice = atSlice; _validAttributeArray[3] = true; } + +protected: + /** + * Constructor + */ + domFx_stenciltarget_common(DAE& dae) : daeElement(dae), domFx_stenciltarget_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_stenciltarget_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_stenciltarget_common &operator=( const domFx_stenciltarget_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_surface_common.h b/include/1.4/dom/domFx_surface_common.h new file mode 100644 index 0000000..dd812b6 --- /dev/null +++ b/include/1.4/dom/domFx_surface_common.h @@ -0,0 +1,568 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_surface_common_h__ +#define __domFx_surface_common_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The fx_surface_common type is used to declare a resource that can be used + * both as the source for texture samples and as the target of a rendering + * pass. + */ +class domFx_surface_common_complexType +{ +public: + class domFormat; + + typedef daeSmartRef domFormatRef; + typedef daeTArray domFormat_Array; + +/** + * Contains a string representing the profile and platform specific texel + * format that the author would like this surface to use. If this element + * is not specified then the application will use a common format R8G8B8A8 + * with linear color gradient, not sRGB. + */ + class domFormat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FORMAT; } + static daeInt ID() { return 22; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsToken value of the text data of this element. + */ + xsToken _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsToken of the value. + */ + xsToken getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsToken val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domFormat(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFormat() {} + /** + * Overloaded assignment operator + */ + virtual domFormat &operator=( const domFormat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSize; + + typedef daeSmartRef domSizeRef; + typedef daeTArray domSize_Array; + +/** + * The surface should be sized to these exact dimensions + */ + class domSize : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SIZE; } + static daeInt ID() { return 23; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domInt3 value of the text data of this element. + */ + domInt3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domInt3 reference of the _value array. + */ + domInt3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domInt3 reference of the _value array. + */ + const domInt3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domInt3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domSize(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSize() {} + /** + * Overloaded assignment operator + */ + virtual domSize &operator=( const domSize &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domViewport_ratio; + + typedef daeSmartRef domViewport_ratioRef; + typedef daeTArray domViewport_ratio_Array; + +/** + * The surface should be sized to a dimension based on this ratio of the viewport's + * dimensions in pixels + */ + class domViewport_ratio : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VIEWPORT_RATIO; } + static daeInt ID() { return 24; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat2 value of the text data of this element. + */ + domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat2 reference of the _value array. + */ + domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat2 reference of the _value array. + */ + const domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domViewport_ratio(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domViewport_ratio() {} + /** + * Overloaded assignment operator + */ + virtual domViewport_ratio &operator=( const domViewport_ratio &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMip_levels; + + typedef daeSmartRef domMip_levelsRef; + typedef daeTArray domMip_levels_Array; + +/** + * the surface should contain the following number of MIP levels. If this + * element is not present it is assumed that all miplevels exist until a dimension + * becomes 1 texel. To create a surface that has only one level of mip maps + * (mip=0) set this to 1. If the value is 0 the result is the same as if + * mip_levels was unspecified, all possible mip_levels will exist. + */ + class domMip_levels : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIP_LEVELS; } + static daeInt ID() { return 25; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsUnsignedInt value of the text data of this element. + */ + xsUnsignedInt _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsUnsignedInt of the value. + */ + xsUnsignedInt getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsUnsignedInt val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMip_levels(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMip_levels() {} + /** + * Overloaded assignment operator + */ + virtual domMip_levels &operator=( const domMip_levels &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_generate; + + typedef daeSmartRef domMipmap_generateRef; + typedef daeTArray domMipmap_generate_Array; + +/** + * By default it is assumed that mipmaps are supplied by the author so, if + * not all subsurfaces are initialized, it is invalid and will result in profile + * and platform specific behavior unless mipmap_generate is responsible for + * initializing the remainder of the sub-surfaces + */ + class domMipmap_generate : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_GENERATE; } + static daeInt ID() { return 26; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsBoolean value of the text data of this element. + */ + xsBoolean _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsBoolean of the value. + */ + xsBoolean getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsBoolean val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_generate(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_generate() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_generate &operator=( const domMipmap_generate &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * Specifying the type of a surface is mandatory though the type may be "UNTYPED". + * When a surface is typed as UNTYPED, it is said to be temporarily untyped + * and instead will be typed later by the context it is used in such as which + * samplers reference it in that are used in a particular technique or pass. + * If there is a type mismatch between what is set into it later and what + * the runtime decides the type should be the result in profile and platform + * specific behavior. + */ + domFx_surface_type_enum attrType; + +protected: // Elements +/** + * The common set of initalization options for surfaces. Choose which is + * appropriate for your surface based on the type attribute and other characteristics + * described by the annotation docs on the choiced child elements of this + * type. @see domFx_surface_init_common + */ + domFx_surface_init_commonRef elemFx_surface_init_common; +/** + * Contains a string representing the profile and platform specific texel + * format that the author would like this surface to use. If this element + * is not specified then the application will use a common format R8G8B8A8 + * with linear color gradient, not sRGB. @see domFormat + */ + domFormatRef elemFormat; +/** + * If the exact format cannot be resolved via the "format" element then the + * format_hint will describe the important features of the format so that + * the application may select a compatable or close format @see domFormat_hint + */ + domFx_surface_format_hint_commonRef elemFormat_hint; +/** + * The surface should be sized to these exact dimensions @see domSize + */ + domSizeRef elemSize; +/** + * The surface should be sized to a dimension based on this ratio of the viewport's + * dimensions in pixels @see domViewport_ratio + */ + domViewport_ratioRef elemViewport_ratio; +/** + * the surface should contain the following number of MIP levels. If this + * element is not present it is assumed that all miplevels exist until a dimension + * becomes 1 texel. To create a surface that has only one level of mip maps + * (mip=0) set this to 1. If the value is 0 the result is the same as if + * mip_levels was unspecified, all possible mip_levels will exist. @see domMip_levels + */ + domMip_levelsRef elemMip_levels; +/** + * By default it is assumed that mipmaps are supplied by the author so, if + * not all subsurfaces are initialized, it is invalid and will result in profile + * and platform specific behavior unless mipmap_generate is responsible for + * initializing the remainder of the sub-surfaces @see domMipmap_generate + */ + domMipmap_generateRef elemMipmap_generate; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the type attribute. + * @return Returns a domFx_surface_type_enum of the type attribute. + */ + domFx_surface_type_enum getType() const { return attrType; } + /** + * Sets the type attribute. + * @param atType The new value for the type attribute. + */ + void setType( domFx_surface_type_enum atType ) { attrType = atType; } + + /** + * Gets the fx_surface_init_common element. + * @return a daeSmartRef to the fx_surface_init_common element. + */ + const domFx_surface_init_commonRef getFx_surface_init_common() const { return elemFx_surface_init_common; } + /** + * Gets the format element. + * @return a daeSmartRef to the format element. + */ + const domFormatRef getFormat() const { return elemFormat; } + /** + * Gets the format_hint element. + * @return a daeSmartRef to the format_hint element. + */ + const domFx_surface_format_hint_commonRef getFormat_hint() const { return elemFormat_hint; } + /** + * Gets the size element. + * @return a daeSmartRef to the size element. + */ + const domSizeRef getSize() const { return elemSize; } + /** + * Gets the viewport_ratio element. + * @return a daeSmartRef to the viewport_ratio element. + */ + const domViewport_ratioRef getViewport_ratio() const { return elemViewport_ratio; } + /** + * Gets the mip_levels element. + * @return a daeSmartRef to the mip_levels element. + */ + const domMip_levelsRef getMip_levels() const { return elemMip_levels; } + /** + * Gets the mipmap_generate element. + * @return a daeSmartRef to the mipmap_generate element. + */ + const domMipmap_generateRef getMipmap_generate() const { return elemMipmap_generate; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domFx_surface_common_complexType(DAE& dae, daeElement* elt) : attrType(), elemFx_surface_init_common(), elemFormat(), elemFormat_hint(), elemSize(), elemViewport_ratio(), elemMip_levels(), elemMipmap_generate(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_surface_common_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domFx_surface_common_complexType &operator=( const domFx_surface_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_surface_common_complexType. + */ +class domFx_surface_common : public daeElement, public domFx_surface_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_COMMON; } + static daeInt ID() { return 27; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the type attribute. + * @return Returns a domFx_surface_type_enum of the type attribute. + */ + domFx_surface_type_enum getType() const { return attrType; } + /** + * Sets the type attribute. + * @param atType The new value for the type attribute. + */ + void setType( domFx_surface_type_enum atType ) { attrType = atType; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domFx_surface_common(DAE& dae) : daeElement(dae), domFx_surface_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_surface_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_common &operator=( const domFx_surface_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_surface_format_hint_common.h b/include/1.4/dom/domFx_surface_format_hint_common.h new file mode 100644 index 0000000..6a53ecf --- /dev/null +++ b/include/1.4/dom/domFx_surface_format_hint_common.h @@ -0,0 +1,402 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_surface_format_hint_common_h__ +#define __domFx_surface_format_hint_common_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * If the exact format cannot be resolve via other methods then the format_hint + * will describe the important features of the format so that the application + * may select a compatable or close format + */ +class domFx_surface_format_hint_common_complexType +{ +public: + class domChannels; + + typedef daeSmartRef domChannelsRef; + typedef daeTArray domChannels_Array; + +/** + * The per-texel layout of the format. The length of the string indicate + * how many channels there are and the letter respresents the name of the + * channel. There are typically 0 to 4 channels. + */ + class domChannels : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CHANNELS; } + static daeInt ID() { return 6; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_surface_format_hint_channels_enum value of the text data of this element. + */ + domFx_surface_format_hint_channels_enum _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_surface_format_hint_channels_enum of the value. + */ + domFx_surface_format_hint_channels_enum getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_surface_format_hint_channels_enum val ) { _value = val; } + + protected: + /** + * Constructor + */ + domChannels(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domChannels() {} + /** + * Overloaded assignment operator + */ + virtual domChannels &operator=( const domChannels &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRange; + + typedef daeSmartRef domRangeRef; + typedef daeTArray domRange_Array; + +/** + * Each channel represents a range of values. Some example ranges are signed + * or unsigned integers, or between between a clamped range such as 0.0f to + * 1.0f, or high dynamic range via floating point + */ + class domRange : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RANGE; } + static daeInt ID() { return 7; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_surface_format_hint_range_enum value of the text data of this element. + */ + domFx_surface_format_hint_range_enum _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_surface_format_hint_range_enum of the value. + */ + domFx_surface_format_hint_range_enum getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_surface_format_hint_range_enum val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRange(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRange() {} + /** + * Overloaded assignment operator + */ + virtual domRange &operator=( const domRange &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPrecision; + + typedef daeSmartRef domPrecisionRef; + typedef daeTArray domPrecision_Array; + +/** + * Each channel of the texel has a precision. Typically these are all linked + * together. An exact format lay lower the precision of an individual channel + * but applying a higher precision by linking the channels together may still + * convey the same information. + */ + class domPrecision : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PRECISION; } + static daeInt ID() { return 8; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_surface_format_hint_precision_enum value of the text data of this element. + */ + domFx_surface_format_hint_precision_enum _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_surface_format_hint_precision_enum of the value. + */ + domFx_surface_format_hint_precision_enum getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_surface_format_hint_precision_enum val ) { _value = val; } + + protected: + /** + * Constructor + */ + domPrecision(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domPrecision() {} + /** + * Overloaded assignment operator + */ + virtual domPrecision &operator=( const domPrecision &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domOption; + + typedef daeSmartRef domOptionRef; + typedef daeTArray domOption_Array; + +/** + * Additional hints about data relationships and other things to help the + * application pick the best format. + */ + class domOption : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::OPTION; } + static daeInt ID() { return 9; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_surface_format_hint_option_enum value of the text data of this element. + */ + domFx_surface_format_hint_option_enum _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_surface_format_hint_option_enum of the value. + */ + domFx_surface_format_hint_option_enum getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_surface_format_hint_option_enum val ) { _value = val; } + + protected: + /** + * Constructor + */ + domOption(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domOption() {} + /** + * Overloaded assignment operator + */ + virtual domOption &operator=( const domOption &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * The per-texel layout of the format. The length of the string indicate + * how many channels there are and the letter respresents the name of the + * channel. There are typically 0 to 4 channels. @see domChannels + */ + domChannelsRef elemChannels; +/** + * Each channel represents a range of values. Some example ranges are signed + * or unsigned integers, or between between a clamped range such as 0.0f to + * 1.0f, or high dynamic range via floating point @see domRange + */ + domRangeRef elemRange; +/** + * Each channel of the texel has a precision. Typically these are all linked + * together. An exact format lay lower the precision of an individual channel + * but applying a higher precision by linking the channels together may still + * convey the same information. @see domPrecision + */ + domPrecisionRef elemPrecision; +/** + * Additional hints about data relationships and other things to help the + * application pick the best format. @see domOption + */ + domOption_Array elemOption_array; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the channels element. + * @return a daeSmartRef to the channels element. + */ + const domChannelsRef getChannels() const { return elemChannels; } + /** + * Gets the range element. + * @return a daeSmartRef to the range element. + */ + const domRangeRef getRange() const { return elemRange; } + /** + * Gets the precision element. + * @return a daeSmartRef to the precision element. + */ + const domPrecisionRef getPrecision() const { return elemPrecision; } + /** + * Gets the option element array. + * @return Returns a reference to the array of option elements. + */ + domOption_Array &getOption_array() { return elemOption_array; } + /** + * Gets the option element array. + * @return Returns a constant reference to the array of option elements. + */ + const domOption_Array &getOption_array() const { return elemOption_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domFx_surface_format_hint_common_complexType(DAE& dae, daeElement* elt) : elemChannels(), elemRange(), elemPrecision(), elemOption_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domFx_surface_format_hint_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_format_hint_common_complexType &operator=( const domFx_surface_format_hint_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_surface_format_hint_common_complexType. + */ +class domFx_surface_format_hint_common : public daeElement, public domFx_surface_format_hint_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_FORMAT_HINT_COMMON; } + static daeInt ID() { return 10; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_surface_format_hint_common(DAE& dae) : daeElement(dae), domFx_surface_format_hint_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_surface_format_hint_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_format_hint_common &operator=( const domFx_surface_format_hint_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_surface_init_common.h b/include/1.4/dom/domFx_surface_init_common.h new file mode 100644 index 0000000..8ff1721 --- /dev/null +++ b/include/1.4/dom/domFx_surface_init_common.h @@ -0,0 +1,259 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_surface_init_common_h__ +#define __domFx_surface_init_common_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * The common set of initalization options for surfaces. Choose which is + * appropriate for your surface based on type and other characteristics. described + * by the annotation docs on the child elements. + */ +class domFx_surface_init_common : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_INIT_COMMON; } + static daeInt ID() { return 168; } + virtual daeInt typeID() const { return ID(); } +public: + class domInit_as_null; + + typedef daeSmartRef domInit_as_nullRef; + typedef daeTArray domInit_as_null_Array; + +/** + * This surface is intended to be initialized later externally by a "setparam" + * element. If it is used before being initialized there is profile and platform + * specific behavior. Most elements on the surface element containing this + * will be ignored including mip_levels, mipmap_generate, size, viewport_ratio, + * and format. + */ + class domInit_as_null : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INIT_AS_NULL; } + static daeInt ID() { return 169; } + virtual daeInt typeID() const { return ID(); } + + protected: + /** + * Constructor + */ + domInit_as_null(DAE& dae) : daeElement(dae) {} + /** + * Destructor + */ + virtual ~domInit_as_null() {} + /** + * Overloaded assignment operator + */ + virtual domInit_as_null &operator=( const domInit_as_null &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInit_as_target; + + typedef daeSmartRef domInit_as_targetRef; + typedef daeTArray domInit_as_target_Array; + +/** + * Init as a target for depth, stencil, or color. It does not need image + * data. Surface should not have mipmap_generate when using this. + */ + class domInit_as_target : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INIT_AS_TARGET; } + static daeInt ID() { return 170; } + virtual daeInt typeID() const { return ID(); } + + protected: + /** + * Constructor + */ + domInit_as_target(DAE& dae) : daeElement(dae) {} + /** + * Destructor + */ + virtual ~domInit_as_target() {} + /** + * Overloaded assignment operator + */ + virtual domInit_as_target &operator=( const domInit_as_target &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * This surface is intended to be initialized later externally by a "setparam" + * element. If it is used before being initialized there is profile and platform + * specific behavior. Most elements on the surface element containing this + * will be ignored including mip_levels, mipmap_generate, size, viewport_ratio, + * and format. @see domInit_as_null + */ + domInit_as_nullRef elemInit_as_null; +/** + * Init as a target for depth, stencil, or color. It does not need image + * data. Surface should not have mipmap_generate when using this. @see domInit_as_target + */ + domInit_as_targetRef elemInit_as_target; +/** + * Init a CUBE from a compound image such as DDS @see domInit_cube + */ + domFx_surface_init_cube_commonRef elemInit_cube; +/** + * Init a 3D from a compound image such as DDS @see domInit_volume + */ + domFx_surface_init_volume_commonRef elemInit_volume; +/** + * Init a 1D,2D,RECT,DEPTH from a compound image such as DDS @see domInit_planar + */ + domFx_surface_init_planar_commonRef elemInit_planar; +/** + * Initialize the surface one sub-surface at a time by specifying combinations + * of mip, face, and slice which make sense for a particular surface type. + * Each sub-surface is initialized by a common 2D image, not a complex compound + * image such as DDS. If not all subsurfaces are initialized, it is invalid + * and will result in profile and platform specific behavior unless mipmap_generate + * is responsible for initializing the remainder of the sub-surfaces @see + * domInit_from + */ + domFx_surface_init_from_common_Array elemInit_from_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the init_as_null element. + * @return a daeSmartRef to the init_as_null element. + */ + const domInit_as_nullRef getInit_as_null() const { return elemInit_as_null; } + /** + * Gets the init_as_target element. + * @return a daeSmartRef to the init_as_target element. + */ + const domInit_as_targetRef getInit_as_target() const { return elemInit_as_target; } + /** + * Gets the init_cube element. + * @return a daeSmartRef to the init_cube element. + */ + const domFx_surface_init_cube_commonRef getInit_cube() const { return elemInit_cube; } + /** + * Gets the init_volume element. + * @return a daeSmartRef to the init_volume element. + */ + const domFx_surface_init_volume_commonRef getInit_volume() const { return elemInit_volume; } + /** + * Gets the init_planar element. + * @return a daeSmartRef to the init_planar element. + */ + const domFx_surface_init_planar_commonRef getInit_planar() const { return elemInit_planar; } + /** + * Gets the init_from element array. + * @return Returns a reference to the array of init_from elements. + */ + domFx_surface_init_from_common_Array &getInit_from_array() { return elemInit_from_array; } + /** + * Gets the init_from element array. + * @return Returns a constant reference to the array of init_from elements. + */ + const domFx_surface_init_from_common_Array &getInit_from_array() const { return elemInit_from_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domFx_surface_init_common(DAE& dae) : daeElement(dae), elemInit_as_null(), elemInit_as_target(), elemInit_cube(), elemInit_volume(), elemInit_planar(), elemInit_from_array() {} + /** + * Destructor + */ + virtual ~domFx_surface_init_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_common &operator=( const domFx_surface_init_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_surface_init_cube_common.h b/include/1.4/dom/domFx_surface_init_cube_common.h new file mode 100644 index 0000000..8631028 --- /dev/null +++ b/include/1.4/dom/domFx_surface_init_cube_common.h @@ -0,0 +1,414 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_surface_init_cube_common_h__ +#define __domFx_surface_init_cube_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_surface_init_cube_common_complexType +{ +public: + class domAll; + + typedef daeSmartRef domAllRef; + typedef daeTArray domAll_Array; + +/** + * Init the entire surface with one compound image such as DDS + */ + class domAll : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALL; } + static daeInt ID() { return 16; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsIDREF attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsIDREF reference of the ref attribute. + */ + xsIDREF &getRef() { return attrRef; } + /** + * Gets the ref attribute. + * @return Returns a constant xsIDREF reference of the ref attribute. + */ + const xsIDREF &getRef() const{ return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domAll(DAE& dae) : daeElement(dae), attrRef(*this) {} + /** + * Destructor + */ + virtual ~domAll() {} + /** + * Overloaded assignment operator + */ + virtual domAll &operator=( const domAll &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPrimary; + + typedef daeSmartRef domPrimaryRef; + typedef daeTArray domPrimary_Array; + +/** + * Init all primary mip level 0 subsurfaces with one compound image such as + * DDS. Use of this element expects that the surface has element mip_levels=0 + * or mipmap_generate. + */ + class domPrimary : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PRIMARY; } + static daeInt ID() { return 17; } + virtual daeInt typeID() const { return ID(); } + public: + class domOrder; + + typedef daeSmartRef domOrderRef; + typedef daeTArray domOrder_Array; + +/** + * If the image dues not natively describe the face ordering then this series + * of order elements will describe which face the index belongs too + */ + class domOrder : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ORDER; } + static daeInt ID() { return 18; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_surface_face_enum value of the text data of this element. + */ + domFx_surface_face_enum _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_surface_face_enum of the value. + */ + domFx_surface_face_enum getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_surface_face_enum val ) { _value = val; } + + protected: + /** + * Constructor + */ + domOrder(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domOrder() {} + /** + * Overloaded assignment operator + */ + virtual domOrder &operator=( const domOrder &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute + xsIDREF attrRef; + + protected: // Element +/** + * If the image dues not natively describe the face ordering then this series + * of order elements will describe which face the index belongs too @see domOrder + */ + domOrder_Array elemOrder_array; + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsIDREF reference of the ref attribute. + */ + xsIDREF &getRef() { return attrRef; } + /** + * Gets the ref attribute. + * @return Returns a constant xsIDREF reference of the ref attribute. + */ + const xsIDREF &getRef() const{ return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + /** + * Gets the order element array. + * @return Returns a reference to the array of order elements. + */ + domOrder_Array &getOrder_array() { return elemOrder_array; } + /** + * Gets the order element array. + * @return Returns a constant reference to the array of order elements. + */ + const domOrder_Array &getOrder_array() const { return elemOrder_array; } + protected: + /** + * Constructor + */ + domPrimary(DAE& dae) : daeElement(dae), attrRef(*this), elemOrder_array() {} + /** + * Destructor + */ + virtual ~domPrimary() {} + /** + * Overloaded assignment operator + */ + virtual domPrimary &operator=( const domPrimary &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFace; + + typedef daeSmartRef domFaceRef; + typedef daeTArray domFace_Array; + +/** + * Init each face mipchain with one compound image such as DDS + */ + class domFace : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FACE; } + static daeInt ID() { return 19; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsIDREF attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsIDREF reference of the ref attribute. + */ + xsIDREF &getRef() { return attrRef; } + /** + * Gets the ref attribute. + * @return Returns a constant xsIDREF reference of the ref attribute. + */ + const xsIDREF &getRef() const{ return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domFace(DAE& dae) : daeElement(dae), attrRef(*this) {} + /** + * Destructor + */ + virtual ~domFace() {} + /** + * Overloaded assignment operator + */ + virtual domFace &operator=( const domFace &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * Init the entire surface with one compound image such as DDS @see domAll + */ + domAllRef elemAll; +/** + * Init all primary mip level 0 subsurfaces with one compound image such as + * DDS. Use of this element expects that the surface has element mip_levels=0 + * or mipmap_generate. @see domPrimary + */ + domPrimaryRef elemPrimary; +/** + * Init each face mipchain with one compound image such as DDS @see domFace + */ + domFace_Array elemFace_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the all element. + * @return a daeSmartRef to the all element. + */ + const domAllRef getAll() const { return elemAll; } + /** + * Gets the primary element. + * @return a daeSmartRef to the primary element. + */ + const domPrimaryRef getPrimary() const { return elemPrimary; } + /** + * Gets the face element array. + * @return Returns a reference to the array of face elements. + */ + domFace_Array &getFace_array() { return elemFace_array; } + /** + * Gets the face element array. + * @return Returns a constant reference to the array of face elements. + */ + const domFace_Array &getFace_array() const { return elemFace_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domFx_surface_init_cube_common_complexType(DAE& dae, daeElement* elt) : elemAll(), elemPrimary(), elemFace_array() {} + /** + * Destructor + */ + virtual ~domFx_surface_init_cube_common_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_cube_common_complexType &operator=( const domFx_surface_init_cube_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_surface_init_cube_common_complexType. + */ +class domFx_surface_init_cube_common : public daeElement, public domFx_surface_init_cube_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_INIT_CUBE_COMMON; } + static daeInt ID() { return 20; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_surface_init_cube_common(DAE& dae) : daeElement(dae), domFx_surface_init_cube_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_surface_init_cube_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_cube_common &operator=( const domFx_surface_init_cube_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_surface_init_from_common.h b/include/1.4/dom/domFx_surface_init_from_common.h new file mode 100644 index 0000000..52b9570 --- /dev/null +++ b/include/1.4/dom/domFx_surface_init_from_common.h @@ -0,0 +1,178 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_surface_init_from_common_h__ +#define __domFx_surface_init_from_common_h__ + +#include +#include +#include + +class DAE; + +/** + * This element is an IDREF which specifies the image to use to initialize + * a specific mip of a 1D or 2D surface, 3D slice, or Cube face. + */ +class domFx_surface_init_from_common_complexType +{ +protected: // Attributes + xsUnsignedInt attrMip; + xsUnsignedInt attrSlice; + domFx_surface_face_enum attrFace; + +protected: // Value + /** + * The xsIDREF value of the text data of this element. + */ + xsIDREF _value; + +public: //Accessors and Mutators + /** + * Gets the mip attribute. + * @return Returns a xsUnsignedInt of the mip attribute. + */ + xsUnsignedInt getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsUnsignedInt atMip ) { attrMip = atMip; } + + /** + * Gets the slice attribute. + * @return Returns a xsUnsignedInt of the slice attribute. + */ + xsUnsignedInt getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsUnsignedInt atSlice ) { attrSlice = atSlice; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; } + + /** + * Gets the value of this element. + * @return Returns a xsIDREF of the value. + */ + xsIDREF &getValue() { return _value; } + /** + * Gets the value of this element. + * @return Returns a constant xsIDREF of the value. + */ + const xsIDREF &getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( const xsIDREF &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domFx_surface_init_from_common_complexType(DAE& dae, daeElement* elt) : attrMip(), attrSlice(), attrFace(), _value(*elt) {} + /** + * Destructor + */ + virtual ~domFx_surface_init_from_common_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_from_common_complexType &operator=( const domFx_surface_init_from_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_surface_init_from_common_complexType. + */ +class domFx_surface_init_from_common : public daeElement, public domFx_surface_init_from_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_INIT_FROM_COMMON; } + static daeInt ID() { return 21; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the mip attribute. + * @return Returns a xsUnsignedInt of the mip attribute. + */ + xsUnsignedInt getMip() const { return attrMip; } + /** + * Sets the mip attribute. + * @param atMip The new value for the mip attribute. + */ + void setMip( xsUnsignedInt atMip ) { attrMip = atMip; _validAttributeArray[0] = true; } + + /** + * Gets the slice attribute. + * @return Returns a xsUnsignedInt of the slice attribute. + */ + xsUnsignedInt getSlice() const { return attrSlice; } + /** + * Sets the slice attribute. + * @param atSlice The new value for the slice attribute. + */ + void setSlice( xsUnsignedInt atSlice ) { attrSlice = atSlice; _validAttributeArray[1] = true; } + + /** + * Gets the face attribute. + * @return Returns a domFx_surface_face_enum of the face attribute. + */ + domFx_surface_face_enum getFace() const { return attrFace; } + /** + * Sets the face attribute. + * @param atFace The new value for the face attribute. + */ + void setFace( domFx_surface_face_enum atFace ) { attrFace = atFace; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domFx_surface_init_from_common(DAE& dae) : daeElement(dae), domFx_surface_init_from_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_surface_init_from_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_from_common &operator=( const domFx_surface_init_from_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_surface_init_planar_common.h b/include/1.4/dom/domFx_surface_init_planar_common.h new file mode 100644 index 0000000..04dfe2d --- /dev/null +++ b/include/1.4/dom/domFx_surface_init_planar_common.h @@ -0,0 +1,184 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_surface_init_planar_common_h__ +#define __domFx_surface_init_planar_common_h__ + +#include +#include +#include + +class DAE; + +/** + * For 1D, 2D, RECT surface types + */ +class domFx_surface_init_planar_common_complexType +{ +public: + class domAll; + + typedef daeSmartRef domAllRef; + typedef daeTArray domAll_Array; + +/** + * Init the entire surface with one compound image such as DDS + */ + class domAll : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALL; } + static daeInt ID() { return 11; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsIDREF attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsIDREF reference of the ref attribute. + */ + xsIDREF &getRef() { return attrRef; } + /** + * Gets the ref attribute. + * @return Returns a constant xsIDREF reference of the ref attribute. + */ + const xsIDREF &getRef() const{ return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domAll(DAE& dae) : daeElement(dae), attrRef(*this) {} + /** + * Destructor + */ + virtual ~domAll() {} + /** + * Overloaded assignment operator + */ + virtual domAll &operator=( const domAll &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Element +/** + * Init the entire surface with one compound image such as DDS @see domAll + */ + domAllRef elemAll; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the all element. + * @return a daeSmartRef to the all element. + */ + const domAllRef getAll() const { return elemAll; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domFx_surface_init_planar_common_complexType(DAE& dae, daeElement* elt) : elemAll() {} + /** + * Destructor + */ + virtual ~domFx_surface_init_planar_common_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_planar_common_complexType &operator=( const domFx_surface_init_planar_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_surface_init_planar_common_complexType. + */ +class domFx_surface_init_planar_common : public daeElement, public domFx_surface_init_planar_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_INIT_PLANAR_COMMON; } + static daeInt ID() { return 12; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_surface_init_planar_common(DAE& dae) : daeElement(dae), domFx_surface_init_planar_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_surface_init_planar_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_planar_common &operator=( const domFx_surface_init_planar_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domFx_surface_init_volume_common.h b/include/1.4/dom/domFx_surface_init_volume_common.h new file mode 100644 index 0000000..a002cf7 --- /dev/null +++ b/include/1.4/dom/domFx_surface_init_volume_common.h @@ -0,0 +1,256 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domFx_surface_init_volume_common_h__ +#define __domFx_surface_init_volume_common_h__ + +#include +#include +#include + +class DAE; + +class domFx_surface_init_volume_common_complexType +{ +public: + class domAll; + + typedef daeSmartRef domAllRef; + typedef daeTArray domAll_Array; + +/** + * Init the entire surface with one compound image such as DDS + */ + class domAll : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALL; } + static daeInt ID() { return 13; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsIDREF attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsIDREF reference of the ref attribute. + */ + xsIDREF &getRef() { return attrRef; } + /** + * Gets the ref attribute. + * @return Returns a constant xsIDREF reference of the ref attribute. + */ + const xsIDREF &getRef() const{ return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domAll(DAE& dae) : daeElement(dae), attrRef(*this) {} + /** + * Destructor + */ + virtual ~domAll() {} + /** + * Overloaded assignment operator + */ + virtual domAll &operator=( const domAll &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPrimary; + + typedef daeSmartRef domPrimaryRef; + typedef daeTArray domPrimary_Array; + +/** + * Init mip level 0 of the surface with one compound image such as DDS. Use + * of this element expects that the surface has element mip_levels=0 or mipmap_generate. + */ + class domPrimary : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PRIMARY; } + static daeInt ID() { return 14; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsIDREF attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsIDREF reference of the ref attribute. + */ + xsIDREF &getRef() { return attrRef; } + /** + * Gets the ref attribute. + * @return Returns a constant xsIDREF reference of the ref attribute. + */ + const xsIDREF &getRef() const{ return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( const xsIDREF &atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domPrimary(DAE& dae) : daeElement(dae), attrRef(*this) {} + /** + * Destructor + */ + virtual ~domPrimary() {} + /** + * Overloaded assignment operator + */ + virtual domPrimary &operator=( const domPrimary &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * Init the entire surface with one compound image such as DDS @see domAll + */ + domAllRef elemAll; +/** + * Init mip level 0 of the surface with one compound image such as DDS. Use + * of this element expects that the surface has element mip_levels=0 or mipmap_generate. + * @see domPrimary + */ + domPrimaryRef elemPrimary; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the all element. + * @return a daeSmartRef to the all element. + */ + const domAllRef getAll() const { return elemAll; } + /** + * Gets the primary element. + * @return a daeSmartRef to the primary element. + */ + const domPrimaryRef getPrimary() const { return elemPrimary; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domFx_surface_init_volume_common_complexType(DAE& dae, daeElement* elt) : elemAll(), elemPrimary() {} + /** + * Destructor + */ + virtual ~domFx_surface_init_volume_common_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_volume_common_complexType &operator=( const domFx_surface_init_volume_common_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domFx_surface_init_volume_common_complexType. + */ +class domFx_surface_init_volume_common : public daeElement, public domFx_surface_init_volume_common_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FX_SURFACE_INIT_VOLUME_COMMON; } + static daeInt ID() { return 15; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domFx_surface_init_volume_common(DAE& dae) : daeElement(dae), domFx_surface_init_volume_common_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domFx_surface_init_volume_common() {} + /** + * Overloaded assignment operator + */ + virtual domFx_surface_init_volume_common &operator=( const domFx_surface_init_volume_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGeometry.h b/include/1.4/dom/domGeometry.h new file mode 100644 index 0000000..d02d926 --- /dev/null +++ b/include/1.4/dom/domGeometry.h @@ -0,0 +1,180 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGeometry_h__ +#define __domGeometry_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +class DAE; + +/** + * Geometry describes the visual shape and appearance of an object in the + * scene. The geometry element categorizes the declaration of geometric information. + * Geometry is a branch of mathematics that deals with the measurement, properties, + * and relationships of points, lines, angles, surfaces, and solids. + */ +class domGeometry : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GEOMETRY; } + static daeInt ID() { return 613; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The geometry element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The geometry element may contain only one mesh or convex_mesh. @see domConvex_mesh + */ + domConvex_meshRef elemConvex_mesh; +/** + * The geometry element may contain only one mesh or convex_mesh. @see domMesh + */ + domMeshRef elemMesh; + domSplineRef elemSpline; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the convex_mesh element. + * @return a daeSmartRef to the convex_mesh element. + */ + const domConvex_meshRef getConvex_mesh() const { return elemConvex_mesh; } + /** + * Gets the mesh element. + * @return a daeSmartRef to the mesh element. + */ + const domMeshRef getMesh() const { return elemMesh; } + /** + * Gets the spline element. + * @return a daeSmartRef to the spline element. + */ + const domSplineRef getSpline() const { return elemSpline; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGeometry(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemConvex_mesh(), elemMesh(), elemSpline(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domGeometry() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGeometry &operator=( const domGeometry &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_hook_abstract.h b/include/1.4/dom/domGl_hook_abstract.h new file mode 100644 index 0000000..a8a02f6 --- /dev/null +++ b/include/1.4/dom/domGl_hook_abstract.h @@ -0,0 +1,59 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_hook_abstract_h__ +#define __domGl_hook_abstract_h__ + +#include +#include +#include + +class DAE; + +class domGl_hook_abstract : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_HOOK_ABSTRACT; } + static daeInt ID() { return 729; } + virtual daeInt typeID() const { return ID(); } + +protected: + /** + * Constructor + */ + domGl_hook_abstract(DAE& dae) : daeElement(dae) {} + /** + * Destructor + */ + virtual ~domGl_hook_abstract() {} + /** + * Overloaded assignment operator + */ + virtual domGl_hook_abstract &operator=( const domGl_hook_abstract &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_pipeline_settings.h b/include/1.4/dom/domGl_pipeline_settings.h new file mode 100644 index 0000000..24e5841 --- /dev/null +++ b/include/1.4/dom/domGl_pipeline_settings.h @@ -0,0 +1,10825 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_pipeline_settings_h__ +#define __domGl_pipeline_settings_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * A group that defines all of the renderstates used for the CG and GLSL profiles. + */ +class domGl_pipeline_settings : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_PIPELINE_SETTINGS; } + static daeInt ID() { return 218; } + virtual daeInt typeID() const { return ID(); } +public: + class domAlpha_func; + + typedef daeSmartRef domAlpha_funcRef; + typedef daeTArray domAlpha_func_Array; + + class domAlpha_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALPHA_FUNC; } + static daeInt ID() { return 219; } + virtual daeInt typeID() const { return ID(); } + public: + class domFunc; + + typedef daeSmartRef domFuncRef; + typedef daeTArray domFunc_Array; + + class domFunc : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FUNC; } + static daeInt ID() { return 220; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFunc(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFunc() {} + /** + * Overloaded assignment operator + */ + virtual domFunc &operator=( const domFunc &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domValue; + + typedef daeSmartRef domValueRef; + typedef daeTArray domValue_Array; + + class domValue : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VALUE; } + static daeInt ID() { return 221; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_alpha_value_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_alpha_value_type of the value attribute. + */ + domGl_alpha_value_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_alpha_value_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domValue(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domValue() {} + /** + * Overloaded assignment operator + */ + virtual domValue &operator=( const domValue &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFuncRef elemFunc; + domValueRef elemValue; + + public: //Accessors and Mutators + /** + * Gets the func element. + * @return a daeSmartRef to the func element. + */ + const domFuncRef getFunc() const { return elemFunc; } + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domValueRef getValue() const { return elemValue; } + protected: + /** + * Constructor + */ + domAlpha_func(DAE& dae) : daeElement(dae), elemFunc(), elemValue() {} + /** + * Destructor + */ + virtual ~domAlpha_func() {} + /** + * Overloaded assignment operator + */ + virtual domAlpha_func &operator=( const domAlpha_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_func; + + typedef daeSmartRef domBlend_funcRef; + typedef daeTArray domBlend_func_Array; + + class domBlend_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_FUNC; } + static daeInt ID() { return 222; } + virtual daeInt typeID() const { return ID(); } + public: + class domSrc; + + typedef daeSmartRef domSrcRef; + typedef daeTArray domSrc_Array; + + class domSrc : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SRC; } + static daeInt ID() { return 223; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSrc(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSrc() {} + /** + * Overloaded assignment operator + */ + virtual domSrc &operator=( const domSrc &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDest; + + typedef daeSmartRef domDestRef; + typedef daeTArray domDest_Array; + + class domDest : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEST; } + static daeInt ID() { return 224; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDest(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDest() {} + /** + * Overloaded assignment operator + */ + virtual domDest &operator=( const domDest &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domSrcRef elemSrc; + domDestRef elemDest; + + public: //Accessors and Mutators + /** + * Gets the src element. + * @return a daeSmartRef to the src element. + */ + const domSrcRef getSrc() const { return elemSrc; } + /** + * Gets the dest element. + * @return a daeSmartRef to the dest element. + */ + const domDestRef getDest() const { return elemDest; } + protected: + /** + * Constructor + */ + domBlend_func(DAE& dae) : daeElement(dae), elemSrc(), elemDest() {} + /** + * Destructor + */ + virtual ~domBlend_func() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_func &operator=( const domBlend_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_func_separate; + + typedef daeSmartRef domBlend_func_separateRef; + typedef daeTArray domBlend_func_separate_Array; + + class domBlend_func_separate : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_FUNC_SEPARATE; } + static daeInt ID() { return 225; } + virtual daeInt typeID() const { return ID(); } + public: + class domSrc_rgb; + + typedef daeSmartRef domSrc_rgbRef; + typedef daeTArray domSrc_rgb_Array; + + class domSrc_rgb : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SRC_RGB; } + static daeInt ID() { return 226; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSrc_rgb(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSrc_rgb() {} + /** + * Overloaded assignment operator + */ + virtual domSrc_rgb &operator=( const domSrc_rgb &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDest_rgb; + + typedef daeSmartRef domDest_rgbRef; + typedef daeTArray domDest_rgb_Array; + + class domDest_rgb : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEST_RGB; } + static daeInt ID() { return 227; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDest_rgb(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDest_rgb() {} + /** + * Overloaded assignment operator + */ + virtual domDest_rgb &operator=( const domDest_rgb &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSrc_alpha; + + typedef daeSmartRef domSrc_alphaRef; + typedef daeTArray domSrc_alpha_Array; + + class domSrc_alpha : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SRC_ALPHA; } + static daeInt ID() { return 228; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSrc_alpha(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSrc_alpha() {} + /** + * Overloaded assignment operator + */ + virtual domSrc_alpha &operator=( const domSrc_alpha &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDest_alpha; + + typedef daeSmartRef domDest_alphaRef; + typedef daeTArray domDest_alpha_Array; + + class domDest_alpha : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEST_ALPHA; } + static daeInt ID() { return 229; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDest_alpha(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDest_alpha() {} + /** + * Overloaded assignment operator + */ + virtual domDest_alpha &operator=( const domDest_alpha &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domSrc_rgbRef elemSrc_rgb; + domDest_rgbRef elemDest_rgb; + domSrc_alphaRef elemSrc_alpha; + domDest_alphaRef elemDest_alpha; + + public: //Accessors and Mutators + /** + * Gets the src_rgb element. + * @return a daeSmartRef to the src_rgb element. + */ + const domSrc_rgbRef getSrc_rgb() const { return elemSrc_rgb; } + /** + * Gets the dest_rgb element. + * @return a daeSmartRef to the dest_rgb element. + */ + const domDest_rgbRef getDest_rgb() const { return elemDest_rgb; } + /** + * Gets the src_alpha element. + * @return a daeSmartRef to the src_alpha element. + */ + const domSrc_alphaRef getSrc_alpha() const { return elemSrc_alpha; } + /** + * Gets the dest_alpha element. + * @return a daeSmartRef to the dest_alpha element. + */ + const domDest_alphaRef getDest_alpha() const { return elemDest_alpha; } + protected: + /** + * Constructor + */ + domBlend_func_separate(DAE& dae) : daeElement(dae), elemSrc_rgb(), elemDest_rgb(), elemSrc_alpha(), elemDest_alpha() {} + /** + * Destructor + */ + virtual ~domBlend_func_separate() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_func_separate &operator=( const domBlend_func_separate &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_equation; + + typedef daeSmartRef domBlend_equationRef; + typedef daeTArray domBlend_equation_Array; + + class domBlend_equation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_EQUATION; } + static daeInt ID() { return 230; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_equation_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_equation_type of the value attribute. + */ + domGl_blend_equation_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_equation_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domBlend_equation(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domBlend_equation() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_equation &operator=( const domBlend_equation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_equation_separate; + + typedef daeSmartRef domBlend_equation_separateRef; + typedef daeTArray domBlend_equation_separate_Array; + + class domBlend_equation_separate : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_EQUATION_SEPARATE; } + static daeInt ID() { return 231; } + virtual daeInt typeID() const { return ID(); } + public: + class domRgb; + + typedef daeSmartRef domRgbRef; + typedef daeTArray domRgb_Array; + + class domRgb : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RGB; } + static daeInt ID() { return 232; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_equation_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_equation_type of the value attribute. + */ + domGl_blend_equation_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_equation_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domRgb(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domRgb() {} + /** + * Overloaded assignment operator + */ + virtual domRgb &operator=( const domRgb &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domAlpha; + + typedef daeSmartRef domAlphaRef; + typedef daeTArray domAlpha_Array; + + class domAlpha : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALPHA; } + static daeInt ID() { return 233; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_equation_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_equation_type of the value attribute. + */ + domGl_blend_equation_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_equation_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domAlpha(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domAlpha() {} + /** + * Overloaded assignment operator + */ + virtual domAlpha &operator=( const domAlpha &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domRgbRef elemRgb; + domAlphaRef elemAlpha; + + public: //Accessors and Mutators + /** + * Gets the rgb element. + * @return a daeSmartRef to the rgb element. + */ + const domRgbRef getRgb() const { return elemRgb; } + /** + * Gets the alpha element. + * @return a daeSmartRef to the alpha element. + */ + const domAlphaRef getAlpha() const { return elemAlpha; } + protected: + /** + * Constructor + */ + domBlend_equation_separate(DAE& dae) : daeElement(dae), elemRgb(), elemAlpha() {} + /** + * Destructor + */ + virtual ~domBlend_equation_separate() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_equation_separate &operator=( const domBlend_equation_separate &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_material; + + typedef daeSmartRef domColor_materialRef; + typedef daeTArray domColor_material_Array; + + class domColor_material : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_MATERIAL; } + static daeInt ID() { return 234; } + virtual daeInt typeID() const { return ID(); } + public: + class domFace; + + typedef daeSmartRef domFaceRef; + typedef daeTArray domFace_Array; + + class domFace : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FACE; } + static daeInt ID() { return 235; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_face_type of the value attribute. + */ + domGl_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFace(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFace() {} + /** + * Overloaded assignment operator + */ + virtual domFace &operator=( const domFace &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMode; + + typedef daeSmartRef domModeRef; + typedef daeTArray domMode_Array; + + class domMode : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODE; } + static daeInt ID() { return 236; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_material_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_material_type of the value attribute. + */ + domGl_material_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_material_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMode(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMode() {} + /** + * Overloaded assignment operator + */ + virtual domMode &operator=( const domMode &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFaceRef elemFace; + domModeRef elemMode; + + public: //Accessors and Mutators + /** + * Gets the face element. + * @return a daeSmartRef to the face element. + */ + const domFaceRef getFace() const { return elemFace; } + /** + * Gets the mode element. + * @return a daeSmartRef to the mode element. + */ + const domModeRef getMode() const { return elemMode; } + protected: + /** + * Constructor + */ + domColor_material(DAE& dae) : daeElement(dae), elemFace(), elemMode() {} + /** + * Destructor + */ + virtual ~domColor_material() {} + /** + * Overloaded assignment operator + */ + virtual domColor_material &operator=( const domColor_material &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCull_face; + + typedef daeSmartRef domCull_faceRef; + typedef daeTArray domCull_face_Array; + + class domCull_face : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CULL_FACE; } + static daeInt ID() { return 237; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_face_type of the value attribute. + */ + domGl_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domCull_face(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domCull_face() {} + /** + * Overloaded assignment operator + */ + virtual domCull_face &operator=( const domCull_face &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_func; + + typedef daeSmartRef domDepth_funcRef; + typedef daeTArray domDepth_func_Array; + + class domDepth_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_FUNC; } + static daeInt ID() { return 238; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_func(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_func() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_func &operator=( const domDepth_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_mode; + + typedef daeSmartRef domFog_modeRef; + typedef daeTArray domFog_mode_Array; + + class domFog_mode : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_MODE; } + static daeInt ID() { return 239; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_fog_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_fog_type of the value attribute. + */ + domGl_fog_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_fog_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_mode(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_mode() {} + /** + * Overloaded assignment operator + */ + virtual domFog_mode &operator=( const domFog_mode &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_coord_src; + + typedef daeSmartRef domFog_coord_srcRef; + typedef daeTArray domFog_coord_src_Array; + + class domFog_coord_src : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_COORD_SRC; } + static daeInt ID() { return 240; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_fog_coord_src_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_fog_coord_src_type of the value attribute. + */ + domGl_fog_coord_src_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_fog_coord_src_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_coord_src(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_coord_src() {} + /** + * Overloaded assignment operator + */ + virtual domFog_coord_src &operator=( const domFog_coord_src &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFront_face; + + typedef daeSmartRef domFront_faceRef; + typedef daeTArray domFront_face_Array; + + class domFront_face : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FRONT_FACE; } + static daeInt ID() { return 241; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_front_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_front_face_type of the value attribute. + */ + domGl_front_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_front_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFront_face(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFront_face() {} + /** + * Overloaded assignment operator + */ + virtual domFront_face &operator=( const domFront_face &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_model_color_control; + + typedef daeSmartRef domLight_model_color_controlRef; + typedef daeTArray domLight_model_color_control_Array; + + class domLight_model_color_control : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_MODEL_COLOR_CONTROL; } + static daeInt ID() { return 242; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_light_model_color_control_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_light_model_color_control_type of the value attribute. + */ + domGl_light_model_color_control_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_light_model_color_control_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLight_model_color_control(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLight_model_color_control() {} + /** + * Overloaded assignment operator + */ + virtual domLight_model_color_control &operator=( const domLight_model_color_control &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLogic_op; + + typedef daeSmartRef domLogic_opRef; + typedef daeTArray domLogic_op_Array; + + class domLogic_op : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LOGIC_OP; } + static daeInt ID() { return 243; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_logic_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_logic_op_type of the value attribute. + */ + domGl_logic_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_logic_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLogic_op(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLogic_op() {} + /** + * Overloaded assignment operator + */ + virtual domLogic_op &operator=( const domLogic_op &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_mode; + + typedef daeSmartRef domPolygon_modeRef; + typedef daeTArray domPolygon_mode_Array; + + class domPolygon_mode : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_MODE; } + static daeInt ID() { return 244; } + virtual daeInt typeID() const { return ID(); } + public: + class domFace; + + typedef daeSmartRef domFaceRef; + typedef daeTArray domFace_Array; + + class domFace : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FACE; } + static daeInt ID() { return 245; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_face_type of the value attribute. + */ + domGl_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFace(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFace() {} + /** + * Overloaded assignment operator + */ + virtual domFace &operator=( const domFace &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMode; + + typedef daeSmartRef domModeRef; + typedef daeTArray domMode_Array; + + class domMode : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODE; } + static daeInt ID() { return 246; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_polygon_mode_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_polygon_mode_type of the value attribute. + */ + domGl_polygon_mode_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_polygon_mode_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMode(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMode() {} + /** + * Overloaded assignment operator + */ + virtual domMode &operator=( const domMode &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFaceRef elemFace; + domModeRef elemMode; + + public: //Accessors and Mutators + /** + * Gets the face element. + * @return a daeSmartRef to the face element. + */ + const domFaceRef getFace() const { return elemFace; } + /** + * Gets the mode element. + * @return a daeSmartRef to the mode element. + */ + const domModeRef getMode() const { return elemMode; } + protected: + /** + * Constructor + */ + domPolygon_mode(DAE& dae) : daeElement(dae), elemFace(), elemMode() {} + /** + * Destructor + */ + virtual ~domPolygon_mode() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_mode &operator=( const domPolygon_mode &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domShade_model; + + typedef daeSmartRef domShade_modelRef; + typedef daeTArray domShade_model_Array; + + class domShade_model : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHADE_MODEL; } + static daeInt ID() { return 247; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_shade_model_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_shade_model_type of the value attribute. + */ + domGl_shade_model_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_shade_model_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domShade_model(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domShade_model() {} + /** + * Overloaded assignment operator + */ + virtual domShade_model &operator=( const domShade_model &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_func; + + typedef daeSmartRef domStencil_funcRef; + typedef daeTArray domStencil_func_Array; + + class domStencil_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_FUNC; } + static daeInt ID() { return 248; } + virtual daeInt typeID() const { return ID(); } + public: + class domFunc; + + typedef daeSmartRef domFuncRef; + typedef daeTArray domFunc_Array; + + class domFunc : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FUNC; } + static daeInt ID() { return 249; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFunc(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFunc() {} + /** + * Overloaded assignment operator + */ + virtual domFunc &operator=( const domFunc &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRef; + + typedef daeSmartRef domRefRef; + typedef daeTArray domRef_Array; + + class domRef : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REF; } + static daeInt ID() { return 250; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsUnsignedByte attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a xsUnsignedByte of the value attribute. + */ + xsUnsignedByte getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( xsUnsignedByte atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domRef(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domRef() {} + /** + * Overloaded assignment operator + */ + virtual domRef &operator=( const domRef &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMask; + + typedef daeSmartRef domMaskRef; + typedef daeTArray domMask_Array; + + class domMask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MASK; } + static daeInt ID() { return 251; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsUnsignedByte attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a xsUnsignedByte of the value attribute. + */ + xsUnsignedByte getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( xsUnsignedByte atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMask() {} + /** + * Overloaded assignment operator + */ + virtual domMask &operator=( const domMask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFuncRef elemFunc; + domRefRef elemRef; + domMaskRef elemMask; + + public: //Accessors and Mutators + /** + * Gets the func element. + * @return a daeSmartRef to the func element. + */ + const domFuncRef getFunc() const { return elemFunc; } + /** + * Gets the ref element. + * @return a daeSmartRef to the ref element. + */ + const domRefRef getRef() const { return elemRef; } + /** + * Gets the mask element. + * @return a daeSmartRef to the mask element. + */ + const domMaskRef getMask() const { return elemMask; } + protected: + /** + * Constructor + */ + domStencil_func(DAE& dae) : daeElement(dae), elemFunc(), elemRef(), elemMask() {} + /** + * Destructor + */ + virtual ~domStencil_func() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_func &operator=( const domStencil_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_op; + + typedef daeSmartRef domStencil_opRef; + typedef daeTArray domStencil_op_Array; + + class domStencil_op : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_OP; } + static daeInt ID() { return 252; } + virtual daeInt typeID() const { return ID(); } + public: + class domFail; + + typedef daeSmartRef domFailRef; + typedef daeTArray domFail_Array; + + class domFail : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FAIL; } + static daeInt ID() { return 253; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_stencil_op_type of the value attribute. + */ + domGl_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFail(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFail() {} + /** + * Overloaded assignment operator + */ + virtual domFail &operator=( const domFail &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domZfail; + + typedef daeSmartRef domZfailRef; + typedef daeTArray domZfail_Array; + + class domZfail : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ZFAIL; } + static daeInt ID() { return 254; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_stencil_op_type of the value attribute. + */ + domGl_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domZfail(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domZfail() {} + /** + * Overloaded assignment operator + */ + virtual domZfail &operator=( const domZfail &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domZpass; + + typedef daeSmartRef domZpassRef; + typedef daeTArray domZpass_Array; + + class domZpass : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ZPASS; } + static daeInt ID() { return 255; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_stencil_op_type of the value attribute. + */ + domGl_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domZpass(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domZpass() {} + /** + * Overloaded assignment operator + */ + virtual domZpass &operator=( const domZpass &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFailRef elemFail; + domZfailRef elemZfail; + domZpassRef elemZpass; + + public: //Accessors and Mutators + /** + * Gets the fail element. + * @return a daeSmartRef to the fail element. + */ + const domFailRef getFail() const { return elemFail; } + /** + * Gets the zfail element. + * @return a daeSmartRef to the zfail element. + */ + const domZfailRef getZfail() const { return elemZfail; } + /** + * Gets the zpass element. + * @return a daeSmartRef to the zpass element. + */ + const domZpassRef getZpass() const { return elemZpass; } + protected: + /** + * Constructor + */ + domStencil_op(DAE& dae) : daeElement(dae), elemFail(), elemZfail(), elemZpass() {} + /** + * Destructor + */ + virtual ~domStencil_op() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_op &operator=( const domStencil_op &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_func_separate; + + typedef daeSmartRef domStencil_func_separateRef; + typedef daeTArray domStencil_func_separate_Array; + + class domStencil_func_separate : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_FUNC_SEPARATE; } + static daeInt ID() { return 256; } + virtual daeInt typeID() const { return ID(); } + public: + class domFront; + + typedef daeSmartRef domFrontRef; + typedef daeTArray domFront_Array; + + class domFront : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FRONT; } + static daeInt ID() { return 257; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFront(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFront() {} + /** + * Overloaded assignment operator + */ + virtual domFront &operator=( const domFront &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBack; + + typedef daeSmartRef domBackRef; + typedef daeTArray domBack_Array; + + class domBack : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BACK; } + static daeInt ID() { return 258; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domBack(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domBack() {} + /** + * Overloaded assignment operator + */ + virtual domBack &operator=( const domBack &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRef; + + typedef daeSmartRef domRefRef; + typedef daeTArray domRef_Array; + + class domRef : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REF; } + static daeInt ID() { return 259; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsUnsignedByte attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a xsUnsignedByte of the value attribute. + */ + xsUnsignedByte getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( xsUnsignedByte atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domRef(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domRef() {} + /** + * Overloaded assignment operator + */ + virtual domRef &operator=( const domRef &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMask; + + typedef daeSmartRef domMaskRef; + typedef daeTArray domMask_Array; + + class domMask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MASK; } + static daeInt ID() { return 260; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsUnsignedByte attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a xsUnsignedByte of the value attribute. + */ + xsUnsignedByte getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( xsUnsignedByte atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMask() {} + /** + * Overloaded assignment operator + */ + virtual domMask &operator=( const domMask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFrontRef elemFront; + domBackRef elemBack; + domRefRef elemRef; + domMaskRef elemMask; + + public: //Accessors and Mutators + /** + * Gets the front element. + * @return a daeSmartRef to the front element. + */ + const domFrontRef getFront() const { return elemFront; } + /** + * Gets the back element. + * @return a daeSmartRef to the back element. + */ + const domBackRef getBack() const { return elemBack; } + /** + * Gets the ref element. + * @return a daeSmartRef to the ref element. + */ + const domRefRef getRef() const { return elemRef; } + /** + * Gets the mask element. + * @return a daeSmartRef to the mask element. + */ + const domMaskRef getMask() const { return elemMask; } + protected: + /** + * Constructor + */ + domStencil_func_separate(DAE& dae) : daeElement(dae), elemFront(), elemBack(), elemRef(), elemMask() {} + /** + * Destructor + */ + virtual ~domStencil_func_separate() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_func_separate &operator=( const domStencil_func_separate &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_op_separate; + + typedef daeSmartRef domStencil_op_separateRef; + typedef daeTArray domStencil_op_separate_Array; + + class domStencil_op_separate : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_OP_SEPARATE; } + static daeInt ID() { return 261; } + virtual daeInt typeID() const { return ID(); } + public: + class domFace; + + typedef daeSmartRef domFaceRef; + typedef daeTArray domFace_Array; + + class domFace : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FACE; } + static daeInt ID() { return 262; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_face_type of the value attribute. + */ + domGl_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFace(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFace() {} + /** + * Overloaded assignment operator + */ + virtual domFace &operator=( const domFace &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFail; + + typedef daeSmartRef domFailRef; + typedef daeTArray domFail_Array; + + class domFail : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FAIL; } + static daeInt ID() { return 263; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_stencil_op_type of the value attribute. + */ + domGl_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFail(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFail() {} + /** + * Overloaded assignment operator + */ + virtual domFail &operator=( const domFail &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domZfail; + + typedef daeSmartRef domZfailRef; + typedef daeTArray domZfail_Array; + + class domZfail : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ZFAIL; } + static daeInt ID() { return 264; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_stencil_op_type of the value attribute. + */ + domGl_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domZfail(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domZfail() {} + /** + * Overloaded assignment operator + */ + virtual domZfail &operator=( const domZfail &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domZpass; + + typedef daeSmartRef domZpassRef; + typedef daeTArray domZpass_Array; + + class domZpass : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ZPASS; } + static daeInt ID() { return 265; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_stencil_op_type of the value attribute. + */ + domGl_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domZpass(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domZpass() {} + /** + * Overloaded assignment operator + */ + virtual domZpass &operator=( const domZpass &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFaceRef elemFace; + domFailRef elemFail; + domZfailRef elemZfail; + domZpassRef elemZpass; + + public: //Accessors and Mutators + /** + * Gets the face element. + * @return a daeSmartRef to the face element. + */ + const domFaceRef getFace() const { return elemFace; } + /** + * Gets the fail element. + * @return a daeSmartRef to the fail element. + */ + const domFailRef getFail() const { return elemFail; } + /** + * Gets the zfail element. + * @return a daeSmartRef to the zfail element. + */ + const domZfailRef getZfail() const { return elemZfail; } + /** + * Gets the zpass element. + * @return a daeSmartRef to the zpass element. + */ + const domZpassRef getZpass() const { return elemZpass; } + protected: + /** + * Constructor + */ + domStencil_op_separate(DAE& dae) : daeElement(dae), elemFace(), elemFail(), elemZfail(), elemZpass() {} + /** + * Destructor + */ + virtual ~domStencil_op_separate() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_op_separate &operator=( const domStencil_op_separate &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_mask_separate; + + typedef daeSmartRef domStencil_mask_separateRef; + typedef daeTArray domStencil_mask_separate_Array; + + class domStencil_mask_separate : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_MASK_SEPARATE; } + static daeInt ID() { return 266; } + virtual daeInt typeID() const { return ID(); } + public: + class domFace; + + typedef daeSmartRef domFaceRef; + typedef daeTArray domFace_Array; + + class domFace : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FACE; } + static daeInt ID() { return 267; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_face_type of the value attribute. + */ + domGl_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFace(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFace() {} + /** + * Overloaded assignment operator + */ + virtual domFace &operator=( const domFace &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMask; + + typedef daeSmartRef domMaskRef; + typedef daeTArray domMask_Array; + + class domMask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MASK; } + static daeInt ID() { return 268; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsUnsignedByte attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a xsUnsignedByte of the value attribute. + */ + xsUnsignedByte getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( xsUnsignedByte atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMask() {} + /** + * Overloaded assignment operator + */ + virtual domMask &operator=( const domMask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFaceRef elemFace; + domMaskRef elemMask; + + public: //Accessors and Mutators + /** + * Gets the face element. + * @return a daeSmartRef to the face element. + */ + const domFaceRef getFace() const { return elemFace; } + /** + * Gets the mask element. + * @return a daeSmartRef to the mask element. + */ + const domMaskRef getMask() const { return elemMask; } + protected: + /** + * Constructor + */ + domStencil_mask_separate(DAE& dae) : daeElement(dae), elemFace(), elemMask() {} + /** + * Destructor + */ + virtual ~domStencil_mask_separate() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_mask_separate &operator=( const domStencil_mask_separate &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_enable; + + typedef daeSmartRef domLight_enableRef; + typedef daeTArray domLight_enable_Array; + + class domLight_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_ENABLE; } + static daeInt ID() { return 269; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLight_enable &operator=( const domLight_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_ambient; + + typedef daeSmartRef domLight_ambientRef; + typedef daeTArray domLight_ambient_Array; + + class domLight_ambient : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_AMBIENT; } + static daeInt ID() { return 270; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_ambient(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_ambient() {} + /** + * Overloaded assignment operator + */ + virtual domLight_ambient &operator=( const domLight_ambient &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_diffuse; + + typedef daeSmartRef domLight_diffuseRef; + typedef daeTArray domLight_diffuse_Array; + + class domLight_diffuse : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_DIFFUSE; } + static daeInt ID() { return 271; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_diffuse(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_diffuse() {} + /** + * Overloaded assignment operator + */ + virtual domLight_diffuse &operator=( const domLight_diffuse &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_specular; + + typedef daeSmartRef domLight_specularRef; + typedef daeTArray domLight_specular_Array; + + class domLight_specular : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPECULAR; } + static daeInt ID() { return 272; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_specular(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_specular() {} + /** + * Overloaded assignment operator + */ + virtual domLight_specular &operator=( const domLight_specular &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_position; + + typedef daeSmartRef domLight_positionRef; + typedef daeTArray domLight_position_Array; + + class domLight_position : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_POSITION; } + static daeInt ID() { return 273; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_position(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_position() {} + /** + * Overloaded assignment operator + */ + virtual domLight_position &operator=( const domLight_position &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_constant_attenuation; + + typedef daeSmartRef domLight_constant_attenuationRef; + typedef daeTArray domLight_constant_attenuation_Array; + + class domLight_constant_attenuation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_CONSTANT_ATTENUATION; } + static daeInt ID() { return 274; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_constant_attenuation(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_constant_attenuation() {} + /** + * Overloaded assignment operator + */ + virtual domLight_constant_attenuation &operator=( const domLight_constant_attenuation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_linear_attenuation; + + typedef daeSmartRef domLight_linear_attenuationRef; + typedef daeTArray domLight_linear_attenuation_Array; + + class domLight_linear_attenuation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_LINEAR_ATTENUATION; } + static daeInt ID() { return 275; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_linear_attenuation(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_linear_attenuation() {} + /** + * Overloaded assignment operator + */ + virtual domLight_linear_attenuation &operator=( const domLight_linear_attenuation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_quadratic_attenuation; + + typedef daeSmartRef domLight_quadratic_attenuationRef; + typedef daeTArray domLight_quadratic_attenuation_Array; + + class domLight_quadratic_attenuation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_QUADRATIC_ATTENUATION; } + static daeInt ID() { return 276; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_quadratic_attenuation(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_quadratic_attenuation() {} + /** + * Overloaded assignment operator + */ + virtual domLight_quadratic_attenuation &operator=( const domLight_quadratic_attenuation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_spot_cutoff; + + typedef daeSmartRef domLight_spot_cutoffRef; + typedef daeTArray domLight_spot_cutoff_Array; + + class domLight_spot_cutoff : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPOT_CUTOFF; } + static daeInt ID() { return 277; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_spot_cutoff(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_spot_cutoff() {} + /** + * Overloaded assignment operator + */ + virtual domLight_spot_cutoff &operator=( const domLight_spot_cutoff &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_spot_direction; + + typedef daeSmartRef domLight_spot_directionRef; + typedef daeTArray domLight_spot_direction_Array; + + class domLight_spot_direction : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPOT_DIRECTION; } + static daeInt ID() { return 278; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat3 attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat3 reference of the value array attribute. + */ + domFloat3 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat3 reference of the value array attribute. + */ + const domFloat3 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat3 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_spot_direction(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_spot_direction() {} + /** + * Overloaded assignment operator + */ + virtual domLight_spot_direction &operator=( const domLight_spot_direction &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_spot_exponent; + + typedef daeSmartRef domLight_spot_exponentRef; + typedef daeTArray domLight_spot_exponent_Array; + + class domLight_spot_exponent : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPOT_EXPONENT; } + static daeInt ID() { return 279; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGL_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_LIGHTS_index of the index attribute. + */ + domGL_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_spot_exponent(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_spot_exponent() {} + /** + * Overloaded assignment operator + */ + virtual domLight_spot_exponent &operator=( const domLight_spot_exponent &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture1D; + + typedef daeSmartRef domTexture1DRef; + typedef daeTArray domTexture1D_Array; + + class domTexture1D : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE1D; } + static daeInt ID() { return 280; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 281; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + protected: // Elements + domGl_sampler1DRef elemValue; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domGl_sampler1DRef getValue() const { return elemValue; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTexture1D(DAE& dae) : daeElement(dae), attrIndex(), elemValue(), elemParam() {} + /** + * Destructor + */ + virtual ~domTexture1D() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTexture1D &operator=( const domTexture1D &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture2D; + + typedef daeSmartRef domTexture2DRef; + typedef daeTArray domTexture2D_Array; + + class domTexture2D : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE2D; } + static daeInt ID() { return 282; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 283; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + protected: // Elements + domGl_sampler2DRef elemValue; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domGl_sampler2DRef getValue() const { return elemValue; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTexture2D(DAE& dae) : daeElement(dae), attrIndex(), elemValue(), elemParam() {} + /** + * Destructor + */ + virtual ~domTexture2D() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTexture2D &operator=( const domTexture2D &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture3D; + + typedef daeSmartRef domTexture3DRef; + typedef daeTArray domTexture3D_Array; + + class domTexture3D : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE3D; } + static daeInt ID() { return 284; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 285; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + protected: // Elements + domGl_sampler3DRef elemValue; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domGl_sampler3DRef getValue() const { return elemValue; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTexture3D(DAE& dae) : daeElement(dae), attrIndex(), elemValue(), elemParam() {} + /** + * Destructor + */ + virtual ~domTexture3D() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTexture3D &operator=( const domTexture3D &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTextureCUBE; + + typedef daeSmartRef domTextureCUBERef; + typedef daeTArray domTextureCUBE_Array; + + class domTextureCUBE : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURECUBE; } + static daeInt ID() { return 286; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 287; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + protected: // Elements + domGl_samplerCUBERef elemValue; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domGl_samplerCUBERef getValue() const { return elemValue; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTextureCUBE(DAE& dae) : daeElement(dae), attrIndex(), elemValue(), elemParam() {} + /** + * Destructor + */ + virtual ~domTextureCUBE() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTextureCUBE &operator=( const domTextureCUBE &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTextureRECT; + + typedef daeSmartRef domTextureRECTRef; + typedef daeTArray domTextureRECT_Array; + + class domTextureRECT : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURERECT; } + static daeInt ID() { return 288; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 289; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + protected: // Elements + domGl_samplerRECTRef elemValue; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domGl_samplerRECTRef getValue() const { return elemValue; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTextureRECT(DAE& dae) : daeElement(dae), attrIndex(), elemValue(), elemParam() {} + /** + * Destructor + */ + virtual ~domTextureRECT() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTextureRECT &operator=( const domTextureRECT &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTextureDEPTH; + + typedef daeSmartRef domTextureDEPTHRef; + typedef daeTArray domTextureDEPTH_Array; + + class domTextureDEPTH : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTUREDEPTH; } + static daeInt ID() { return 290; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 291; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + protected: // Elements + domGl_samplerDEPTHRef elemValue; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[0] = true; } + + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domGl_samplerDEPTHRef getValue() const { return elemValue; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTextureDEPTH(DAE& dae) : daeElement(dae), attrIndex(), elemValue(), elemParam() {} + /** + * Destructor + */ + virtual ~domTextureDEPTH() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTextureDEPTH &operator=( const domTextureDEPTH &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture1D_enable; + + typedef daeSmartRef domTexture1D_enableRef; + typedef daeTArray domTexture1D_enable_Array; + + class domTexture1D_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE1D_ENABLE; } + static daeInt ID() { return 292; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTexture1D_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTexture1D_enable() {} + /** + * Overloaded assignment operator + */ + virtual domTexture1D_enable &operator=( const domTexture1D_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture2D_enable; + + typedef daeSmartRef domTexture2D_enableRef; + typedef daeTArray domTexture2D_enable_Array; + + class domTexture2D_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE2D_ENABLE; } + static daeInt ID() { return 293; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTexture2D_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTexture2D_enable() {} + /** + * Overloaded assignment operator + */ + virtual domTexture2D_enable &operator=( const domTexture2D_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture3D_enable; + + typedef daeSmartRef domTexture3D_enableRef; + typedef daeTArray domTexture3D_enable_Array; + + class domTexture3D_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE3D_ENABLE; } + static daeInt ID() { return 294; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTexture3D_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTexture3D_enable() {} + /** + * Overloaded assignment operator + */ + virtual domTexture3D_enable &operator=( const domTexture3D_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTextureCUBE_enable; + + typedef daeSmartRef domTextureCUBE_enableRef; + typedef daeTArray domTextureCUBE_enable_Array; + + class domTextureCUBE_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURECUBE_ENABLE; } + static daeInt ID() { return 295; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTextureCUBE_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTextureCUBE_enable() {} + /** + * Overloaded assignment operator + */ + virtual domTextureCUBE_enable &operator=( const domTextureCUBE_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTextureRECT_enable; + + typedef daeSmartRef domTextureRECT_enableRef; + typedef daeTArray domTextureRECT_enable_Array; + + class domTextureRECT_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURERECT_ENABLE; } + static daeInt ID() { return 296; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTextureRECT_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTextureRECT_enable() {} + /** + * Overloaded assignment operator + */ + virtual domTextureRECT_enable &operator=( const domTextureRECT_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTextureDEPTH_enable; + + typedef daeSmartRef domTextureDEPTH_enableRef; + typedef daeTArray domTextureDEPTH_enable_Array; + + class domTextureDEPTH_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTUREDEPTH_ENABLE; } + static daeInt ID() { return 297; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTextureDEPTH_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTextureDEPTH_enable() {} + /** + * Overloaded assignment operator + */ + virtual domTextureDEPTH_enable &operator=( const domTextureDEPTH_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture_env_color; + + typedef daeSmartRef domTexture_env_colorRef; + typedef daeTArray domTexture_env_color_Array; + + class domTexture_env_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE_ENV_COLOR; } + static daeInt ID() { return 298; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTexture_env_color(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTexture_env_color() {} + /** + * Overloaded assignment operator + */ + virtual domTexture_env_color &operator=( const domTexture_env_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture_env_mode; + + typedef daeSmartRef domTexture_env_modeRef; + typedef daeTArray domTexture_env_mode_Array; + + class domTexture_env_mode : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE_ENV_MODE; } + static daeInt ID() { return 299; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domString attrValue; + xsNCName attrParam; + domGL_MAX_TEXTURE_IMAGE_UNITS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domString of the value attribute. + */ + domString getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domString atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_TEXTURE_IMAGE_UNITS_index of the index attribute. + */ + domGL_MAX_TEXTURE_IMAGE_UNITS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_TEXTURE_IMAGE_UNITS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTexture_env_mode(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domTexture_env_mode() {} + /** + * Overloaded assignment operator + */ + virtual domTexture_env_mode &operator=( const domTexture_env_mode &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClip_plane; + + typedef daeSmartRef domClip_planeRef; + typedef daeTArray domClip_plane_Array; + + class domClip_plane : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLIP_PLANE; } + static daeInt ID() { return 300; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGL_MAX_CLIP_PLANES_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_CLIP_PLANES_index of the index attribute. + */ + domGL_MAX_CLIP_PLANES_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_CLIP_PLANES_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domClip_plane(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domClip_plane() {} + /** + * Overloaded assignment operator + */ + virtual domClip_plane &operator=( const domClip_plane &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClip_plane_enable; + + typedef daeSmartRef domClip_plane_enableRef; + typedef daeTArray domClip_plane_enable_Array; + + class domClip_plane_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLIP_PLANE_ENABLE; } + static daeInt ID() { return 301; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGL_MAX_CLIP_PLANES_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGL_MAX_CLIP_PLANES_index of the index attribute. + */ + domGL_MAX_CLIP_PLANES_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGL_MAX_CLIP_PLANES_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domClip_plane_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domClip_plane_enable() {} + /** + * Overloaded assignment operator + */ + virtual domClip_plane_enable &operator=( const domClip_plane_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_color; + + typedef daeSmartRef domBlend_colorRef; + typedef daeTArray domBlend_color_Array; + + class domBlend_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_COLOR; } + static daeInt ID() { return 302; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domBlend_color(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domBlend_color() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_color &operator=( const domBlend_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClear_color; + + typedef daeSmartRef domClear_colorRef; + typedef daeTArray domClear_color_Array; + + class domClear_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLEAR_COLOR; } + static daeInt ID() { return 303; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domClear_color(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domClear_color() {} + /** + * Overloaded assignment operator + */ + virtual domClear_color &operator=( const domClear_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClear_stencil; + + typedef daeSmartRef domClear_stencilRef; + typedef daeTArray domClear_stencil_Array; + + class domClear_stencil : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLEAR_STENCIL; } + static daeInt ID() { return 304; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domInt attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domInt of the value attribute. + */ + domInt getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domInt atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domClear_stencil(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domClear_stencil() {} + /** + * Overloaded assignment operator + */ + virtual domClear_stencil &operator=( const domClear_stencil &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClear_depth; + + typedef daeSmartRef domClear_depthRef; + typedef daeTArray domClear_depth_Array; + + class domClear_depth : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLEAR_DEPTH; } + static daeInt ID() { return 305; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domClear_depth(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domClear_depth() {} + /** + * Overloaded assignment operator + */ + virtual domClear_depth &operator=( const domClear_depth &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_mask; + + typedef daeSmartRef domColor_maskRef; + typedef daeTArray domColor_mask_Array; + + class domColor_mask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_MASK; } + static daeInt ID() { return 306; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domBool4 reference of the value array attribute. + */ + domBool4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domBool4 reference of the value array attribute. + */ + const domBool4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domBool4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domColor_mask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domColor_mask() {} + /** + * Overloaded assignment operator + */ + virtual domColor_mask &operator=( const domColor_mask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_bounds; + + typedef daeSmartRef domDepth_boundsRef; + typedef daeTArray domDepth_bounds_Array; + + class domDepth_bounds : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_BOUNDS; } + static daeInt ID() { return 307; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat2 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat2 reference of the value array attribute. + */ + domFloat2 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat2 reference of the value array attribute. + */ + const domFloat2 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat2 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_bounds(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_bounds() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_bounds &operator=( const domDepth_bounds &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_mask; + + typedef daeSmartRef domDepth_maskRef; + typedef daeTArray domDepth_mask_Array; + + class domDepth_mask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_MASK; } + static daeInt ID() { return 308; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_mask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_mask() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_mask &operator=( const domDepth_mask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_range; + + typedef daeSmartRef domDepth_rangeRef; + typedef daeTArray domDepth_range_Array; + + class domDepth_range : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_RANGE; } + static daeInt ID() { return 309; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat2 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat2 reference of the value array attribute. + */ + domFloat2 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat2 reference of the value array attribute. + */ + const domFloat2 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat2 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_range(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_range() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_range &operator=( const domDepth_range &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_density; + + typedef daeSmartRef domFog_densityRef; + typedef daeTArray domFog_density_Array; + + class domFog_density : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_DENSITY; } + static daeInt ID() { return 310; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_density(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_density() {} + /** + * Overloaded assignment operator + */ + virtual domFog_density &operator=( const domFog_density &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_start; + + typedef daeSmartRef domFog_startRef; + typedef daeTArray domFog_start_Array; + + class domFog_start : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_START; } + static daeInt ID() { return 311; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_start(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_start() {} + /** + * Overloaded assignment operator + */ + virtual domFog_start &operator=( const domFog_start &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_end; + + typedef daeSmartRef domFog_endRef; + typedef daeTArray domFog_end_Array; + + class domFog_end : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_END; } + static daeInt ID() { return 312; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_end(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_end() {} + /** + * Overloaded assignment operator + */ + virtual domFog_end &operator=( const domFog_end &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_color; + + typedef daeSmartRef domFog_colorRef; + typedef daeTArray domFog_color_Array; + + class domFog_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_COLOR; } + static daeInt ID() { return 313; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_color(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_color() {} + /** + * Overloaded assignment operator + */ + virtual domFog_color &operator=( const domFog_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_model_ambient; + + typedef daeSmartRef domLight_model_ambientRef; + typedef daeTArray domLight_model_ambient_Array; + + class domLight_model_ambient : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_MODEL_AMBIENT; } + static daeInt ID() { return 314; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLight_model_ambient(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLight_model_ambient() {} + /** + * Overloaded assignment operator + */ + virtual domLight_model_ambient &operator=( const domLight_model_ambient &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLighting_enable; + + typedef daeSmartRef domLighting_enableRef; + typedef daeTArray domLighting_enable_Array; + + class domLighting_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHTING_ENABLE; } + static daeInt ID() { return 315; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLighting_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLighting_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLighting_enable &operator=( const domLighting_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLine_stipple; + + typedef daeSmartRef domLine_stippleRef; + typedef daeTArray domLine_stipple_Array; + + class domLine_stipple : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINE_STIPPLE; } + static daeInt ID() { return 316; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domInt2 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domInt2 reference of the value array attribute. + */ + domInt2 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domInt2 reference of the value array attribute. + */ + const domInt2 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domInt2 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLine_stipple(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLine_stipple() {} + /** + * Overloaded assignment operator + */ + virtual domLine_stipple &operator=( const domLine_stipple &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLine_width; + + typedef daeSmartRef domLine_widthRef; + typedef daeTArray domLine_width_Array; + + class domLine_width : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINE_WIDTH; } + static daeInt ID() { return 317; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLine_width(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLine_width() {} + /** + * Overloaded assignment operator + */ + virtual domLine_width &operator=( const domLine_width &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_ambient; + + typedef daeSmartRef domMaterial_ambientRef; + typedef daeTArray domMaterial_ambient_Array; + + class domMaterial_ambient : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_AMBIENT; } + static daeInt ID() { return 318; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_ambient(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_ambient() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_ambient &operator=( const domMaterial_ambient &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_diffuse; + + typedef daeSmartRef domMaterial_diffuseRef; + typedef daeTArray domMaterial_diffuse_Array; + + class domMaterial_diffuse : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_DIFFUSE; } + static daeInt ID() { return 319; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_diffuse(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_diffuse() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_diffuse &operator=( const domMaterial_diffuse &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_emission; + + typedef daeSmartRef domMaterial_emissionRef; + typedef daeTArray domMaterial_emission_Array; + + class domMaterial_emission : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_EMISSION; } + static daeInt ID() { return 320; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_emission(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_emission() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_emission &operator=( const domMaterial_emission &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_shininess; + + typedef daeSmartRef domMaterial_shininessRef; + typedef daeTArray domMaterial_shininess_Array; + + class domMaterial_shininess : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_SHININESS; } + static daeInt ID() { return 321; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_shininess(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_shininess() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_shininess &operator=( const domMaterial_shininess &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_specular; + + typedef daeSmartRef domMaterial_specularRef; + typedef daeTArray domMaterial_specular_Array; + + class domMaterial_specular : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_SPECULAR; } + static daeInt ID() { return 322; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_specular(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_specular() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_specular &operator=( const domMaterial_specular &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domModel_view_matrix; + + typedef daeSmartRef domModel_view_matrixRef; + typedef daeTArray domModel_view_matrix_Array; + + class domModel_view_matrix : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODEL_VIEW_MATRIX; } + static daeInt ID() { return 323; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4x4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4x4 reference of the value array attribute. + */ + domFloat4x4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4x4 reference of the value array attribute. + */ + const domFloat4x4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4x4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domModel_view_matrix(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domModel_view_matrix() {} + /** + * Overloaded assignment operator + */ + virtual domModel_view_matrix &operator=( const domModel_view_matrix &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_distance_attenuation; + + typedef daeSmartRef domPoint_distance_attenuationRef; + typedef daeTArray domPoint_distance_attenuation_Array; + + class domPoint_distance_attenuation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_DISTANCE_ATTENUATION; } + static daeInt ID() { return 324; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat3 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat3 reference of the value array attribute. + */ + domFloat3 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat3 reference of the value array attribute. + */ + const domFloat3 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat3 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_distance_attenuation(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_distance_attenuation() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_distance_attenuation &operator=( const domPoint_distance_attenuation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_fade_threshold_size; + + typedef daeSmartRef domPoint_fade_threshold_sizeRef; + typedef daeTArray domPoint_fade_threshold_size_Array; + + class domPoint_fade_threshold_size : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_FADE_THRESHOLD_SIZE; } + static daeInt ID() { return 325; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_fade_threshold_size(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_fade_threshold_size() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_fade_threshold_size &operator=( const domPoint_fade_threshold_size &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_size; + + typedef daeSmartRef domPoint_sizeRef; + typedef daeTArray domPoint_size_Array; + + class domPoint_size : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SIZE; } + static daeInt ID() { return 326; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_size(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_size() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_size &operator=( const domPoint_size &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_size_min; + + typedef daeSmartRef domPoint_size_minRef; + typedef daeTArray domPoint_size_min_Array; + + class domPoint_size_min : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SIZE_MIN; } + static daeInt ID() { return 327; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_size_min(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_size_min() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_size_min &operator=( const domPoint_size_min &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_size_max; + + typedef daeSmartRef domPoint_size_maxRef; + typedef daeTArray domPoint_size_max_Array; + + class domPoint_size_max : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SIZE_MAX; } + static daeInt ID() { return 328; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_size_max(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_size_max() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_size_max &operator=( const domPoint_size_max &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_offset; + + typedef daeSmartRef domPolygon_offsetRef; + typedef daeTArray domPolygon_offset_Array; + + class domPolygon_offset : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_OFFSET; } + static daeInt ID() { return 329; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat2 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat2 reference of the value array attribute. + */ + domFloat2 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat2 reference of the value array attribute. + */ + const domFloat2 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat2 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_offset(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_offset() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_offset &operator=( const domPolygon_offset &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domProjection_matrix; + + typedef daeSmartRef domProjection_matrixRef; + typedef daeTArray domProjection_matrix_Array; + + class domProjection_matrix : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROJECTION_MATRIX; } + static daeInt ID() { return 330; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4x4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4x4 reference of the value array attribute. + */ + domFloat4x4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4x4 reference of the value array attribute. + */ + const domFloat4x4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4x4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domProjection_matrix(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domProjection_matrix() {} + /** + * Overloaded assignment operator + */ + virtual domProjection_matrix &operator=( const domProjection_matrix &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domScissor; + + typedef daeSmartRef domScissorRef; + typedef daeTArray domScissor_Array; + + class domScissor : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SCISSOR; } + static daeInt ID() { return 331; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domInt4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domInt4 reference of the value array attribute. + */ + domInt4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domInt4 reference of the value array attribute. + */ + const domInt4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domInt4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domScissor(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domScissor() {} + /** + * Overloaded assignment operator + */ + virtual domScissor &operator=( const domScissor &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_mask; + + typedef daeSmartRef domStencil_maskRef; + typedef daeTArray domStencil_mask_Array; + + class domStencil_mask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_MASK; } + static daeInt ID() { return 332; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domInt attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domInt of the value attribute. + */ + domInt getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domInt atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domStencil_mask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domStencil_mask() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_mask &operator=( const domStencil_mask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domAlpha_test_enable; + + typedef daeSmartRef domAlpha_test_enableRef; + typedef daeTArray domAlpha_test_enable_Array; + + class domAlpha_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALPHA_TEST_ENABLE; } + static daeInt ID() { return 333; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domAlpha_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domAlpha_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domAlpha_test_enable &operator=( const domAlpha_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domAuto_normal_enable; + + typedef daeSmartRef domAuto_normal_enableRef; + typedef daeTArray domAuto_normal_enable_Array; + + class domAuto_normal_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::AUTO_NORMAL_ENABLE; } + static daeInt ID() { return 334; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domAuto_normal_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domAuto_normal_enable() {} + /** + * Overloaded assignment operator + */ + virtual domAuto_normal_enable &operator=( const domAuto_normal_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_enable; + + typedef daeSmartRef domBlend_enableRef; + typedef daeTArray domBlend_enable_Array; + + class domBlend_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_ENABLE; } + static daeInt ID() { return 335; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domBlend_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domBlend_enable() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_enable &operator=( const domBlend_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_logic_op_enable; + + typedef daeSmartRef domColor_logic_op_enableRef; + typedef daeTArray domColor_logic_op_enable_Array; + + class domColor_logic_op_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_LOGIC_OP_ENABLE; } + static daeInt ID() { return 336; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domColor_logic_op_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domColor_logic_op_enable() {} + /** + * Overloaded assignment operator + */ + virtual domColor_logic_op_enable &operator=( const domColor_logic_op_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_material_enable; + + typedef daeSmartRef domColor_material_enableRef; + typedef daeTArray domColor_material_enable_Array; + + class domColor_material_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_MATERIAL_ENABLE; } + static daeInt ID() { return 337; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domColor_material_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domColor_material_enable() {} + /** + * Overloaded assignment operator + */ + virtual domColor_material_enable &operator=( const domColor_material_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCull_face_enable; + + typedef daeSmartRef domCull_face_enableRef; + typedef daeTArray domCull_face_enable_Array; + + class domCull_face_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CULL_FACE_ENABLE; } + static daeInt ID() { return 338; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domCull_face_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domCull_face_enable() {} + /** + * Overloaded assignment operator + */ + virtual domCull_face_enable &operator=( const domCull_face_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_bounds_enable; + + typedef daeSmartRef domDepth_bounds_enableRef; + typedef daeTArray domDepth_bounds_enable_Array; + + class domDepth_bounds_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_BOUNDS_ENABLE; } + static daeInt ID() { return 339; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_bounds_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_bounds_enable() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_bounds_enable &operator=( const domDepth_bounds_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_clamp_enable; + + typedef daeSmartRef domDepth_clamp_enableRef; + typedef daeTArray domDepth_clamp_enable_Array; + + class domDepth_clamp_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_CLAMP_ENABLE; } + static daeInt ID() { return 340; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_clamp_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_clamp_enable() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_clamp_enable &operator=( const domDepth_clamp_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_test_enable; + + typedef daeSmartRef domDepth_test_enableRef; + typedef daeTArray domDepth_test_enable_Array; + + class domDepth_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_TEST_ENABLE; } + static daeInt ID() { return 341; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_test_enable &operator=( const domDepth_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDither_enable; + + typedef daeSmartRef domDither_enableRef; + typedef daeTArray domDither_enable_Array; + + class domDither_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DITHER_ENABLE; } + static daeInt ID() { return 342; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDither_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDither_enable() {} + /** + * Overloaded assignment operator + */ + virtual domDither_enable &operator=( const domDither_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_enable; + + typedef daeSmartRef domFog_enableRef; + typedef daeTArray domFog_enable_Array; + + class domFog_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_ENABLE; } + static daeInt ID() { return 343; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_enable() {} + /** + * Overloaded assignment operator + */ + virtual domFog_enable &operator=( const domFog_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_model_local_viewer_enable; + + typedef daeSmartRef domLight_model_local_viewer_enableRef; + typedef daeTArray domLight_model_local_viewer_enable_Array; + + class domLight_model_local_viewer_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_MODEL_LOCAL_VIEWER_ENABLE; } + static daeInt ID() { return 344; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLight_model_local_viewer_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLight_model_local_viewer_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLight_model_local_viewer_enable &operator=( const domLight_model_local_viewer_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_model_two_side_enable; + + typedef daeSmartRef domLight_model_two_side_enableRef; + typedef daeTArray domLight_model_two_side_enable_Array; + + class domLight_model_two_side_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_MODEL_TWO_SIDE_ENABLE; } + static daeInt ID() { return 345; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLight_model_two_side_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLight_model_two_side_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLight_model_two_side_enable &operator=( const domLight_model_two_side_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLine_smooth_enable; + + typedef daeSmartRef domLine_smooth_enableRef; + typedef daeTArray domLine_smooth_enable_Array; + + class domLine_smooth_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINE_SMOOTH_ENABLE; } + static daeInt ID() { return 346; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLine_smooth_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLine_smooth_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLine_smooth_enable &operator=( const domLine_smooth_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLine_stipple_enable; + + typedef daeSmartRef domLine_stipple_enableRef; + typedef daeTArray domLine_stipple_enable_Array; + + class domLine_stipple_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINE_STIPPLE_ENABLE; } + static daeInt ID() { return 347; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLine_stipple_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLine_stipple_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLine_stipple_enable &operator=( const domLine_stipple_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLogic_op_enable; + + typedef daeSmartRef domLogic_op_enableRef; + typedef daeTArray domLogic_op_enable_Array; + + class domLogic_op_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LOGIC_OP_ENABLE; } + static daeInt ID() { return 348; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLogic_op_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLogic_op_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLogic_op_enable &operator=( const domLogic_op_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMultisample_enable; + + typedef daeSmartRef domMultisample_enableRef; + typedef daeTArray domMultisample_enable_Array; + + class domMultisample_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MULTISAMPLE_ENABLE; } + static daeInt ID() { return 349; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMultisample_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMultisample_enable() {} + /** + * Overloaded assignment operator + */ + virtual domMultisample_enable &operator=( const domMultisample_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domNormalize_enable; + + typedef daeSmartRef domNormalize_enableRef; + typedef daeTArray domNormalize_enable_Array; + + class domNormalize_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NORMALIZE_ENABLE; } + static daeInt ID() { return 350; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domNormalize_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domNormalize_enable() {} + /** + * Overloaded assignment operator + */ + virtual domNormalize_enable &operator=( const domNormalize_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_smooth_enable; + + typedef daeSmartRef domPoint_smooth_enableRef; + typedef daeTArray domPoint_smooth_enable_Array; + + class domPoint_smooth_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SMOOTH_ENABLE; } + static daeInt ID() { return 351; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_smooth_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_smooth_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_smooth_enable &operator=( const domPoint_smooth_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_offset_fill_enable; + + typedef daeSmartRef domPolygon_offset_fill_enableRef; + typedef daeTArray domPolygon_offset_fill_enable_Array; + + class domPolygon_offset_fill_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_OFFSET_FILL_ENABLE; } + static daeInt ID() { return 352; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_offset_fill_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_offset_fill_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_offset_fill_enable &operator=( const domPolygon_offset_fill_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_offset_line_enable; + + typedef daeSmartRef domPolygon_offset_line_enableRef; + typedef daeTArray domPolygon_offset_line_enable_Array; + + class domPolygon_offset_line_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_OFFSET_LINE_ENABLE; } + static daeInt ID() { return 353; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_offset_line_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_offset_line_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_offset_line_enable &operator=( const domPolygon_offset_line_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_offset_point_enable; + + typedef daeSmartRef domPolygon_offset_point_enableRef; + typedef daeTArray domPolygon_offset_point_enable_Array; + + class domPolygon_offset_point_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_OFFSET_POINT_ENABLE; } + static daeInt ID() { return 354; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_offset_point_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_offset_point_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_offset_point_enable &operator=( const domPolygon_offset_point_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_smooth_enable; + + typedef daeSmartRef domPolygon_smooth_enableRef; + typedef daeTArray domPolygon_smooth_enable_Array; + + class domPolygon_smooth_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_SMOOTH_ENABLE; } + static daeInt ID() { return 355; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_smooth_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_smooth_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_smooth_enable &operator=( const domPolygon_smooth_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_stipple_enable; + + typedef daeSmartRef domPolygon_stipple_enableRef; + typedef daeTArray domPolygon_stipple_enable_Array; + + class domPolygon_stipple_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_STIPPLE_ENABLE; } + static daeInt ID() { return 356; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_stipple_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_stipple_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_stipple_enable &operator=( const domPolygon_stipple_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRescale_normal_enable; + + typedef daeSmartRef domRescale_normal_enableRef; + typedef daeTArray domRescale_normal_enable_Array; + + class domRescale_normal_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RESCALE_NORMAL_ENABLE; } + static daeInt ID() { return 357; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domRescale_normal_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domRescale_normal_enable() {} + /** + * Overloaded assignment operator + */ + virtual domRescale_normal_enable &operator=( const domRescale_normal_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSample_alpha_to_coverage_enable; + + typedef daeSmartRef domSample_alpha_to_coverage_enableRef; + typedef daeTArray domSample_alpha_to_coverage_enable_Array; + + class domSample_alpha_to_coverage_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLE_ALPHA_TO_COVERAGE_ENABLE; } + static daeInt ID() { return 358; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSample_alpha_to_coverage_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSample_alpha_to_coverage_enable() {} + /** + * Overloaded assignment operator + */ + virtual domSample_alpha_to_coverage_enable &operator=( const domSample_alpha_to_coverage_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSample_alpha_to_one_enable; + + typedef daeSmartRef domSample_alpha_to_one_enableRef; + typedef daeTArray domSample_alpha_to_one_enable_Array; + + class domSample_alpha_to_one_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLE_ALPHA_TO_ONE_ENABLE; } + static daeInt ID() { return 359; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSample_alpha_to_one_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSample_alpha_to_one_enable() {} + /** + * Overloaded assignment operator + */ + virtual domSample_alpha_to_one_enable &operator=( const domSample_alpha_to_one_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSample_coverage_enable; + + typedef daeSmartRef domSample_coverage_enableRef; + typedef daeTArray domSample_coverage_enable_Array; + + class domSample_coverage_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLE_COVERAGE_ENABLE; } + static daeInt ID() { return 360; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSample_coverage_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSample_coverage_enable() {} + /** + * Overloaded assignment operator + */ + virtual domSample_coverage_enable &operator=( const domSample_coverage_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domScissor_test_enable; + + typedef daeSmartRef domScissor_test_enableRef; + typedef daeTArray domScissor_test_enable_Array; + + class domScissor_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SCISSOR_TEST_ENABLE; } + static daeInt ID() { return 361; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domScissor_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domScissor_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domScissor_test_enable &operator=( const domScissor_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_test_enable; + + typedef daeSmartRef domStencil_test_enableRef; + typedef daeTArray domStencil_test_enable_Array; + + class domStencil_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_TEST_ENABLE; } + static daeInt ID() { return 362; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domStencil_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domStencil_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_test_enable &operator=( const domStencil_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domAlpha_funcRef elemAlpha_func; + domBlend_funcRef elemBlend_func; + domBlend_func_separateRef elemBlend_func_separate; + domBlend_equationRef elemBlend_equation; + domBlend_equation_separateRef elemBlend_equation_separate; + domColor_materialRef elemColor_material; + domCull_faceRef elemCull_face; + domDepth_funcRef elemDepth_func; + domFog_modeRef elemFog_mode; + domFog_coord_srcRef elemFog_coord_src; + domFront_faceRef elemFront_face; + domLight_model_color_controlRef elemLight_model_color_control; + domLogic_opRef elemLogic_op; + domPolygon_modeRef elemPolygon_mode; + domShade_modelRef elemShade_model; + domStencil_funcRef elemStencil_func; + domStencil_opRef elemStencil_op; + domStencil_func_separateRef elemStencil_func_separate; + domStencil_op_separateRef elemStencil_op_separate; + domStencil_mask_separateRef elemStencil_mask_separate; + domLight_enableRef elemLight_enable; + domLight_ambientRef elemLight_ambient; + domLight_diffuseRef elemLight_diffuse; + domLight_specularRef elemLight_specular; + domLight_positionRef elemLight_position; + domLight_constant_attenuationRef elemLight_constant_attenuation; + domLight_linear_attenuationRef elemLight_linear_attenuation; + domLight_quadratic_attenuationRef elemLight_quadratic_attenuation; + domLight_spot_cutoffRef elemLight_spot_cutoff; + domLight_spot_directionRef elemLight_spot_direction; + domLight_spot_exponentRef elemLight_spot_exponent; + domTexture1DRef elemTexture1D; + domTexture2DRef elemTexture2D; + domTexture3DRef elemTexture3D; + domTextureCUBERef elemTextureCUBE; + domTextureRECTRef elemTextureRECT; + domTextureDEPTHRef elemTextureDEPTH; + domTexture1D_enableRef elemTexture1D_enable; + domTexture2D_enableRef elemTexture2D_enable; + domTexture3D_enableRef elemTexture3D_enable; + domTextureCUBE_enableRef elemTextureCUBE_enable; + domTextureRECT_enableRef elemTextureRECT_enable; + domTextureDEPTH_enableRef elemTextureDEPTH_enable; + domTexture_env_colorRef elemTexture_env_color; + domTexture_env_modeRef elemTexture_env_mode; + domClip_planeRef elemClip_plane; + domClip_plane_enableRef elemClip_plane_enable; + domBlend_colorRef elemBlend_color; + domClear_colorRef elemClear_color; + domClear_stencilRef elemClear_stencil; + domClear_depthRef elemClear_depth; + domColor_maskRef elemColor_mask; + domDepth_boundsRef elemDepth_bounds; + domDepth_maskRef elemDepth_mask; + domDepth_rangeRef elemDepth_range; + domFog_densityRef elemFog_density; + domFog_startRef elemFog_start; + domFog_endRef elemFog_end; + domFog_colorRef elemFog_color; + domLight_model_ambientRef elemLight_model_ambient; + domLighting_enableRef elemLighting_enable; + domLine_stippleRef elemLine_stipple; + domLine_widthRef elemLine_width; + domMaterial_ambientRef elemMaterial_ambient; + domMaterial_diffuseRef elemMaterial_diffuse; + domMaterial_emissionRef elemMaterial_emission; + domMaterial_shininessRef elemMaterial_shininess; + domMaterial_specularRef elemMaterial_specular; + domModel_view_matrixRef elemModel_view_matrix; + domPoint_distance_attenuationRef elemPoint_distance_attenuation; + domPoint_fade_threshold_sizeRef elemPoint_fade_threshold_size; + domPoint_sizeRef elemPoint_size; + domPoint_size_minRef elemPoint_size_min; + domPoint_size_maxRef elemPoint_size_max; + domPolygon_offsetRef elemPolygon_offset; + domProjection_matrixRef elemProjection_matrix; + domScissorRef elemScissor; + domStencil_maskRef elemStencil_mask; + domAlpha_test_enableRef elemAlpha_test_enable; + domAuto_normal_enableRef elemAuto_normal_enable; + domBlend_enableRef elemBlend_enable; + domColor_logic_op_enableRef elemColor_logic_op_enable; + domColor_material_enableRef elemColor_material_enable; + domCull_face_enableRef elemCull_face_enable; + domDepth_bounds_enableRef elemDepth_bounds_enable; + domDepth_clamp_enableRef elemDepth_clamp_enable; + domDepth_test_enableRef elemDepth_test_enable; + domDither_enableRef elemDither_enable; + domFog_enableRef elemFog_enable; + domLight_model_local_viewer_enableRef elemLight_model_local_viewer_enable; + domLight_model_two_side_enableRef elemLight_model_two_side_enable; + domLine_smooth_enableRef elemLine_smooth_enable; + domLine_stipple_enableRef elemLine_stipple_enable; + domLogic_op_enableRef elemLogic_op_enable; + domMultisample_enableRef elemMultisample_enable; + domNormalize_enableRef elemNormalize_enable; + domPoint_smooth_enableRef elemPoint_smooth_enable; + domPolygon_offset_fill_enableRef elemPolygon_offset_fill_enable; + domPolygon_offset_line_enableRef elemPolygon_offset_line_enable; + domPolygon_offset_point_enableRef elemPolygon_offset_point_enable; + domPolygon_smooth_enableRef elemPolygon_smooth_enable; + domPolygon_stipple_enableRef elemPolygon_stipple_enable; + domRescale_normal_enableRef elemRescale_normal_enable; + domSample_alpha_to_coverage_enableRef elemSample_alpha_to_coverage_enable; + domSample_alpha_to_one_enableRef elemSample_alpha_to_one_enable; + domSample_coverage_enableRef elemSample_coverage_enable; + domScissor_test_enableRef elemScissor_test_enable; + domStencil_test_enableRef elemStencil_test_enable; + domGl_hook_abstractRef elemGl_hook_abstract; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the alpha_func element. + * @return a daeSmartRef to the alpha_func element. + */ + const domAlpha_funcRef getAlpha_func() const { return elemAlpha_func; } + /** + * Gets the blend_func element. + * @return a daeSmartRef to the blend_func element. + */ + const domBlend_funcRef getBlend_func() const { return elemBlend_func; } + /** + * Gets the blend_func_separate element. + * @return a daeSmartRef to the blend_func_separate element. + */ + const domBlend_func_separateRef getBlend_func_separate() const { return elemBlend_func_separate; } + /** + * Gets the blend_equation element. + * @return a daeSmartRef to the blend_equation element. + */ + const domBlend_equationRef getBlend_equation() const { return elemBlend_equation; } + /** + * Gets the blend_equation_separate element. + * @return a daeSmartRef to the blend_equation_separate element. + */ + const domBlend_equation_separateRef getBlend_equation_separate() const { return elemBlend_equation_separate; } + /** + * Gets the color_material element. + * @return a daeSmartRef to the color_material element. + */ + const domColor_materialRef getColor_material() const { return elemColor_material; } + /** + * Gets the cull_face element. + * @return a daeSmartRef to the cull_face element. + */ + const domCull_faceRef getCull_face() const { return elemCull_face; } + /** + * Gets the depth_func element. + * @return a daeSmartRef to the depth_func element. + */ + const domDepth_funcRef getDepth_func() const { return elemDepth_func; } + /** + * Gets the fog_mode element. + * @return a daeSmartRef to the fog_mode element. + */ + const domFog_modeRef getFog_mode() const { return elemFog_mode; } + /** + * Gets the fog_coord_src element. + * @return a daeSmartRef to the fog_coord_src element. + */ + const domFog_coord_srcRef getFog_coord_src() const { return elemFog_coord_src; } + /** + * Gets the front_face element. + * @return a daeSmartRef to the front_face element. + */ + const domFront_faceRef getFront_face() const { return elemFront_face; } + /** + * Gets the light_model_color_control element. + * @return a daeSmartRef to the light_model_color_control element. + */ + const domLight_model_color_controlRef getLight_model_color_control() const { return elemLight_model_color_control; } + /** + * Gets the logic_op element. + * @return a daeSmartRef to the logic_op element. + */ + const domLogic_opRef getLogic_op() const { return elemLogic_op; } + /** + * Gets the polygon_mode element. + * @return a daeSmartRef to the polygon_mode element. + */ + const domPolygon_modeRef getPolygon_mode() const { return elemPolygon_mode; } + /** + * Gets the shade_model element. + * @return a daeSmartRef to the shade_model element. + */ + const domShade_modelRef getShade_model() const { return elemShade_model; } + /** + * Gets the stencil_func element. + * @return a daeSmartRef to the stencil_func element. + */ + const domStencil_funcRef getStencil_func() const { return elemStencil_func; } + /** + * Gets the stencil_op element. + * @return a daeSmartRef to the stencil_op element. + */ + const domStencil_opRef getStencil_op() const { return elemStencil_op; } + /** + * Gets the stencil_func_separate element. + * @return a daeSmartRef to the stencil_func_separate element. + */ + const domStencil_func_separateRef getStencil_func_separate() const { return elemStencil_func_separate; } + /** + * Gets the stencil_op_separate element. + * @return a daeSmartRef to the stencil_op_separate element. + */ + const domStencil_op_separateRef getStencil_op_separate() const { return elemStencil_op_separate; } + /** + * Gets the stencil_mask_separate element. + * @return a daeSmartRef to the stencil_mask_separate element. + */ + const domStencil_mask_separateRef getStencil_mask_separate() const { return elemStencil_mask_separate; } + /** + * Gets the light_enable element. + * @return a daeSmartRef to the light_enable element. + */ + const domLight_enableRef getLight_enable() const { return elemLight_enable; } + /** + * Gets the light_ambient element. + * @return a daeSmartRef to the light_ambient element. + */ + const domLight_ambientRef getLight_ambient() const { return elemLight_ambient; } + /** + * Gets the light_diffuse element. + * @return a daeSmartRef to the light_diffuse element. + */ + const domLight_diffuseRef getLight_diffuse() const { return elemLight_diffuse; } + /** + * Gets the light_specular element. + * @return a daeSmartRef to the light_specular element. + */ + const domLight_specularRef getLight_specular() const { return elemLight_specular; } + /** + * Gets the light_position element. + * @return a daeSmartRef to the light_position element. + */ + const domLight_positionRef getLight_position() const { return elemLight_position; } + /** + * Gets the light_constant_attenuation element. + * @return a daeSmartRef to the light_constant_attenuation element. + */ + const domLight_constant_attenuationRef getLight_constant_attenuation() const { return elemLight_constant_attenuation; } + /** + * Gets the light_linear_attenuation element. + * @return a daeSmartRef to the light_linear_attenuation element. + */ + const domLight_linear_attenuationRef getLight_linear_attenuation() const { return elemLight_linear_attenuation; } + /** + * Gets the light_quadratic_attenuation element. + * @return a daeSmartRef to the light_quadratic_attenuation element. + */ + const domLight_quadratic_attenuationRef getLight_quadratic_attenuation() const { return elemLight_quadratic_attenuation; } + /** + * Gets the light_spot_cutoff element. + * @return a daeSmartRef to the light_spot_cutoff element. + */ + const domLight_spot_cutoffRef getLight_spot_cutoff() const { return elemLight_spot_cutoff; } + /** + * Gets the light_spot_direction element. + * @return a daeSmartRef to the light_spot_direction element. + */ + const domLight_spot_directionRef getLight_spot_direction() const { return elemLight_spot_direction; } + /** + * Gets the light_spot_exponent element. + * @return a daeSmartRef to the light_spot_exponent element. + */ + const domLight_spot_exponentRef getLight_spot_exponent() const { return elemLight_spot_exponent; } + /** + * Gets the texture1D element. + * @return a daeSmartRef to the texture1D element. + */ + const domTexture1DRef getTexture1D() const { return elemTexture1D; } + /** + * Gets the texture2D element. + * @return a daeSmartRef to the texture2D element. + */ + const domTexture2DRef getTexture2D() const { return elemTexture2D; } + /** + * Gets the texture3D element. + * @return a daeSmartRef to the texture3D element. + */ + const domTexture3DRef getTexture3D() const { return elemTexture3D; } + /** + * Gets the textureCUBE element. + * @return a daeSmartRef to the textureCUBE element. + */ + const domTextureCUBERef getTextureCUBE() const { return elemTextureCUBE; } + /** + * Gets the textureRECT element. + * @return a daeSmartRef to the textureRECT element. + */ + const domTextureRECTRef getTextureRECT() const { return elemTextureRECT; } + /** + * Gets the textureDEPTH element. + * @return a daeSmartRef to the textureDEPTH element. + */ + const domTextureDEPTHRef getTextureDEPTH() const { return elemTextureDEPTH; } + /** + * Gets the texture1D_enable element. + * @return a daeSmartRef to the texture1D_enable element. + */ + const domTexture1D_enableRef getTexture1D_enable() const { return elemTexture1D_enable; } + /** + * Gets the texture2D_enable element. + * @return a daeSmartRef to the texture2D_enable element. + */ + const domTexture2D_enableRef getTexture2D_enable() const { return elemTexture2D_enable; } + /** + * Gets the texture3D_enable element. + * @return a daeSmartRef to the texture3D_enable element. + */ + const domTexture3D_enableRef getTexture3D_enable() const { return elemTexture3D_enable; } + /** + * Gets the textureCUBE_enable element. + * @return a daeSmartRef to the textureCUBE_enable element. + */ + const domTextureCUBE_enableRef getTextureCUBE_enable() const { return elemTextureCUBE_enable; } + /** + * Gets the textureRECT_enable element. + * @return a daeSmartRef to the textureRECT_enable element. + */ + const domTextureRECT_enableRef getTextureRECT_enable() const { return elemTextureRECT_enable; } + /** + * Gets the textureDEPTH_enable element. + * @return a daeSmartRef to the textureDEPTH_enable element. + */ + const domTextureDEPTH_enableRef getTextureDEPTH_enable() const { return elemTextureDEPTH_enable; } + /** + * Gets the texture_env_color element. + * @return a daeSmartRef to the texture_env_color element. + */ + const domTexture_env_colorRef getTexture_env_color() const { return elemTexture_env_color; } + /** + * Gets the texture_env_mode element. + * @return a daeSmartRef to the texture_env_mode element. + */ + const domTexture_env_modeRef getTexture_env_mode() const { return elemTexture_env_mode; } + /** + * Gets the clip_plane element. + * @return a daeSmartRef to the clip_plane element. + */ + const domClip_planeRef getClip_plane() const { return elemClip_plane; } + /** + * Gets the clip_plane_enable element. + * @return a daeSmartRef to the clip_plane_enable element. + */ + const domClip_plane_enableRef getClip_plane_enable() const { return elemClip_plane_enable; } + /** + * Gets the blend_color element. + * @return a daeSmartRef to the blend_color element. + */ + const domBlend_colorRef getBlend_color() const { return elemBlend_color; } + /** + * Gets the clear_color element. + * @return a daeSmartRef to the clear_color element. + */ + const domClear_colorRef getClear_color() const { return elemClear_color; } + /** + * Gets the clear_stencil element. + * @return a daeSmartRef to the clear_stencil element. + */ + const domClear_stencilRef getClear_stencil() const { return elemClear_stencil; } + /** + * Gets the clear_depth element. + * @return a daeSmartRef to the clear_depth element. + */ + const domClear_depthRef getClear_depth() const { return elemClear_depth; } + /** + * Gets the color_mask element. + * @return a daeSmartRef to the color_mask element. + */ + const domColor_maskRef getColor_mask() const { return elemColor_mask; } + /** + * Gets the depth_bounds element. + * @return a daeSmartRef to the depth_bounds element. + */ + const domDepth_boundsRef getDepth_bounds() const { return elemDepth_bounds; } + /** + * Gets the depth_mask element. + * @return a daeSmartRef to the depth_mask element. + */ + const domDepth_maskRef getDepth_mask() const { return elemDepth_mask; } + /** + * Gets the depth_range element. + * @return a daeSmartRef to the depth_range element. + */ + const domDepth_rangeRef getDepth_range() const { return elemDepth_range; } + /** + * Gets the fog_density element. + * @return a daeSmartRef to the fog_density element. + */ + const domFog_densityRef getFog_density() const { return elemFog_density; } + /** + * Gets the fog_start element. + * @return a daeSmartRef to the fog_start element. + */ + const domFog_startRef getFog_start() const { return elemFog_start; } + /** + * Gets the fog_end element. + * @return a daeSmartRef to the fog_end element. + */ + const domFog_endRef getFog_end() const { return elemFog_end; } + /** + * Gets the fog_color element. + * @return a daeSmartRef to the fog_color element. + */ + const domFog_colorRef getFog_color() const { return elemFog_color; } + /** + * Gets the light_model_ambient element. + * @return a daeSmartRef to the light_model_ambient element. + */ + const domLight_model_ambientRef getLight_model_ambient() const { return elemLight_model_ambient; } + /** + * Gets the lighting_enable element. + * @return a daeSmartRef to the lighting_enable element. + */ + const domLighting_enableRef getLighting_enable() const { return elemLighting_enable; } + /** + * Gets the line_stipple element. + * @return a daeSmartRef to the line_stipple element. + */ + const domLine_stippleRef getLine_stipple() const { return elemLine_stipple; } + /** + * Gets the line_width element. + * @return a daeSmartRef to the line_width element. + */ + const domLine_widthRef getLine_width() const { return elemLine_width; } + /** + * Gets the material_ambient element. + * @return a daeSmartRef to the material_ambient element. + */ + const domMaterial_ambientRef getMaterial_ambient() const { return elemMaterial_ambient; } + /** + * Gets the material_diffuse element. + * @return a daeSmartRef to the material_diffuse element. + */ + const domMaterial_diffuseRef getMaterial_diffuse() const { return elemMaterial_diffuse; } + /** + * Gets the material_emission element. + * @return a daeSmartRef to the material_emission element. + */ + const domMaterial_emissionRef getMaterial_emission() const { return elemMaterial_emission; } + /** + * Gets the material_shininess element. + * @return a daeSmartRef to the material_shininess element. + */ + const domMaterial_shininessRef getMaterial_shininess() const { return elemMaterial_shininess; } + /** + * Gets the material_specular element. + * @return a daeSmartRef to the material_specular element. + */ + const domMaterial_specularRef getMaterial_specular() const { return elemMaterial_specular; } + /** + * Gets the model_view_matrix element. + * @return a daeSmartRef to the model_view_matrix element. + */ + const domModel_view_matrixRef getModel_view_matrix() const { return elemModel_view_matrix; } + /** + * Gets the point_distance_attenuation element. + * @return a daeSmartRef to the point_distance_attenuation element. + */ + const domPoint_distance_attenuationRef getPoint_distance_attenuation() const { return elemPoint_distance_attenuation; } + /** + * Gets the point_fade_threshold_size element. + * @return a daeSmartRef to the point_fade_threshold_size element. + */ + const domPoint_fade_threshold_sizeRef getPoint_fade_threshold_size() const { return elemPoint_fade_threshold_size; } + /** + * Gets the point_size element. + * @return a daeSmartRef to the point_size element. + */ + const domPoint_sizeRef getPoint_size() const { return elemPoint_size; } + /** + * Gets the point_size_min element. + * @return a daeSmartRef to the point_size_min element. + */ + const domPoint_size_minRef getPoint_size_min() const { return elemPoint_size_min; } + /** + * Gets the point_size_max element. + * @return a daeSmartRef to the point_size_max element. + */ + const domPoint_size_maxRef getPoint_size_max() const { return elemPoint_size_max; } + /** + * Gets the polygon_offset element. + * @return a daeSmartRef to the polygon_offset element. + */ + const domPolygon_offsetRef getPolygon_offset() const { return elemPolygon_offset; } + /** + * Gets the projection_matrix element. + * @return a daeSmartRef to the projection_matrix element. + */ + const domProjection_matrixRef getProjection_matrix() const { return elemProjection_matrix; } + /** + * Gets the scissor element. + * @return a daeSmartRef to the scissor element. + */ + const domScissorRef getScissor() const { return elemScissor; } + /** + * Gets the stencil_mask element. + * @return a daeSmartRef to the stencil_mask element. + */ + const domStencil_maskRef getStencil_mask() const { return elemStencil_mask; } + /** + * Gets the alpha_test_enable element. + * @return a daeSmartRef to the alpha_test_enable element. + */ + const domAlpha_test_enableRef getAlpha_test_enable() const { return elemAlpha_test_enable; } + /** + * Gets the auto_normal_enable element. + * @return a daeSmartRef to the auto_normal_enable element. + */ + const domAuto_normal_enableRef getAuto_normal_enable() const { return elemAuto_normal_enable; } + /** + * Gets the blend_enable element. + * @return a daeSmartRef to the blend_enable element. + */ + const domBlend_enableRef getBlend_enable() const { return elemBlend_enable; } + /** + * Gets the color_logic_op_enable element. + * @return a daeSmartRef to the color_logic_op_enable element. + */ + const domColor_logic_op_enableRef getColor_logic_op_enable() const { return elemColor_logic_op_enable; } + /** + * Gets the color_material_enable element. + * @return a daeSmartRef to the color_material_enable element. + */ + const domColor_material_enableRef getColor_material_enable() const { return elemColor_material_enable; } + /** + * Gets the cull_face_enable element. + * @return a daeSmartRef to the cull_face_enable element. + */ + const domCull_face_enableRef getCull_face_enable() const { return elemCull_face_enable; } + /** + * Gets the depth_bounds_enable element. + * @return a daeSmartRef to the depth_bounds_enable element. + */ + const domDepth_bounds_enableRef getDepth_bounds_enable() const { return elemDepth_bounds_enable; } + /** + * Gets the depth_clamp_enable element. + * @return a daeSmartRef to the depth_clamp_enable element. + */ + const domDepth_clamp_enableRef getDepth_clamp_enable() const { return elemDepth_clamp_enable; } + /** + * Gets the depth_test_enable element. + * @return a daeSmartRef to the depth_test_enable element. + */ + const domDepth_test_enableRef getDepth_test_enable() const { return elemDepth_test_enable; } + /** + * Gets the dither_enable element. + * @return a daeSmartRef to the dither_enable element. + */ + const domDither_enableRef getDither_enable() const { return elemDither_enable; } + /** + * Gets the fog_enable element. + * @return a daeSmartRef to the fog_enable element. + */ + const domFog_enableRef getFog_enable() const { return elemFog_enable; } + /** + * Gets the light_model_local_viewer_enable element. + * @return a daeSmartRef to the light_model_local_viewer_enable element. + */ + const domLight_model_local_viewer_enableRef getLight_model_local_viewer_enable() const { return elemLight_model_local_viewer_enable; } + /** + * Gets the light_model_two_side_enable element. + * @return a daeSmartRef to the light_model_two_side_enable element. + */ + const domLight_model_two_side_enableRef getLight_model_two_side_enable() const { return elemLight_model_two_side_enable; } + /** + * Gets the line_smooth_enable element. + * @return a daeSmartRef to the line_smooth_enable element. + */ + const domLine_smooth_enableRef getLine_smooth_enable() const { return elemLine_smooth_enable; } + /** + * Gets the line_stipple_enable element. + * @return a daeSmartRef to the line_stipple_enable element. + */ + const domLine_stipple_enableRef getLine_stipple_enable() const { return elemLine_stipple_enable; } + /** + * Gets the logic_op_enable element. + * @return a daeSmartRef to the logic_op_enable element. + */ + const domLogic_op_enableRef getLogic_op_enable() const { return elemLogic_op_enable; } + /** + * Gets the multisample_enable element. + * @return a daeSmartRef to the multisample_enable element. + */ + const domMultisample_enableRef getMultisample_enable() const { return elemMultisample_enable; } + /** + * Gets the normalize_enable element. + * @return a daeSmartRef to the normalize_enable element. + */ + const domNormalize_enableRef getNormalize_enable() const { return elemNormalize_enable; } + /** + * Gets the point_smooth_enable element. + * @return a daeSmartRef to the point_smooth_enable element. + */ + const domPoint_smooth_enableRef getPoint_smooth_enable() const { return elemPoint_smooth_enable; } + /** + * Gets the polygon_offset_fill_enable element. + * @return a daeSmartRef to the polygon_offset_fill_enable element. + */ + const domPolygon_offset_fill_enableRef getPolygon_offset_fill_enable() const { return elemPolygon_offset_fill_enable; } + /** + * Gets the polygon_offset_line_enable element. + * @return a daeSmartRef to the polygon_offset_line_enable element. + */ + const domPolygon_offset_line_enableRef getPolygon_offset_line_enable() const { return elemPolygon_offset_line_enable; } + /** + * Gets the polygon_offset_point_enable element. + * @return a daeSmartRef to the polygon_offset_point_enable element. + */ + const domPolygon_offset_point_enableRef getPolygon_offset_point_enable() const { return elemPolygon_offset_point_enable; } + /** + * Gets the polygon_smooth_enable element. + * @return a daeSmartRef to the polygon_smooth_enable element. + */ + const domPolygon_smooth_enableRef getPolygon_smooth_enable() const { return elemPolygon_smooth_enable; } + /** + * Gets the polygon_stipple_enable element. + * @return a daeSmartRef to the polygon_stipple_enable element. + */ + const domPolygon_stipple_enableRef getPolygon_stipple_enable() const { return elemPolygon_stipple_enable; } + /** + * Gets the rescale_normal_enable element. + * @return a daeSmartRef to the rescale_normal_enable element. + */ + const domRescale_normal_enableRef getRescale_normal_enable() const { return elemRescale_normal_enable; } + /** + * Gets the sample_alpha_to_coverage_enable element. + * @return a daeSmartRef to the sample_alpha_to_coverage_enable element. + */ + const domSample_alpha_to_coverage_enableRef getSample_alpha_to_coverage_enable() const { return elemSample_alpha_to_coverage_enable; } + /** + * Gets the sample_alpha_to_one_enable element. + * @return a daeSmartRef to the sample_alpha_to_one_enable element. + */ + const domSample_alpha_to_one_enableRef getSample_alpha_to_one_enable() const { return elemSample_alpha_to_one_enable; } + /** + * Gets the sample_coverage_enable element. + * @return a daeSmartRef to the sample_coverage_enable element. + */ + const domSample_coverage_enableRef getSample_coverage_enable() const { return elemSample_coverage_enable; } + /** + * Gets the scissor_test_enable element. + * @return a daeSmartRef to the scissor_test_enable element. + */ + const domScissor_test_enableRef getScissor_test_enable() const { return elemScissor_test_enable; } + /** + * Gets the stencil_test_enable element. + * @return a daeSmartRef to the stencil_test_enable element. + */ + const domStencil_test_enableRef getStencil_test_enable() const { return elemStencil_test_enable; } + /** + * Gets the gl_hook_abstract element. + * @return a daeSmartRef to the gl_hook_abstract element. + */ + const domGl_hook_abstractRef getGl_hook_abstract() const { return elemGl_hook_abstract; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGl_pipeline_settings(DAE& dae) : daeElement(dae), elemAlpha_func(), elemBlend_func(), elemBlend_func_separate(), elemBlend_equation(), elemBlend_equation_separate(), elemColor_material(), elemCull_face(), elemDepth_func(), elemFog_mode(), elemFog_coord_src(), elemFront_face(), elemLight_model_color_control(), elemLogic_op(), elemPolygon_mode(), elemShade_model(), elemStencil_func(), elemStencil_op(), elemStencil_func_separate(), elemStencil_op_separate(), elemStencil_mask_separate(), elemLight_enable(), elemLight_ambient(), elemLight_diffuse(), elemLight_specular(), elemLight_position(), elemLight_constant_attenuation(), elemLight_linear_attenuation(), elemLight_quadratic_attenuation(), elemLight_spot_cutoff(), elemLight_spot_direction(), elemLight_spot_exponent(), elemTexture1D(), elemTexture2D(), elemTexture3D(), elemTextureCUBE(), elemTextureRECT(), elemTextureDEPTH(), elemTexture1D_enable(), elemTexture2D_enable(), elemTexture3D_enable(), elemTextureCUBE_enable(), elemTextureRECT_enable(), elemTextureDEPTH_enable(), elemTexture_env_color(), elemTexture_env_mode(), elemClip_plane(), elemClip_plane_enable(), elemBlend_color(), elemClear_color(), elemClear_stencil(), elemClear_depth(), elemColor_mask(), elemDepth_bounds(), elemDepth_mask(), elemDepth_range(), elemFog_density(), elemFog_start(), elemFog_end(), elemFog_color(), elemLight_model_ambient(), elemLighting_enable(), elemLine_stipple(), elemLine_width(), elemMaterial_ambient(), elemMaterial_diffuse(), elemMaterial_emission(), elemMaterial_shininess(), elemMaterial_specular(), elemModel_view_matrix(), elemPoint_distance_attenuation(), elemPoint_fade_threshold_size(), elemPoint_size(), elemPoint_size_min(), elemPoint_size_max(), elemPolygon_offset(), elemProjection_matrix(), elemScissor(), elemStencil_mask(), elemAlpha_test_enable(), elemAuto_normal_enable(), elemBlend_enable(), elemColor_logic_op_enable(), elemColor_material_enable(), elemCull_face_enable(), elemDepth_bounds_enable(), elemDepth_clamp_enable(), elemDepth_test_enable(), elemDither_enable(), elemFog_enable(), elemLight_model_local_viewer_enable(), elemLight_model_two_side_enable(), elemLine_smooth_enable(), elemLine_stipple_enable(), elemLogic_op_enable(), elemMultisample_enable(), elemNormalize_enable(), elemPoint_smooth_enable(), elemPolygon_offset_fill_enable(), elemPolygon_offset_line_enable(), elemPolygon_offset_point_enable(), elemPolygon_smooth_enable(), elemPolygon_stipple_enable(), elemRescale_normal_enable(), elemSample_alpha_to_coverage_enable(), elemSample_alpha_to_one_enable(), elemSample_coverage_enable(), elemScissor_test_enable(), elemStencil_test_enable(), elemGl_hook_abstract() {} + /** + * Destructor + */ + virtual ~domGl_pipeline_settings() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGl_pipeline_settings &operator=( const domGl_pipeline_settings &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_sampler1D.h b/include/1.4/dom/domGl_sampler1D.h new file mode 100644 index 0000000..9aa8729 --- /dev/null +++ b/include/1.4/dom/domGl_sampler1D.h @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_sampler1D_h__ +#define __domGl_sampler1D_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A one-dimensional texture sampler for the GLSL profile. + */ +class domGl_sampler1D_complexType : public domFx_sampler1D_common_complexType +{ + +protected: + /** + * Constructor + */ + domGl_sampler1D_complexType(DAE& dae, daeElement* elt) : domFx_sampler1D_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domGl_sampler1D_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGl_sampler1D_complexType &operator=( const domGl_sampler1D_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGl_sampler1D_complexType. + */ +class domGl_sampler1D : public daeElement, public domGl_sampler1D_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_SAMPLER1D; } + static daeInt ID() { return 97; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGl_sampler1D(DAE& dae) : daeElement(dae), domGl_sampler1D_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGl_sampler1D() {} + /** + * Overloaded assignment operator + */ + virtual domGl_sampler1D &operator=( const domGl_sampler1D &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_sampler2D.h b/include/1.4/dom/domGl_sampler2D.h new file mode 100644 index 0000000..76dd03f --- /dev/null +++ b/include/1.4/dom/domGl_sampler2D.h @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_sampler2D_h__ +#define __domGl_sampler2D_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A two-dimensional texture sampler for the GLSL profile. + */ +class domGl_sampler2D_complexType : public domFx_sampler2D_common_complexType +{ + +protected: + /** + * Constructor + */ + domGl_sampler2D_complexType(DAE& dae, daeElement* elt) : domFx_sampler2D_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domGl_sampler2D_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGl_sampler2D_complexType &operator=( const domGl_sampler2D_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGl_sampler2D_complexType. + */ +class domGl_sampler2D : public daeElement, public domGl_sampler2D_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_SAMPLER2D; } + static daeInt ID() { return 98; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGl_sampler2D(DAE& dae) : daeElement(dae), domGl_sampler2D_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGl_sampler2D() {} + /** + * Overloaded assignment operator + */ + virtual domGl_sampler2D &operator=( const domGl_sampler2D &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_sampler3D.h b/include/1.4/dom/domGl_sampler3D.h new file mode 100644 index 0000000..155243a --- /dev/null +++ b/include/1.4/dom/domGl_sampler3D.h @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_sampler3D_h__ +#define __domGl_sampler3D_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A three-dimensional texture sampler for the GLSL profile. + */ +class domGl_sampler3D_complexType : public domFx_sampler3D_common_complexType +{ + +protected: + /** + * Constructor + */ + domGl_sampler3D_complexType(DAE& dae, daeElement* elt) : domFx_sampler3D_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domGl_sampler3D_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGl_sampler3D_complexType &operator=( const domGl_sampler3D_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGl_sampler3D_complexType. + */ +class domGl_sampler3D : public daeElement, public domGl_sampler3D_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_SAMPLER3D; } + static daeInt ID() { return 99; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGl_sampler3D(DAE& dae) : daeElement(dae), domGl_sampler3D_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGl_sampler3D() {} + /** + * Overloaded assignment operator + */ + virtual domGl_sampler3D &operator=( const domGl_sampler3D &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_samplerCUBE.h b/include/1.4/dom/domGl_samplerCUBE.h new file mode 100644 index 0000000..b1511bb --- /dev/null +++ b/include/1.4/dom/domGl_samplerCUBE.h @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_samplerCUBE_h__ +#define __domGl_samplerCUBE_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A cube map texture sampler for the GLSL profile. + */ +class domGl_samplerCUBE_complexType : public domFx_samplerCUBE_common_complexType +{ + +protected: + /** + * Constructor + */ + domGl_samplerCUBE_complexType(DAE& dae, daeElement* elt) : domFx_samplerCUBE_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domGl_samplerCUBE_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGl_samplerCUBE_complexType &operator=( const domGl_samplerCUBE_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGl_samplerCUBE_complexType. + */ +class domGl_samplerCUBE : public daeElement, public domGl_samplerCUBE_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_SAMPLERCUBE; } + static daeInt ID() { return 100; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGl_samplerCUBE(DAE& dae) : daeElement(dae), domGl_samplerCUBE_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGl_samplerCUBE() {} + /** + * Overloaded assignment operator + */ + virtual domGl_samplerCUBE &operator=( const domGl_samplerCUBE &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_samplerDEPTH.h b/include/1.4/dom/domGl_samplerDEPTH.h new file mode 100644 index 0000000..6b3f8e0 --- /dev/null +++ b/include/1.4/dom/domGl_samplerDEPTH.h @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_samplerDEPTH_h__ +#define __domGl_samplerDEPTH_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A depth texture sampler for the GLSL profile. + */ +class domGl_samplerDEPTH_complexType : public domFx_samplerDEPTH_common_complexType +{ + +protected: + /** + * Constructor + */ + domGl_samplerDEPTH_complexType(DAE& dae, daeElement* elt) : domFx_samplerDEPTH_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domGl_samplerDEPTH_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGl_samplerDEPTH_complexType &operator=( const domGl_samplerDEPTH_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGl_samplerDEPTH_complexType. + */ +class domGl_samplerDEPTH : public daeElement, public domGl_samplerDEPTH_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_SAMPLERDEPTH; } + static daeInt ID() { return 102; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGl_samplerDEPTH(DAE& dae) : daeElement(dae), domGl_samplerDEPTH_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGl_samplerDEPTH() {} + /** + * Overloaded assignment operator + */ + virtual domGl_samplerDEPTH &operator=( const domGl_samplerDEPTH &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGl_samplerRECT.h b/include/1.4/dom/domGl_samplerRECT.h new file mode 100644 index 0000000..77b9afd --- /dev/null +++ b/include/1.4/dom/domGl_samplerRECT.h @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGl_samplerRECT_h__ +#define __domGl_samplerRECT_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A two-dimensional texture sampler for the GLSL profile. + */ +class domGl_samplerRECT_complexType : public domFx_samplerRECT_common_complexType +{ + +protected: + /** + * Constructor + */ + domGl_samplerRECT_complexType(DAE& dae, daeElement* elt) : domFx_samplerRECT_common_complexType(dae, elt) {} + /** + * Destructor + */ + virtual ~domGl_samplerRECT_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGl_samplerRECT_complexType &operator=( const domGl_samplerRECT_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGl_samplerRECT_complexType. + */ +class domGl_samplerRECT : public daeElement, public domGl_samplerRECT_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GL_SAMPLERRECT; } + static daeInt ID() { return 101; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGl_samplerRECT(DAE& dae) : daeElement(dae), domGl_samplerRECT_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGl_samplerRECT() {} + /** + * Overloaded assignment operator + */ + virtual domGl_samplerRECT &operator=( const domGl_samplerRECT &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_basic_type_common.h b/include/1.4/dom/domGles_basic_type_common.h new file mode 100644 index 0000000..f1137a0 --- /dev/null +++ b/include/1.4/dom/domGles_basic_type_common.h @@ -0,0 +1,2096 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_basic_type_common_h__ +#define __domGles_basic_type_common_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * A group that defines the available variable types for GLES parameters. + */ +class domGles_basic_type_common : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_BASIC_TYPE_COMMON; } + static daeInt ID() { return 572; } + virtual daeInt typeID() const { return ID(); } +public: + class domBool; + + typedef daeSmartRef domBoolRef; + typedef daeTArray domBool_Array; + + class domBool : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL; } + static daeInt ID() { return 573; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool value of the text data of this element. + */ + ::domBool _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domBool of the value. + */ + ::domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool() {} + /** + * Overloaded assignment operator + */ + virtual domBool &operator=( const domBool &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2; + + typedef daeSmartRef domBool2Ref; + typedef daeTArray domBool2_Array; + + class domBool2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2; } + static daeInt ID() { return 574; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool2 value of the text data of this element. + */ + ::domBool2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool2 reference of the _value array. + */ + ::domBool2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool2 reference of the _value array. + */ + const ::domBool2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2() {} + /** + * Overloaded assignment operator + */ + virtual domBool2 &operator=( const domBool2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3; + + typedef daeSmartRef domBool3Ref; + typedef daeTArray domBool3_Array; + + class domBool3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3; } + static daeInt ID() { return 575; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool3 value of the text data of this element. + */ + ::domBool3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool3 reference of the _value array. + */ + ::domBool3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool3 reference of the _value array. + */ + const ::domBool3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3() {} + /** + * Overloaded assignment operator + */ + virtual domBool3 &operator=( const domBool3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4; + + typedef daeSmartRef domBool4Ref; + typedef daeTArray domBool4_Array; + + class domBool4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4; } + static daeInt ID() { return 576; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domBool4 value of the text data of this element. + */ + ::domBool4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domBool4 reference of the _value array. + */ + ::domBool4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domBool4 reference of the _value array. + */ + const ::domBool4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domBool4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4() {} + /** + * Overloaded assignment operator + */ + virtual domBool4 &operator=( const domBool4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt; + + typedef daeSmartRef domIntRef; + typedef daeTArray domInt_Array; + + class domInt : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT; } + static daeInt ID() { return 577; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt value of the text data of this element. + */ + ::domInt _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domInt of the value. + */ + ::domInt getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domInt val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt() {} + /** + * Overloaded assignment operator + */ + virtual domInt &operator=( const domInt &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2; + + typedef daeSmartRef domInt2Ref; + typedef daeTArray domInt2_Array; + + class domInt2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2; } + static daeInt ID() { return 578; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt2 value of the text data of this element. + */ + ::domInt2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt2 reference of the _value array. + */ + ::domInt2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt2 reference of the _value array. + */ + const ::domInt2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2() {} + /** + * Overloaded assignment operator + */ + virtual domInt2 &operator=( const domInt2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3; + + typedef daeSmartRef domInt3Ref; + typedef daeTArray domInt3_Array; + + class domInt3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3; } + static daeInt ID() { return 579; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt3 value of the text data of this element. + */ + ::domInt3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt3 reference of the _value array. + */ + ::domInt3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt3 reference of the _value array. + */ + const ::domInt3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3() {} + /** + * Overloaded assignment operator + */ + virtual domInt3 &operator=( const domInt3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4; + + typedef daeSmartRef domInt4Ref; + typedef daeTArray domInt4_Array; + + class domInt4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4; } + static daeInt ID() { return 580; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domInt4 value of the text data of this element. + */ + ::domInt4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domInt4 reference of the _value array. + */ + ::domInt4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domInt4 reference of the _value array. + */ + const ::domInt4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domInt4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4() {} + /** + * Overloaded assignment operator + */ + virtual domInt4 &operator=( const domInt4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat; + + typedef daeSmartRef domFloatRef; + typedef daeTArray domFloat_Array; + + class domFloat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; } + static daeInt ID() { return 581; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat value of the text data of this element. + */ + ::domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domFloat of the value. + */ + ::domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat() {} + /** + * Overloaded assignment operator + */ + virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2; + + typedef daeSmartRef domFloat2Ref; + typedef daeTArray domFloat2_Array; + + class domFloat2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; } + static daeInt ID() { return 582; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3; + + typedef daeSmartRef domFloat3Ref; + typedef daeTArray domFloat3_Array; + + class domFloat3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; } + static daeInt ID() { return 583; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4; + + typedef daeSmartRef domFloat4Ref; + typedef daeTArray domFloat4_Array; + + class domFloat4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; } + static daeInt ID() { return 584; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x1; + + typedef daeSmartRef domFloat1x1Ref; + typedef daeTArray domFloat1x1_Array; + + class domFloat1x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X1; } + static daeInt ID() { return 585; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat value of the text data of this element. + */ + ::domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a ::domFloat of the value. + */ + ::domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( ::domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x1 &operator=( const domFloat1x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x2; + + typedef daeSmartRef domFloat1x2Ref; + typedef daeTArray domFloat1x2_Array; + + class domFloat1x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X2; } + static daeInt ID() { return 586; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x2 &operator=( const domFloat1x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x3; + + typedef daeSmartRef domFloat1x3Ref; + typedef daeTArray domFloat1x3_Array; + + class domFloat1x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X3; } + static daeInt ID() { return 587; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x3 &operator=( const domFloat1x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat1x4; + + typedef daeSmartRef domFloat1x4Ref; + typedef daeTArray domFloat1x4_Array; + + class domFloat1x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X4; } + static daeInt ID() { return 588; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat1x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat1x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat1x4 &operator=( const domFloat1x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x1; + + typedef daeSmartRef domFloat2x1Ref; + typedef daeTArray domFloat2x1_Array; + + class domFloat2x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X1; } + static daeInt ID() { return 589; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2 value of the text data of this element. + */ + ::domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2 reference of the _value array. + */ + ::domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2 reference of the _value array. + */ + const ::domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x1 &operator=( const domFloat2x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x2; + + typedef daeSmartRef domFloat2x2Ref; + typedef daeTArray domFloat2x2_Array; + + class domFloat2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X2; } + static daeInt ID() { return 590; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2x2 value of the text data of this element. + */ + ::domFloat2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2x2 reference of the _value array. + */ + ::domFloat2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2x2 reference of the _value array. + */ + const ::domFloat2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x2 &operator=( const domFloat2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x3; + + typedef daeSmartRef domFloat2x3Ref; + typedef daeTArray domFloat2x3_Array; + + class domFloat2x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X3; } + static daeInt ID() { return 591; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2x3 value of the text data of this element. + */ + ::domFloat2x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2x3 reference of the _value array. + */ + ::domFloat2x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2x3 reference of the _value array. + */ + const ::domFloat2x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x3 &operator=( const domFloat2x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x4; + + typedef daeSmartRef domFloat2x4Ref; + typedef daeTArray domFloat2x4_Array; + + class domFloat2x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X4; } + static daeInt ID() { return 592; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat2x4 value of the text data of this element. + */ + ::domFloat2x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat2x4 reference of the _value array. + */ + ::domFloat2x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat2x4 reference of the _value array. + */ + const ::domFloat2x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat2x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x4 &operator=( const domFloat2x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x1; + + typedef daeSmartRef domFloat3x1Ref; + typedef daeTArray domFloat3x1_Array; + + class domFloat3x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X1; } + static daeInt ID() { return 593; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3 value of the text data of this element. + */ + ::domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3 reference of the _value array. + */ + ::domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3 reference of the _value array. + */ + const ::domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x1 &operator=( const domFloat3x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x2; + + typedef daeSmartRef domFloat3x2Ref; + typedef daeTArray domFloat3x2_Array; + + class domFloat3x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X2; } + static daeInt ID() { return 594; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3x2 value of the text data of this element. + */ + ::domFloat3x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3x2 reference of the _value array. + */ + ::domFloat3x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3x2 reference of the _value array. + */ + const ::domFloat3x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x2 &operator=( const domFloat3x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x3; + + typedef daeSmartRef domFloat3x3Ref; + typedef daeTArray domFloat3x3_Array; + + class domFloat3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X3; } + static daeInt ID() { return 595; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3x3 value of the text data of this element. + */ + ::domFloat3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3x3 reference of the _value array. + */ + ::domFloat3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3x3 reference of the _value array. + */ + const ::domFloat3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x3 &operator=( const domFloat3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x4; + + typedef daeSmartRef domFloat3x4Ref; + typedef daeTArray domFloat3x4_Array; + + class domFloat3x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X4; } + static daeInt ID() { return 596; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat3x4 value of the text data of this element. + */ + ::domFloat3x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat3x4 reference of the _value array. + */ + ::domFloat3x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat3x4 reference of the _value array. + */ + const ::domFloat3x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat3x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x4 &operator=( const domFloat3x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x1; + + typedef daeSmartRef domFloat4x1Ref; + typedef daeTArray domFloat4x1_Array; + + class domFloat4x1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X1; } + static daeInt ID() { return 597; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4 value of the text data of this element. + */ + ::domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4 reference of the _value array. + */ + ::domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4 reference of the _value array. + */ + const ::domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x1() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x1 &operator=( const domFloat4x1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x2; + + typedef daeSmartRef domFloat4x2Ref; + typedef daeTArray domFloat4x2_Array; + + class domFloat4x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X2; } + static daeInt ID() { return 598; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4x2 value of the text data of this element. + */ + ::domFloat4x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4x2 reference of the _value array. + */ + ::domFloat4x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4x2 reference of the _value array. + */ + const ::domFloat4x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x2 &operator=( const domFloat4x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x3; + + typedef daeSmartRef domFloat4x3Ref; + typedef daeTArray domFloat4x3_Array; + + class domFloat4x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X3; } + static daeInt ID() { return 599; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4x3 value of the text data of this element. + */ + ::domFloat4x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4x3 reference of the _value array. + */ + ::domFloat4x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4x3 reference of the _value array. + */ + const ::domFloat4x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x3 &operator=( const domFloat4x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x4; + + typedef daeSmartRef domFloat4x4Ref; + typedef daeTArray domFloat4x4_Array; + + class domFloat4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X4; } + static daeInt ID() { return 600; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The ::domFloat4x4 value of the text data of this element. + */ + ::domFloat4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a ::domFloat4x4 reference of the _value array. + */ + ::domFloat4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant ::domFloat4x4 reference of the _value array. + */ + const ::domFloat4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const ::domFloat4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x4 &operator=( const domFloat4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domEnum; + + typedef daeSmartRef domEnumRef; + typedef daeTArray domEnum_Array; + + class domEnum : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ENUM; } + static daeInt ID() { return 601; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGles_enumeration value of the text data of this element. + */ + domGles_enumeration _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGles_enumeration of the value. + */ + domGles_enumeration getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGles_enumeration val ) { _value = val; } + + protected: + /** + * Constructor + */ + domEnum(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domEnum() {} + /** + * Overloaded assignment operator + */ + virtual domEnum &operator=( const domEnum &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domBoolRef elemBool; + domBool2Ref elemBool2; + domBool3Ref elemBool3; + domBool4Ref elemBool4; + domIntRef elemInt; + domInt2Ref elemInt2; + domInt3Ref elemInt3; + domInt4Ref elemInt4; + domFloatRef elemFloat; + domFloat2Ref elemFloat2; + domFloat3Ref elemFloat3; + domFloat4Ref elemFloat4; + domFloat1x1Ref elemFloat1x1; + domFloat1x2Ref elemFloat1x2; + domFloat1x3Ref elemFloat1x3; + domFloat1x4Ref elemFloat1x4; + domFloat2x1Ref elemFloat2x1; + domFloat2x2Ref elemFloat2x2; + domFloat2x3Ref elemFloat2x3; + domFloat2x4Ref elemFloat2x4; + domFloat3x1Ref elemFloat3x1; + domFloat3x2Ref elemFloat3x2; + domFloat3x3Ref elemFloat3x3; + domFloat3x4Ref elemFloat3x4; + domFloat4x1Ref elemFloat4x1; + domFloat4x2Ref elemFloat4x2; + domFloat4x3Ref elemFloat4x3; + domFloat4x4Ref elemFloat4x4; + domFx_surface_commonRef elemSurface; + domGles_texture_pipelineRef elemTexture_pipeline; + domGles_sampler_stateRef elemSampler_state; + domGles_texture_unitRef elemTexture_unit; + domEnumRef elemEnum; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the bool element. + * @return a daeSmartRef to the bool element. + */ + const domBoolRef getBool() const { return elemBool; } + /** + * Gets the bool2 element. + * @return a daeSmartRef to the bool2 element. + */ + const domBool2Ref getBool2() const { return elemBool2; } + /** + * Gets the bool3 element. + * @return a daeSmartRef to the bool3 element. + */ + const domBool3Ref getBool3() const { return elemBool3; } + /** + * Gets the bool4 element. + * @return a daeSmartRef to the bool4 element. + */ + const domBool4Ref getBool4() const { return elemBool4; } + /** + * Gets the int element. + * @return a daeSmartRef to the int element. + */ + const domIntRef getInt() const { return elemInt; } + /** + * Gets the int2 element. + * @return a daeSmartRef to the int2 element. + */ + const domInt2Ref getInt2() const { return elemInt2; } + /** + * Gets the int3 element. + * @return a daeSmartRef to the int3 element. + */ + const domInt3Ref getInt3() const { return elemInt3; } + /** + * Gets the int4 element. + * @return a daeSmartRef to the int4 element. + */ + const domInt4Ref getInt4() const { return elemInt4; } + /** + * Gets the float element. + * @return a daeSmartRef to the float element. + */ + const domFloatRef getFloat() const { return elemFloat; } + /** + * Gets the float2 element. + * @return a daeSmartRef to the float2 element. + */ + const domFloat2Ref getFloat2() const { return elemFloat2; } + /** + * Gets the float3 element. + * @return a daeSmartRef to the float3 element. + */ + const domFloat3Ref getFloat3() const { return elemFloat3; } + /** + * Gets the float4 element. + * @return a daeSmartRef to the float4 element. + */ + const domFloat4Ref getFloat4() const { return elemFloat4; } + /** + * Gets the float1x1 element. + * @return a daeSmartRef to the float1x1 element. + */ + const domFloat1x1Ref getFloat1x1() const { return elemFloat1x1; } + /** + * Gets the float1x2 element. + * @return a daeSmartRef to the float1x2 element. + */ + const domFloat1x2Ref getFloat1x2() const { return elemFloat1x2; } + /** + * Gets the float1x3 element. + * @return a daeSmartRef to the float1x3 element. + */ + const domFloat1x3Ref getFloat1x3() const { return elemFloat1x3; } + /** + * Gets the float1x4 element. + * @return a daeSmartRef to the float1x4 element. + */ + const domFloat1x4Ref getFloat1x4() const { return elemFloat1x4; } + /** + * Gets the float2x1 element. + * @return a daeSmartRef to the float2x1 element. + */ + const domFloat2x1Ref getFloat2x1() const { return elemFloat2x1; } + /** + * Gets the float2x2 element. + * @return a daeSmartRef to the float2x2 element. + */ + const domFloat2x2Ref getFloat2x2() const { return elemFloat2x2; } + /** + * Gets the float2x3 element. + * @return a daeSmartRef to the float2x3 element. + */ + const domFloat2x3Ref getFloat2x3() const { return elemFloat2x3; } + /** + * Gets the float2x4 element. + * @return a daeSmartRef to the float2x4 element. + */ + const domFloat2x4Ref getFloat2x4() const { return elemFloat2x4; } + /** + * Gets the float3x1 element. + * @return a daeSmartRef to the float3x1 element. + */ + const domFloat3x1Ref getFloat3x1() const { return elemFloat3x1; } + /** + * Gets the float3x2 element. + * @return a daeSmartRef to the float3x2 element. + */ + const domFloat3x2Ref getFloat3x2() const { return elemFloat3x2; } + /** + * Gets the float3x3 element. + * @return a daeSmartRef to the float3x3 element. + */ + const domFloat3x3Ref getFloat3x3() const { return elemFloat3x3; } + /** + * Gets the float3x4 element. + * @return a daeSmartRef to the float3x4 element. + */ + const domFloat3x4Ref getFloat3x4() const { return elemFloat3x4; } + /** + * Gets the float4x1 element. + * @return a daeSmartRef to the float4x1 element. + */ + const domFloat4x1Ref getFloat4x1() const { return elemFloat4x1; } + /** + * Gets the float4x2 element. + * @return a daeSmartRef to the float4x2 element. + */ + const domFloat4x2Ref getFloat4x2() const { return elemFloat4x2; } + /** + * Gets the float4x3 element. + * @return a daeSmartRef to the float4x3 element. + */ + const domFloat4x3Ref getFloat4x3() const { return elemFloat4x3; } + /** + * Gets the float4x4 element. + * @return a daeSmartRef to the float4x4 element. + */ + const domFloat4x4Ref getFloat4x4() const { return elemFloat4x4; } + /** + * Gets the surface element. + * @return a daeSmartRef to the surface element. + */ + const domFx_surface_commonRef getSurface() const { return elemSurface; } + /** + * Gets the texture_pipeline element. + * @return a daeSmartRef to the texture_pipeline element. + */ + const domGles_texture_pipelineRef getTexture_pipeline() const { return elemTexture_pipeline; } + /** + * Gets the sampler_state element. + * @return a daeSmartRef to the sampler_state element. + */ + const domGles_sampler_stateRef getSampler_state() const { return elemSampler_state; } + /** + * Gets the texture_unit element. + * @return a daeSmartRef to the texture_unit element. + */ + const domGles_texture_unitRef getTexture_unit() const { return elemTexture_unit; } + /** + * Gets the enum element. + * @return a daeSmartRef to the enum element. + */ + const domEnumRef getEnum() const { return elemEnum; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGles_basic_type_common(DAE& dae) : daeElement(dae), elemBool(), elemBool2(), elemBool3(), elemBool4(), elemInt(), elemInt2(), elemInt3(), elemInt4(), elemFloat(), elemFloat2(), elemFloat3(), elemFloat4(), elemFloat1x1(), elemFloat1x2(), elemFloat1x3(), elemFloat1x4(), elemFloat2x1(), elemFloat2x2(), elemFloat2x3(), elemFloat2x4(), elemFloat3x1(), elemFloat3x2(), elemFloat3x3(), elemFloat3x4(), elemFloat4x1(), elemFloat4x2(), elemFloat4x3(), elemFloat4x4(), elemSurface(), elemTexture_pipeline(), elemSampler_state(), elemTexture_unit(), elemEnum() {} + /** + * Destructor + */ + virtual ~domGles_basic_type_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGles_basic_type_common &operator=( const domGles_basic_type_common &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_newparam.h b/include/1.4/dom/domGles_newparam.h new file mode 100644 index 0000000..5b2b3d4 --- /dev/null +++ b/include/1.4/dom/domGles_newparam.h @@ -0,0 +1,284 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_newparam_h__ +#define __domGles_newparam_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * Create a new, named param object in the GLES Runtime, assign it a type, + * an initial value, and additional attributes at declaration time. + */ +class domGles_newparam_complexType +{ +public: + class domSemantic; + + typedef daeSmartRef domSemanticRef; + typedef daeTArray domSemantic_Array; + +/** + * The semantic element allows you to specify a semantic for this new param. + */ + class domSemantic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; } + static daeInt ID() { return 165; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSemantic(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSemantic() {} + /** + * Overloaded assignment operator + */ + virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domModifier; + + typedef daeSmartRef domModifierRef; + typedef daeTArray domModifier_Array; + +/** + * The modifier element allows you to specify a modifier for this new param. + */ + class domModifier : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIER; } + static daeInt ID() { return 166; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_modifier_enum_common value of the text data of this element. + */ + domFx_modifier_enum_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_modifier_enum_common of the value. + */ + domFx_modifier_enum_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_modifier_enum_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domModifier(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domModifier() {} + /** + * Overloaded assignment operator + */ + virtual domModifier &operator=( const domModifier &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. + */ + xsNCName attrSid; + +protected: // Elements +/** + * The annotate element allows you to specify an annotation for this new param. + * @see domAnnotate + */ + domFx_annotate_common_Array elemAnnotate_array; +/** + * The semantic element allows you to specify a semantic for this new param. + * @see domSemantic + */ + domSemanticRef elemSemantic; +/** + * The modifier element allows you to specify a modifier for this new param. + * @see domModifier + */ + domModifierRef elemModifier; + domGles_basic_type_commonRef elemGles_basic_type_common; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the semantic element. + * @return a daeSmartRef to the semantic element. + */ + const domSemanticRef getSemantic() const { return elemSemantic; } + /** + * Gets the modifier element. + * @return a daeSmartRef to the modifier element. + */ + const domModifierRef getModifier() const { return elemModifier; } + /** + * Gets the gles_basic_type_common element. + * @return a daeSmartRef to the gles_basic_type_common element. + */ + const domGles_basic_type_commonRef getGles_basic_type_common() const { return elemGles_basic_type_common; } +protected: + /** + * Constructor + */ + domGles_newparam_complexType(DAE& dae, daeElement* elt) : attrSid(), elemAnnotate_array(), elemSemantic(), elemModifier(), elemGles_basic_type_common() {} + /** + * Destructor + */ + virtual ~domGles_newparam_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_newparam_complexType &operator=( const domGles_newparam_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_newparam_complexType. + */ +class domGles_newparam : public daeElement, public domGles_newparam_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_NEWPARAM; } + static daeInt ID() { return 167; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGles_newparam(DAE& dae) : daeElement(dae), domGles_newparam_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_newparam() {} + /** + * Overloaded assignment operator + */ + virtual domGles_newparam &operator=( const domGles_newparam &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_pipeline_settings.h b/include/1.4/dom/domGles_pipeline_settings.h new file mode 100644 index 0000000..7c9b4f5 --- /dev/null +++ b/include/1.4/dom/domGles_pipeline_settings.h @@ -0,0 +1,6315 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_pipeline_settings_h__ +#define __domGles_pipeline_settings_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A group that contains the renderstates available for the GLES profile. + */ +class domGles_pipeline_settings : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_PIPELINE_SETTINGS; } + static daeInt ID() { return 488; } + virtual daeInt typeID() const { return ID(); } +public: + class domAlpha_func; + + typedef daeSmartRef domAlpha_funcRef; + typedef daeTArray domAlpha_func_Array; + + class domAlpha_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALPHA_FUNC; } + static daeInt ID() { return 489; } + virtual daeInt typeID() const { return ID(); } + public: + class domFunc; + + typedef daeSmartRef domFuncRef; + typedef daeTArray domFunc_Array; + + class domFunc : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FUNC; } + static daeInt ID() { return 490; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFunc(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFunc() {} + /** + * Overloaded assignment operator + */ + virtual domFunc &operator=( const domFunc &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domValue; + + typedef daeSmartRef domValueRef; + typedef daeTArray domValue_Array; + + class domValue : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VALUE; } + static daeInt ID() { return 491; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_alpha_value_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_alpha_value_type of the value attribute. + */ + domGl_alpha_value_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_alpha_value_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domValue(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domValue() {} + /** + * Overloaded assignment operator + */ + virtual domValue &operator=( const domValue &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFuncRef elemFunc; + domValueRef elemValue; + + public: //Accessors and Mutators + /** + * Gets the func element. + * @return a daeSmartRef to the func element. + */ + const domFuncRef getFunc() const { return elemFunc; } + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domValueRef getValue() const { return elemValue; } + protected: + /** + * Constructor + */ + domAlpha_func(DAE& dae) : daeElement(dae), elemFunc(), elemValue() {} + /** + * Destructor + */ + virtual ~domAlpha_func() {} + /** + * Overloaded assignment operator + */ + virtual domAlpha_func &operator=( const domAlpha_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_func; + + typedef daeSmartRef domBlend_funcRef; + typedef daeTArray domBlend_func_Array; + + class domBlend_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_FUNC; } + static daeInt ID() { return 492; } + virtual daeInt typeID() const { return ID(); } + public: + class domSrc; + + typedef daeSmartRef domSrcRef; + typedef daeTArray domSrc_Array; + + class domSrc : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SRC; } + static daeInt ID() { return 493; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSrc(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSrc() {} + /** + * Overloaded assignment operator + */ + virtual domSrc &operator=( const domSrc &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDest; + + typedef daeSmartRef domDestRef; + typedef daeTArray domDest_Array; + + class domDest : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEST; } + static daeInt ID() { return 494; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_blend_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_blend_type of the value attribute. + */ + domGl_blend_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_blend_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDest(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDest() {} + /** + * Overloaded assignment operator + */ + virtual domDest &operator=( const domDest &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domSrcRef elemSrc; + domDestRef elemDest; + + public: //Accessors and Mutators + /** + * Gets the src element. + * @return a daeSmartRef to the src element. + */ + const domSrcRef getSrc() const { return elemSrc; } + /** + * Gets the dest element. + * @return a daeSmartRef to the dest element. + */ + const domDestRef getDest() const { return elemDest; } + protected: + /** + * Constructor + */ + domBlend_func(DAE& dae) : daeElement(dae), elemSrc(), elemDest() {} + /** + * Destructor + */ + virtual ~domBlend_func() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_func &operator=( const domBlend_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClear_color; + + typedef daeSmartRef domClear_colorRef; + typedef daeTArray domClear_color_Array; + + class domClear_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLEAR_COLOR; } + static daeInt ID() { return 495; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domClear_color(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domClear_color() {} + /** + * Overloaded assignment operator + */ + virtual domClear_color &operator=( const domClear_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClear_stencil; + + typedef daeSmartRef domClear_stencilRef; + typedef daeTArray domClear_stencil_Array; + + class domClear_stencil : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLEAR_STENCIL; } + static daeInt ID() { return 496; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domInt attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domInt of the value attribute. + */ + domInt getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domInt atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domClear_stencil(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domClear_stencil() {} + /** + * Overloaded assignment operator + */ + virtual domClear_stencil &operator=( const domClear_stencil &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClear_depth; + + typedef daeSmartRef domClear_depthRef; + typedef daeTArray domClear_depth_Array; + + class domClear_depth : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLEAR_DEPTH; } + static daeInt ID() { return 497; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domClear_depth(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domClear_depth() {} + /** + * Overloaded assignment operator + */ + virtual domClear_depth &operator=( const domClear_depth &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClip_plane; + + typedef daeSmartRef domClip_planeRef; + typedef daeTArray domClip_plane_Array; + + class domClip_plane : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLIP_PLANE; } + static daeInt ID() { return 498; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool4 attrValue; + xsNCName attrParam; + domGLES_MAX_CLIP_PLANES_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domBool4 reference of the value array attribute. + */ + domBool4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domBool4 reference of the value array attribute. + */ + const domBool4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domBool4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_CLIP_PLANES_index of the index attribute. + */ + domGLES_MAX_CLIP_PLANES_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_CLIP_PLANES_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domClip_plane(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domClip_plane() {} + /** + * Overloaded assignment operator + */ + virtual domClip_plane &operator=( const domClip_plane &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_mask; + + typedef daeSmartRef domColor_maskRef; + typedef daeTArray domColor_mask_Array; + + class domColor_mask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_MASK; } + static daeInt ID() { return 499; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domBool4 reference of the value array attribute. + */ + domBool4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domBool4 reference of the value array attribute. + */ + const domBool4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domBool4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domColor_mask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domColor_mask() {} + /** + * Overloaded assignment operator + */ + virtual domColor_mask &operator=( const domColor_mask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCull_face; + + typedef daeSmartRef domCull_faceRef; + typedef daeTArray domCull_face_Array; + + class domCull_face : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CULL_FACE; } + static daeInt ID() { return 500; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_face_type of the value attribute. + */ + domGl_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domCull_face(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domCull_face() {} + /** + * Overloaded assignment operator + */ + virtual domCull_face &operator=( const domCull_face &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_func; + + typedef daeSmartRef domDepth_funcRef; + typedef daeTArray domDepth_func_Array; + + class domDepth_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_FUNC; } + static daeInt ID() { return 501; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_func(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_func() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_func &operator=( const domDepth_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_mask; + + typedef daeSmartRef domDepth_maskRef; + typedef daeTArray domDepth_mask_Array; + + class domDepth_mask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_MASK; } + static daeInt ID() { return 502; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_mask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_mask() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_mask &operator=( const domDepth_mask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_range; + + typedef daeSmartRef domDepth_rangeRef; + typedef daeTArray domDepth_range_Array; + + class domDepth_range : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_RANGE; } + static daeInt ID() { return 503; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat2 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat2 reference of the value array attribute. + */ + domFloat2 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat2 reference of the value array attribute. + */ + const domFloat2 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat2 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_range(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_range() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_range &operator=( const domDepth_range &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_color; + + typedef daeSmartRef domFog_colorRef; + typedef daeTArray domFog_color_Array; + + class domFog_color : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_COLOR; } + static daeInt ID() { return 504; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_color(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_color() {} + /** + * Overloaded assignment operator + */ + virtual domFog_color &operator=( const domFog_color &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_density; + + typedef daeSmartRef domFog_densityRef; + typedef daeTArray domFog_density_Array; + + class domFog_density : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_DENSITY; } + static daeInt ID() { return 505; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_density(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_density() {} + /** + * Overloaded assignment operator + */ + virtual domFog_density &operator=( const domFog_density &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_mode; + + typedef daeSmartRef domFog_modeRef; + typedef daeTArray domFog_mode_Array; + + class domFog_mode : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_MODE; } + static daeInt ID() { return 506; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_fog_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_fog_type of the value attribute. + */ + domGl_fog_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_fog_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_mode(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_mode() {} + /** + * Overloaded assignment operator + */ + virtual domFog_mode &operator=( const domFog_mode &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_start; + + typedef daeSmartRef domFog_startRef; + typedef daeTArray domFog_start_Array; + + class domFog_start : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_START; } + static daeInt ID() { return 507; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_start(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_start() {} + /** + * Overloaded assignment operator + */ + virtual domFog_start &operator=( const domFog_start &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_end; + + typedef daeSmartRef domFog_endRef; + typedef daeTArray domFog_end_Array; + + class domFog_end : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_END; } + static daeInt ID() { return 508; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_end(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_end() {} + /** + * Overloaded assignment operator + */ + virtual domFog_end &operator=( const domFog_end &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFront_face; + + typedef daeSmartRef domFront_faceRef; + typedef daeTArray domFront_face_Array; + + class domFront_face : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FRONT_FACE; } + static daeInt ID() { return 509; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_front_face_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_front_face_type of the value attribute. + */ + domGl_front_face_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_front_face_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFront_face(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFront_face() {} + /** + * Overloaded assignment operator + */ + virtual domFront_face &operator=( const domFront_face &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture_pipeline; + + typedef daeSmartRef domTexture_pipelineRef; + typedef daeTArray domTexture_pipeline_Array; + + class domTexture_pipeline : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE_PIPELINE; } + static daeInt ID() { return 510; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrParam; + + protected: // Element + domGles_texture_pipelineRef elemValue; + + public: //Accessors and Mutators + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[0] = true; } + + /** + * Gets the value element. + * @return a daeSmartRef to the value element. + */ + const domGles_texture_pipelineRef getValue() const { return elemValue; } + protected: + /** + * Constructor + */ + domTexture_pipeline(DAE& dae) : daeElement(dae), attrParam(), elemValue() {} + /** + * Destructor + */ + virtual ~domTexture_pipeline() {} + /** + * Overloaded assignment operator + */ + virtual domTexture_pipeline &operator=( const domTexture_pipeline &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLogic_op; + + typedef daeSmartRef domLogic_opRef; + typedef daeTArray domLogic_op_Array; + + class domLogic_op : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LOGIC_OP; } + static daeInt ID() { return 511; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_logic_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_logic_op_type of the value attribute. + */ + domGl_logic_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_logic_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLogic_op(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLogic_op() {} + /** + * Overloaded assignment operator + */ + virtual domLogic_op &operator=( const domLogic_op &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_ambient; + + typedef daeSmartRef domLight_ambientRef; + typedef daeTArray domLight_ambient_Array; + + class domLight_ambient : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_AMBIENT; } + static daeInt ID() { return 512; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_ambient(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_ambient() {} + /** + * Overloaded assignment operator + */ + virtual domLight_ambient &operator=( const domLight_ambient &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_diffuse; + + typedef daeSmartRef domLight_diffuseRef; + typedef daeTArray domLight_diffuse_Array; + + class domLight_diffuse : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_DIFFUSE; } + static daeInt ID() { return 513; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_diffuse(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_diffuse() {} + /** + * Overloaded assignment operator + */ + virtual domLight_diffuse &operator=( const domLight_diffuse &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_specular; + + typedef daeSmartRef domLight_specularRef; + typedef daeTArray domLight_specular_Array; + + class domLight_specular : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPECULAR; } + static daeInt ID() { return 514; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_specular(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_specular() {} + /** + * Overloaded assignment operator + */ + virtual domLight_specular &operator=( const domLight_specular &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_position; + + typedef daeSmartRef domLight_positionRef; + typedef daeTArray domLight_position_Array; + + class domLight_position : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_POSITION; } + static daeInt ID() { return 515; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_position(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_position() {} + /** + * Overloaded assignment operator + */ + virtual domLight_position &operator=( const domLight_position &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_constant_attenuation; + + typedef daeSmartRef domLight_constant_attenuationRef; + typedef daeTArray domLight_constant_attenuation_Array; + + class domLight_constant_attenuation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_CONSTANT_ATTENUATION; } + static daeInt ID() { return 516; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_constant_attenuation(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_constant_attenuation() {} + /** + * Overloaded assignment operator + */ + virtual domLight_constant_attenuation &operator=( const domLight_constant_attenuation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_linear_attenutation; + + typedef daeSmartRef domLight_linear_attenutationRef; + typedef daeTArray domLight_linear_attenutation_Array; + + class domLight_linear_attenutation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_LINEAR_ATTENUTATION; } + static daeInt ID() { return 517; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_linear_attenutation(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_linear_attenutation() {} + /** + * Overloaded assignment operator + */ + virtual domLight_linear_attenutation &operator=( const domLight_linear_attenutation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_quadratic_attenuation; + + typedef daeSmartRef domLight_quadratic_attenuationRef; + typedef daeTArray domLight_quadratic_attenuation_Array; + + class domLight_quadratic_attenuation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_QUADRATIC_ATTENUATION; } + static daeInt ID() { return 518; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_quadratic_attenuation(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_quadratic_attenuation() {} + /** + * Overloaded assignment operator + */ + virtual domLight_quadratic_attenuation &operator=( const domLight_quadratic_attenuation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_spot_cutoff; + + typedef daeSmartRef domLight_spot_cutoffRef; + typedef daeTArray domLight_spot_cutoff_Array; + + class domLight_spot_cutoff : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPOT_CUTOFF; } + static daeInt ID() { return 519; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_spot_cutoff(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_spot_cutoff() {} + /** + * Overloaded assignment operator + */ + virtual domLight_spot_cutoff &operator=( const domLight_spot_cutoff &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_spot_direction; + + typedef daeSmartRef domLight_spot_directionRef; + typedef daeTArray domLight_spot_direction_Array; + + class domLight_spot_direction : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPOT_DIRECTION; } + static daeInt ID() { return 520; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat3 attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat3 reference of the value array attribute. + */ + domFloat3 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat3 reference of the value array attribute. + */ + const domFloat3 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat3 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_spot_direction(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_spot_direction() {} + /** + * Overloaded assignment operator + */ + virtual domLight_spot_direction &operator=( const domLight_spot_direction &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_spot_exponent; + + typedef daeSmartRef domLight_spot_exponentRef; + typedef daeTArray domLight_spot_exponent_Array; + + class domLight_spot_exponent : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_SPOT_EXPONENT; } + static daeInt ID() { return 521; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_spot_exponent(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_spot_exponent() {} + /** + * Overloaded assignment operator + */ + virtual domLight_spot_exponent &operator=( const domLight_spot_exponent &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_model_ambient; + + typedef daeSmartRef domLight_model_ambientRef; + typedef daeTArray domLight_model_ambient_Array; + + class domLight_model_ambient : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_MODEL_AMBIENT; } + static daeInt ID() { return 522; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLight_model_ambient(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLight_model_ambient() {} + /** + * Overloaded assignment operator + */ + virtual domLight_model_ambient &operator=( const domLight_model_ambient &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLine_width; + + typedef daeSmartRef domLine_widthRef; + typedef daeTArray domLine_width_Array; + + class domLine_width : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINE_WIDTH; } + static daeInt ID() { return 523; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLine_width(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLine_width() {} + /** + * Overloaded assignment operator + */ + virtual domLine_width &operator=( const domLine_width &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_ambient; + + typedef daeSmartRef domMaterial_ambientRef; + typedef daeTArray domMaterial_ambient_Array; + + class domMaterial_ambient : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_AMBIENT; } + static daeInt ID() { return 524; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_ambient(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_ambient() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_ambient &operator=( const domMaterial_ambient &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_diffuse; + + typedef daeSmartRef domMaterial_diffuseRef; + typedef daeTArray domMaterial_diffuse_Array; + + class domMaterial_diffuse : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_DIFFUSE; } + static daeInt ID() { return 525; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_diffuse(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_diffuse() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_diffuse &operator=( const domMaterial_diffuse &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_emission; + + typedef daeSmartRef domMaterial_emissionRef; + typedef daeTArray domMaterial_emission_Array; + + class domMaterial_emission : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_EMISSION; } + static daeInt ID() { return 526; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_emission(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_emission() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_emission &operator=( const domMaterial_emission &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_shininess; + + typedef daeSmartRef domMaterial_shininessRef; + typedef daeTArray domMaterial_shininess_Array; + + class domMaterial_shininess : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_SHININESS; } + static daeInt ID() { return 527; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_shininess(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_shininess() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_shininess &operator=( const domMaterial_shininess &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMaterial_specular; + + typedef daeSmartRef domMaterial_specularRef; + typedef daeTArray domMaterial_specular_Array; + + class domMaterial_specular : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL_SPECULAR; } + static daeInt ID() { return 528; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMaterial_specular(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMaterial_specular() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial_specular &operator=( const domMaterial_specular &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domModel_view_matrix; + + typedef daeSmartRef domModel_view_matrixRef; + typedef daeTArray domModel_view_matrix_Array; + + class domModel_view_matrix : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODEL_VIEW_MATRIX; } + static daeInt ID() { return 529; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4x4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4x4 reference of the value array attribute. + */ + domFloat4x4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4x4 reference of the value array attribute. + */ + const domFloat4x4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4x4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domModel_view_matrix(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domModel_view_matrix() {} + /** + * Overloaded assignment operator + */ + virtual domModel_view_matrix &operator=( const domModel_view_matrix &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_distance_attenuation; + + typedef daeSmartRef domPoint_distance_attenuationRef; + typedef daeTArray domPoint_distance_attenuation_Array; + + class domPoint_distance_attenuation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_DISTANCE_ATTENUATION; } + static daeInt ID() { return 530; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat3 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat3 reference of the value array attribute. + */ + domFloat3 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat3 reference of the value array attribute. + */ + const domFloat3 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat3 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_distance_attenuation(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_distance_attenuation() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_distance_attenuation &operator=( const domPoint_distance_attenuation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_fade_threshold_size; + + typedef daeSmartRef domPoint_fade_threshold_sizeRef; + typedef daeTArray domPoint_fade_threshold_size_Array; + + class domPoint_fade_threshold_size : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_FADE_THRESHOLD_SIZE; } + static daeInt ID() { return 531; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_fade_threshold_size(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_fade_threshold_size() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_fade_threshold_size &operator=( const domPoint_fade_threshold_size &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_size; + + typedef daeSmartRef domPoint_sizeRef; + typedef daeTArray domPoint_size_Array; + + class domPoint_size : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SIZE; } + static daeInt ID() { return 532; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_size(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_size() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_size &operator=( const domPoint_size &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_size_min; + + typedef daeSmartRef domPoint_size_minRef; + typedef daeTArray domPoint_size_min_Array; + + class domPoint_size_min : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SIZE_MIN; } + static daeInt ID() { return 533; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_size_min(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_size_min() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_size_min &operator=( const domPoint_size_min &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_size_max; + + typedef daeSmartRef domPoint_size_maxRef; + typedef daeTArray domPoint_size_max_Array; + + class domPoint_size_max : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SIZE_MAX; } + static daeInt ID() { return 534; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domFloat of the value attribute. + */ + domFloat getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domFloat atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_size_max(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_size_max() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_size_max &operator=( const domPoint_size_max &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_offset; + + typedef daeSmartRef domPolygon_offsetRef; + typedef daeTArray domPolygon_offset_Array; + + class domPolygon_offset : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_OFFSET; } + static daeInt ID() { return 535; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat2 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat2 reference of the value array attribute. + */ + domFloat2 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat2 reference of the value array attribute. + */ + const domFloat2 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat2 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_offset(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_offset() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_offset &operator=( const domPolygon_offset &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domProjection_matrix; + + typedef daeSmartRef domProjection_matrixRef; + typedef daeTArray domProjection_matrix_Array; + + class domProjection_matrix : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROJECTION_MATRIX; } + static daeInt ID() { return 536; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domFloat4x4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4x4 reference of the value array attribute. + */ + domFloat4x4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4x4 reference of the value array attribute. + */ + const domFloat4x4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4x4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domProjection_matrix(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domProjection_matrix() {} + /** + * Overloaded assignment operator + */ + virtual domProjection_matrix &operator=( const domProjection_matrix &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domScissor; + + typedef daeSmartRef domScissorRef; + typedef daeTArray domScissor_Array; + + class domScissor : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SCISSOR; } + static daeInt ID() { return 537; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domInt4 attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domInt4 reference of the value array attribute. + */ + domInt4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domInt4 reference of the value array attribute. + */ + const domInt4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domInt4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domScissor(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domScissor() {} + /** + * Overloaded assignment operator + */ + virtual domScissor &operator=( const domScissor &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domShade_model; + + typedef daeSmartRef domShade_modelRef; + typedef daeTArray domShade_model_Array; + + class domShade_model : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHADE_MODEL; } + static daeInt ID() { return 538; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_shade_model_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_shade_model_type of the value attribute. + */ + domGl_shade_model_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_shade_model_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domShade_model(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domShade_model() {} + /** + * Overloaded assignment operator + */ + virtual domShade_model &operator=( const domShade_model &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_func; + + typedef daeSmartRef domStencil_funcRef; + typedef daeTArray domStencil_func_Array; + + class domStencil_func : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_FUNC; } + static daeInt ID() { return 539; } + virtual daeInt typeID() const { return ID(); } + public: + class domFunc; + + typedef daeSmartRef domFuncRef; + typedef daeTArray domFunc_Array; + + class domFunc : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FUNC; } + static daeInt ID() { return 540; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGl_func_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGl_func_type of the value attribute. + */ + domGl_func_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGl_func_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFunc(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFunc() {} + /** + * Overloaded assignment operator + */ + virtual domFunc &operator=( const domFunc &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRef; + + typedef daeSmartRef domRefRef; + typedef daeTArray domRef_Array; + + class domRef : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REF; } + static daeInt ID() { return 541; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsUnsignedByte attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a xsUnsignedByte of the value attribute. + */ + xsUnsignedByte getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( xsUnsignedByte atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domRef(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domRef() {} + /** + * Overloaded assignment operator + */ + virtual domRef &operator=( const domRef &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMask; + + typedef daeSmartRef domMaskRef; + typedef daeTArray domMask_Array; + + class domMask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MASK; } + static daeInt ID() { return 542; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + xsUnsignedByte attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a xsUnsignedByte of the value attribute. + */ + xsUnsignedByte getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( xsUnsignedByte atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMask() {} + /** + * Overloaded assignment operator + */ + virtual domMask &operator=( const domMask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFuncRef elemFunc; + domRefRef elemRef; + domMaskRef elemMask; + + public: //Accessors and Mutators + /** + * Gets the func element. + * @return a daeSmartRef to the func element. + */ + const domFuncRef getFunc() const { return elemFunc; } + /** + * Gets the ref element. + * @return a daeSmartRef to the ref element. + */ + const domRefRef getRef() const { return elemRef; } + /** + * Gets the mask element. + * @return a daeSmartRef to the mask element. + */ + const domMaskRef getMask() const { return elemMask; } + protected: + /** + * Constructor + */ + domStencil_func(DAE& dae) : daeElement(dae), elemFunc(), elemRef(), elemMask() {} + /** + * Destructor + */ + virtual ~domStencil_func() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_func &operator=( const domStencil_func &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_mask; + + typedef daeSmartRef domStencil_maskRef; + typedef daeTArray domStencil_mask_Array; + + class domStencil_mask : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_MASK; } + static daeInt ID() { return 543; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domInt attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domInt of the value attribute. + */ + domInt getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domInt atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domStencil_mask(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domStencil_mask() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_mask &operator=( const domStencil_mask &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_op; + + typedef daeSmartRef domStencil_opRef; + typedef daeTArray domStencil_op_Array; + + class domStencil_op : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_OP; } + static daeInt ID() { return 544; } + virtual daeInt typeID() const { return ID(); } + public: + class domFail; + + typedef daeSmartRef domFailRef; + typedef daeTArray domFail_Array; + + class domFail : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FAIL; } + static daeInt ID() { return 545; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGles_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGles_stencil_op_type of the value attribute. + */ + domGles_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGles_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFail(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFail() {} + /** + * Overloaded assignment operator + */ + virtual domFail &operator=( const domFail &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domZfail; + + typedef daeSmartRef domZfailRef; + typedef daeTArray domZfail_Array; + + class domZfail : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ZFAIL; } + static daeInt ID() { return 546; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGles_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGles_stencil_op_type of the value attribute. + */ + domGles_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGles_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domZfail(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domZfail() {} + /** + * Overloaded assignment operator + */ + virtual domZfail &operator=( const domZfail &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domZpass; + + typedef daeSmartRef domZpassRef; + typedef daeTArray domZpass_Array; + + class domZpass : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ZPASS; } + static daeInt ID() { return 547; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domGles_stencil_op_type attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domGles_stencil_op_type of the value attribute. + */ + domGles_stencil_op_type getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domGles_stencil_op_type atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domZpass(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domZpass() {} + /** + * Overloaded assignment operator + */ + virtual domZpass &operator=( const domZpass &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domFailRef elemFail; + domZfailRef elemZfail; + domZpassRef elemZpass; + + public: //Accessors and Mutators + /** + * Gets the fail element. + * @return a daeSmartRef to the fail element. + */ + const domFailRef getFail() const { return elemFail; } + /** + * Gets the zfail element. + * @return a daeSmartRef to the zfail element. + */ + const domZfailRef getZfail() const { return elemZfail; } + /** + * Gets the zpass element. + * @return a daeSmartRef to the zpass element. + */ + const domZpassRef getZpass() const { return elemZpass; } + protected: + /** + * Constructor + */ + domStencil_op(DAE& dae) : daeElement(dae), elemFail(), elemZfail(), elemZpass() {} + /** + * Destructor + */ + virtual ~domStencil_op() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_op &operator=( const domStencil_op &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domAlpha_test_enable; + + typedef daeSmartRef domAlpha_test_enableRef; + typedef daeTArray domAlpha_test_enable_Array; + + class domAlpha_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ALPHA_TEST_ENABLE; } + static daeInt ID() { return 548; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domAlpha_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domAlpha_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domAlpha_test_enable &operator=( const domAlpha_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlend_enable; + + typedef daeSmartRef domBlend_enableRef; + typedef daeTArray domBlend_enable_Array; + + class domBlend_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLEND_ENABLE; } + static daeInt ID() { return 549; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domBlend_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domBlend_enable() {} + /** + * Overloaded assignment operator + */ + virtual domBlend_enable &operator=( const domBlend_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domClip_plane_enable; + + typedef daeSmartRef domClip_plane_enableRef; + typedef daeTArray domClip_plane_enable_Array; + + class domClip_plane_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CLIP_PLANE_ENABLE; } + static daeInt ID() { return 550; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGLES_MAX_CLIP_PLANES_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_CLIP_PLANES_index of the index attribute. + */ + domGLES_MAX_CLIP_PLANES_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_CLIP_PLANES_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domClip_plane_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domClip_plane_enable() {} + /** + * Overloaded assignment operator + */ + virtual domClip_plane_enable &operator=( const domClip_plane_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_logic_op_enable; + + typedef daeSmartRef domColor_logic_op_enableRef; + typedef daeTArray domColor_logic_op_enable_Array; + + class domColor_logic_op_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_LOGIC_OP_ENABLE; } + static daeInt ID() { return 551; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domColor_logic_op_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domColor_logic_op_enable() {} + /** + * Overloaded assignment operator + */ + virtual domColor_logic_op_enable &operator=( const domColor_logic_op_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_material_enable; + + typedef daeSmartRef domColor_material_enableRef; + typedef daeTArray domColor_material_enable_Array; + + class domColor_material_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_MATERIAL_ENABLE; } + static daeInt ID() { return 552; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domColor_material_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domColor_material_enable() {} + /** + * Overloaded assignment operator + */ + virtual domColor_material_enable &operator=( const domColor_material_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCull_face_enable; + + typedef daeSmartRef domCull_face_enableRef; + typedef daeTArray domCull_face_enable_Array; + + class domCull_face_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CULL_FACE_ENABLE; } + static daeInt ID() { return 553; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domCull_face_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domCull_face_enable() {} + /** + * Overloaded assignment operator + */ + virtual domCull_face_enable &operator=( const domCull_face_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_test_enable; + + typedef daeSmartRef domDepth_test_enableRef; + typedef daeTArray domDepth_test_enable_Array; + + class domDepth_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_TEST_ENABLE; } + static daeInt ID() { return 554; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDepth_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDepth_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_test_enable &operator=( const domDepth_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDither_enable; + + typedef daeSmartRef domDither_enableRef; + typedef daeTArray domDither_enable_Array; + + class domDither_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DITHER_ENABLE; } + static daeInt ID() { return 555; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domDither_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domDither_enable() {} + /** + * Overloaded assignment operator + */ + virtual domDither_enable &operator=( const domDither_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFog_enable; + + typedef daeSmartRef domFog_enableRef; + typedef daeTArray domFog_enable_Array; + + class domFog_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FOG_ENABLE; } + static daeInt ID() { return 556; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domFog_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domFog_enable() {} + /** + * Overloaded assignment operator + */ + virtual domFog_enable &operator=( const domFog_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexture_pipeline_enable; + + typedef daeSmartRef domTexture_pipeline_enableRef; + typedef daeTArray domTexture_pipeline_enable_Array; + + class domTexture_pipeline_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE_PIPELINE_ENABLE; } + static daeInt ID() { return 557; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domTexture_pipeline_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domTexture_pipeline_enable() {} + /** + * Overloaded assignment operator + */ + virtual domTexture_pipeline_enable &operator=( const domTexture_pipeline_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_enable; + + typedef daeSmartRef domLight_enableRef; + typedef daeTArray domLight_enable_Array; + + class domLight_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_ENABLE; } + static daeInt ID() { return 558; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + domGLES_MAX_LIGHTS_index attrIndex; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + /** + * Gets the index attribute. + * @return Returns a domGLES_MAX_LIGHTS_index of the index attribute. + */ + domGLES_MAX_LIGHTS_index getIndex() const { return attrIndex; } + /** + * Sets the index attribute. + * @param atIndex The new value for the index attribute. + */ + void setIndex( domGLES_MAX_LIGHTS_index atIndex ) { attrIndex = atIndex; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domLight_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam(), attrIndex() {} + /** + * Destructor + */ + virtual ~domLight_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLight_enable &operator=( const domLight_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLighting_enable; + + typedef daeSmartRef domLighting_enableRef; + typedef daeTArray domLighting_enable_Array; + + class domLighting_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHTING_ENABLE; } + static daeInt ID() { return 559; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLighting_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLighting_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLighting_enable &operator=( const domLighting_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLight_model_two_side_enable; + + typedef daeSmartRef domLight_model_two_side_enableRef; + typedef daeTArray domLight_model_two_side_enable_Array; + + class domLight_model_two_side_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT_MODEL_TWO_SIDE_ENABLE; } + static daeInt ID() { return 560; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLight_model_two_side_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLight_model_two_side_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLight_model_two_side_enable &operator=( const domLight_model_two_side_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLine_smooth_enable; + + typedef daeSmartRef domLine_smooth_enableRef; + typedef daeTArray domLine_smooth_enable_Array; + + class domLine_smooth_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINE_SMOOTH_ENABLE; } + static daeInt ID() { return 561; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domLine_smooth_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domLine_smooth_enable() {} + /** + * Overloaded assignment operator + */ + virtual domLine_smooth_enable &operator=( const domLine_smooth_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMultisample_enable; + + typedef daeSmartRef domMultisample_enableRef; + typedef daeTArray domMultisample_enable_Array; + + class domMultisample_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MULTISAMPLE_ENABLE; } + static daeInt ID() { return 562; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domMultisample_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domMultisample_enable() {} + /** + * Overloaded assignment operator + */ + virtual domMultisample_enable &operator=( const domMultisample_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domNormalize_enable; + + typedef daeSmartRef domNormalize_enableRef; + typedef daeTArray domNormalize_enable_Array; + + class domNormalize_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NORMALIZE_ENABLE; } + static daeInt ID() { return 563; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domNormalize_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domNormalize_enable() {} + /** + * Overloaded assignment operator + */ + virtual domNormalize_enable &operator=( const domNormalize_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint_smooth_enable; + + typedef daeSmartRef domPoint_smooth_enableRef; + typedef daeTArray domPoint_smooth_enable_Array; + + class domPoint_smooth_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT_SMOOTH_ENABLE; } + static daeInt ID() { return 564; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPoint_smooth_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPoint_smooth_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPoint_smooth_enable &operator=( const domPoint_smooth_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPolygon_offset_fill_enable; + + typedef daeSmartRef domPolygon_offset_fill_enableRef; + typedef daeTArray domPolygon_offset_fill_enable_Array; + + class domPolygon_offset_fill_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGON_OFFSET_FILL_ENABLE; } + static daeInt ID() { return 565; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domPolygon_offset_fill_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domPolygon_offset_fill_enable() {} + /** + * Overloaded assignment operator + */ + virtual domPolygon_offset_fill_enable &operator=( const domPolygon_offset_fill_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRescale_normal_enable; + + typedef daeSmartRef domRescale_normal_enableRef; + typedef daeTArray domRescale_normal_enable_Array; + + class domRescale_normal_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RESCALE_NORMAL_ENABLE; } + static daeInt ID() { return 566; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domRescale_normal_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domRescale_normal_enable() {} + /** + * Overloaded assignment operator + */ + virtual domRescale_normal_enable &operator=( const domRescale_normal_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSample_alpha_to_coverage_enable; + + typedef daeSmartRef domSample_alpha_to_coverage_enableRef; + typedef daeTArray domSample_alpha_to_coverage_enable_Array; + + class domSample_alpha_to_coverage_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLE_ALPHA_TO_COVERAGE_ENABLE; } + static daeInt ID() { return 567; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSample_alpha_to_coverage_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSample_alpha_to_coverage_enable() {} + /** + * Overloaded assignment operator + */ + virtual domSample_alpha_to_coverage_enable &operator=( const domSample_alpha_to_coverage_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSample_alpha_to_one_enable; + + typedef daeSmartRef domSample_alpha_to_one_enableRef; + typedef daeTArray domSample_alpha_to_one_enable_Array; + + class domSample_alpha_to_one_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLE_ALPHA_TO_ONE_ENABLE; } + static daeInt ID() { return 568; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSample_alpha_to_one_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSample_alpha_to_one_enable() {} + /** + * Overloaded assignment operator + */ + virtual domSample_alpha_to_one_enable &operator=( const domSample_alpha_to_one_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSample_coverage_enable; + + typedef daeSmartRef domSample_coverage_enableRef; + typedef daeTArray domSample_coverage_enable_Array; + + class domSample_coverage_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLE_COVERAGE_ENABLE; } + static daeInt ID() { return 569; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domSample_coverage_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domSample_coverage_enable() {} + /** + * Overloaded assignment operator + */ + virtual domSample_coverage_enable &operator=( const domSample_coverage_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domScissor_test_enable; + + typedef daeSmartRef domScissor_test_enableRef; + typedef daeTArray domScissor_test_enable_Array; + + class domScissor_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SCISSOR_TEST_ENABLE; } + static daeInt ID() { return 570; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domScissor_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domScissor_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domScissor_test_enable &operator=( const domScissor_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_test_enable; + + typedef daeSmartRef domStencil_test_enableRef; + typedef daeTArray domStencil_test_enable_Array; + + class domStencil_test_enable : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_TEST_ENABLE; } + static daeInt ID() { return 571; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes + domBool attrValue; + xsNCName attrParam; + + + public: //Accessors and Mutators + /** + * Gets the value attribute. + * @return Returns a domBool of the value attribute. + */ + domBool getValue() const { return attrValue; } + /** + * Sets the value attribute. + * @param atValue The new value for the value attribute. + */ + void setValue( domBool atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domStencil_test_enable(DAE& dae) : daeElement(dae), attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domStencil_test_enable() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_test_enable &operator=( const domStencil_test_enable &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domAlpha_funcRef elemAlpha_func; + domBlend_funcRef elemBlend_func; + domClear_colorRef elemClear_color; + domClear_stencilRef elemClear_stencil; + domClear_depthRef elemClear_depth; + domClip_planeRef elemClip_plane; + domColor_maskRef elemColor_mask; + domCull_faceRef elemCull_face; + domDepth_funcRef elemDepth_func; + domDepth_maskRef elemDepth_mask; + domDepth_rangeRef elemDepth_range; + domFog_colorRef elemFog_color; + domFog_densityRef elemFog_density; + domFog_modeRef elemFog_mode; + domFog_startRef elemFog_start; + domFog_endRef elemFog_end; + domFront_faceRef elemFront_face; + domTexture_pipelineRef elemTexture_pipeline; + domLogic_opRef elemLogic_op; + domLight_ambientRef elemLight_ambient; + domLight_diffuseRef elemLight_diffuse; + domLight_specularRef elemLight_specular; + domLight_positionRef elemLight_position; + domLight_constant_attenuationRef elemLight_constant_attenuation; + domLight_linear_attenutationRef elemLight_linear_attenutation; + domLight_quadratic_attenuationRef elemLight_quadratic_attenuation; + domLight_spot_cutoffRef elemLight_spot_cutoff; + domLight_spot_directionRef elemLight_spot_direction; + domLight_spot_exponentRef elemLight_spot_exponent; + domLight_model_ambientRef elemLight_model_ambient; + domLine_widthRef elemLine_width; + domMaterial_ambientRef elemMaterial_ambient; + domMaterial_diffuseRef elemMaterial_diffuse; + domMaterial_emissionRef elemMaterial_emission; + domMaterial_shininessRef elemMaterial_shininess; + domMaterial_specularRef elemMaterial_specular; + domModel_view_matrixRef elemModel_view_matrix; + domPoint_distance_attenuationRef elemPoint_distance_attenuation; + domPoint_fade_threshold_sizeRef elemPoint_fade_threshold_size; + domPoint_sizeRef elemPoint_size; + domPoint_size_minRef elemPoint_size_min; + domPoint_size_maxRef elemPoint_size_max; + domPolygon_offsetRef elemPolygon_offset; + domProjection_matrixRef elemProjection_matrix; + domScissorRef elemScissor; + domShade_modelRef elemShade_model; + domStencil_funcRef elemStencil_func; + domStencil_maskRef elemStencil_mask; + domStencil_opRef elemStencil_op; + domAlpha_test_enableRef elemAlpha_test_enable; + domBlend_enableRef elemBlend_enable; + domClip_plane_enableRef elemClip_plane_enable; + domColor_logic_op_enableRef elemColor_logic_op_enable; + domColor_material_enableRef elemColor_material_enable; + domCull_face_enableRef elemCull_face_enable; + domDepth_test_enableRef elemDepth_test_enable; + domDither_enableRef elemDither_enable; + domFog_enableRef elemFog_enable; + domTexture_pipeline_enableRef elemTexture_pipeline_enable; + domLight_enableRef elemLight_enable; + domLighting_enableRef elemLighting_enable; + domLight_model_two_side_enableRef elemLight_model_two_side_enable; + domLine_smooth_enableRef elemLine_smooth_enable; + domMultisample_enableRef elemMultisample_enable; + domNormalize_enableRef elemNormalize_enable; + domPoint_smooth_enableRef elemPoint_smooth_enable; + domPolygon_offset_fill_enableRef elemPolygon_offset_fill_enable; + domRescale_normal_enableRef elemRescale_normal_enable; + domSample_alpha_to_coverage_enableRef elemSample_alpha_to_coverage_enable; + domSample_alpha_to_one_enableRef elemSample_alpha_to_one_enable; + domSample_coverage_enableRef elemSample_coverage_enable; + domScissor_test_enableRef elemScissor_test_enable; + domStencil_test_enableRef elemStencil_test_enable; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the alpha_func element. + * @return a daeSmartRef to the alpha_func element. + */ + const domAlpha_funcRef getAlpha_func() const { return elemAlpha_func; } + /** + * Gets the blend_func element. + * @return a daeSmartRef to the blend_func element. + */ + const domBlend_funcRef getBlend_func() const { return elemBlend_func; } + /** + * Gets the clear_color element. + * @return a daeSmartRef to the clear_color element. + */ + const domClear_colorRef getClear_color() const { return elemClear_color; } + /** + * Gets the clear_stencil element. + * @return a daeSmartRef to the clear_stencil element. + */ + const domClear_stencilRef getClear_stencil() const { return elemClear_stencil; } + /** + * Gets the clear_depth element. + * @return a daeSmartRef to the clear_depth element. + */ + const domClear_depthRef getClear_depth() const { return elemClear_depth; } + /** + * Gets the clip_plane element. + * @return a daeSmartRef to the clip_plane element. + */ + const domClip_planeRef getClip_plane() const { return elemClip_plane; } + /** + * Gets the color_mask element. + * @return a daeSmartRef to the color_mask element. + */ + const domColor_maskRef getColor_mask() const { return elemColor_mask; } + /** + * Gets the cull_face element. + * @return a daeSmartRef to the cull_face element. + */ + const domCull_faceRef getCull_face() const { return elemCull_face; } + /** + * Gets the depth_func element. + * @return a daeSmartRef to the depth_func element. + */ + const domDepth_funcRef getDepth_func() const { return elemDepth_func; } + /** + * Gets the depth_mask element. + * @return a daeSmartRef to the depth_mask element. + */ + const domDepth_maskRef getDepth_mask() const { return elemDepth_mask; } + /** + * Gets the depth_range element. + * @return a daeSmartRef to the depth_range element. + */ + const domDepth_rangeRef getDepth_range() const { return elemDepth_range; } + /** + * Gets the fog_color element. + * @return a daeSmartRef to the fog_color element. + */ + const domFog_colorRef getFog_color() const { return elemFog_color; } + /** + * Gets the fog_density element. + * @return a daeSmartRef to the fog_density element. + */ + const domFog_densityRef getFog_density() const { return elemFog_density; } + /** + * Gets the fog_mode element. + * @return a daeSmartRef to the fog_mode element. + */ + const domFog_modeRef getFog_mode() const { return elemFog_mode; } + /** + * Gets the fog_start element. + * @return a daeSmartRef to the fog_start element. + */ + const domFog_startRef getFog_start() const { return elemFog_start; } + /** + * Gets the fog_end element. + * @return a daeSmartRef to the fog_end element. + */ + const domFog_endRef getFog_end() const { return elemFog_end; } + /** + * Gets the front_face element. + * @return a daeSmartRef to the front_face element. + */ + const domFront_faceRef getFront_face() const { return elemFront_face; } + /** + * Gets the texture_pipeline element. + * @return a daeSmartRef to the texture_pipeline element. + */ + const domTexture_pipelineRef getTexture_pipeline() const { return elemTexture_pipeline; } + /** + * Gets the logic_op element. + * @return a daeSmartRef to the logic_op element. + */ + const domLogic_opRef getLogic_op() const { return elemLogic_op; } + /** + * Gets the light_ambient element. + * @return a daeSmartRef to the light_ambient element. + */ + const domLight_ambientRef getLight_ambient() const { return elemLight_ambient; } + /** + * Gets the light_diffuse element. + * @return a daeSmartRef to the light_diffuse element. + */ + const domLight_diffuseRef getLight_diffuse() const { return elemLight_diffuse; } + /** + * Gets the light_specular element. + * @return a daeSmartRef to the light_specular element. + */ + const domLight_specularRef getLight_specular() const { return elemLight_specular; } + /** + * Gets the light_position element. + * @return a daeSmartRef to the light_position element. + */ + const domLight_positionRef getLight_position() const { return elemLight_position; } + /** + * Gets the light_constant_attenuation element. + * @return a daeSmartRef to the light_constant_attenuation element. + */ + const domLight_constant_attenuationRef getLight_constant_attenuation() const { return elemLight_constant_attenuation; } + /** + * Gets the light_linear_attenutation element. + * @return a daeSmartRef to the light_linear_attenutation element. + */ + const domLight_linear_attenutationRef getLight_linear_attenutation() const { return elemLight_linear_attenutation; } + /** + * Gets the light_quadratic_attenuation element. + * @return a daeSmartRef to the light_quadratic_attenuation element. + */ + const domLight_quadratic_attenuationRef getLight_quadratic_attenuation() const { return elemLight_quadratic_attenuation; } + /** + * Gets the light_spot_cutoff element. + * @return a daeSmartRef to the light_spot_cutoff element. + */ + const domLight_spot_cutoffRef getLight_spot_cutoff() const { return elemLight_spot_cutoff; } + /** + * Gets the light_spot_direction element. + * @return a daeSmartRef to the light_spot_direction element. + */ + const domLight_spot_directionRef getLight_spot_direction() const { return elemLight_spot_direction; } + /** + * Gets the light_spot_exponent element. + * @return a daeSmartRef to the light_spot_exponent element. + */ + const domLight_spot_exponentRef getLight_spot_exponent() const { return elemLight_spot_exponent; } + /** + * Gets the light_model_ambient element. + * @return a daeSmartRef to the light_model_ambient element. + */ + const domLight_model_ambientRef getLight_model_ambient() const { return elemLight_model_ambient; } + /** + * Gets the line_width element. + * @return a daeSmartRef to the line_width element. + */ + const domLine_widthRef getLine_width() const { return elemLine_width; } + /** + * Gets the material_ambient element. + * @return a daeSmartRef to the material_ambient element. + */ + const domMaterial_ambientRef getMaterial_ambient() const { return elemMaterial_ambient; } + /** + * Gets the material_diffuse element. + * @return a daeSmartRef to the material_diffuse element. + */ + const domMaterial_diffuseRef getMaterial_diffuse() const { return elemMaterial_diffuse; } + /** + * Gets the material_emission element. + * @return a daeSmartRef to the material_emission element. + */ + const domMaterial_emissionRef getMaterial_emission() const { return elemMaterial_emission; } + /** + * Gets the material_shininess element. + * @return a daeSmartRef to the material_shininess element. + */ + const domMaterial_shininessRef getMaterial_shininess() const { return elemMaterial_shininess; } + /** + * Gets the material_specular element. + * @return a daeSmartRef to the material_specular element. + */ + const domMaterial_specularRef getMaterial_specular() const { return elemMaterial_specular; } + /** + * Gets the model_view_matrix element. + * @return a daeSmartRef to the model_view_matrix element. + */ + const domModel_view_matrixRef getModel_view_matrix() const { return elemModel_view_matrix; } + /** + * Gets the point_distance_attenuation element. + * @return a daeSmartRef to the point_distance_attenuation element. + */ + const domPoint_distance_attenuationRef getPoint_distance_attenuation() const { return elemPoint_distance_attenuation; } + /** + * Gets the point_fade_threshold_size element. + * @return a daeSmartRef to the point_fade_threshold_size element. + */ + const domPoint_fade_threshold_sizeRef getPoint_fade_threshold_size() const { return elemPoint_fade_threshold_size; } + /** + * Gets the point_size element. + * @return a daeSmartRef to the point_size element. + */ + const domPoint_sizeRef getPoint_size() const { return elemPoint_size; } + /** + * Gets the point_size_min element. + * @return a daeSmartRef to the point_size_min element. + */ + const domPoint_size_minRef getPoint_size_min() const { return elemPoint_size_min; } + /** + * Gets the point_size_max element. + * @return a daeSmartRef to the point_size_max element. + */ + const domPoint_size_maxRef getPoint_size_max() const { return elemPoint_size_max; } + /** + * Gets the polygon_offset element. + * @return a daeSmartRef to the polygon_offset element. + */ + const domPolygon_offsetRef getPolygon_offset() const { return elemPolygon_offset; } + /** + * Gets the projection_matrix element. + * @return a daeSmartRef to the projection_matrix element. + */ + const domProjection_matrixRef getProjection_matrix() const { return elemProjection_matrix; } + /** + * Gets the scissor element. + * @return a daeSmartRef to the scissor element. + */ + const domScissorRef getScissor() const { return elemScissor; } + /** + * Gets the shade_model element. + * @return a daeSmartRef to the shade_model element. + */ + const domShade_modelRef getShade_model() const { return elemShade_model; } + /** + * Gets the stencil_func element. + * @return a daeSmartRef to the stencil_func element. + */ + const domStencil_funcRef getStencil_func() const { return elemStencil_func; } + /** + * Gets the stencil_mask element. + * @return a daeSmartRef to the stencil_mask element. + */ + const domStencil_maskRef getStencil_mask() const { return elemStencil_mask; } + /** + * Gets the stencil_op element. + * @return a daeSmartRef to the stencil_op element. + */ + const domStencil_opRef getStencil_op() const { return elemStencil_op; } + /** + * Gets the alpha_test_enable element. + * @return a daeSmartRef to the alpha_test_enable element. + */ + const domAlpha_test_enableRef getAlpha_test_enable() const { return elemAlpha_test_enable; } + /** + * Gets the blend_enable element. + * @return a daeSmartRef to the blend_enable element. + */ + const domBlend_enableRef getBlend_enable() const { return elemBlend_enable; } + /** + * Gets the clip_plane_enable element. + * @return a daeSmartRef to the clip_plane_enable element. + */ + const domClip_plane_enableRef getClip_plane_enable() const { return elemClip_plane_enable; } + /** + * Gets the color_logic_op_enable element. + * @return a daeSmartRef to the color_logic_op_enable element. + */ + const domColor_logic_op_enableRef getColor_logic_op_enable() const { return elemColor_logic_op_enable; } + /** + * Gets the color_material_enable element. + * @return a daeSmartRef to the color_material_enable element. + */ + const domColor_material_enableRef getColor_material_enable() const { return elemColor_material_enable; } + /** + * Gets the cull_face_enable element. + * @return a daeSmartRef to the cull_face_enable element. + */ + const domCull_face_enableRef getCull_face_enable() const { return elemCull_face_enable; } + /** + * Gets the depth_test_enable element. + * @return a daeSmartRef to the depth_test_enable element. + */ + const domDepth_test_enableRef getDepth_test_enable() const { return elemDepth_test_enable; } + /** + * Gets the dither_enable element. + * @return a daeSmartRef to the dither_enable element. + */ + const domDither_enableRef getDither_enable() const { return elemDither_enable; } + /** + * Gets the fog_enable element. + * @return a daeSmartRef to the fog_enable element. + */ + const domFog_enableRef getFog_enable() const { return elemFog_enable; } + /** + * Gets the texture_pipeline_enable element. + * @return a daeSmartRef to the texture_pipeline_enable element. + */ + const domTexture_pipeline_enableRef getTexture_pipeline_enable() const { return elemTexture_pipeline_enable; } + /** + * Gets the light_enable element. + * @return a daeSmartRef to the light_enable element. + */ + const domLight_enableRef getLight_enable() const { return elemLight_enable; } + /** + * Gets the lighting_enable element. + * @return a daeSmartRef to the lighting_enable element. + */ + const domLighting_enableRef getLighting_enable() const { return elemLighting_enable; } + /** + * Gets the light_model_two_side_enable element. + * @return a daeSmartRef to the light_model_two_side_enable element. + */ + const domLight_model_two_side_enableRef getLight_model_two_side_enable() const { return elemLight_model_two_side_enable; } + /** + * Gets the line_smooth_enable element. + * @return a daeSmartRef to the line_smooth_enable element. + */ + const domLine_smooth_enableRef getLine_smooth_enable() const { return elemLine_smooth_enable; } + /** + * Gets the multisample_enable element. + * @return a daeSmartRef to the multisample_enable element. + */ + const domMultisample_enableRef getMultisample_enable() const { return elemMultisample_enable; } + /** + * Gets the normalize_enable element. + * @return a daeSmartRef to the normalize_enable element. + */ + const domNormalize_enableRef getNormalize_enable() const { return elemNormalize_enable; } + /** + * Gets the point_smooth_enable element. + * @return a daeSmartRef to the point_smooth_enable element. + */ + const domPoint_smooth_enableRef getPoint_smooth_enable() const { return elemPoint_smooth_enable; } + /** + * Gets the polygon_offset_fill_enable element. + * @return a daeSmartRef to the polygon_offset_fill_enable element. + */ + const domPolygon_offset_fill_enableRef getPolygon_offset_fill_enable() const { return elemPolygon_offset_fill_enable; } + /** + * Gets the rescale_normal_enable element. + * @return a daeSmartRef to the rescale_normal_enable element. + */ + const domRescale_normal_enableRef getRescale_normal_enable() const { return elemRescale_normal_enable; } + /** + * Gets the sample_alpha_to_coverage_enable element. + * @return a daeSmartRef to the sample_alpha_to_coverage_enable element. + */ + const domSample_alpha_to_coverage_enableRef getSample_alpha_to_coverage_enable() const { return elemSample_alpha_to_coverage_enable; } + /** + * Gets the sample_alpha_to_one_enable element. + * @return a daeSmartRef to the sample_alpha_to_one_enable element. + */ + const domSample_alpha_to_one_enableRef getSample_alpha_to_one_enable() const { return elemSample_alpha_to_one_enable; } + /** + * Gets the sample_coverage_enable element. + * @return a daeSmartRef to the sample_coverage_enable element. + */ + const domSample_coverage_enableRef getSample_coverage_enable() const { return elemSample_coverage_enable; } + /** + * Gets the scissor_test_enable element. + * @return a daeSmartRef to the scissor_test_enable element. + */ + const domScissor_test_enableRef getScissor_test_enable() const { return elemScissor_test_enable; } + /** + * Gets the stencil_test_enable element. + * @return a daeSmartRef to the stencil_test_enable element. + */ + const domStencil_test_enableRef getStencil_test_enable() const { return elemStencil_test_enable; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGles_pipeline_settings(DAE& dae) : daeElement(dae), elemAlpha_func(), elemBlend_func(), elemClear_color(), elemClear_stencil(), elemClear_depth(), elemClip_plane(), elemColor_mask(), elemCull_face(), elemDepth_func(), elemDepth_mask(), elemDepth_range(), elemFog_color(), elemFog_density(), elemFog_mode(), elemFog_start(), elemFog_end(), elemFront_face(), elemTexture_pipeline(), elemLogic_op(), elemLight_ambient(), elemLight_diffuse(), elemLight_specular(), elemLight_position(), elemLight_constant_attenuation(), elemLight_linear_attenutation(), elemLight_quadratic_attenuation(), elemLight_spot_cutoff(), elemLight_spot_direction(), elemLight_spot_exponent(), elemLight_model_ambient(), elemLine_width(), elemMaterial_ambient(), elemMaterial_diffuse(), elemMaterial_emission(), elemMaterial_shininess(), elemMaterial_specular(), elemModel_view_matrix(), elemPoint_distance_attenuation(), elemPoint_fade_threshold_size(), elemPoint_size(), elemPoint_size_min(), elemPoint_size_max(), elemPolygon_offset(), elemProjection_matrix(), elemScissor(), elemShade_model(), elemStencil_func(), elemStencil_mask(), elemStencil_op(), elemAlpha_test_enable(), elemBlend_enable(), elemClip_plane_enable(), elemColor_logic_op_enable(), elemColor_material_enable(), elemCull_face_enable(), elemDepth_test_enable(), elemDither_enable(), elemFog_enable(), elemTexture_pipeline_enable(), elemLight_enable(), elemLighting_enable(), elemLight_model_two_side_enable(), elemLine_smooth_enable(), elemMultisample_enable(), elemNormalize_enable(), elemPoint_smooth_enable(), elemPolygon_offset_fill_enable(), elemRescale_normal_enable(), elemSample_alpha_to_coverage_enable(), elemSample_alpha_to_one_enable(), elemSample_coverage_enable(), elemScissor_test_enable(), elemStencil_test_enable() {} + /** + * Destructor + */ + virtual ~domGles_pipeline_settings() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGles_pipeline_settings &operator=( const domGles_pipeline_settings &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_sampler_state.h b/include/1.4/dom/domGles_sampler_state.h new file mode 100644 index 0000000..65bdb48 --- /dev/null +++ b/include/1.4/dom/domGles_sampler_state.h @@ -0,0 +1,583 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_sampler_state_h__ +#define __domGles_sampler_state_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * Two-dimensional texture sampler state for profile_GLES. This is a bundle + * of sampler-specific states that will be referenced by one or more texture_units. + */ +class domGles_sampler_state_complexType +{ +public: + class domWrap_s; + + typedef daeSmartRef domWrap_sRef; + typedef daeTArray domWrap_s_Array; + + class domWrap_s : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_S; } + static daeInt ID() { return 157; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGles_sampler_wrap value of the text data of this element. + */ + domGles_sampler_wrap _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGles_sampler_wrap of the value. + */ + domGles_sampler_wrap getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGles_sampler_wrap val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_s(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_s() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_s &operator=( const domWrap_s &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domWrap_t; + + typedef daeSmartRef domWrap_tRef; + typedef daeTArray domWrap_t_Array; + + class domWrap_t : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::WRAP_T; } + static daeInt ID() { return 158; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGles_sampler_wrap value of the text data of this element. + */ + domGles_sampler_wrap _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGles_sampler_wrap of the value. + */ + domGles_sampler_wrap getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGles_sampler_wrap val ) { _value = val; } + + protected: + /** + * Constructor + */ + domWrap_t(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domWrap_t() {} + /** + * Overloaded assignment operator + */ + virtual domWrap_t &operator=( const domWrap_t &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMinfilter; + + typedef daeSmartRef domMinfilterRef; + typedef daeTArray domMinfilter_Array; + + class domMinfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MINFILTER; } + static daeInt ID() { return 159; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMinfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMinfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMinfilter &operator=( const domMinfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMagfilter; + + typedef daeSmartRef domMagfilterRef; + typedef daeTArray domMagfilter_Array; + + class domMagfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MAGFILTER; } + static daeInt ID() { return 160; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMagfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMagfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMagfilter &operator=( const domMagfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipfilter; + + typedef daeSmartRef domMipfilterRef; + typedef daeTArray domMipfilter_Array; + + class domMipfilter : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPFILTER; } + static daeInt ID() { return 161; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_sampler_filter_common value of the text data of this element. + */ + domFx_sampler_filter_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_sampler_filter_common of the value. + */ + domFx_sampler_filter_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_sampler_filter_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipfilter(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipfilter() {} + /** + * Overloaded assignment operator + */ + virtual domMipfilter &operator=( const domMipfilter &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_maxlevel; + + typedef daeSmartRef domMipmap_maxlevelRef; + typedef daeTArray domMipmap_maxlevel_Array; + + class domMipmap_maxlevel : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_MAXLEVEL; } + static daeInt ID() { return 162; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsUnsignedByte value of the text data of this element. + */ + xsUnsignedByte _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsUnsignedByte of the value. + */ + xsUnsignedByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsUnsignedByte val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_maxlevel(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_maxlevel() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_maxlevel &operator=( const domMipmap_maxlevel &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMipmap_bias; + + typedef daeSmartRef domMipmap_biasRef; + typedef daeTArray domMipmap_bias_Array; + + class domMipmap_bias : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MIPMAP_BIAS; } + static daeInt ID() { return 163; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsFloat value of the text data of this element. + */ + xsFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsFloat of the value. + */ + xsFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domMipmap_bias(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domMipmap_bias() {} + /** + * Overloaded assignment operator + */ + virtual domMipmap_bias &operator=( const domMipmap_bias &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Elements + domWrap_sRef elemWrap_s; + domWrap_tRef elemWrap_t; + domMinfilterRef elemMinfilter; + domMagfilterRef elemMagfilter; + domMipfilterRef elemMipfilter; + domMipmap_maxlevelRef elemMipmap_maxlevel; + domMipmap_biasRef elemMipmap_bias; +/** + * The extra element may appear any number of times. OpenGL ES extensions + * may be used here. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the wrap_s element. + * @return a daeSmartRef to the wrap_s element. + */ + const domWrap_sRef getWrap_s() const { return elemWrap_s; } + /** + * Gets the wrap_t element. + * @return a daeSmartRef to the wrap_t element. + */ + const domWrap_tRef getWrap_t() const { return elemWrap_t; } + /** + * Gets the minfilter element. + * @return a daeSmartRef to the minfilter element. + */ + const domMinfilterRef getMinfilter() const { return elemMinfilter; } + /** + * Gets the magfilter element. + * @return a daeSmartRef to the magfilter element. + */ + const domMagfilterRef getMagfilter() const { return elemMagfilter; } + /** + * Gets the mipfilter element. + * @return a daeSmartRef to the mipfilter element. + */ + const domMipfilterRef getMipfilter() const { return elemMipfilter; } + /** + * Gets the mipmap_maxlevel element. + * @return a daeSmartRef to the mipmap_maxlevel element. + */ + const domMipmap_maxlevelRef getMipmap_maxlevel() const { return elemMipmap_maxlevel; } + /** + * Gets the mipmap_bias element. + * @return a daeSmartRef to the mipmap_bias element. + */ + const domMipmap_biasRef getMipmap_bias() const { return elemMipmap_bias; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domGles_sampler_state_complexType(DAE& dae, daeElement* elt) : attrSid(), elemWrap_s(), elemWrap_t(), elemMinfilter(), elemMagfilter(), elemMipfilter(), elemMipmap_maxlevel(), elemMipmap_bias(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domGles_sampler_state_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_sampler_state_complexType &operator=( const domGles_sampler_state_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_sampler_state_complexType. + */ +class domGles_sampler_state : public daeElement, public domGles_sampler_state_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_SAMPLER_STATE; } + static daeInt ID() { return 164; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGles_sampler_state(DAE& dae) : daeElement(dae), domGles_sampler_state_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_sampler_state() {} + /** + * Overloaded assignment operator + */ + virtual domGles_sampler_state &operator=( const domGles_sampler_state &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texcombiner_argumentAlpha_type.h b/include/1.4/dom/domGles_texcombiner_argumentAlpha_type.h new file mode 100644 index 0000000..162b44e --- /dev/null +++ b/include/1.4/dom/domGles_texcombiner_argumentAlpha_type.h @@ -0,0 +1,153 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texcombiner_argumentAlpha_type_h__ +#define __domGles_texcombiner_argumentAlpha_type_h__ + +#include +#include +#include + +class DAE; + +class domGles_texcombiner_argumentAlpha_type_complexType +{ +protected: // Attributes + domGles_texcombiner_source_enums attrSource; + domGles_texcombiner_operandAlpha_enums attrOperand; + xsNCName attrUnit; + + +public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a domGles_texcombiner_source_enums of the source attribute. + */ + domGles_texcombiner_source_enums getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( domGles_texcombiner_source_enums atSource ) { attrSource = atSource; } + + /** + * Gets the operand attribute. + * @return Returns a domGles_texcombiner_operandAlpha_enums of the operand attribute. + */ + domGles_texcombiner_operandAlpha_enums getOperand() const { return attrOperand; } + /** + * Sets the operand attribute. + * @param atOperand The new value for the operand attribute. + */ + void setOperand( domGles_texcombiner_operandAlpha_enums atOperand ) { attrOperand = atOperand; } + + /** + * Gets the unit attribute. + * @return Returns a xsNCName of the unit attribute. + */ + xsNCName getUnit() const { return attrUnit; } + /** + * Sets the unit attribute. + * @param atUnit The new value for the unit attribute. + */ + void setUnit( xsNCName atUnit ) { *(daeStringRef*)&attrUnit = atUnit;} + +protected: + /** + * Constructor + */ + domGles_texcombiner_argumentAlpha_type_complexType(DAE& dae, daeElement* elt) : attrSource(), attrOperand(), attrUnit() {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_argumentAlpha_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_argumentAlpha_type_complexType &operator=( const domGles_texcombiner_argumentAlpha_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texcombiner_argumentAlpha_type_complexType. + */ +class domGles_texcombiner_argumentAlpha_type : public daeElement, public domGles_texcombiner_argumentAlpha_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXCOMBINER_ARGUMENTALPHA_TYPE; } + static daeInt ID() { return 148; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a domGles_texcombiner_source_enums of the source attribute. + */ + domGles_texcombiner_source_enums getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( domGles_texcombiner_source_enums atSource ) { attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the operand attribute. + * @return Returns a domGles_texcombiner_operandAlpha_enums of the operand attribute. + */ + domGles_texcombiner_operandAlpha_enums getOperand() const { return attrOperand; } + /** + * Sets the operand attribute. + * @param atOperand The new value for the operand attribute. + */ + void setOperand( domGles_texcombiner_operandAlpha_enums atOperand ) { attrOperand = atOperand; _validAttributeArray[1] = true; } + + /** + * Gets the unit attribute. + * @return Returns a xsNCName of the unit attribute. + */ + xsNCName getUnit() const { return attrUnit; } + /** + * Sets the unit attribute. + * @param atUnit The new value for the unit attribute. + */ + void setUnit( xsNCName atUnit ) { *(daeStringRef*)&attrUnit = atUnit; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domGles_texcombiner_argumentAlpha_type(DAE& dae) : daeElement(dae), domGles_texcombiner_argumentAlpha_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_argumentAlpha_type() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_argumentAlpha_type &operator=( const domGles_texcombiner_argumentAlpha_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texcombiner_argumentRGB_type.h b/include/1.4/dom/domGles_texcombiner_argumentRGB_type.h new file mode 100644 index 0000000..967f0d2 --- /dev/null +++ b/include/1.4/dom/domGles_texcombiner_argumentRGB_type.h @@ -0,0 +1,153 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texcombiner_argumentRGB_type_h__ +#define __domGles_texcombiner_argumentRGB_type_h__ + +#include +#include +#include + +class DAE; + +class domGles_texcombiner_argumentRGB_type_complexType +{ +protected: // Attributes + domGles_texcombiner_source_enums attrSource; + domGles_texcombiner_operandRGB_enums attrOperand; + xsNCName attrUnit; + + +public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a domGles_texcombiner_source_enums of the source attribute. + */ + domGles_texcombiner_source_enums getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( domGles_texcombiner_source_enums atSource ) { attrSource = atSource; } + + /** + * Gets the operand attribute. + * @return Returns a domGles_texcombiner_operandRGB_enums of the operand attribute. + */ + domGles_texcombiner_operandRGB_enums getOperand() const { return attrOperand; } + /** + * Sets the operand attribute. + * @param atOperand The new value for the operand attribute. + */ + void setOperand( domGles_texcombiner_operandRGB_enums atOperand ) { attrOperand = atOperand; } + + /** + * Gets the unit attribute. + * @return Returns a xsNCName of the unit attribute. + */ + xsNCName getUnit() const { return attrUnit; } + /** + * Sets the unit attribute. + * @param atUnit The new value for the unit attribute. + */ + void setUnit( xsNCName atUnit ) { *(daeStringRef*)&attrUnit = atUnit;} + +protected: + /** + * Constructor + */ + domGles_texcombiner_argumentRGB_type_complexType(DAE& dae, daeElement* elt) : attrSource(), attrOperand(), attrUnit() {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_argumentRGB_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_argumentRGB_type_complexType &operator=( const domGles_texcombiner_argumentRGB_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texcombiner_argumentRGB_type_complexType. + */ +class domGles_texcombiner_argumentRGB_type : public daeElement, public domGles_texcombiner_argumentRGB_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXCOMBINER_ARGUMENTRGB_TYPE; } + static daeInt ID() { return 147; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a domGles_texcombiner_source_enums of the source attribute. + */ + domGles_texcombiner_source_enums getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( domGles_texcombiner_source_enums atSource ) { attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the operand attribute. + * @return Returns a domGles_texcombiner_operandRGB_enums of the operand attribute. + */ + domGles_texcombiner_operandRGB_enums getOperand() const { return attrOperand; } + /** + * Sets the operand attribute. + * @param atOperand The new value for the operand attribute. + */ + void setOperand( domGles_texcombiner_operandRGB_enums atOperand ) { attrOperand = atOperand; _validAttributeArray[1] = true; } + + /** + * Gets the unit attribute. + * @return Returns a xsNCName of the unit attribute. + */ + xsNCName getUnit() const { return attrUnit; } + /** + * Sets the unit attribute. + * @param atUnit The new value for the unit attribute. + */ + void setUnit( xsNCName atUnit ) { *(daeStringRef*)&attrUnit = atUnit; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domGles_texcombiner_argumentRGB_type(DAE& dae) : daeElement(dae), domGles_texcombiner_argumentRGB_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_argumentRGB_type() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_argumentRGB_type &operator=( const domGles_texcombiner_argumentRGB_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texcombiner_commandAlpha_type.h b/include/1.4/dom/domGles_texcombiner_commandAlpha_type.h new file mode 100644 index 0000000..6c1ed06 --- /dev/null +++ b/include/1.4/dom/domGles_texcombiner_commandAlpha_type.h @@ -0,0 +1,143 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texcombiner_commandAlpha_type_h__ +#define __domGles_texcombiner_commandAlpha_type_h__ + +#include +#include +#include + +#include +class DAE; + +class domGles_texcombiner_commandAlpha_type_complexType +{ +protected: // Attributes + domGles_texcombiner_operatorAlpha_enums attrOperator; + xsFloat attrScale; + +protected: // Element + domGles_texcombiner_argumentAlpha_type_Array elemArgument_array; + +public: //Accessors and Mutators + /** + * Gets the operator attribute. + * @return Returns a domGles_texcombiner_operatorAlpha_enums of the operator attribute. + */ + domGles_texcombiner_operatorAlpha_enums getOperator() const { return attrOperator; } + /** + * Sets the operator attribute. + * @param atOperator The new value for the operator attribute. + */ + void setOperator( domGles_texcombiner_operatorAlpha_enums atOperator ) { attrOperator = atOperator; } + + /** + * Gets the scale attribute. + * @return Returns a xsFloat of the scale attribute. + */ + xsFloat getScale() const { return attrScale; } + /** + * Sets the scale attribute. + * @param atScale The new value for the scale attribute. + */ + void setScale( xsFloat atScale ) { attrScale = atScale; } + + /** + * Gets the argument element array. + * @return Returns a reference to the array of argument elements. + */ + domGles_texcombiner_argumentAlpha_type_Array &getArgument_array() { return elemArgument_array; } + /** + * Gets the argument element array. + * @return Returns a constant reference to the array of argument elements. + */ + const domGles_texcombiner_argumentAlpha_type_Array &getArgument_array() const { return elemArgument_array; } +protected: + /** + * Constructor + */ + domGles_texcombiner_commandAlpha_type_complexType(DAE& dae, daeElement* elt) : attrOperator(), attrScale(), elemArgument_array() {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_commandAlpha_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_commandAlpha_type_complexType &operator=( const domGles_texcombiner_commandAlpha_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texcombiner_commandAlpha_type_complexType. + */ +class domGles_texcombiner_commandAlpha_type : public daeElement, public domGles_texcombiner_commandAlpha_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXCOMBINER_COMMANDALPHA_TYPE; } + static daeInt ID() { return 150; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the operator attribute. + * @return Returns a domGles_texcombiner_operatorAlpha_enums of the operator attribute. + */ + domGles_texcombiner_operatorAlpha_enums getOperator() const { return attrOperator; } + /** + * Sets the operator attribute. + * @param atOperator The new value for the operator attribute. + */ + void setOperator( domGles_texcombiner_operatorAlpha_enums atOperator ) { attrOperator = atOperator; _validAttributeArray[0] = true; } + + /** + * Gets the scale attribute. + * @return Returns a xsFloat of the scale attribute. + */ + xsFloat getScale() const { return attrScale; } + /** + * Sets the scale attribute. + * @param atScale The new value for the scale attribute. + */ + void setScale( xsFloat atScale ) { attrScale = atScale; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domGles_texcombiner_commandAlpha_type(DAE& dae) : daeElement(dae), domGles_texcombiner_commandAlpha_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_commandAlpha_type() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_commandAlpha_type &operator=( const domGles_texcombiner_commandAlpha_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texcombiner_commandRGB_type.h b/include/1.4/dom/domGles_texcombiner_commandRGB_type.h new file mode 100644 index 0000000..a35294f --- /dev/null +++ b/include/1.4/dom/domGles_texcombiner_commandRGB_type.h @@ -0,0 +1,147 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texcombiner_commandRGB_type_h__ +#define __domGles_texcombiner_commandRGB_type_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * Defines the RGB portion of a texture_pipeline command. This is a combiner-mode + * texturing operation. + */ +class domGles_texcombiner_commandRGB_type_complexType +{ +protected: // Attributes + domGles_texcombiner_operatorRGB_enums attrOperator; + xsFloat attrScale; + +protected: // Element + domGles_texcombiner_argumentRGB_type_Array elemArgument_array; + +public: //Accessors and Mutators + /** + * Gets the operator attribute. + * @return Returns a domGles_texcombiner_operatorRGB_enums of the operator attribute. + */ + domGles_texcombiner_operatorRGB_enums getOperator() const { return attrOperator; } + /** + * Sets the operator attribute. + * @param atOperator The new value for the operator attribute. + */ + void setOperator( domGles_texcombiner_operatorRGB_enums atOperator ) { attrOperator = atOperator; } + + /** + * Gets the scale attribute. + * @return Returns a xsFloat of the scale attribute. + */ + xsFloat getScale() const { return attrScale; } + /** + * Sets the scale attribute. + * @param atScale The new value for the scale attribute. + */ + void setScale( xsFloat atScale ) { attrScale = atScale; } + + /** + * Gets the argument element array. + * @return Returns a reference to the array of argument elements. + */ + domGles_texcombiner_argumentRGB_type_Array &getArgument_array() { return elemArgument_array; } + /** + * Gets the argument element array. + * @return Returns a constant reference to the array of argument elements. + */ + const domGles_texcombiner_argumentRGB_type_Array &getArgument_array() const { return elemArgument_array; } +protected: + /** + * Constructor + */ + domGles_texcombiner_commandRGB_type_complexType(DAE& dae, daeElement* elt) : attrOperator(), attrScale(), elemArgument_array() {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_commandRGB_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_commandRGB_type_complexType &operator=( const domGles_texcombiner_commandRGB_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texcombiner_commandRGB_type_complexType. + */ +class domGles_texcombiner_commandRGB_type : public daeElement, public domGles_texcombiner_commandRGB_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXCOMBINER_COMMANDRGB_TYPE; } + static daeInt ID() { return 149; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the operator attribute. + * @return Returns a domGles_texcombiner_operatorRGB_enums of the operator attribute. + */ + domGles_texcombiner_operatorRGB_enums getOperator() const { return attrOperator; } + /** + * Sets the operator attribute. + * @param atOperator The new value for the operator attribute. + */ + void setOperator( domGles_texcombiner_operatorRGB_enums atOperator ) { attrOperator = atOperator; _validAttributeArray[0] = true; } + + /** + * Gets the scale attribute. + * @return Returns a xsFloat of the scale attribute. + */ + xsFloat getScale() const { return attrScale; } + /** + * Sets the scale attribute. + * @param atScale The new value for the scale attribute. + */ + void setScale( xsFloat atScale ) { attrScale = atScale; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domGles_texcombiner_commandRGB_type(DAE& dae) : daeElement(dae), domGles_texcombiner_commandRGB_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_commandRGB_type() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_commandRGB_type &operator=( const domGles_texcombiner_commandRGB_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texcombiner_command_type.h b/include/1.4/dom/domGles_texcombiner_command_type.h new file mode 100644 index 0000000..a8673c2 --- /dev/null +++ b/include/1.4/dom/domGles_texcombiner_command_type.h @@ -0,0 +1,103 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texcombiner_command_type_h__ +#define __domGles_texcombiner_command_type_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +class domGles_texcombiner_command_type_complexType +{ + +protected: // Elements + domGles_texture_constant_typeRef elemConstant; + domGles_texcombiner_commandRGB_typeRef elemRGB; + domGles_texcombiner_commandAlpha_typeRef elemAlpha; + +public: //Accessors and Mutators + /** + * Gets the constant element. + * @return a daeSmartRef to the constant element. + */ + const domGles_texture_constant_typeRef getConstant() const { return elemConstant; } + /** + * Gets the RGB element. + * @return a daeSmartRef to the RGB element. + */ + const domGles_texcombiner_commandRGB_typeRef getRGB() const { return elemRGB; } + /** + * Gets the alpha element. + * @return a daeSmartRef to the alpha element. + */ + const domGles_texcombiner_commandAlpha_typeRef getAlpha() const { return elemAlpha; } +protected: + /** + * Constructor + */ + domGles_texcombiner_command_type_complexType(DAE& dae, daeElement* elt) : elemConstant(), elemRGB(), elemAlpha() {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_command_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_command_type_complexType &operator=( const domGles_texcombiner_command_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texcombiner_command_type_complexType. + */ +class domGles_texcombiner_command_type : public daeElement, public domGles_texcombiner_command_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXCOMBINER_COMMAND_TYPE; } + static daeInt ID() { return 151; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGles_texcombiner_command_type(DAE& dae) : daeElement(dae), domGles_texcombiner_command_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texcombiner_command_type() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texcombiner_command_type &operator=( const domGles_texcombiner_command_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texenv_command_type.h b/include/1.4/dom/domGles_texenv_command_type.h new file mode 100644 index 0000000..922bcb2 --- /dev/null +++ b/include/1.4/dom/domGles_texenv_command_type.h @@ -0,0 +1,138 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texenv_command_type_h__ +#define __domGles_texenv_command_type_h__ + +#include +#include +#include + +#include +class DAE; + +class domGles_texenv_command_type_complexType +{ +protected: // Attributes + domGles_texenv_mode_enums attrOperator; + xsNCName attrUnit; + +protected: // Element + domGles_texture_constant_typeRef elemConstant; + +public: //Accessors and Mutators + /** + * Gets the operator attribute. + * @return Returns a domGles_texenv_mode_enums of the operator attribute. + */ + domGles_texenv_mode_enums getOperator() const { return attrOperator; } + /** + * Sets the operator attribute. + * @param atOperator The new value for the operator attribute. + */ + void setOperator( domGles_texenv_mode_enums atOperator ) { attrOperator = atOperator; } + + /** + * Gets the unit attribute. + * @return Returns a xsNCName of the unit attribute. + */ + xsNCName getUnit() const { return attrUnit; } + /** + * Sets the unit attribute. + * @param atUnit The new value for the unit attribute. + */ + void setUnit( xsNCName atUnit ) { *(daeStringRef*)&attrUnit = atUnit;} + + /** + * Gets the constant element. + * @return a daeSmartRef to the constant element. + */ + const domGles_texture_constant_typeRef getConstant() const { return elemConstant; } +protected: + /** + * Constructor + */ + domGles_texenv_command_type_complexType(DAE& dae, daeElement* elt) : attrOperator(), attrUnit(), elemConstant() {} + /** + * Destructor + */ + virtual ~domGles_texenv_command_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texenv_command_type_complexType &operator=( const domGles_texenv_command_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texenv_command_type_complexType. + */ +class domGles_texenv_command_type : public daeElement, public domGles_texenv_command_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXENV_COMMAND_TYPE; } + static daeInt ID() { return 146; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the operator attribute. + * @return Returns a domGles_texenv_mode_enums of the operator attribute. + */ + domGles_texenv_mode_enums getOperator() const { return attrOperator; } + /** + * Sets the operator attribute. + * @param atOperator The new value for the operator attribute. + */ + void setOperator( domGles_texenv_mode_enums atOperator ) { attrOperator = atOperator; _validAttributeArray[0] = true; } + + /** + * Gets the unit attribute. + * @return Returns a xsNCName of the unit attribute. + */ + xsNCName getUnit() const { return attrUnit; } + /** + * Sets the unit attribute. + * @param atUnit The new value for the unit attribute. + */ + void setUnit( xsNCName atUnit ) { *(daeStringRef*)&attrUnit = atUnit; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domGles_texenv_command_type(DAE& dae) : daeElement(dae), domGles_texenv_command_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texenv_command_type() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texenv_command_type &operator=( const domGles_texenv_command_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texture_constant_type.h b/include/1.4/dom/domGles_texture_constant_type.h new file mode 100644 index 0000000..a63eb4f --- /dev/null +++ b/include/1.4/dom/domGles_texture_constant_type.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texture_constant_type_h__ +#define __domGles_texture_constant_type_h__ + +#include +#include +#include + +class DAE; + +class domGles_texture_constant_type_complexType +{ +protected: // Attributes + domFloat4 attrValue; + xsNCName attrParam; + + +public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam;} + +protected: + /** + * Constructor + */ + domGles_texture_constant_type_complexType(DAE& dae, daeElement* elt) : attrValue(), attrParam() {} + /** + * Destructor + */ + virtual ~domGles_texture_constant_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texture_constant_type_complexType &operator=( const domGles_texture_constant_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texture_constant_type_complexType. + */ +class domGles_texture_constant_type : public daeElement, public domGles_texture_constant_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXTURE_CONSTANT_TYPE; } + static daeInt ID() { return 145; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the value array attribute. + * @return Returns a domFloat4 reference of the value array attribute. + */ + domFloat4 &getValue() { return attrValue; } + /** + * Gets the value array attribute. + * @return Returns a constant domFloat4 reference of the value array attribute. + */ + const domFloat4 &getValue() const { return attrValue; } + /** + * Sets the value array attribute. + * @param atValue The new value for the value array attribute. + */ + void setValue( const domFloat4 &atValue ) { attrValue = atValue; _validAttributeArray[0] = true; } + + /** + * Gets the param attribute. + * @return Returns a xsNCName of the param attribute. + */ + xsNCName getParam() const { return attrParam; } + /** + * Sets the param attribute. + * @param atParam The new value for the param attribute. + */ + void setParam( xsNCName atParam ) { *(daeStringRef*)&attrParam = atParam; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domGles_texture_constant_type(DAE& dae) : daeElement(dae), domGles_texture_constant_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texture_constant_type() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texture_constant_type &operator=( const domGles_texture_constant_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texture_pipeline.h b/include/1.4/dom/domGles_texture_pipeline.h new file mode 100644 index 0000000..28f90ef --- /dev/null +++ b/include/1.4/dom/domGles_texture_pipeline.h @@ -0,0 +1,190 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texture_pipeline_h__ +#define __domGles_texture_pipeline_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * Defines a set of texturing commands that will be converted into multitexturing + * operations using glTexEnv in regular and combiner mode. + */ +class domGles_texture_pipeline_complexType +{ +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Elements +/** + * Defines a texture_pipeline command. This is a combiner-mode texturing operation. + * @see domTexcombiner + */ + domGles_texcombiner_command_type_Array elemTexcombiner_array; +/** + * Defines a texture_pipeline command. It is a simple noncombiner mode of + * texturing operations. @see domTexenv + */ + domGles_texenv_command_type_Array elemTexenv_array; +/** + * The extra element may appear any number of times. OpenGL ES extensions + * may be used here. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the texcombiner element array. + * @return Returns a reference to the array of texcombiner elements. + */ + domGles_texcombiner_command_type_Array &getTexcombiner_array() { return elemTexcombiner_array; } + /** + * Gets the texcombiner element array. + * @return Returns a constant reference to the array of texcombiner elements. + */ + const domGles_texcombiner_command_type_Array &getTexcombiner_array() const { return elemTexcombiner_array; } + /** + * Gets the texenv element array. + * @return Returns a reference to the array of texenv elements. + */ + domGles_texenv_command_type_Array &getTexenv_array() { return elemTexenv_array; } + /** + * Gets the texenv element array. + * @return Returns a constant reference to the array of texenv elements. + */ + const domGles_texenv_command_type_Array &getTexenv_array() const { return elemTexenv_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGles_texture_pipeline_complexType(DAE& dae, daeElement* elt) : attrSid(), elemTexcombiner_array(), elemTexenv_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domGles_texture_pipeline_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGles_texture_pipeline_complexType &operator=( const domGles_texture_pipeline_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texture_pipeline_complexType. + */ +class domGles_texture_pipeline : public daeElement, public domGles_texture_pipeline_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXTURE_PIPELINE; } + static daeInt ID() { return 152; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGles_texture_pipeline(DAE& dae) : daeElement(dae), domGles_texture_pipeline_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texture_pipeline() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texture_pipeline &operator=( const domGles_texture_pipeline &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGles_texture_unit.h b/include/1.4/dom/domGles_texture_unit.h new file mode 100644 index 0000000..c837720 --- /dev/null +++ b/include/1.4/dom/domGles_texture_unit.h @@ -0,0 +1,316 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGles_texture_unit_h__ +#define __domGles_texture_unit_h__ + +#include +#include +#include + +#include +class DAE; + +class domGles_texture_unit_complexType +{ +public: + class domSurface; + + typedef daeSmartRef domSurfaceRef; + typedef daeTArray domSurface_Array; + + class domSurface : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SURFACE; } + static daeInt ID() { return 153; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSurface(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSurface() {} + /** + * Overloaded assignment operator + */ + virtual domSurface &operator=( const domSurface &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSampler_state; + + typedef daeSmartRef domSampler_stateRef; + typedef daeTArray domSampler_state_Array; + + class domSampler_state : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLER_STATE; } + static daeInt ID() { return 154; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSampler_state(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSampler_state() {} + /** + * Overloaded assignment operator + */ + virtual domSampler_state &operator=( const domSampler_state &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTexcoord; + + typedef daeSmartRef domTexcoordRef; + typedef daeTArray domTexcoord_Array; + + class domTexcoord : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXCOORD; } + static daeInt ID() { return 155; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrSemantic; + + + public: //Accessors and Mutators + /** + * Gets the semantic attribute. + * @return Returns a xsNCName of the semantic attribute. + */ + xsNCName getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNCName atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domTexcoord(DAE& dae) : daeElement(dae), attrSemantic() {} + /** + * Destructor + */ + virtual ~domTexcoord() {} + /** + * Overloaded assignment operator + */ + virtual domTexcoord &operator=( const domTexcoord &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Elements + domSurfaceRef elemSurface; + domSampler_stateRef elemSampler_state; + domTexcoordRef elemTexcoord; + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the surface element. + * @return a daeSmartRef to the surface element. + */ + const domSurfaceRef getSurface() const { return elemSurface; } + /** + * Gets the sampler_state element. + * @return a daeSmartRef to the sampler_state element. + */ + const domSampler_stateRef getSampler_state() const { return elemSampler_state; } + /** + * Gets the texcoord element. + * @return a daeSmartRef to the texcoord element. + */ + const domTexcoordRef getTexcoord() const { return elemTexcoord; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domGles_texture_unit_complexType(DAE& dae, daeElement* elt) : attrSid(), elemSurface(), elemSampler_state(), elemTexcoord(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domGles_texture_unit_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texture_unit_complexType &operator=( const domGles_texture_unit_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGles_texture_unit_complexType. + */ +class domGles_texture_unit : public daeElement, public domGles_texture_unit_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXTURE_UNIT; } + static daeInt ID() { return 156; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGles_texture_unit(DAE& dae) : daeElement(dae), domGles_texture_unit_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGles_texture_unit() {} + /** + * Overloaded assignment operator + */ + virtual domGles_texture_unit &operator=( const domGles_texture_unit &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGlsl_newarray_type.h b/include/1.4/dom/domGlsl_newarray_type.h new file mode 100644 index 0000000..9457be0 --- /dev/null +++ b/include/1.4/dom/domGlsl_newarray_type.h @@ -0,0 +1,168 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGlsl_newarray_type_h__ +#define __domGlsl_newarray_type_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The glsl_newarray_type is used to creates a parameter of a one-dimensional + * array type. + */ +class domGlsl_newarray_type_complexType +{ +protected: // Attribute +/** + * The length attribute specifies the length of the array. + */ + xsPositiveInteger attrLength; + +protected: // Elements + domGlsl_param_type_Array elemGlsl_param_type_array; +/** + * You may recursively nest glsl_newarray elements to create multidimensional + * arrays. @see domArray + */ + domGlsl_newarray_type_Array elemArray_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; } + + /** + * Gets the glsl_param_type element array. + * @return Returns a reference to the array of glsl_param_type elements. + */ + domGlsl_param_type_Array &getGlsl_param_type_array() { return elemGlsl_param_type_array; } + /** + * Gets the glsl_param_type element array. + * @return Returns a constant reference to the array of glsl_param_type elements. + */ + const domGlsl_param_type_Array &getGlsl_param_type_array() const { return elemGlsl_param_type_array; } + /** + * Gets the array element array. + * @return Returns a reference to the array of array elements. + */ + domGlsl_newarray_type_Array &getArray_array() { return elemArray_array; } + /** + * Gets the array element array. + * @return Returns a constant reference to the array of array elements. + */ + const domGlsl_newarray_type_Array &getArray_array() const { return elemArray_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGlsl_newarray_type_complexType(DAE& dae, daeElement* elt) : attrLength(), elemGlsl_param_type_array(), elemArray_array() {} + /** + * Destructor + */ + virtual ~domGlsl_newarray_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGlsl_newarray_type_complexType &operator=( const domGlsl_newarray_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGlsl_newarray_type_complexType. + */ +class domGlsl_newarray_type : public daeElement, public domGlsl_newarray_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_NEWARRAY_TYPE; } + static daeInt ID() { return 103; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGlsl_newarray_type(DAE& dae) : daeElement(dae), domGlsl_newarray_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGlsl_newarray_type() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_newarray_type &operator=( const domGlsl_newarray_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGlsl_newparam.h b/include/1.4/dom/domGlsl_newparam.h new file mode 100644 index 0000000..c55b163 --- /dev/null +++ b/include/1.4/dom/domGlsl_newparam.h @@ -0,0 +1,289 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGlsl_newparam_h__ +#define __domGlsl_newparam_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +class domGlsl_newparam_complexType +{ +public: + class domSemantic; + + typedef daeSmartRef domSemanticRef; + typedef daeTArray domSemantic_Array; + + class domSemantic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; } + static daeInt ID() { return 108; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domSemantic(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domSemantic() {} + /** + * Overloaded assignment operator + */ + virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domModifier; + + typedef daeSmartRef domModifierRef; + typedef daeTArray domModifier_Array; + + class domModifier : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIER; } + static daeInt ID() { return 109; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_modifier_enum_common value of the text data of this element. + */ + domFx_modifier_enum_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_modifier_enum_common of the value. + */ + domFx_modifier_enum_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_modifier_enum_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domModifier(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domModifier() {} + /** + * Overloaded assignment operator + */ + virtual domModifier &operator=( const domModifier &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute + domGlsl_identifier attrSid; + +protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domSemanticRef elemSemantic; + domModifierRef elemModifier; + domGlsl_param_typeRef elemGlsl_param_type; + domGlsl_newarray_typeRef elemArray; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a domGlsl_identifier of the sid attribute. + */ + domGlsl_identifier getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( domGlsl_identifier atSid ) { attrSid = atSid; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the semantic element. + * @return a daeSmartRef to the semantic element. + */ + const domSemanticRef getSemantic() const { return elemSemantic; } + /** + * Gets the modifier element. + * @return a daeSmartRef to the modifier element. + */ + const domModifierRef getModifier() const { return elemModifier; } + /** + * Gets the glsl_param_type element. + * @return a daeSmartRef to the glsl_param_type element. + */ + const domGlsl_param_typeRef getGlsl_param_type() const { return elemGlsl_param_type; } + /** + * Gets the array element. + * @return a daeSmartRef to the array element. + */ + const domGlsl_newarray_typeRef getArray() const { return elemArray; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGlsl_newparam_complexType(DAE& dae, daeElement* elt) : attrSid(), elemAnnotate_array(), elemSemantic(), elemModifier(), elemGlsl_param_type(), elemArray() {} + /** + * Destructor + */ + virtual ~domGlsl_newparam_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGlsl_newparam_complexType &operator=( const domGlsl_newparam_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGlsl_newparam_complexType. + */ +class domGlsl_newparam : public daeElement, public domGlsl_newparam_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_NEWPARAM; } + static daeInt ID() { return 110; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a domGlsl_identifier of the sid attribute. + */ + domGlsl_identifier getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( domGlsl_identifier atSid ) { attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGlsl_newparam(DAE& dae) : daeElement(dae), domGlsl_newparam_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGlsl_newparam() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_newparam &operator=( const domGlsl_newparam &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGlsl_param_type.h b/include/1.4/dom/domGlsl_param_type.h new file mode 100644 index 0000000..4ed65a8 --- /dev/null +++ b/include/1.4/dom/domGlsl_param_type.h @@ -0,0 +1,1225 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGlsl_param_type_h__ +#define __domGlsl_param_type_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * A group that specifies the allowable types for GLSL profile parameters. + */ +class domGlsl_param_type : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_PARAM_TYPE; } + static daeInt ID() { return 363; } + virtual daeInt typeID() const { return ID(); } +public: + class domBool; + + typedef daeSmartRef domBoolRef; + typedef daeTArray domBool_Array; + + class domBool : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL; } + static daeInt ID() { return 364; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_bool value of the text data of this element. + */ + domGlsl_bool _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGlsl_bool of the value. + */ + domGlsl_bool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGlsl_bool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool() {} + /** + * Overloaded assignment operator + */ + virtual domBool &operator=( const domBool &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool2; + + typedef daeSmartRef domBool2Ref; + typedef daeTArray domBool2_Array; + + class domBool2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2; } + static daeInt ID() { return 365; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_bool2 value of the text data of this element. + */ + domGlsl_bool2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_bool2 reference of the _value array. + */ + domGlsl_bool2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_bool2 reference of the _value array. + */ + const domGlsl_bool2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_bool2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool2() {} + /** + * Overloaded assignment operator + */ + virtual domBool2 &operator=( const domBool2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool3; + + typedef daeSmartRef domBool3Ref; + typedef daeTArray domBool3_Array; + + class domBool3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3; } + static daeInt ID() { return 366; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_bool3 value of the text data of this element. + */ + domGlsl_bool3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_bool3 reference of the _value array. + */ + domGlsl_bool3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_bool3 reference of the _value array. + */ + const domGlsl_bool3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_bool3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool3() {} + /** + * Overloaded assignment operator + */ + virtual domBool3 &operator=( const domBool3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBool4; + + typedef daeSmartRef domBool4Ref; + typedef daeTArray domBool4_Array; + + class domBool4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4; } + static daeInt ID() { return 367; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_bool4 value of the text data of this element. + */ + domGlsl_bool4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_bool4 reference of the _value array. + */ + domGlsl_bool4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_bool4 reference of the _value array. + */ + const domGlsl_bool4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_bool4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBool4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBool4() {} + /** + * Overloaded assignment operator + */ + virtual domBool4 &operator=( const domBool4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat; + + typedef daeSmartRef domFloatRef; + typedef daeTArray domFloat_Array; + + class domFloat : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; } + static daeInt ID() { return 368; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_float value of the text data of this element. + */ + domGlsl_float _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGlsl_float of the value. + */ + domGlsl_float getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGlsl_float val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat() {} + /** + * Overloaded assignment operator + */ + virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2; + + typedef daeSmartRef domFloat2Ref; + typedef daeTArray domFloat2_Array; + + class domFloat2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; } + static daeInt ID() { return 369; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_float2 value of the text data of this element. + */ + domGlsl_float2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_float2 reference of the _value array. + */ + domGlsl_float2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_float2 reference of the _value array. + */ + const domGlsl_float2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_float2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3; + + typedef daeSmartRef domFloat3Ref; + typedef daeTArray domFloat3_Array; + + class domFloat3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; } + static daeInt ID() { return 370; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_float3 value of the text data of this element. + */ + domGlsl_float3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_float3 reference of the _value array. + */ + domGlsl_float3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_float3 reference of the _value array. + */ + const domGlsl_float3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_float3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4; + + typedef daeSmartRef domFloat4Ref; + typedef daeTArray domFloat4_Array; + + class domFloat4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; } + static daeInt ID() { return 371; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_float4 value of the text data of this element. + */ + domGlsl_float4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_float4 reference of the _value array. + */ + domGlsl_float4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_float4 reference of the _value array. + */ + const domGlsl_float4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_float4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat2x2; + + typedef daeSmartRef domFloat2x2Ref; + typedef daeTArray domFloat2x2_Array; + + class domFloat2x2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X2; } + static daeInt ID() { return 372; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_float2x2 value of the text data of this element. + */ + domGlsl_float2x2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_float2x2 reference of the _value array. + */ + domGlsl_float2x2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_float2x2 reference of the _value array. + */ + const domGlsl_float2x2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_float2x2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat2x2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat2x2() {} + /** + * Overloaded assignment operator + */ + virtual domFloat2x2 &operator=( const domFloat2x2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat3x3; + + typedef daeSmartRef domFloat3x3Ref; + typedef daeTArray domFloat3x3_Array; + + class domFloat3x3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X3; } + static daeInt ID() { return 373; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_float3x3 value of the text data of this element. + */ + domGlsl_float3x3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_float3x3 reference of the _value array. + */ + domGlsl_float3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_float3x3 reference of the _value array. + */ + const domGlsl_float3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_float3x3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat3x3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat3x3() {} + /** + * Overloaded assignment operator + */ + virtual domFloat3x3 &operator=( const domFloat3x3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domFloat4x4; + + typedef daeSmartRef domFloat4x4Ref; + typedef daeTArray domFloat4x4_Array; + + class domFloat4x4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X4; } + static daeInt ID() { return 374; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_float4x4 value of the text data of this element. + */ + domGlsl_float4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_float4x4 reference of the _value array. + */ + domGlsl_float4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_float4x4 reference of the _value array. + */ + const domGlsl_float4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_float4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domFloat4x4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domFloat4x4() {} + /** + * Overloaded assignment operator + */ + virtual domFloat4x4 &operator=( const domFloat4x4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt; + + typedef daeSmartRef domIntRef; + typedef daeTArray domInt_Array; + + class domInt : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT; } + static daeInt ID() { return 375; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_int value of the text data of this element. + */ + domGlsl_int _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGlsl_int of the value. + */ + domGlsl_int getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGlsl_int val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt() {} + /** + * Overloaded assignment operator + */ + virtual domInt &operator=( const domInt &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt2; + + typedef daeSmartRef domInt2Ref; + typedef daeTArray domInt2_Array; + + class domInt2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2; } + static daeInt ID() { return 376; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_int2 value of the text data of this element. + */ + domGlsl_int2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_int2 reference of the _value array. + */ + domGlsl_int2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_int2 reference of the _value array. + */ + const domGlsl_int2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_int2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt2() {} + /** + * Overloaded assignment operator + */ + virtual domInt2 &operator=( const domInt2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt3; + + typedef daeSmartRef domInt3Ref; + typedef daeTArray domInt3_Array; + + class domInt3 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3; } + static daeInt ID() { return 377; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_int3 value of the text data of this element. + */ + domGlsl_int3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_int3 reference of the _value array. + */ + domGlsl_int3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_int3 reference of the _value array. + */ + const domGlsl_int3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_int3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt3(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt3() {} + /** + * Overloaded assignment operator + */ + virtual domInt3 &operator=( const domInt3 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInt4; + + typedef daeSmartRef domInt4Ref; + typedef daeTArray domInt4_Array; + + class domInt4 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4; } + static daeInt ID() { return 378; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGlsl_int4 value of the text data of this element. + */ + domGlsl_int4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domGlsl_int4 reference of the _value array. + */ + domGlsl_int4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domGlsl_int4 reference of the _value array. + */ + const domGlsl_int4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domGlsl_int4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInt4(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domInt4() {} + /** + * Overloaded assignment operator + */ + virtual domInt4 &operator=( const domInt4 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domEnum; + + typedef daeSmartRef domEnumRef; + typedef daeTArray domEnum_Array; + + class domEnum : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ENUM; } + static daeInt ID() { return 379; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGl_enumeration value of the text data of this element. + */ + domGl_enumeration _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGl_enumeration of the value. + */ + domGl_enumeration getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGl_enumeration val ) { _value = val; } + + protected: + /** + * Constructor + */ + domEnum(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domEnum() {} + /** + * Overloaded assignment operator + */ + virtual domEnum &operator=( const domEnum &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements + domBoolRef elemBool; + domBool2Ref elemBool2; + domBool3Ref elemBool3; + domBool4Ref elemBool4; + domFloatRef elemFloat; + domFloat2Ref elemFloat2; + domFloat3Ref elemFloat3; + domFloat4Ref elemFloat4; + domFloat2x2Ref elemFloat2x2; + domFloat3x3Ref elemFloat3x3; + domFloat4x4Ref elemFloat4x4; + domIntRef elemInt; + domInt2Ref elemInt2; + domInt3Ref elemInt3; + domInt4Ref elemInt4; + domGlsl_surface_typeRef elemSurface; + domGl_sampler1DRef elemSampler1D; + domGl_sampler2DRef elemSampler2D; + domGl_sampler3DRef elemSampler3D; + domGl_samplerCUBERef elemSamplerCUBE; + domGl_samplerRECTRef elemSamplerRECT; + domGl_samplerDEPTHRef elemSamplerDEPTH; + domEnumRef elemEnum; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the bool element. + * @return a daeSmartRef to the bool element. + */ + const domBoolRef getBool() const { return elemBool; } + /** + * Gets the bool2 element. + * @return a daeSmartRef to the bool2 element. + */ + const domBool2Ref getBool2() const { return elemBool2; } + /** + * Gets the bool3 element. + * @return a daeSmartRef to the bool3 element. + */ + const domBool3Ref getBool3() const { return elemBool3; } + /** + * Gets the bool4 element. + * @return a daeSmartRef to the bool4 element. + */ + const domBool4Ref getBool4() const { return elemBool4; } + /** + * Gets the float element. + * @return a daeSmartRef to the float element. + */ + const domFloatRef getFloat() const { return elemFloat; } + /** + * Gets the float2 element. + * @return a daeSmartRef to the float2 element. + */ + const domFloat2Ref getFloat2() const { return elemFloat2; } + /** + * Gets the float3 element. + * @return a daeSmartRef to the float3 element. + */ + const domFloat3Ref getFloat3() const { return elemFloat3; } + /** + * Gets the float4 element. + * @return a daeSmartRef to the float4 element. + */ + const domFloat4Ref getFloat4() const { return elemFloat4; } + /** + * Gets the float2x2 element. + * @return a daeSmartRef to the float2x2 element. + */ + const domFloat2x2Ref getFloat2x2() const { return elemFloat2x2; } + /** + * Gets the float3x3 element. + * @return a daeSmartRef to the float3x3 element. + */ + const domFloat3x3Ref getFloat3x3() const { return elemFloat3x3; } + /** + * Gets the float4x4 element. + * @return a daeSmartRef to the float4x4 element. + */ + const domFloat4x4Ref getFloat4x4() const { return elemFloat4x4; } + /** + * Gets the int element. + * @return a daeSmartRef to the int element. + */ + const domIntRef getInt() const { return elemInt; } + /** + * Gets the int2 element. + * @return a daeSmartRef to the int2 element. + */ + const domInt2Ref getInt2() const { return elemInt2; } + /** + * Gets the int3 element. + * @return a daeSmartRef to the int3 element. + */ + const domInt3Ref getInt3() const { return elemInt3; } + /** + * Gets the int4 element. + * @return a daeSmartRef to the int4 element. + */ + const domInt4Ref getInt4() const { return elemInt4; } + /** + * Gets the surface element. + * @return a daeSmartRef to the surface element. + */ + const domGlsl_surface_typeRef getSurface() const { return elemSurface; } + /** + * Gets the sampler1D element. + * @return a daeSmartRef to the sampler1D element. + */ + const domGl_sampler1DRef getSampler1D() const { return elemSampler1D; } + /** + * Gets the sampler2D element. + * @return a daeSmartRef to the sampler2D element. + */ + const domGl_sampler2DRef getSampler2D() const { return elemSampler2D; } + /** + * Gets the sampler3D element. + * @return a daeSmartRef to the sampler3D element. + */ + const domGl_sampler3DRef getSampler3D() const { return elemSampler3D; } + /** + * Gets the samplerCUBE element. + * @return a daeSmartRef to the samplerCUBE element. + */ + const domGl_samplerCUBERef getSamplerCUBE() const { return elemSamplerCUBE; } + /** + * Gets the samplerRECT element. + * @return a daeSmartRef to the samplerRECT element. + */ + const domGl_samplerRECTRef getSamplerRECT() const { return elemSamplerRECT; } + /** + * Gets the samplerDEPTH element. + * @return a daeSmartRef to the samplerDEPTH element. + */ + const domGl_samplerDEPTHRef getSamplerDEPTH() const { return elemSamplerDEPTH; } + /** + * Gets the enum element. + * @return a daeSmartRef to the enum element. + */ + const domEnumRef getEnum() const { return elemEnum; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGlsl_param_type(DAE& dae) : daeElement(dae), elemBool(), elemBool2(), elemBool3(), elemBool4(), elemFloat(), elemFloat2(), elemFloat3(), elemFloat4(), elemFloat2x2(), elemFloat3x3(), elemFloat4x4(), elemInt(), elemInt2(), elemInt3(), elemInt4(), elemSurface(), elemSampler1D(), elemSampler2D(), elemSampler3D(), elemSamplerCUBE(), elemSamplerRECT(), elemSamplerDEPTH(), elemEnum() {} + /** + * Destructor + */ + virtual ~domGlsl_param_type() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGlsl_param_type &operator=( const domGlsl_param_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGlsl_setarray_type.h b/include/1.4/dom/domGlsl_setarray_type.h new file mode 100644 index 0000000..ac85dec --- /dev/null +++ b/include/1.4/dom/domGlsl_setarray_type.h @@ -0,0 +1,168 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGlsl_setarray_type_h__ +#define __domGlsl_setarray_type_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The glsl_newarray_type is used to creates a parameter of a one-dimensional + * array type. + */ +class domGlsl_setarray_type_complexType +{ +protected: // Attribute +/** + * The length attribute specifies the length of the array. + */ + xsPositiveInteger attrLength; + +protected: // Elements + domGlsl_param_type_Array elemGlsl_param_type_array; +/** + * You may recursively nest glsl_newarray elements to create multidimensional + * arrays. @see domArray + */ + domGlsl_setarray_type_Array elemArray_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; } + + /** + * Gets the glsl_param_type element array. + * @return Returns a reference to the array of glsl_param_type elements. + */ + domGlsl_param_type_Array &getGlsl_param_type_array() { return elemGlsl_param_type_array; } + /** + * Gets the glsl_param_type element array. + * @return Returns a constant reference to the array of glsl_param_type elements. + */ + const domGlsl_param_type_Array &getGlsl_param_type_array() const { return elemGlsl_param_type_array; } + /** + * Gets the array element array. + * @return Returns a reference to the array of array elements. + */ + domGlsl_setarray_type_Array &getArray_array() { return elemArray_array; } + /** + * Gets the array element array. + * @return Returns a constant reference to the array of array elements. + */ + const domGlsl_setarray_type_Array &getArray_array() const { return elemArray_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGlsl_setarray_type_complexType(DAE& dae, daeElement* elt) : attrLength(), elemGlsl_param_type_array(), elemArray_array() {} + /** + * Destructor + */ + virtual ~domGlsl_setarray_type_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGlsl_setarray_type_complexType &operator=( const domGlsl_setarray_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGlsl_setarray_type_complexType. + */ +class domGlsl_setarray_type : public daeElement, public domGlsl_setarray_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_SETARRAY_TYPE; } + static daeInt ID() { return 104; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the length attribute. + * @return Returns a xsPositiveInteger of the length attribute. + */ + xsPositiveInteger getLength() const { return attrLength; } + /** + * Sets the length attribute. + * @param atLength The new value for the length attribute. + */ + void setLength( xsPositiveInteger atLength ) { attrLength = atLength; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGlsl_setarray_type(DAE& dae) : daeElement(dae), domGlsl_setarray_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGlsl_setarray_type() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_setarray_type &operator=( const domGlsl_setarray_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGlsl_setparam.h b/include/1.4/dom/domGlsl_setparam.h new file mode 100644 index 0000000..9744463 --- /dev/null +++ b/include/1.4/dom/domGlsl_setparam.h @@ -0,0 +1,182 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGlsl_setparam_h__ +#define __domGlsl_setparam_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +class domGlsl_setparam_complexType +{ +protected: // Attributes + domGlsl_identifier attrRef; + xsNCName attrProgram; + +protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domGlsl_param_typeRef elemGlsl_param_type; + domGlsl_setarray_typeRef elemArray; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domGlsl_identifier of the ref attribute. + */ + domGlsl_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domGlsl_identifier atRef ) { attrRef = atRef; } + + /** + * Gets the program attribute. + * @return Returns a xsNCName of the program attribute. + */ + xsNCName getProgram() const { return attrProgram; } + /** + * Sets the program attribute. + * @param atProgram The new value for the program attribute. + */ + void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram;} + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the glsl_param_type element. + * @return a daeSmartRef to the glsl_param_type element. + */ + const domGlsl_param_typeRef getGlsl_param_type() const { return elemGlsl_param_type; } + /** + * Gets the array element. + * @return a daeSmartRef to the array element. + */ + const domGlsl_setarray_typeRef getArray() const { return elemArray; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domGlsl_setparam_complexType(DAE& dae, daeElement* elt) : attrRef(), attrProgram(), elemAnnotate_array(), elemGlsl_param_type(), elemArray() {} + /** + * Destructor + */ + virtual ~domGlsl_setparam_complexType() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGlsl_setparam_complexType &operator=( const domGlsl_setparam_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGlsl_setparam_complexType. + */ +class domGlsl_setparam : public daeElement, public domGlsl_setparam_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_SETPARAM; } + static daeInt ID() { return 112; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domGlsl_identifier of the ref attribute. + */ + domGlsl_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domGlsl_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + + /** + * Gets the program attribute. + * @return Returns a xsNCName of the program attribute. + */ + xsNCName getProgram() const { return attrProgram; } + /** + * Sets the program attribute. + * @param atProgram The new value for the program attribute. + */ + void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domGlsl_setparam(DAE& dae) : daeElement(dae), domGlsl_setparam_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGlsl_setparam() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_setparam &operator=( const domGlsl_setparam &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGlsl_setparam_simple.h b/include/1.4/dom/domGlsl_setparam_simple.h new file mode 100644 index 0000000..75f6391 --- /dev/null +++ b/include/1.4/dom/domGlsl_setparam_simple.h @@ -0,0 +1,127 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGlsl_setparam_simple_h__ +#define __domGlsl_setparam_simple_h__ + +#include +#include +#include + +#include +#include +class DAE; + +class domGlsl_setparam_simple_complexType +{ +protected: // Attribute + domGlsl_identifier attrRef; + +protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domGlsl_param_typeRef elemGlsl_param_type; + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domGlsl_identifier of the ref attribute. + */ + domGlsl_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domGlsl_identifier atRef ) { attrRef = atRef; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the glsl_param_type element. + * @return a daeSmartRef to the glsl_param_type element. + */ + const domGlsl_param_typeRef getGlsl_param_type() const { return elemGlsl_param_type; } +protected: + /** + * Constructor + */ + domGlsl_setparam_simple_complexType(DAE& dae, daeElement* elt) : attrRef(), elemAnnotate_array(), elemGlsl_param_type() {} + /** + * Destructor + */ + virtual ~domGlsl_setparam_simple_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_setparam_simple_complexType &operator=( const domGlsl_setparam_simple_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGlsl_setparam_simple_complexType. + */ +class domGlsl_setparam_simple : public daeElement, public domGlsl_setparam_simple_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_SETPARAM_SIMPLE; } + static daeInt ID() { return 111; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a domGlsl_identifier of the ref attribute. + */ + domGlsl_identifier getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( domGlsl_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domGlsl_setparam_simple(DAE& dae) : daeElement(dae), domGlsl_setparam_simple_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGlsl_setparam_simple() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_setparam_simple &operator=( const domGlsl_setparam_simple &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domGlsl_surface_type.h b/include/1.4/dom/domGlsl_surface_type.h new file mode 100644 index 0000000..b4e3ce4 --- /dev/null +++ b/include/1.4/dom/domGlsl_surface_type.h @@ -0,0 +1,318 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domGlsl_surface_type_h__ +#define __domGlsl_surface_type_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +class DAE; + +/** + * A surface type for the GLSL profile. This surface inherits from the fx_surface_common + * type and adds the ability to programmatically generate textures. + */ +class domGlsl_surface_type_complexType : public domFx_surface_common_complexType +{ +public: + class domGenerator; + + typedef daeSmartRef domGeneratorRef; + typedef daeTArray domGenerator_Array; + +/** + * A procedural surface generator. + */ + class domGenerator : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GENERATOR; } + static daeInt ID() { return 105; } + virtual daeInt typeID() const { return ID(); } + public: + class domName; + + typedef daeSmartRef domNameRef; + typedef daeTArray domName_Array; + +/** + * The entry symbol for the shader function. + */ + class domName : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME; } + static daeInt ID() { return 106; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrSource; + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a xsNCName of the source attribute. + */ + xsNCName getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domName(DAE& dae) : daeElement(dae), attrSource(), _value() {} + /** + * Destructor + */ + virtual ~domName() {} + /** + * Overloaded assignment operator + */ + virtual domName &operator=( const domName &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The annotate element allows you to specify an annotation for this surface + * generator. @see domAnnotate + */ + domFx_annotate_common_Array elemAnnotate_array; +/** + * The code element allows you to embed GLSL code to use for this surface + * generator. @see domCode + */ + domFx_code_profile_Array elemCode_array; +/** + * The include element allows you to import GLSL code to use for this surface + * generator. @see domInclude + */ + domFx_include_common_Array elemInclude_array; +/** + * The entry symbol for the shader function. @see domName + */ + domNameRef elemName; +/** + * The setparam element allows you to assign a new value to a previously defined + * parameter. @see domSetparam + */ + domGlsl_setparam_simple_Array elemSetparam_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the code element array. + * @return Returns a reference to the array of code elements. + */ + domFx_code_profile_Array &getCode_array() { return elemCode_array; } + /** + * Gets the code element array. + * @return Returns a constant reference to the array of code elements. + */ + const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } + /** + * Gets the include element array. + * @return Returns a reference to the array of include elements. + */ + domFx_include_common_Array &getInclude_array() { return elemInclude_array; } + /** + * Gets the include element array. + * @return Returns a constant reference to the array of include elements. + */ + const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } + /** + * Gets the name element. + * @return a daeSmartRef to the name element. + */ + const domNameRef getName() const { return elemName; } + /** + * Gets the setparam element array. + * @return Returns a reference to the array of setparam elements. + */ + domGlsl_setparam_simple_Array &getSetparam_array() { return elemSetparam_array; } + /** + * Gets the setparam element array. + * @return Returns a constant reference to the array of setparam elements. + */ + const domGlsl_setparam_simple_Array &getSetparam_array() const { return elemSetparam_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domGenerator(DAE& dae) : daeElement(dae), elemAnnotate_array(), elemCode_array(), elemInclude_array(), elemName(), elemSetparam_array() {} + /** + * Destructor + */ + virtual ~domGenerator() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domGenerator &operator=( const domGenerator &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Element +/** + * A procedural surface generator. @see domGenerator + */ + domGeneratorRef elemGenerator; + +public: //Accessors and Mutators + /** + * Gets the generator element. + * @return a daeSmartRef to the generator element. + */ + const domGeneratorRef getGenerator() const { return elemGenerator; } +protected: + /** + * Constructor + */ + domGlsl_surface_type_complexType(DAE& dae, daeElement* elt) : domFx_surface_common_complexType(dae, elt), elemGenerator() {} + /** + * Destructor + */ + virtual ~domGlsl_surface_type_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_surface_type_complexType &operator=( const domGlsl_surface_type_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domGlsl_surface_type_complexType. + */ +class domGlsl_surface_type : public daeElement, public domGlsl_surface_type_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLSL_SURFACE_TYPE; } + static daeInt ID() { return 107; } + virtual daeInt typeID() const { return ID(); } +protected: + /** + * Constructor + */ + domGlsl_surface_type(DAE& dae) : daeElement(dae), domGlsl_surface_type_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domGlsl_surface_type() {} + /** + * Overloaded assignment operator + */ + virtual domGlsl_surface_type &operator=( const domGlsl_surface_type &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domIDREF_array.h b/include/1.4/dom/domIDREF_array.h new file mode 100644 index 0000000..9f3751d --- /dev/null +++ b/include/1.4/dom/domIDREF_array.h @@ -0,0 +1,137 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domIDREF_array_h__ +#define __domIDREF_array_h__ + +#include +#include +#include + +class DAE; + +/** + * The IDREF_array element declares the storage for a homogenous array of + * ID reference values. + */ +class domIDREF_array : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::IDREF_ARRAY; } + static daeInt ID() { return 604; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of values in the array. Required + * attribute. + */ + domUint attrCount; + +protected: // Value + /** + * The xsIDREFS value of the text data of this element. + */ + xsIDREFS _value; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[2] = true; } + + /** + * Gets the _value array. + * @return Returns a xsIDREFS reference of the _value array. + */ + xsIDREFS &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant xsIDREFS reference of the _value array. + */ + const xsIDREFS &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const xsIDREFS &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domIDREF_array(DAE& dae) : daeElement(dae), attrId(), attrName(), attrCount(), _value(new xsIDREF(*this)) {} + /** + * Destructor + */ + virtual ~domIDREF_array() {} + /** + * Overloaded assignment operator + */ + virtual domIDREF_array &operator=( const domIDREF_array &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domImage.h b/include/1.4/dom/domImage.h new file mode 100644 index 0000000..7eea767 --- /dev/null +++ b/include/1.4/dom/domImage.h @@ -0,0 +1,380 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domImage_h__ +#define __domImage_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The image element declares the storage for the graphical representation + * of an object. The image element best describes raster image data, but + * can conceivably handle other forms of imagery. The image elements allows + * for specifying an external image file with the init_from element or embed + * image data with the data element. + */ +class domImage : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::IMAGE; } + static daeInt ID() { return 635; } + virtual daeInt typeID() const { return ID(); } +public: + class domData; + + typedef daeSmartRef domDataRef; + typedef daeTArray domData_Array; + +/** + * The data child element contains a sequence of hexadecimal encoded binary + * octets representing the embedded image data. + */ + class domData : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DATA; } + static daeInt ID() { return 636; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domListOfHexBinary value of the text data of this element. + */ + domListOfHexBinary _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domListOfHexBinary reference of the _value array. + */ + domListOfHexBinary &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfHexBinary reference of the _value array. + */ + const domListOfHexBinary &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfHexBinary &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domData(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domData() {} + /** + * Overloaded assignment operator + */ + virtual domData &operator=( const domData &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInit_from; + + typedef daeSmartRef domInit_fromRef; + typedef daeTArray domInit_from_Array; + +/** + * The init_from element allows you to specify an external image file to use + * for the image element. + */ + class domInit_from : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INIT_FROM; } + static daeInt ID() { return 637; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsAnyURI value of the text data of this element. + */ + xsAnyURI _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsAnyURI of the value. + */ + xsAnyURI &getValue() { return _value; } + /** + * Gets the value of this element. + * @return Returns a constant xsAnyURI of the value. + */ + const xsAnyURI &getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( const xsAnyURI &val ) { _value = val; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInit_from(DAE& dae) : daeElement(dae), _value(dae, *this) {} + /** + * Destructor + */ + virtual ~domInit_from() {} + /** + * Overloaded assignment operator + */ + virtual domInit_from &operator=( const domInit_from &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The format attribute is a text string value that indicates the image format. + * Optional attribute. + */ + xsToken attrFormat; +/** + * The height attribute is an integer value that indicates the height of + * the image in pixel units. Optional attribute. + */ + domUint attrHeight; +/** + * The width attribute is an integer value that indicates the width of the + * image in pixel units. Optional attribute. + */ + domUint attrWidth; +/** + * The depth attribute is an integer value that indicates the depth of the + * image in pixel units. A 2-D image has a depth of 1, which is also the + * default value. Optional attribute. + */ + domUint attrDepth; + +protected: // Elements +/** + * The image element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The data child element contains a sequence of hexadecimal encoded binary + * octets representing the embedded image data. @see domData + */ + domDataRef elemData; +/** + * The init_from element allows you to specify an external image file to use + * for the image element. @see domInit_from + */ + domInit_fromRef elemInit_from; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the format attribute. + * @return Returns a xsToken of the format attribute. + */ + xsToken getFormat() const { return attrFormat; } + /** + * Sets the format attribute. + * @param atFormat The new value for the format attribute. + */ + void setFormat( xsToken atFormat ) { *(daeStringRef*)&attrFormat = atFormat; _validAttributeArray[2] = true; } + + /** + * Gets the height attribute. + * @return Returns a domUint of the height attribute. + */ + domUint getHeight() const { return attrHeight; } + /** + * Sets the height attribute. + * @param atHeight The new value for the height attribute. + */ + void setHeight( domUint atHeight ) { attrHeight = atHeight; _validAttributeArray[3] = true; } + + /** + * Gets the width attribute. + * @return Returns a domUint of the width attribute. + */ + domUint getWidth() const { return attrWidth; } + /** + * Sets the width attribute. + * @param atWidth The new value for the width attribute. + */ + void setWidth( domUint atWidth ) { attrWidth = atWidth; _validAttributeArray[4] = true; } + + /** + * Gets the depth attribute. + * @return Returns a domUint of the depth attribute. + */ + domUint getDepth() const { return attrDepth; } + /** + * Sets the depth attribute. + * @param atDepth The new value for the depth attribute. + */ + void setDepth( domUint atDepth ) { attrDepth = atDepth; _validAttributeArray[5] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the data element. + * @return a daeSmartRef to the data element. + */ + const domDataRef getData() const { return elemData; } + /** + * Gets the init_from element. + * @return a daeSmartRef to the init_from element. + */ + const domInit_fromRef getInit_from() const { return elemInit_from; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domImage(DAE& dae) : daeElement(dae), attrId(), attrName(), attrFormat(), attrHeight(), attrWidth(), attrDepth(), elemAsset(), elemData(), elemInit_from(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domImage() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domImage &operator=( const domImage &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInputGlobal.h b/include/1.4/dom/domInputGlobal.h new file mode 100644 index 0000000..e4e6b9f --- /dev/null +++ b/include/1.4/dom/domInputGlobal.h @@ -0,0 +1,162 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInputGlobal_h__ +#define __domInputGlobal_h__ + +#include +#include +#include + +class DAE; + +/** + * The InputGlobal type is used to represent inputs that can reference external + * resources. + */ +class domInputGlobal_complexType +{ +protected: // Attributes +/** + * The semantic attribute is the user-defined meaning of the input connection. + * Required attribute. + */ + xsNMTOKEN attrSemantic; +/** + * The source attribute indicates the location of the data source. Required + * attribute. + */ + xsAnyURI attrSource; + + +public: //Accessors and Mutators + /** + * Gets the semantic attribute. + * @return Returns a xsNMTOKEN of the semantic attribute. + */ + xsNMTOKEN getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNMTOKEN atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic;} + + /** + * Gets the source attribute. + * @return Returns a xsAnyURI reference of the source attribute. + */ + xsAnyURI &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant xsAnyURI reference of the source attribute. + */ + const xsAnyURI &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const xsAnyURI &atSource ) { attrSource = atSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; } + +protected: + /** + * Constructor + */ + domInputGlobal_complexType(DAE& dae, daeElement* elt) : attrSemantic(), attrSource(dae, *elt) {} + /** + * Destructor + */ + virtual ~domInputGlobal_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domInputGlobal_complexType &operator=( const domInputGlobal_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domInputGlobal_complexType. + */ +class domInputGlobal : public daeElement, public domInputGlobal_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INPUTGLOBAL; } + static daeInt ID() { return 0; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the semantic attribute. + * @return Returns a xsNMTOKEN of the semantic attribute. + */ + xsNMTOKEN getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNMTOKEN atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[0] = true; } + + /** + * Gets the source attribute. + * @return Returns a xsAnyURI reference of the source attribute. + */ + xsAnyURI &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant xsAnyURI reference of the source attribute. + */ + const xsAnyURI &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const xsAnyURI &atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domInputGlobal(DAE& dae) : daeElement(dae), domInputGlobal_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInputGlobal() {} + /** + * Overloaded assignment operator + */ + virtual domInputGlobal &operator=( const domInputGlobal &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInputLocal.h b/include/1.4/dom/domInputLocal.h new file mode 100644 index 0000000..0c2d16f --- /dev/null +++ b/include/1.4/dom/domInputLocal.h @@ -0,0 +1,162 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInputLocal_h__ +#define __domInputLocal_h__ + +#include +#include +#include + +class DAE; + +/** + * The InputLocal type is used to represent inputs that can only reference + * resources declared in the same document. + */ +class domInputLocal_complexType +{ +protected: // Attributes +/** + * The semantic attribute is the user-defined meaning of the input connection. + * Required attribute. + */ + xsNMTOKEN attrSemantic; +/** + * The source attribute indicates the location of the data source. Required + * attribute. + */ + domURIFragmentType attrSource; + + +public: //Accessors and Mutators + /** + * Gets the semantic attribute. + * @return Returns a xsNMTOKEN of the semantic attribute. + */ + xsNMTOKEN getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNMTOKEN atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic;} + + /** + * Gets the source attribute. + * @return Returns a domURIFragmentType reference of the source attribute. + */ + domURIFragmentType &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant domURIFragmentType reference of the source attribute. + */ + const domURIFragmentType &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const domURIFragmentType &atSource ) { attrSource = atSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; } + +protected: + /** + * Constructor + */ + domInputLocal_complexType(DAE& dae, daeElement* elt) : attrSemantic(), attrSource(dae, *elt) {} + /** + * Destructor + */ + virtual ~domInputLocal_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domInputLocal_complexType &operator=( const domInputLocal_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domInputLocal_complexType. + */ +class domInputLocal : public daeElement, public domInputLocal_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INPUTLOCAL; } + static daeInt ID() { return 1; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the semantic attribute. + * @return Returns a xsNMTOKEN of the semantic attribute. + */ + xsNMTOKEN getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNMTOKEN atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[0] = true; } + + /** + * Gets the source attribute. + * @return Returns a domURIFragmentType reference of the source attribute. + */ + domURIFragmentType &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant domURIFragmentType reference of the source attribute. + */ + const domURIFragmentType &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const domURIFragmentType &atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } + +protected: + /** + * Constructor + */ + domInputLocal(DAE& dae) : daeElement(dae), domInputLocal_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInputLocal() {} + /** + * Overloaded assignment operator + */ + virtual domInputLocal &operator=( const domInputLocal &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInputLocalOffset.h b/include/1.4/dom/domInputLocalOffset.h new file mode 100644 index 0000000..10f8d93 --- /dev/null +++ b/include/1.4/dom/domInputLocalOffset.h @@ -0,0 +1,218 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInputLocalOffset_h__ +#define __domInputLocalOffset_h__ + +#include +#include +#include + +class DAE; + +/** + * The InputLocalOffset type is used to represent indexed inputs that can + * only reference resources declared in the same document. + */ +class domInputLocalOffset_complexType +{ +protected: // Attributes +/** + * The offset attribute represents the offset into the list of indices. + * If two input elements share the same offset, they will be indexed the + * same. This works as a simple form of compression for the list of indices + * as well as defining the order the inputs should be used in. Required attribute. + */ + domUint attrOffset; +/** + * The semantic attribute is the user-defined meaning of the input connection. + * Required attribute. + */ + xsNMTOKEN attrSemantic; +/** + * The source attribute indicates the location of the data source. Required + * attribute. + */ + domURIFragmentType attrSource; +/** + * The set attribute indicates which inputs should be grouped together as + * a single set. This is helpful when multiple inputs share the same semantics. + */ + domUint attrSet; + + +public: //Accessors and Mutators + /** + * Gets the offset attribute. + * @return Returns a domUint of the offset attribute. + */ + domUint getOffset() const { return attrOffset; } + /** + * Sets the offset attribute. + * @param atOffset The new value for the offset attribute. + */ + void setOffset( domUint atOffset ) { attrOffset = atOffset; } + + /** + * Gets the semantic attribute. + * @return Returns a xsNMTOKEN of the semantic attribute. + */ + xsNMTOKEN getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNMTOKEN atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic;} + + /** + * Gets the source attribute. + * @return Returns a domURIFragmentType reference of the source attribute. + */ + domURIFragmentType &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant domURIFragmentType reference of the source attribute. + */ + const domURIFragmentType &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const domURIFragmentType &atSource ) { attrSource = atSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; } + + /** + * Gets the set attribute. + * @return Returns a domUint of the set attribute. + */ + domUint getSet() const { return attrSet; } + /** + * Sets the set attribute. + * @param atSet The new value for the set attribute. + */ + void setSet( domUint atSet ) { attrSet = atSet; } + +protected: + /** + * Constructor + */ + domInputLocalOffset_complexType(DAE& dae, daeElement* elt) : attrOffset(), attrSemantic(), attrSource(dae, *elt), attrSet() {} + /** + * Destructor + */ + virtual ~domInputLocalOffset_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domInputLocalOffset_complexType &operator=( const domInputLocalOffset_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domInputLocalOffset_complexType. + */ +class domInputLocalOffset : public daeElement, public domInputLocalOffset_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INPUTLOCALOFFSET; } + static daeInt ID() { return 2; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the offset attribute. + * @return Returns a domUint of the offset attribute. + */ + domUint getOffset() const { return attrOffset; } + /** + * Sets the offset attribute. + * @param atOffset The new value for the offset attribute. + */ + void setOffset( domUint atOffset ) { attrOffset = atOffset; _validAttributeArray[0] = true; } + + /** + * Gets the semantic attribute. + * @return Returns a xsNMTOKEN of the semantic attribute. + */ + xsNMTOKEN getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNMTOKEN atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[1] = true; } + + /** + * Gets the source attribute. + * @return Returns a domURIFragmentType reference of the source attribute. + */ + domURIFragmentType &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant domURIFragmentType reference of the source attribute. + */ + const domURIFragmentType &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const domURIFragmentType &atSource ) { attrSource = atSource; _validAttributeArray[2] = true; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[2] = true; } + + /** + * Gets the set attribute. + * @return Returns a domUint of the set attribute. + */ + domUint getSet() const { return attrSet; } + /** + * Sets the set attribute. + * @param atSet The new value for the set attribute. + */ + void setSet( domUint atSet ) { attrSet = atSet; _validAttributeArray[3] = true; } + +protected: + /** + * Constructor + */ + domInputLocalOffset(DAE& dae) : daeElement(dae), domInputLocalOffset_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInputLocalOffset() {} + /** + * Overloaded assignment operator + */ + virtual domInputLocalOffset &operator=( const domInputLocalOffset &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstanceWithExtra.h b/include/1.4/dom/domInstanceWithExtra.h new file mode 100644 index 0000000..139a39f --- /dev/null +++ b/include/1.4/dom/domInstanceWithExtra.h @@ -0,0 +1,208 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstanceWithExtra_h__ +#define __domInstanceWithExtra_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The InstanceWithExtra type is used for all generic instance elements. A + * generic instance element is one which does not have any specific child + * elements declared. + */ +class domInstanceWithExtra_complexType +{ +protected: // Attributes +/** + * The url attribute refers to resource to instantiate. This may refer to + * a local resource using a relative URL fragment identifier that begins + * with the “#” character. The url attribute may refer to an external + * resource using an absolute or relative URL. + */ + xsAnyURI attrUrl; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Element +/** + * The extra element may occur any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName;} + + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstanceWithExtra_complexType(DAE& dae, daeElement* elt) : attrUrl(dae, *elt), attrSid(), attrName(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstanceWithExtra_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domInstanceWithExtra_complexType &operator=( const domInstanceWithExtra_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domInstanceWithExtra_complexType. + */ +class domInstanceWithExtra : public daeElement, public domInstanceWithExtra_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCEWITHEXTRA; } + static daeInt ID() { return 3; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domInstanceWithExtra(DAE& dae) : daeElement(dae), domInstanceWithExtra_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInstanceWithExtra() {} + /** + * Overloaded assignment operator + */ + virtual domInstanceWithExtra &operator=( const domInstanceWithExtra &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_camera.h b/include/1.4/dom/domInstance_camera.h new file mode 100644 index 0000000..848b989 --- /dev/null +++ b/include/1.4/dom/domInstance_camera.h @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_camera_h__ +#define __domInstance_camera_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The instance_camera element declares the instantiation of a COLLADA camera + * resource. + */ +class domInstance_camera : public daeElement, public domInstanceWithExtra_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_CAMERA; } + static daeInt ID() { return 688; } + virtual daeInt typeID() const { return ID(); } + + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domInstance_camera(DAE& dae) : daeElement(dae), domInstanceWithExtra_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInstance_camera() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_camera &operator=( const domInstance_camera &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_controller.h b/include/1.4/dom/domInstance_controller.h new file mode 100644 index 0000000..7e2bcc3 --- /dev/null +++ b/include/1.4/dom/domInstance_controller.h @@ -0,0 +1,244 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_controller_h__ +#define __domInstance_controller_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The instance_controller element declares the instantiation of a COLLADA + * controller resource. + */ +class domInstance_controller : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_CONTROLLER; } + static daeInt ID() { return 689; } + virtual daeInt typeID() const { return ID(); } +public: + class domSkeleton; + + typedef daeSmartRef domSkeletonRef; + typedef daeTArray domSkeleton_Array; + +/** + * The skeleton element is used to indicate where a skin controller is to + * start to search for the joint nodes it needs. This element is meaningless + * for morph controllers. + */ + class domSkeleton : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SKELETON; } + static daeInt ID() { return 690; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsAnyURI value of the text data of this element. + */ + xsAnyURI _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsAnyURI of the value. + */ + xsAnyURI &getValue() { return _value; } + /** + * Gets the value of this element. + * @return Returns a constant xsAnyURI of the value. + */ + const xsAnyURI &getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( const xsAnyURI &val ) { _value = val; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { _value = val; } + + protected: + /** + * Constructor + */ + domSkeleton(DAE& dae) : daeElement(dae), _value(dae, *this) {} + /** + * Destructor + */ + virtual ~domSkeleton() {} + /** + * Overloaded assignment operator + */ + virtual domSkeleton &operator=( const domSkeleton &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The url attribute refers to resource. This may refer to a local resource + * using a relative URL fragment identifier that begins with the “#” + * character. The url attribute may refer to an external resource using an + * absolute or relative URL. + */ + xsAnyURI attrUrl; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The skeleton element is used to indicate where a skin controller is to + * start to search for the joint nodes it needs. This element is meaningless + * for morph controllers. @see domSkeleton + */ + domSkeleton_Array elemSkeleton_array; +/** + * Bind a specific material to a piece of geometry, binding varying and uniform + * parameters at the same time. @see domBind_material + */ + domBind_materialRef elemBind_material; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + + /** + * Gets the skeleton element array. + * @return Returns a reference to the array of skeleton elements. + */ + domSkeleton_Array &getSkeleton_array() { return elemSkeleton_array; } + /** + * Gets the skeleton element array. + * @return Returns a constant reference to the array of skeleton elements. + */ + const domSkeleton_Array &getSkeleton_array() const { return elemSkeleton_array; } + /** + * Gets the bind_material element. + * @return a daeSmartRef to the bind_material element. + */ + const domBind_materialRef getBind_material() const { return elemBind_material; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstance_controller(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), elemSkeleton_array(), elemBind_material(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstance_controller() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_controller &operator=( const domInstance_controller &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_effect.h b/include/1.4/dom/domInstance_effect.h new file mode 100644 index 0000000..5782180 --- /dev/null +++ b/include/1.4/dom/domInstance_effect.h @@ -0,0 +1,332 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_effect_h__ +#define __domInstance_effect_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The instance_effect element declares the instantiation of a COLLADA effect + * resource. + */ +class domInstance_effect : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_EFFECT; } + static daeInt ID() { return 691; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_hint; + + typedef daeSmartRef domTechnique_hintRef; + typedef daeTArray domTechnique_hint_Array; + +/** + * Add a hint for a platform of which technique to use in this effect. + */ + class domTechnique_hint : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_HINT; } + static daeInt ID() { return 692; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes +/** + * A platform defines a string that specifies which platform this is hint + * is aimed for. + */ + xsNCName attrPlatform; +/** + * A profile defines a string that specifies which API profile this is hint + * is aimed for. + */ + xsNCName attrProfile; +/** + * A reference to the technique to use for the specified platform. + */ + xsNCName attrRef; + + + public: //Accessors and Mutators + /** + * Gets the platform attribute. + * @return Returns a xsNCName of the platform attribute. + */ + xsNCName getPlatform() const { return attrPlatform; } + /** + * Sets the platform attribute. + * @param atPlatform The new value for the platform attribute. + */ + void setPlatform( xsNCName atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform; _validAttributeArray[0] = true; } + + /** + * Gets the profile attribute. + * @return Returns a xsNCName of the profile attribute. + */ + xsNCName getProfile() const { return attrProfile; } + /** + * Sets the profile attribute. + * @param atProfile The new value for the profile attribute. + */ + void setProfile( xsNCName atProfile ) { *(daeStringRef*)&attrProfile = atProfile; _validAttributeArray[1] = true; } + + /** + * Gets the ref attribute. + * @return Returns a xsNCName of the ref attribute. + */ + xsNCName getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domTechnique_hint(DAE& dae) : daeElement(dae), attrPlatform(), attrProfile(), attrRef() {} + /** + * Destructor + */ + virtual ~domTechnique_hint() {} + /** + * Overloaded assignment operator + */ + virtual domTechnique_hint &operator=( const domTechnique_hint &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSetparam; + + typedef daeSmartRef domSetparamRef; + typedef daeTArray domSetparam_Array; + +/** + * Assigns a new value to a previously defined parameter + */ + class domSetparam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SETPARAM; } + static daeInt ID() { return 693; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsToken attrRef; + + protected: // Element + domFx_basic_type_commonRef elemFx_basic_type_common; + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsToken of the ref attribute. + */ + xsToken getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( xsToken atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } + + /** + * Gets the fx_basic_type_common element. + * @return a daeSmartRef to the fx_basic_type_common element. + */ + const domFx_basic_type_commonRef getFx_basic_type_common() const { return elemFx_basic_type_common; } + protected: + /** + * Constructor + */ + domSetparam(DAE& dae) : daeElement(dae), attrRef(), elemFx_basic_type_common() {} + /** + * Destructor + */ + virtual ~domSetparam() {} + /** + * Overloaded assignment operator + */ + virtual domSetparam &operator=( const domSetparam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The url attribute refers to resource. This may refer to a local resource + * using a relative URL fragment identifier that begins with the “#” + * character. The url attribute may refer to an external resource using an + * absolute or relative URL. + */ + xsAnyURI attrUrl; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * Add a hint for a platform of which technique to use in this effect. @see + * domTechnique_hint + */ + domTechnique_hint_Array elemTechnique_hint_array; +/** + * Assigns a new value to a previously defined parameter @see domSetparam + */ + domSetparam_Array elemSetparam_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + + /** + * Gets the technique_hint element array. + * @return Returns a reference to the array of technique_hint elements. + */ + domTechnique_hint_Array &getTechnique_hint_array() { return elemTechnique_hint_array; } + /** + * Gets the technique_hint element array. + * @return Returns a constant reference to the array of technique_hint elements. + */ + const domTechnique_hint_Array &getTechnique_hint_array() const { return elemTechnique_hint_array; } + /** + * Gets the setparam element array. + * @return Returns a reference to the array of setparam elements. + */ + domSetparam_Array &getSetparam_array() { return elemSetparam_array; } + /** + * Gets the setparam element array. + * @return Returns a constant reference to the array of setparam elements. + */ + const domSetparam_Array &getSetparam_array() const { return elemSetparam_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstance_effect(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), elemTechnique_hint_array(), elemSetparam_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstance_effect() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_effect &operator=( const domInstance_effect &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_force_field.h b/include/1.4/dom/domInstance_force_field.h new file mode 100644 index 0000000..0547b3b --- /dev/null +++ b/include/1.4/dom/domInstance_force_field.h @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_force_field_h__ +#define __domInstance_force_field_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The instance_force_field element declares the instantiation of a COLLADA + * force_field resource. + */ +class domInstance_force_field : public daeElement, public domInstanceWithExtra_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_FORCE_FIELD; } + static daeInt ID() { return 694; } + virtual daeInt typeID() const { return ID(); } + + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domInstance_force_field(DAE& dae) : daeElement(dae), domInstanceWithExtra_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInstance_force_field() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_force_field &operator=( const domInstance_force_field &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_geometry.h b/include/1.4/dom/domInstance_geometry.h new file mode 100644 index 0000000..3ed258d --- /dev/null +++ b/include/1.4/dom/domInstance_geometry.h @@ -0,0 +1,153 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_geometry_h__ +#define __domInstance_geometry_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The instance_geometry element declares the instantiation of a COLLADA geometry + * resource. + */ +class domInstance_geometry : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_GEOMETRY; } + static daeInt ID() { return 695; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The url attribute refers to resource. This may refer to a local resource + * using a relative URL fragment identifier that begins with the “#” + * character. The url attribute may refer to an external resource using an + * absolute or relative URL. + */ + xsAnyURI attrUrl; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * Bind a specific material to a piece of geometry, binding varying and uniform + * parameters at the same time. @see domBind_material + */ + domBind_materialRef elemBind_material; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + + /** + * Gets the bind_material element. + * @return a daeSmartRef to the bind_material element. + */ + const domBind_materialRef getBind_material() const { return elemBind_material; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstance_geometry(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), elemBind_material(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstance_geometry() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_geometry &operator=( const domInstance_geometry &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_light.h b/include/1.4/dom/domInstance_light.h new file mode 100644 index 0000000..bf17d12 --- /dev/null +++ b/include/1.4/dom/domInstance_light.h @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_light_h__ +#define __domInstance_light_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The instance_light element declares the instantiation of a COLLADA light + * resource. + */ +class domInstance_light : public daeElement, public domInstanceWithExtra_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_LIGHT; } + static daeInt ID() { return 696; } + virtual daeInt typeID() const { return ID(); } + + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domInstance_light(DAE& dae) : daeElement(dae), domInstanceWithExtra_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInstance_light() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_light &operator=( const domInstance_light &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_material.h b/include/1.4/dom/domInstance_material.h new file mode 100644 index 0000000..e97ff83 --- /dev/null +++ b/include/1.4/dom/domInstance_material.h @@ -0,0 +1,358 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_material_h__ +#define __domInstance_material_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The instance_material element declares the instantiation of a COLLADA material + * resource. + */ +class domInstance_material : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_MATERIAL; } + static daeInt ID() { return 697; } + virtual daeInt typeID() const { return ID(); } +public: + class domBind; + + typedef daeSmartRef domBindRef; + typedef daeTArray domBind_Array; + +/** + * The bind element binds values to effect parameters upon instantiation. + */ + class domBind : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND; } + static daeInt ID() { return 698; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes +/** + * The semantic attribute specifies which effect parameter to bind. + */ + xsNCName attrSemantic; +/** + * The target attribute specifies the location of the value to bind to the + * specified semantic. This text string is a path-name following a simple + * syntax described in the “Addressing Syntax” section. + */ + xsToken attrTarget; + + + public: //Accessors and Mutators + /** + * Gets the semantic attribute. + * @return Returns a xsNCName of the semantic attribute. + */ + xsNCName getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNCName atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[0] = true; } + + /** + * Gets the target attribute. + * @return Returns a xsToken of the target attribute. + */ + xsToken getTarget() const { return attrTarget; } + /** + * Sets the target attribute. + * @param atTarget The new value for the target attribute. + */ + void setTarget( xsToken atTarget ) { *(daeStringRef*)&attrTarget = atTarget; _validAttributeArray[1] = true; } + + protected: + /** + * Constructor + */ + domBind(DAE& dae) : daeElement(dae), attrSemantic(), attrTarget() {} + /** + * Destructor + */ + virtual ~domBind() {} + /** + * Overloaded assignment operator + */ + virtual domBind &operator=( const domBind &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBind_vertex_input; + + typedef daeSmartRef domBind_vertex_inputRef; + typedef daeTArray domBind_vertex_input_Array; + +/** + * The bind_vertex_input element binds vertex inputs to effect parameters + * upon instantiation. + */ + class domBind_vertex_input : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_VERTEX_INPUT; } + static daeInt ID() { return 699; } + virtual daeInt typeID() const { return ID(); } + protected: // Attributes +/** + * The semantic attribute specifies which effect parameter to bind. + */ + xsNCName attrSemantic; +/** + * The input_semantic attribute specifies which input semantic to bind. + */ + xsNCName attrInput_semantic; +/** + * The input_set attribute specifies which input set to bind. + */ + domUint attrInput_set; + + + public: //Accessors and Mutators + /** + * Gets the semantic attribute. + * @return Returns a xsNCName of the semantic attribute. + */ + xsNCName getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNCName atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[0] = true; } + + /** + * Gets the input_semantic attribute. + * @return Returns a xsNCName of the input_semantic attribute. + */ + xsNCName getInput_semantic() const { return attrInput_semantic; } + /** + * Sets the input_semantic attribute. + * @param atInput_semantic The new value for the input_semantic attribute. + */ + void setInput_semantic( xsNCName atInput_semantic ) { *(daeStringRef*)&attrInput_semantic = atInput_semantic; _validAttributeArray[1] = true; } + + /** + * Gets the input_set attribute. + * @return Returns a domUint of the input_set attribute. + */ + domUint getInput_set() const { return attrInput_set; } + /** + * Sets the input_set attribute. + * @param atInput_set The new value for the input_set attribute. + */ + void setInput_set( domUint atInput_set ) { attrInput_set = atInput_set; _validAttributeArray[2] = true; } + + protected: + /** + * Constructor + */ + domBind_vertex_input(DAE& dae) : daeElement(dae), attrSemantic(), attrInput_semantic(), attrInput_set() {} + /** + * Destructor + */ + virtual ~domBind_vertex_input() {} + /** + * Overloaded assignment operator + */ + virtual domBind_vertex_input &operator=( const domBind_vertex_input &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The symbol attribute specifies which symbol defined from within the geometry + * this material binds to. + */ + xsNCName attrSymbol; +/** + * The target attribute specifies the URL of the location of the object to + * instantiate. + */ + xsAnyURI attrTarget; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The bind element binds values to effect parameters upon instantiation. + * @see domBind + */ + domBind_Array elemBind_array; +/** + * The bind_vertex_input element binds vertex inputs to effect parameters + * upon instantiation. @see domBind_vertex_input + */ + domBind_vertex_input_Array elemBind_vertex_input_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the symbol attribute. + * @return Returns a xsNCName of the symbol attribute. + */ + xsNCName getSymbol() const { return attrSymbol; } + /** + * Sets the symbol attribute. + * @param atSymbol The new value for the symbol attribute. + */ + void setSymbol( xsNCName atSymbol ) { *(daeStringRef*)&attrSymbol = atSymbol; _validAttributeArray[0] = true; } + + /** + * Gets the target attribute. + * @return Returns a xsAnyURI reference of the target attribute. + */ + xsAnyURI &getTarget() { return attrTarget; } + /** + * Gets the target attribute. + * @return Returns a constant xsAnyURI reference of the target attribute. + */ + const xsAnyURI &getTarget() const { return attrTarget; } + /** + * Sets the target attribute. + * @param atTarget The new value for the target attribute. + */ + void setTarget( const xsAnyURI &atTarget ) { attrTarget = atTarget; _validAttributeArray[1] = true; } + /** + * Sets the target attribute. + * @param atTarget The new value for the target attribute. + */ + void setTarget( xsString atTarget ) { attrTarget = atTarget; _validAttributeArray[1] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[2] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[3] = true; } + + /** + * Gets the bind element array. + * @return Returns a reference to the array of bind elements. + */ + domBind_Array &getBind_array() { return elemBind_array; } + /** + * Gets the bind element array. + * @return Returns a constant reference to the array of bind elements. + */ + const domBind_Array &getBind_array() const { return elemBind_array; } + /** + * Gets the bind_vertex_input element array. + * @return Returns a reference to the array of bind_vertex_input elements. + */ + domBind_vertex_input_Array &getBind_vertex_input_array() { return elemBind_vertex_input_array; } + /** + * Gets the bind_vertex_input element array. + * @return Returns a constant reference to the array of bind_vertex_input elements. + */ + const domBind_vertex_input_Array &getBind_vertex_input_array() const { return elemBind_vertex_input_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstance_material(DAE& dae) : daeElement(dae), attrSymbol(), attrTarget(dae, *this), attrSid(), attrName(), elemBind_array(), elemBind_vertex_input_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstance_material() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_material &operator=( const domInstance_material &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_node.h b/include/1.4/dom/domInstance_node.h new file mode 100644 index 0000000..3908b7b --- /dev/null +++ b/include/1.4/dom/domInstance_node.h @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_node_h__ +#define __domInstance_node_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The instance_node element declares the instantiation of a COLLADA node + * resource. + */ +class domInstance_node : public daeElement, public domInstanceWithExtra_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_NODE; } + static daeInt ID() { return 700; } + virtual daeInt typeID() const { return ID(); } + + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domInstance_node(DAE& dae) : daeElement(dae), domInstanceWithExtra_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInstance_node() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_node &operator=( const domInstance_node &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_physics_material.h b/include/1.4/dom/domInstance_physics_material.h new file mode 100644 index 0000000..29dcb5b --- /dev/null +++ b/include/1.4/dom/domInstance_physics_material.h @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_physics_material_h__ +#define __domInstance_physics_material_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The instance_physics_material element declares the instantiation of a COLLADA + * physics_material resource. + */ +class domInstance_physics_material : public daeElement, public domInstanceWithExtra_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_PHYSICS_MATERIAL; } + static daeInt ID() { return 701; } + virtual daeInt typeID() const { return ID(); } + + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + +protected: + /** + * Constructor + */ + domInstance_physics_material(DAE& dae) : daeElement(dae), domInstanceWithExtra_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domInstance_physics_material() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_physics_material &operator=( const domInstance_physics_material &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_physics_model.h b/include/1.4/dom/domInstance_physics_model.h new file mode 100644 index 0000000..67912b6 --- /dev/null +++ b/include/1.4/dom/domInstance_physics_model.h @@ -0,0 +1,218 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_physics_model_h__ +#define __domInstance_physics_model_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * This element allows instancing physics model within another physics model, + * or in a physics scene. + */ +class domInstance_physics_model : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_PHYSICS_MODEL; } + static daeInt ID() { return 702; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The url attribute refers to resource. This may refer to a local resource + * using a relative URL fragment identifier that begins with the “#” + * character. The url attribute may refer to an external resource using an + * absolute or relative URL. + */ + xsAnyURI attrUrl; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The parent attribute points to the id of a node in the visual scene. This + * allows a physics model to be instantiated under a specific transform node, + * which will dictate the initial position and orientation, and could be + * animated to influence kinematic rigid bodies. + */ + xsAnyURI attrParent; + +protected: // Elements +/** + * The instance_physics_model element may instance any number of force_field + * elements. @see domInstance_force_field + */ + domInstance_force_field_Array elemInstance_force_field_array; +/** + * The instance_physics_model element may instance any number of rigid_body + * elements. @see domInstance_rigid_body + */ + domInstance_rigid_body_Array elemInstance_rigid_body_array; +/** + * The instance_physics_model element may instance any number of rigid_constraint + * elements. @see domInstance_rigid_constraint + */ + domInstance_rigid_constraint_Array elemInstance_rigid_constraint_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the url attribute. + * @return Returns a xsAnyURI reference of the url attribute. + */ + xsAnyURI &getUrl() { return attrUrl; } + /** + * Gets the url attribute. + * @return Returns a constant xsAnyURI reference of the url attribute. + */ + const xsAnyURI &getUrl() const { return attrUrl; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + /** + * Sets the url attribute. + * @param atUrl The new value for the url attribute. + */ + void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + + /** + * Gets the parent attribute. + * @return Returns a xsAnyURI reference of the parent attribute. + */ + xsAnyURI &getParent() { return attrParent; } + /** + * Gets the parent attribute. + * @return Returns a constant xsAnyURI reference of the parent attribute. + */ + const xsAnyURI &getParent() const { return attrParent; } + /** + * Sets the parent attribute. + * @param atParent The new value for the parent attribute. + */ + void setParent( const xsAnyURI &atParent ) { attrParent = atParent; _validAttributeArray[3] = true; } + /** + * Sets the parent attribute. + * @param atParent The new value for the parent attribute. + */ + void setParent( xsString atParent ) { attrParent = atParent; _validAttributeArray[3] = true; } + + /** + * Gets the instance_force_field element array. + * @return Returns a reference to the array of instance_force_field elements. + */ + domInstance_force_field_Array &getInstance_force_field_array() { return elemInstance_force_field_array; } + /** + * Gets the instance_force_field element array. + * @return Returns a constant reference to the array of instance_force_field elements. + */ + const domInstance_force_field_Array &getInstance_force_field_array() const { return elemInstance_force_field_array; } + /** + * Gets the instance_rigid_body element array. + * @return Returns a reference to the array of instance_rigid_body elements. + */ + domInstance_rigid_body_Array &getInstance_rigid_body_array() { return elemInstance_rigid_body_array; } + /** + * Gets the instance_rigid_body element array. + * @return Returns a constant reference to the array of instance_rigid_body elements. + */ + const domInstance_rigid_body_Array &getInstance_rigid_body_array() const { return elemInstance_rigid_body_array; } + /** + * Gets the instance_rigid_constraint element array. + * @return Returns a reference to the array of instance_rigid_constraint elements. + */ + domInstance_rigid_constraint_Array &getInstance_rigid_constraint_array() { return elemInstance_rigid_constraint_array; } + /** + * Gets the instance_rigid_constraint element array. + * @return Returns a constant reference to the array of instance_rigid_constraint elements. + */ + const domInstance_rigid_constraint_Array &getInstance_rigid_constraint_array() const { return elemInstance_rigid_constraint_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstance_physics_model(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), attrParent(dae, *this), elemInstance_force_field_array(), elemInstance_rigid_body_array(), elemInstance_rigid_constraint_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstance_physics_model() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_physics_model &operator=( const domInstance_physics_model &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_rigid_body.h b/include/1.4/dom/domInstance_rigid_body.h new file mode 100644 index 0000000..aab4c96 --- /dev/null +++ b/include/1.4/dom/domInstance_rigid_body.h @@ -0,0 +1,899 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_rigid_body_h__ +#define __domInstance_rigid_body_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * This element allows instancing a rigid_body within an instance_physics_model. + */ +class domInstance_rigid_body : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_RIGID_BODY; } + static daeInt ID() { return 703; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the instance_rigid_body information + * for the common profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 704; } + virtual daeInt typeID() const { return ID(); } + public: + class domAngular_velocity; + + typedef daeSmartRef domAngular_velocityRef; + typedef daeTArray domAngular_velocity_Array; + +/** + * Specifies the initial angular velocity of the rigid_body instance in degrees + * per second around each axis, in the form of an X-Y-Z Euler rotation. + */ + class domAngular_velocity : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANGULAR_VELOCITY; } + static daeInt ID() { return 705; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat3 value of the text data of this element. + */ + domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat3 reference of the _value array. + */ + domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat3 reference of the _value array. + */ + const domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domAngular_velocity(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domAngular_velocity() {} + /** + * Overloaded assignment operator + */ + virtual domAngular_velocity &operator=( const domAngular_velocity &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domVelocity; + + typedef daeSmartRef domVelocityRef; + typedef daeTArray domVelocity_Array; + +/** + * Specifies the initial linear velocity of the rigid_body instance. + */ + class domVelocity : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VELOCITY; } + static daeInt ID() { return 706; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat3 value of the text data of this element. + */ + domFloat3 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat3 reference of the _value array. + */ + domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat3 reference of the _value array. + */ + const domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat3 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domVelocity(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domVelocity() {} + /** + * Overloaded assignment operator + */ + virtual domVelocity &operator=( const domVelocity &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDynamic; + + typedef daeSmartRef domDynamicRef; + typedef daeTArray domDynamic_Array; + + class domDynamic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DYNAMIC; } + static daeInt ID() { return 707; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Value + /** + * The domBool value of the text data of this element. + */ + domBool _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return a domBool of the value. + */ + domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domDynamic(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domDynamic() {} + /** + * Overloaded assignment operator + */ + virtual domDynamic &operator=( const domDynamic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMass_frame; + + typedef daeSmartRef domMass_frameRef; + typedef daeTArray domMass_frame_Array; + + class domMass_frame : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MASS_FRAME; } + static daeInt ID() { return 708; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements + domTranslate_Array elemTranslate_array; + domRotate_Array elemRotate_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the translate element array. + * @return Returns a reference to the array of translate elements. + */ + domTranslate_Array &getTranslate_array() { return elemTranslate_array; } + /** + * Gets the translate element array. + * @return Returns a constant reference to the array of translate elements. + */ + const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } + /** + * Gets the rotate element array. + * @return Returns a reference to the array of rotate elements. + */ + domRotate_Array &getRotate_array() { return elemRotate_array; } + /** + * Gets the rotate element array. + * @return Returns a constant reference to the array of rotate elements. + */ + const domRotate_Array &getRotate_array() const { return elemRotate_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domMass_frame(DAE& dae) : daeElement(dae), elemTranslate_array(), elemRotate_array() {} + /** + * Destructor + */ + virtual ~domMass_frame() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domMass_frame &operator=( const domMass_frame &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domShape; + + typedef daeSmartRef domShapeRef; + typedef daeTArray domShape_Array; + + class domShape : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHAPE; } + static daeInt ID() { return 709; } + virtual daeInt typeID() const { return ID(); } + public: + class domHollow; + + typedef daeSmartRef domHollowRef; + typedef daeTArray domHollow_Array; + + class domHollow : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HOLLOW; } + static daeInt ID() { return 710; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Value + /** + * The domBool value of the text data of this element. + */ + domBool _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return a domBool of the value. + */ + domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHollow(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domHollow() {} + /** + * Overloaded assignment operator + */ + virtual domHollow &operator=( const domHollow &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements + domHollowRef elemHollow; + domTargetableFloatRef elemMass; + domTargetableFloatRef elemDensity; + domInstance_physics_materialRef elemInstance_physics_material; + domPhysics_materialRef elemPhysics_material; + domInstance_geometryRef elemInstance_geometry; + domPlaneRef elemPlane; + domBoxRef elemBox; + domSphereRef elemSphere; + domCylinderRef elemCylinder; + domTapered_cylinderRef elemTapered_cylinder; + domCapsuleRef elemCapsule; + domTapered_capsuleRef elemTapered_capsule; + domTranslate_Array elemTranslate_array; + domRotate_Array elemRotate_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the hollow element. + * @return a daeSmartRef to the hollow element. + */ + const domHollowRef getHollow() const { return elemHollow; } + /** + * Gets the mass element. + * @return a daeSmartRef to the mass element. + */ + const domTargetableFloatRef getMass() const { return elemMass; } + /** + * Gets the density element. + * @return a daeSmartRef to the density element. + */ + const domTargetableFloatRef getDensity() const { return elemDensity; } + /** + * Gets the instance_physics_material element. + * @return a daeSmartRef to the instance_physics_material element. + */ + const domInstance_physics_materialRef getInstance_physics_material() const { return elemInstance_physics_material; } + /** + * Gets the physics_material element. + * @return a daeSmartRef to the physics_material element. + */ + const domPhysics_materialRef getPhysics_material() const { return elemPhysics_material; } + /** + * Gets the instance_geometry element. + * @return a daeSmartRef to the instance_geometry element. + */ + const domInstance_geometryRef getInstance_geometry() const { return elemInstance_geometry; } + /** + * Gets the plane element. + * @return a daeSmartRef to the plane element. + */ + const domPlaneRef getPlane() const { return elemPlane; } + /** + * Gets the box element. + * @return a daeSmartRef to the box element. + */ + const domBoxRef getBox() const { return elemBox; } + /** + * Gets the sphere element. + * @return a daeSmartRef to the sphere element. + */ + const domSphereRef getSphere() const { return elemSphere; } + /** + * Gets the cylinder element. + * @return a daeSmartRef to the cylinder element. + */ + const domCylinderRef getCylinder() const { return elemCylinder; } + /** + * Gets the tapered_cylinder element. + * @return a daeSmartRef to the tapered_cylinder element. + */ + const domTapered_cylinderRef getTapered_cylinder() const { return elemTapered_cylinder; } + /** + * Gets the capsule element. + * @return a daeSmartRef to the capsule element. + */ + const domCapsuleRef getCapsule() const { return elemCapsule; } + /** + * Gets the tapered_capsule element. + * @return a daeSmartRef to the tapered_capsule element. + */ + const domTapered_capsuleRef getTapered_capsule() const { return elemTapered_capsule; } + /** + * Gets the translate element array. + * @return Returns a reference to the array of translate elements. + */ + domTranslate_Array &getTranslate_array() { return elemTranslate_array; } + /** + * Gets the translate element array. + * @return Returns a constant reference to the array of translate elements. + */ + const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } + /** + * Gets the rotate element array. + * @return Returns a reference to the array of rotate elements. + */ + domRotate_Array &getRotate_array() { return elemRotate_array; } + /** + * Gets the rotate element array. + * @return Returns a constant reference to the array of rotate elements. + */ + const domRotate_Array &getRotate_array() const { return elemRotate_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domShape(DAE& dae) : daeElement(dae), elemHollow(), elemMass(), elemDensity(), elemInstance_physics_material(), elemPhysics_material(), elemInstance_geometry(), elemPlane(), elemBox(), elemSphere(), elemCylinder(), elemTapered_cylinder(), elemCapsule(), elemTapered_capsule(), elemTranslate_array(), elemRotate_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domShape() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domShape &operator=( const domShape &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * Specifies the initial angular velocity of the rigid_body instance in degrees + * per second around each axis, in the form of an X-Y-Z Euler rotation. @see + * domAngular_velocity + */ + domAngular_velocityRef elemAngular_velocity; +/** + * Specifies the initial linear velocity of the rigid_body instance. @see + * domVelocity + */ + domVelocityRef elemVelocity; + domDynamicRef elemDynamic; + domTargetableFloatRef elemMass; + domMass_frameRef elemMass_frame; + domTargetableFloat3Ref elemInertia; + domInstance_physics_materialRef elemInstance_physics_material; + domPhysics_materialRef elemPhysics_material; + domShape_Array elemShape_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the angular_velocity element. + * @return a daeSmartRef to the angular_velocity element. + */ + const domAngular_velocityRef getAngular_velocity() const { return elemAngular_velocity; } + /** + * Gets the velocity element. + * @return a daeSmartRef to the velocity element. + */ + const domVelocityRef getVelocity() const { return elemVelocity; } + /** + * Gets the dynamic element. + * @return a daeSmartRef to the dynamic element. + */ + const domDynamicRef getDynamic() const { return elemDynamic; } + /** + * Gets the mass element. + * @return a daeSmartRef to the mass element. + */ + const domTargetableFloatRef getMass() const { return elemMass; } + /** + * Gets the mass_frame element. + * @return a daeSmartRef to the mass_frame element. + */ + const domMass_frameRef getMass_frame() const { return elemMass_frame; } + /** + * Gets the inertia element. + * @return a daeSmartRef to the inertia element. + */ + const domTargetableFloat3Ref getInertia() const { return elemInertia; } + /** + * Gets the instance_physics_material element. + * @return a daeSmartRef to the instance_physics_material element. + */ + const domInstance_physics_materialRef getInstance_physics_material() const { return elemInstance_physics_material; } + /** + * Gets the physics_material element. + * @return a daeSmartRef to the physics_material element. + */ + const domPhysics_materialRef getPhysics_material() const { return elemPhysics_material; } + /** + * Gets the shape element array. + * @return Returns a reference to the array of shape elements. + */ + domShape_Array &getShape_array() { return elemShape_array; } + /** + * Gets the shape element array. + * @return Returns a constant reference to the array of shape elements. + */ + const domShape_Array &getShape_array() const { return elemShape_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemAngular_velocity(), elemVelocity(), elemDynamic(), elemMass(), elemMass_frame(), elemInertia(), elemInstance_physics_material(), elemPhysics_material(), elemShape_array() {} + /** + * Destructor + */ + virtual ~domTechnique_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The body attribute indicates which rigid_body to instantiate. Required + * attribute. + */ + xsNCName attrBody; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The target attribute indicates which node is influenced by this rigid_body + * instance. Required attribute + */ + xsAnyURI attrTarget; + +protected: // Elements +/** + * The technique_common element specifies the instance_rigid_body information + * for the common profile which all COLLADA implementations need to support. + * @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the body attribute. + * @return Returns a xsNCName of the body attribute. + */ + xsNCName getBody() const { return attrBody; } + /** + * Sets the body attribute. + * @param atBody The new value for the body attribute. + */ + void setBody( xsNCName atBody ) { *(daeStringRef*)&attrBody = atBody; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + + /** + * Gets the target attribute. + * @return Returns a xsAnyURI reference of the target attribute. + */ + xsAnyURI &getTarget() { return attrTarget; } + /** + * Gets the target attribute. + * @return Returns a constant xsAnyURI reference of the target attribute. + */ + const xsAnyURI &getTarget() const { return attrTarget; } + /** + * Sets the target attribute. + * @param atTarget The new value for the target attribute. + */ + void setTarget( const xsAnyURI &atTarget ) { attrTarget = atTarget; _validAttributeArray[3] = true; } + /** + * Sets the target attribute. + * @param atTarget The new value for the target attribute. + */ + void setTarget( xsString atTarget ) { attrTarget = atTarget; _validAttributeArray[3] = true; } + + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstance_rigid_body(DAE& dae) : daeElement(dae), attrBody(), attrSid(), attrName(), attrTarget(dae, *this), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstance_rigid_body() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_rigid_body &operator=( const domInstance_rigid_body &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInstance_rigid_constraint.h b/include/1.4/dom/domInstance_rigid_constraint.h new file mode 100644 index 0000000..b04a538 --- /dev/null +++ b/include/1.4/dom/domInstance_rigid_constraint.h @@ -0,0 +1,129 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInstance_rigid_constraint_h__ +#define __domInstance_rigid_constraint_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * This element allows instancing a rigid_constraint within an instance_physics_model. + */ +class domInstance_rigid_constraint : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_RIGID_CONSTRAINT; } + static daeInt ID() { return 711; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The constraint attribute indicates which rigid_constraing to instantiate. + * Required attribute. + */ + xsNCName attrConstraint; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Element +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the constraint attribute. + * @return Returns a xsNCName of the constraint attribute. + */ + xsNCName getConstraint() const { return attrConstraint; } + /** + * Sets the constraint attribute. + * @param atConstraint The new value for the constraint attribute. + */ + void setConstraint( xsNCName atConstraint ) { *(daeStringRef*)&attrConstraint = atConstraint; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } + + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domInstance_rigid_constraint(DAE& dae) : daeElement(dae), attrConstraint(), attrSid(), attrName(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domInstance_rigid_constraint() {} + /** + * Overloaded assignment operator + */ + virtual domInstance_rigid_constraint &operator=( const domInstance_rigid_constraint &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domInt_array.h b/include/1.4/dom/domInt_array.h new file mode 100644 index 0000000..7292b7c --- /dev/null +++ b/include/1.4/dom/domInt_array.h @@ -0,0 +1,170 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domInt_array_h__ +#define __domInt_array_h__ + +#include +#include +#include + +class DAE; + +/** + * The int_array element declares the storage for a homogenous array of integer + * values. + */ +class domInt_array : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT_ARRAY; } + static daeInt ID() { return 608; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of values in the array. Required + * attribute. + */ + domUint attrCount; +/** + * The minInclusive attribute indicates the smallest integer value that can + * be contained in the array. The default value is –2147483648. Optional + * attribute. + */ + xsInteger attrMinInclusive; +/** + * The maxInclusive attribute indicates the largest integer value that can + * be contained in the array. The default value is 2147483647. Optional attribute. + */ + xsInteger attrMaxInclusive; + +protected: // Value + /** + * The domListOfInts value of the text data of this element. + */ + domListOfInts _value; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[2] = true; } + + /** + * Gets the minInclusive attribute. + * @return Returns a xsInteger of the minInclusive attribute. + */ + xsInteger getMinInclusive() const { return attrMinInclusive; } + /** + * Sets the minInclusive attribute. + * @param atMinInclusive The new value for the minInclusive attribute. + */ + void setMinInclusive( xsInteger atMinInclusive ) { attrMinInclusive = atMinInclusive; _validAttributeArray[3] = true; } + + /** + * Gets the maxInclusive attribute. + * @return Returns a xsInteger of the maxInclusive attribute. + */ + xsInteger getMaxInclusive() const { return attrMaxInclusive; } + /** + * Sets the maxInclusive attribute. + * @param atMaxInclusive The new value for the maxInclusive attribute. + */ + void setMaxInclusive( xsInteger atMaxInclusive ) { attrMaxInclusive = atMaxInclusive; _validAttributeArray[4] = true; } + + /** + * Gets the _value array. + * @return Returns a domListOfInts reference of the _value array. + */ + domListOfInts &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfInts reference of the _value array. + */ + const domListOfInts &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfInts &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domInt_array(DAE& dae) : daeElement(dae), attrId(), attrName(), attrCount(), attrMinInclusive(), attrMaxInclusive(), _value() {} + /** + * Destructor + */ + virtual ~domInt_array() {} + /** + * Overloaded assignment operator + */ + virtual domInt_array &operator=( const domInt_array &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_animation_clips.h b/include/1.4/dom/domLibrary_animation_clips.h new file mode 100644 index 0000000..1416c87 --- /dev/null +++ b/include/1.4/dom/domLibrary_animation_clips.h @@ -0,0 +1,142 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_animation_clips_h__ +#define __domLibrary_animation_clips_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_animation_clips element declares a module of animation_clip + * elements. + */ +class domLibrary_animation_clips : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_ANIMATION_CLIPS; } + static daeInt ID() { return 713; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_animation_clips element may contain an asset element. @see + * domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one animation_clip element. @see domAnimation_clip + */ + domAnimation_clip_Array elemAnimation_clip_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the animation_clip element array. + * @return Returns a reference to the array of animation_clip elements. + */ + domAnimation_clip_Array &getAnimation_clip_array() { return elemAnimation_clip_array; } + /** + * Gets the animation_clip element array. + * @return Returns a constant reference to the array of animation_clip elements. + */ + const domAnimation_clip_Array &getAnimation_clip_array() const { return elemAnimation_clip_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_animation_clips(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemAnimation_clip_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_animation_clips() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_animation_clips &operator=( const domLibrary_animation_clips &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_animations.h b/include/1.4/dom/domLibrary_animations.h new file mode 100644 index 0000000..b8527c8 --- /dev/null +++ b/include/1.4/dom/domLibrary_animations.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_animations_h__ +#define __domLibrary_animations_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_animations element declares a module of animation elements. + */ +class domLibrary_animations : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_ANIMATIONS; } + static daeInt ID() { return 712; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_animations element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one animation element. @see domAnimation + */ + domAnimation_Array elemAnimation_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the animation element array. + * @return Returns a reference to the array of animation elements. + */ + domAnimation_Array &getAnimation_array() { return elemAnimation_array; } + /** + * Gets the animation element array. + * @return Returns a constant reference to the array of animation elements. + */ + const domAnimation_Array &getAnimation_array() const { return elemAnimation_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_animations(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemAnimation_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_animations() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_animations &operator=( const domLibrary_animations &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_cameras.h b/include/1.4/dom/domLibrary_cameras.h new file mode 100644 index 0000000..fc8758e --- /dev/null +++ b/include/1.4/dom/domLibrary_cameras.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_cameras_h__ +#define __domLibrary_cameras_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_cameras element declares a module of camera elements. + */ +class domLibrary_cameras : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_CAMERAS; } + static daeInt ID() { return 714; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_cameras element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one camera element. @see domCamera + */ + domCamera_Array elemCamera_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the camera element array. + * @return Returns a reference to the array of camera elements. + */ + domCamera_Array &getCamera_array() { return elemCamera_array; } + /** + * Gets the camera element array. + * @return Returns a constant reference to the array of camera elements. + */ + const domCamera_Array &getCamera_array() const { return elemCamera_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_cameras(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemCamera_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_cameras() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_cameras &operator=( const domLibrary_cameras &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_controllers.h b/include/1.4/dom/domLibrary_controllers.h new file mode 100644 index 0000000..56950e5 --- /dev/null +++ b/include/1.4/dom/domLibrary_controllers.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_controllers_h__ +#define __domLibrary_controllers_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_controllers element declares a module of controller elements. + */ +class domLibrary_controllers : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_CONTROLLERS; } + static daeInt ID() { return 715; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_controllers element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one controller element. @see domController + */ + domController_Array elemController_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the controller element array. + * @return Returns a reference to the array of controller elements. + */ + domController_Array &getController_array() { return elemController_array; } + /** + * Gets the controller element array. + * @return Returns a constant reference to the array of controller elements. + */ + const domController_Array &getController_array() const { return elemController_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_controllers(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemController_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_controllers() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_controllers &operator=( const domLibrary_controllers &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_effects.h b/include/1.4/dom/domLibrary_effects.h new file mode 100644 index 0000000..5bb717a --- /dev/null +++ b/include/1.4/dom/domLibrary_effects.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_effects_h__ +#define __domLibrary_effects_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_effects element declares a module of effect elements. + */ +class domLibrary_effects : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_EFFECTS; } + static daeInt ID() { return 717; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_effects element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one effect element. @see domEffect + */ + domEffect_Array elemEffect_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the effect element array. + * @return Returns a reference to the array of effect elements. + */ + domEffect_Array &getEffect_array() { return elemEffect_array; } + /** + * Gets the effect element array. + * @return Returns a constant reference to the array of effect elements. + */ + const domEffect_Array &getEffect_array() const { return elemEffect_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_effects(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemEffect_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_effects() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_effects &operator=( const domLibrary_effects &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_force_fields.h b/include/1.4/dom/domLibrary_force_fields.h new file mode 100644 index 0000000..9155028 --- /dev/null +++ b/include/1.4/dom/domLibrary_force_fields.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_force_fields_h__ +#define __domLibrary_force_fields_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_force_fields element declares a module of force_field elements. + */ +class domLibrary_force_fields : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_FORCE_FIELDS; } + static daeInt ID() { return 718; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_force_fields element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one force_field element. @see domForce_field + */ + domForce_field_Array elemForce_field_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the force_field element array. + * @return Returns a reference to the array of force_field elements. + */ + domForce_field_Array &getForce_field_array() { return elemForce_field_array; } + /** + * Gets the force_field element array. + * @return Returns a constant reference to the array of force_field elements. + */ + const domForce_field_Array &getForce_field_array() const { return elemForce_field_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_force_fields(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemForce_field_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_force_fields() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_force_fields &operator=( const domLibrary_force_fields &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_geometries.h b/include/1.4/dom/domLibrary_geometries.h new file mode 100644 index 0000000..1694177 --- /dev/null +++ b/include/1.4/dom/domLibrary_geometries.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_geometries_h__ +#define __domLibrary_geometries_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_geometries element declares a module of geometry elements. + */ +class domLibrary_geometries : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_GEOMETRIES; } + static daeInt ID() { return 716; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_geometries element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one geometry element. @see domGeometry + */ + domGeometry_Array elemGeometry_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the geometry element array. + * @return Returns a reference to the array of geometry elements. + */ + domGeometry_Array &getGeometry_array() { return elemGeometry_array; } + /** + * Gets the geometry element array. + * @return Returns a constant reference to the array of geometry elements. + */ + const domGeometry_Array &getGeometry_array() const { return elemGeometry_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_geometries(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemGeometry_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_geometries() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_geometries &operator=( const domLibrary_geometries &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_images.h b/include/1.4/dom/domLibrary_images.h new file mode 100644 index 0000000..07788f4 --- /dev/null +++ b/include/1.4/dom/domLibrary_images.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_images_h__ +#define __domLibrary_images_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_images element declares a module of image elements. + */ +class domLibrary_images : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_IMAGES; } + static daeInt ID() { return 719; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_images element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one image element. @see domImage + */ + domImage_Array elemImage_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_images(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemImage_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_images() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_images &operator=( const domLibrary_images &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_lights.h b/include/1.4/dom/domLibrary_lights.h new file mode 100644 index 0000000..e63f4ec --- /dev/null +++ b/include/1.4/dom/domLibrary_lights.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_lights_h__ +#define __domLibrary_lights_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_lights element declares a module of light elements. + */ +class domLibrary_lights : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_LIGHTS; } + static daeInt ID() { return 720; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_lights element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one light element. @see domLight + */ + domLight_Array elemLight_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the light element array. + * @return Returns a reference to the array of light elements. + */ + domLight_Array &getLight_array() { return elemLight_array; } + /** + * Gets the light element array. + * @return Returns a constant reference to the array of light elements. + */ + const domLight_Array &getLight_array() const { return elemLight_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_lights(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemLight_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_lights() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_lights &operator=( const domLibrary_lights &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_materials.h b/include/1.4/dom/domLibrary_materials.h new file mode 100644 index 0000000..c7c6c1c --- /dev/null +++ b/include/1.4/dom/domLibrary_materials.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_materials_h__ +#define __domLibrary_materials_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_materials element declares a module of material elements. + */ +class domLibrary_materials : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_MATERIALS; } + static daeInt ID() { return 721; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_materials element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one material element. @see domMaterial + */ + domMaterial_Array elemMaterial_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the material element array. + * @return Returns a reference to the array of material elements. + */ + domMaterial_Array &getMaterial_array() { return elemMaterial_array; } + /** + * Gets the material element array. + * @return Returns a constant reference to the array of material elements. + */ + const domMaterial_Array &getMaterial_array() const { return elemMaterial_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_materials(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemMaterial_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_materials() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_materials &operator=( const domLibrary_materials &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_nodes.h b/include/1.4/dom/domLibrary_nodes.h new file mode 100644 index 0000000..b4740d6 --- /dev/null +++ b/include/1.4/dom/domLibrary_nodes.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_nodes_h__ +#define __domLibrary_nodes_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_nodes element declares a module of node elements. + */ +class domLibrary_nodes : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_NODES; } + static daeInt ID() { return 722; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_nodes element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one node element. @see domNode + */ + domNode_Array elemNode_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the node element array. + * @return Returns a reference to the array of node elements. + */ + domNode_Array &getNode_array() { return elemNode_array; } + /** + * Gets the node element array. + * @return Returns a constant reference to the array of node elements. + */ + const domNode_Array &getNode_array() const { return elemNode_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_nodes(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemNode_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_nodes() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_nodes &operator=( const domLibrary_nodes &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_physics_materials.h b/include/1.4/dom/domLibrary_physics_materials.h new file mode 100644 index 0000000..31a9942 --- /dev/null +++ b/include/1.4/dom/domLibrary_physics_materials.h @@ -0,0 +1,142 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_physics_materials_h__ +#define __domLibrary_physics_materials_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_physics_materials element declares a module of physics_material + * elements. + */ +class domLibrary_physics_materials : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_PHYSICS_MATERIALS; } + static daeInt ID() { return 723; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_physics_materials element may contain an asset element. @see + * domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one physics_material element. @see domPhysics_material + */ + domPhysics_material_Array elemPhysics_material_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the physics_material element array. + * @return Returns a reference to the array of physics_material elements. + */ + domPhysics_material_Array &getPhysics_material_array() { return elemPhysics_material_array; } + /** + * Gets the physics_material element array. + * @return Returns a constant reference to the array of physics_material elements. + */ + const domPhysics_material_Array &getPhysics_material_array() const { return elemPhysics_material_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_physics_materials(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemPhysics_material_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_physics_materials() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_physics_materials &operator=( const domLibrary_physics_materials &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_physics_models.h b/include/1.4/dom/domLibrary_physics_models.h new file mode 100644 index 0000000..56f5384 --- /dev/null +++ b/include/1.4/dom/domLibrary_physics_models.h @@ -0,0 +1,141 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_physics_models_h__ +#define __domLibrary_physics_models_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_physics_models element declares a module of physics_model elements. + */ +class domLibrary_physics_models : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_PHYSICS_MODELS; } + static daeInt ID() { return 724; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_physics_models element may contain an asset element. @see + * domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one physics_model element. @see domPhysics_model + */ + domPhysics_model_Array elemPhysics_model_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the physics_model element array. + * @return Returns a reference to the array of physics_model elements. + */ + domPhysics_model_Array &getPhysics_model_array() { return elemPhysics_model_array; } + /** + * Gets the physics_model element array. + * @return Returns a constant reference to the array of physics_model elements. + */ + const domPhysics_model_Array &getPhysics_model_array() const { return elemPhysics_model_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_physics_models(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemPhysics_model_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_physics_models() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_physics_models &operator=( const domLibrary_physics_models &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_physics_scenes.h b/include/1.4/dom/domLibrary_physics_scenes.h new file mode 100644 index 0000000..d48692f --- /dev/null +++ b/include/1.4/dom/domLibrary_physics_scenes.h @@ -0,0 +1,141 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_physics_scenes_h__ +#define __domLibrary_physics_scenes_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_physics_scenes element declares a module of physics_scene elements. + */ +class domLibrary_physics_scenes : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_PHYSICS_SCENES; } + static daeInt ID() { return 725; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_physics_scenes element may contain an asset element. @see + * domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one physics_scene element. @see domPhysics_scene + */ + domPhysics_scene_Array elemPhysics_scene_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the physics_scene element array. + * @return Returns a reference to the array of physics_scene elements. + */ + domPhysics_scene_Array &getPhysics_scene_array() { return elemPhysics_scene_array; } + /** + * Gets the physics_scene element array. + * @return Returns a constant reference to the array of physics_scene elements. + */ + const domPhysics_scene_Array &getPhysics_scene_array() const { return elemPhysics_scene_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_physics_scenes(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemPhysics_scene_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_physics_scenes() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_physics_scenes &operator=( const domLibrary_physics_scenes &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLibrary_visual_scenes.h b/include/1.4/dom/domLibrary_visual_scenes.h new file mode 100644 index 0000000..7cf48d6 --- /dev/null +++ b/include/1.4/dom/domLibrary_visual_scenes.h @@ -0,0 +1,141 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLibrary_visual_scenes_h__ +#define __domLibrary_visual_scenes_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The library_visual_scenes element declares a module of visual_scene elements. + */ +class domLibrary_visual_scenes : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIBRARY_VISUAL_SCENES; } + static daeInt ID() { return 726; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The library_visual_scenes element may contain an asset element. @see + * domAsset + */ + domAssetRef elemAsset; +/** + * There must be at least one visual_scene element. @see domVisual_scene + */ + domVisual_scene_Array elemVisual_scene_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the visual_scene element array. + * @return Returns a reference to the array of visual_scene elements. + */ + domVisual_scene_Array &getVisual_scene_array() { return elemVisual_scene_array; } + /** + * Gets the visual_scene element array. + * @return Returns a constant reference to the array of visual_scene elements. + */ + const domVisual_scene_Array &getVisual_scene_array() const { return elemVisual_scene_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLibrary_visual_scenes(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemVisual_scene_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLibrary_visual_scenes() {} + /** + * Overloaded assignment operator + */ + virtual domLibrary_visual_scenes &operator=( const domLibrary_visual_scenes &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLight.h b/include/1.4/dom/domLight.h new file mode 100644 index 0000000..41d25cd --- /dev/null +++ b/include/1.4/dom/domLight.h @@ -0,0 +1,620 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLight_h__ +#define __domLight_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +class DAE; + +/** + * The light element declares a light source that illuminates the scene. Light + * sources have many different properties and radiate light in many different + * patterns and frequencies. + */ +class domLight : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIGHT; } + static daeInt ID() { return 638; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the light information for the common + * profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 639; } + virtual daeInt typeID() const { return ID(); } + public: + class domAmbient; + + typedef daeSmartRef domAmbientRef; + typedef daeTArray domAmbient_Array; + +/** + * The ambient element declares the parameters required to describe an ambient + * light source. An ambient light is one that lights everything evenly, + * regardless of location or orientation. + */ + class domAmbient : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::AMBIENT; } + static daeInt ID() { return 640; } + virtual daeInt typeID() const { return ID(); } + + protected: // Element +/** + * The color element contains three floating point numbers specifying the + * color of the light. The color element must occur exactly once. @see domColor + */ + domTargetableFloat3Ref elemColor; + + public: //Accessors and Mutators + /** + * Gets the color element. + * @return a daeSmartRef to the color element. + */ + const domTargetableFloat3Ref getColor() const { return elemColor; } + protected: + /** + * Constructor + */ + domAmbient(DAE& dae) : daeElement(dae), elemColor() {} + /** + * Destructor + */ + virtual ~domAmbient() {} + /** + * Overloaded assignment operator + */ + virtual domAmbient &operator=( const domAmbient &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDirectional; + + typedef daeSmartRef domDirectionalRef; + typedef daeTArray domDirectional_Array; + +/** + * The directional element declares the parameters required to describe a + * directional light source. A directional light is one that lights everything + * from the same direction, regardless of location. The light’s default + * direction vector in local coordinates is [0,0,-1], pointing down the -Z + * axis. The actual direction of the light is defined by the transform of + * the node where the light is instantiated. + */ + class domDirectional : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DIRECTIONAL; } + static daeInt ID() { return 641; } + virtual daeInt typeID() const { return ID(); } + + protected: // Element +/** + * The color element contains three floating point numbers specifying the + * color of the light. The color element must occur exactly once. @see domColor + */ + domTargetableFloat3Ref elemColor; + + public: //Accessors and Mutators + /** + * Gets the color element. + * @return a daeSmartRef to the color element. + */ + const domTargetableFloat3Ref getColor() const { return elemColor; } + protected: + /** + * Constructor + */ + domDirectional(DAE& dae) : daeElement(dae), elemColor() {} + /** + * Destructor + */ + virtual ~domDirectional() {} + /** + * Overloaded assignment operator + */ + virtual domDirectional &operator=( const domDirectional &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPoint; + + typedef daeSmartRef domPointRef; + typedef daeTArray domPoint_Array; + +/** + * The point element declares the parameters required to describe a point + * light source. A point light source radiates light in all directions from + * a known location in space. The intensity of a point light source is attenuated + * as the distance to the light source increases. The position of the light + * is defined by the transform of the node in which it is instantiated. + */ + class domPoint : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POINT; } + static daeInt ID() { return 642; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The color element contains three floating point numbers specifying the + * color of the light. The color element must occur exactly once. @see domColor + */ + domTargetableFloat3Ref elemColor; +/** + * The constant_attenuation is used to calculate the total attenuation of + * this light given a distance. The equation used is A = constant_attenuation + * + Dist*linear_attenuation + Dist^2*quadratic_attenuation. @see domConstant_attenuation + */ + domTargetableFloatRef elemConstant_attenuation; +/** + * The linear_attenuation is used to calculate the total attenuation of this + * light given a distance. The equation used is A = constant_attenuation + * + Dist*linear_attenuation + Dist^2*quadratic_attenuation. @see domLinear_attenuation + */ + domTargetableFloatRef elemLinear_attenuation; +/** + * The quadratic_attenuation is used to calculate the total attenuation of + * this light given a distance. The equation used is A = constant_attenuation + * + Dist*linear_attenuation + Dist^2*quadratic_attenuation. @see domQuadratic_attenuation + */ + domTargetableFloatRef elemQuadratic_attenuation; + + public: //Accessors and Mutators + /** + * Gets the color element. + * @return a daeSmartRef to the color element. + */ + const domTargetableFloat3Ref getColor() const { return elemColor; } + /** + * Gets the constant_attenuation element. + * @return a daeSmartRef to the constant_attenuation element. + */ + const domTargetableFloatRef getConstant_attenuation() const { return elemConstant_attenuation; } + /** + * Gets the linear_attenuation element. + * @return a daeSmartRef to the linear_attenuation element. + */ + const domTargetableFloatRef getLinear_attenuation() const { return elemLinear_attenuation; } + /** + * Gets the quadratic_attenuation element. + * @return a daeSmartRef to the quadratic_attenuation element. + */ + const domTargetableFloatRef getQuadratic_attenuation() const { return elemQuadratic_attenuation; } + protected: + /** + * Constructor + */ + domPoint(DAE& dae) : daeElement(dae), elemColor(), elemConstant_attenuation(), elemLinear_attenuation(), elemQuadratic_attenuation() {} + /** + * Destructor + */ + virtual ~domPoint() {} + /** + * Overloaded assignment operator + */ + virtual domPoint &operator=( const domPoint &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSpot; + + typedef daeSmartRef domSpotRef; + typedef daeTArray domSpot_Array; + +/** + * The spot element declares the parameters required to describe a spot light + * source. A spot light source radiates light in one direction from a known + * location in space. The light radiates from the spot light source in a + * cone shape. The intensity of the light is attenuated as the radiation + * angle increases away from the direction of the light source. The intensity + * of a spot light source is also attenuated as the distance to the light + * source increases. The position of the light is defined by the transform + * of the node in which it is instantiated. The light’s default direction + * vector in local coordinates is [0,0,-1], pointing down the -Z axis. The + * actual direction of the light is defined by the transform of the node + * where the light is instantiated. + */ + class domSpot : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SPOT; } + static daeInt ID() { return 643; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The color element contains three floating point numbers specifying the + * color of the light. The color element must occur exactly once. @see domColor + */ + domTargetableFloat3Ref elemColor; +/** + * The constant_attenuation is used to calculate the total attenuation of + * this light given a distance. The equation used is A = constant_attenuation + * + Dist*linear_attenuation + Dist^2*quadratic_attenuation. @see domConstant_attenuation + */ + domTargetableFloatRef elemConstant_attenuation; +/** + * The linear_attenuation is used to calculate the total attenuation of this + * light given a distance. The equation used is A = constant_attenuation + * + Dist*linear_attenuation + Dist^2*quadratic_attenuation. @see domLinear_attenuation + */ + domTargetableFloatRef elemLinear_attenuation; +/** + * The quadratic_attenuation is used to calculate the total attenuation of + * this light given a distance. The equation used is A = constant_attenuation + * + Dist*linear_attenuation + Dist^2*quadratic_attenuation. @see domQuadratic_attenuation + */ + domTargetableFloatRef elemQuadratic_attenuation; +/** + * The falloff_angle is used to specify the amount of attenuation based on + * the direction of the light. @see domFalloff_angle + */ + domTargetableFloatRef elemFalloff_angle; +/** + * The falloff_exponent is used to specify the amount of attenuation based + * on the direction of the light. @see domFalloff_exponent + */ + domTargetableFloatRef elemFalloff_exponent; + + public: //Accessors and Mutators + /** + * Gets the color element. + * @return a daeSmartRef to the color element. + */ + const domTargetableFloat3Ref getColor() const { return elemColor; } + /** + * Gets the constant_attenuation element. + * @return a daeSmartRef to the constant_attenuation element. + */ + const domTargetableFloatRef getConstant_attenuation() const { return elemConstant_attenuation; } + /** + * Gets the linear_attenuation element. + * @return a daeSmartRef to the linear_attenuation element. + */ + const domTargetableFloatRef getLinear_attenuation() const { return elemLinear_attenuation; } + /** + * Gets the quadratic_attenuation element. + * @return a daeSmartRef to the quadratic_attenuation element. + */ + const domTargetableFloatRef getQuadratic_attenuation() const { return elemQuadratic_attenuation; } + /** + * Gets the falloff_angle element. + * @return a daeSmartRef to the falloff_angle element. + */ + const domTargetableFloatRef getFalloff_angle() const { return elemFalloff_angle; } + /** + * Gets the falloff_exponent element. + * @return a daeSmartRef to the falloff_exponent element. + */ + const domTargetableFloatRef getFalloff_exponent() const { return elemFalloff_exponent; } + protected: + /** + * Constructor + */ + domSpot(DAE& dae) : daeElement(dae), elemColor(), elemConstant_attenuation(), elemLinear_attenuation(), elemQuadratic_attenuation(), elemFalloff_angle(), elemFalloff_exponent() {} + /** + * Destructor + */ + virtual ~domSpot() {} + /** + * Overloaded assignment operator + */ + virtual domSpot &operator=( const domSpot &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The ambient element declares the parameters required to describe an ambient + * light source. An ambient light is one that lights everything evenly, + * regardless of location or orientation. @see domAmbient + */ + domAmbientRef elemAmbient; +/** + * The directional element declares the parameters required to describe a + * directional light source. A directional light is one that lights everything + * from the same direction, regardless of location. The light’s default + * direction vector in local coordinates is [0,0,-1], pointing down the -Z + * axis. The actual direction of the light is defined by the transform of + * the node where the light is instantiated. @see domDirectional + */ + domDirectionalRef elemDirectional; +/** + * The point element declares the parameters required to describe a point + * light source. A point light source radiates light in all directions from + * a known location in space. The intensity of a point light source is attenuated + * as the distance to the light source increases. The position of the light + * is defined by the transform of the node in which it is instantiated. @see + * domPoint + */ + domPointRef elemPoint; +/** + * The spot element declares the parameters required to describe a spot light + * source. A spot light source radiates light in one direction from a known + * location in space. The light radiates from the spot light source in a + * cone shape. The intensity of the light is attenuated as the radiation + * angle increases away from the direction of the light source. The intensity + * of a spot light source is also attenuated as the distance to the light + * source increases. The position of the light is defined by the transform + * of the node in which it is instantiated. The light’s default direction + * vector in local coordinates is [0,0,-1], pointing down the -Z axis. The + * actual direction of the light is defined by the transform of the node + * where the light is instantiated. @see domSpot + */ + domSpotRef elemSpot; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the ambient element. + * @return a daeSmartRef to the ambient element. + */ + const domAmbientRef getAmbient() const { return elemAmbient; } + /** + * Gets the directional element. + * @return a daeSmartRef to the directional element. + */ + const domDirectionalRef getDirectional() const { return elemDirectional; } + /** + * Gets the point element. + * @return a daeSmartRef to the point element. + */ + const domPointRef getPoint() const { return elemPoint; } + /** + * Gets the spot element. + * @return a daeSmartRef to the spot element. + */ + const domSpotRef getSpot() const { return elemSpot; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemAmbient(), elemDirectional(), elemPoint(), elemSpot() {} + /** + * Destructor + */ + virtual ~domTechnique_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The light element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The technique_common element specifies the light information for the common + * profile which all COLLADA implementations need to support. @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLight(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLight() {} + /** + * Overloaded assignment operator + */ + virtual domLight &operator=( const domLight &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLines.h b/include/1.4/dom/domLines.h new file mode 100644 index 0000000..3ebc663 --- /dev/null +++ b/include/1.4/dom/domLines.h @@ -0,0 +1,160 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLines_h__ +#define __domLines_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The lines element provides the information needed to bind vertex attributes + * together and then organize those vertices into individual lines. Each + * line described by the mesh has two vertices. The first line is formed + * from first and second vertices. The second line is formed from the third + * and fourth vertices and so on. + */ +class domLines : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINES; } + static daeInt ID() { return 618; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of line primitives. Required + * attribute. + */ + domUint attrCount; +/** + * The material attribute declares a symbol for a material. This symbol is + * bound to a material at the time of instantiation. If the material attribute + * is not specified then the lighting and shading results are application + * defined. Optional attribute. + */ + xsNCName attrMaterial; + +protected: // Elements +/** + * The input element may occur any number of times. This input is a local + * input with the offset and set attributes. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The p element may occur once. @see domP + */ + domPRef elemP; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } + + /** + * Gets the material attribute. + * @return Returns a xsNCName of the material attribute. + */ + xsNCName getMaterial() const { return attrMaterial; } + /** + * Sets the material attribute. + * @param atMaterial The new value for the material attribute. + */ + void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the p element. + * @return a daeSmartRef to the p element. + */ + const domPRef getP() const { return elemP; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLines(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemP(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLines() {} + /** + * Overloaded assignment operator + */ + virtual domLines &operator=( const domLines &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLinestrips.h b/include/1.4/dom/domLinestrips.h new file mode 100644 index 0000000..de20439 --- /dev/null +++ b/include/1.4/dom/domLinestrips.h @@ -0,0 +1,165 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLinestrips_h__ +#define __domLinestrips_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The linestrips element provides the information needed to bind vertex attributes + * together and then organize those vertices into connected line-strips. + * Each line-strip described by the mesh has an arbitrary number of vertices. + * Each line segment within the line-strip is formed from the current vertex + * and the preceding vertex. + */ +class domLinestrips : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINESTRIPS; } + static daeInt ID() { return 619; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of linestrip primitives. Required + * attribute. + */ + domUint attrCount; +/** + * The material attribute declares a symbol for a material. This symbol is + * bound to a material at the time of instantiation. If the material attribute + * is not specified then the lighting and shading results are application + * defined. Optional attribute. + */ + xsNCName attrMaterial; + +protected: // Elements +/** + * The input element may occur any number of times. This input is a local + * input with the offset and set attributes. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The linestrips element may have any number of p elements. @see domP + */ + domP_Array elemP_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } + + /** + * Gets the material attribute. + * @return Returns a xsNCName of the material attribute. + */ + xsNCName getMaterial() const { return attrMaterial; } + /** + * Sets the material attribute. + * @param atMaterial The new value for the material attribute. + */ + void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the p element array. + * @return Returns a reference to the array of p elements. + */ + domP_Array &getP_array() { return elemP_array; } + /** + * Gets the p element array. + * @return Returns a constant reference to the array of p elements. + */ + const domP_Array &getP_array() const { return elemP_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domLinestrips(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemP_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domLinestrips() {} + /** + * Overloaded assignment operator + */ + virtual domLinestrips &operator=( const domLinestrips &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domLookat.h b/include/1.4/dom/domLookat.h new file mode 100644 index 0000000..c0cbcee --- /dev/null +++ b/include/1.4/dom/domLookat.h @@ -0,0 +1,106 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domLookat_h__ +#define __domLookat_h__ + +#include +#include +#include + +class DAE; + +/** + * The lookat element contains a position and orientation transformation suitable + * for aiming a camera. The lookat element contains three mathematical vectors + * within it that describe: 1.The position of the object; 2.The position + * of the interest point; 3.The direction that points up. + */ +class domLookat : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LOOKAT; } + static daeInt ID() { return 629; } + virtual daeInt typeID() const { return ID(); } +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Value + /** + * The domFloat3x3 value of the text data of this element. + */ + domFloat3x3 _value; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the _value array. + * @return Returns a domFloat3x3 reference of the _value array. + */ + domFloat3x3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat3x3 reference of the _value array. + */ + const domFloat3x3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat3x3 &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domLookat(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domLookat() {} + /** + * Overloaded assignment operator + */ + virtual domLookat &operator=( const domLookat &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domMaterial.h b/include/1.4/dom/domMaterial.h new file mode 100644 index 0000000..206e441 --- /dev/null +++ b/include/1.4/dom/domMaterial.h @@ -0,0 +1,135 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domMaterial_h__ +#define __domMaterial_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * Materials describe the visual appearance of a geometric object. + */ +class domMaterial : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATERIAL; } + static daeInt ID() { return 644; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The material element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The material must instance an effect. @see domInstance_effect + */ + domInstance_effectRef elemInstance_effect; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the instance_effect element. + * @return a daeSmartRef to the instance_effect element. + */ + const domInstance_effectRef getInstance_effect() const { return elemInstance_effect; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domMaterial(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemInstance_effect(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domMaterial() {} + /** + * Overloaded assignment operator + */ + virtual domMaterial &operator=( const domMaterial &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domMatrix.h b/include/1.4/dom/domMatrix.h new file mode 100644 index 0000000..1c682ed --- /dev/null +++ b/include/1.4/dom/domMatrix.h @@ -0,0 +1,105 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domMatrix_h__ +#define __domMatrix_h__ + +#include +#include +#include + +class DAE; + +/** + * Matrix transformations embody mathematical changes to points within a coordinate + * systems or the coordinate system itself. The matrix element contains a + * 4-by-4 matrix of floating-point values. + */ +class domMatrix : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MATRIX; } + static daeInt ID() { return 630; } + virtual daeInt typeID() const { return ID(); } +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Value + /** + * The domFloat4x4 value of the text data of this element. + */ + domFloat4x4 _value; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the _value array. + * @return Returns a domFloat4x4 reference of the _value array. + */ + domFloat4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat4x4 reference of the _value array. + */ + const domFloat4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat4x4 &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domMatrix(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domMatrix() {} + /** + * Overloaded assignment operator + */ + virtual domMatrix &operator=( const domMatrix &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domMesh.h b/include/1.4/dom/domMesh.h new file mode 100644 index 0000000..19722da --- /dev/null +++ b/include/1.4/dom/domMesh.h @@ -0,0 +1,237 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domMesh_h__ +#define __domMesh_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * The mesh element contains vertex and primitive information sufficient to + * describe basic geometric meshes. + */ +class domMesh : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MESH; } + static daeInt ID() { return 614; } + virtual daeInt typeID() const { return ID(); } + +protected: // Elements +/** + * The mesh element must contain one or more source elements. @see domSource + */ + domSource_Array elemSource_array; +/** + * The mesh element must contain one vertices element. @see domVertices + */ + domVerticesRef elemVertices; +/** + * The mesh element may contain any number of lines elements. @see domLines + */ + domLines_Array elemLines_array; +/** + * The mesh element may contain any number of linestrips elements. @see + * domLinestrips + */ + domLinestrips_Array elemLinestrips_array; +/** + * The mesh element may contain any number of polygons elements. @see domPolygons + */ + domPolygons_Array elemPolygons_array; +/** + * The mesh element may contain any number of polylist elements. @see domPolylist + */ + domPolylist_Array elemPolylist_array; +/** + * The mesh element may contain any number of triangles elements. @see domTriangles + */ + domTriangles_Array elemTriangles_array; +/** + * The mesh element may contain any number of trifans elements. @see domTrifans + */ + domTrifans_Array elemTrifans_array; +/** + * The mesh element may contain any number of tristrips elements. @see domTristrips + */ + domTristrips_Array elemTristrips_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the source element array. + * @return Returns a reference to the array of source elements. + */ + domSource_Array &getSource_array() { return elemSource_array; } + /** + * Gets the source element array. + * @return Returns a constant reference to the array of source elements. + */ + const domSource_Array &getSource_array() const { return elemSource_array; } + /** + * Gets the vertices element. + * @return a daeSmartRef to the vertices element. + */ + const domVerticesRef getVertices() const { return elemVertices; } + /** + * Gets the lines element array. + * @return Returns a reference to the array of lines elements. + */ + domLines_Array &getLines_array() { return elemLines_array; } + /** + * Gets the lines element array. + * @return Returns a constant reference to the array of lines elements. + */ + const domLines_Array &getLines_array() const { return elemLines_array; } + /** + * Gets the linestrips element array. + * @return Returns a reference to the array of linestrips elements. + */ + domLinestrips_Array &getLinestrips_array() { return elemLinestrips_array; } + /** + * Gets the linestrips element array. + * @return Returns a constant reference to the array of linestrips elements. + */ + const domLinestrips_Array &getLinestrips_array() const { return elemLinestrips_array; } + /** + * Gets the polygons element array. + * @return Returns a reference to the array of polygons elements. + */ + domPolygons_Array &getPolygons_array() { return elemPolygons_array; } + /** + * Gets the polygons element array. + * @return Returns a constant reference to the array of polygons elements. + */ + const domPolygons_Array &getPolygons_array() const { return elemPolygons_array; } + /** + * Gets the polylist element array. + * @return Returns a reference to the array of polylist elements. + */ + domPolylist_Array &getPolylist_array() { return elemPolylist_array; } + /** + * Gets the polylist element array. + * @return Returns a constant reference to the array of polylist elements. + */ + const domPolylist_Array &getPolylist_array() const { return elemPolylist_array; } + /** + * Gets the triangles element array. + * @return Returns a reference to the array of triangles elements. + */ + domTriangles_Array &getTriangles_array() { return elemTriangles_array; } + /** + * Gets the triangles element array. + * @return Returns a constant reference to the array of triangles elements. + */ + const domTriangles_Array &getTriangles_array() const { return elemTriangles_array; } + /** + * Gets the trifans element array. + * @return Returns a reference to the array of trifans elements. + */ + domTrifans_Array &getTrifans_array() { return elemTrifans_array; } + /** + * Gets the trifans element array. + * @return Returns a constant reference to the array of trifans elements. + */ + const domTrifans_Array &getTrifans_array() const { return elemTrifans_array; } + /** + * Gets the tristrips element array. + * @return Returns a reference to the array of tristrips elements. + */ + domTristrips_Array &getTristrips_array() { return elemTristrips_array; } + /** + * Gets the tristrips element array. + * @return Returns a constant reference to the array of tristrips elements. + */ + const domTristrips_Array &getTristrips_array() const { return elemTristrips_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domMesh(DAE& dae) : daeElement(dae), elemSource_array(), elemVertices(), elemLines_array(), elemLinestrips_array(), elemPolygons_array(), elemPolylist_array(), elemTriangles_array(), elemTrifans_array(), elemTristrips_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domMesh() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domMesh &operator=( const domMesh &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domMorph.h b/include/1.4/dom/domMorph.h new file mode 100644 index 0000000..3f8c3f1 --- /dev/null +++ b/include/1.4/dom/domMorph.h @@ -0,0 +1,229 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domMorph_h__ +#define __domMorph_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The morph element describes the data required to blend between sets of + * static meshes. Each possible mesh that can be blended (a morph target) + * must be specified. + */ +class domMorph : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MORPH; } + static daeInt ID() { return 662; } + virtual daeInt typeID() const { return ID(); } +public: + class domTargets; + + typedef daeSmartRef domTargetsRef; + typedef daeTArray domTargets_Array; + +/** + * The targets element declares the morph targets, their weights and any user + * defined attributes associated with them. + */ + class domTargets : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TARGETS; } + static daeInt ID() { return 663; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The input element must occur at least twice. These inputs are local inputs. + * @see domInput + */ + domInputLocal_Array elemInput_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + + public: //Accessors and Mutators + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocal_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocal_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + protected: + /** + * Constructor + */ + domTargets(DAE& dae) : daeElement(dae), elemInput_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTargets() {} + /** + * Overloaded assignment operator + */ + virtual domTargets &operator=( const domTargets &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The method attribute specifies the which blending technique to use. The + * accepted values are NORMALIZED, and RELATIVE. The default value if not + * specified is NORMALIZED. Optional attribute. + */ + domMorphMethodType attrMethod; +/** + * The source attribute indicates the base mesh. Required attribute. + */ + xsAnyURI attrSource; + +protected: // Elements +/** + * The morph element must contain at least two source elements. @see domSource + */ + domSource_Array elemSource_array; +/** + * The targets element declares the morph targets, their weights and any user + * defined attributes associated with them. @see domTargets + */ + domTargetsRef elemTargets; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the method attribute. + * @return Returns a domMorphMethodType of the method attribute. + */ + domMorphMethodType getMethod() const { return attrMethod; } + /** + * Sets the method attribute. + * @param atMethod The new value for the method attribute. + */ + void setMethod( domMorphMethodType atMethod ) { attrMethod = atMethod; _validAttributeArray[0] = true; } + + /** + * Gets the source attribute. + * @return Returns a xsAnyURI reference of the source attribute. + */ + xsAnyURI &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant xsAnyURI reference of the source attribute. + */ + const xsAnyURI &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const xsAnyURI &atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } + + /** + * Gets the source element array. + * @return Returns a reference to the array of source elements. + */ + domSource_Array &getSource_array() { return elemSource_array; } + /** + * Gets the source element array. + * @return Returns a constant reference to the array of source elements. + */ + const domSource_Array &getSource_array() const { return elemSource_array; } + /** + * Gets the targets element. + * @return a daeSmartRef to the targets element. + */ + const domTargetsRef getTargets() const { return elemTargets; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domMorph(DAE& dae) : daeElement(dae), attrMethod(), attrSource(dae, *this), elemSource_array(), elemTargets(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domMorph() {} + /** + * Overloaded assignment operator + */ + virtual domMorph &operator=( const domMorph &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domName_array.h b/include/1.4/dom/domName_array.h new file mode 100644 index 0000000..dbd9cc1 --- /dev/null +++ b/include/1.4/dom/domName_array.h @@ -0,0 +1,137 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domName_array_h__ +#define __domName_array_h__ + +#include +#include +#include + +class DAE; + +/** + * The Name_array element declares the storage for a homogenous array of Name + * string values. + */ +class domName_array : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME_ARRAY; } + static daeInt ID() { return 605; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of values in the array. Required + * attribute. + */ + domUint attrCount; + +protected: // Value + /** + * The domListOfNames value of the text data of this element. + */ + domListOfNames _value; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[2] = true; } + + /** + * Gets the _value array. + * @return Returns a domListOfNames reference of the _value array. + */ + domListOfNames &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfNames reference of the _value array. + */ + const domListOfNames &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfNames &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domName_array(DAE& dae) : daeElement(dae), attrId(), attrName(), attrCount(), _value() {} + /** + * Destructor + */ + virtual ~domName_array() {} + /** + * Overloaded assignment operator + */ + virtual domName_array &operator=( const domName_array &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domNode.h b/include/1.4/dom/domNode.h new file mode 100644 index 0000000..4385df0 --- /dev/null +++ b/include/1.4/dom/domNode.h @@ -0,0 +1,390 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domNode_h__ +#define __domNode_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * Nodes embody the hierarchical relationship of elements in the scene. + */ +class domNode : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NODE; } + static daeInt ID() { return 681; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The type attribute indicates the type of the node element. The default + * value is “NODE”. Optional attribute. + */ + domNodeType attrType; +/** + * The layer attribute indicates the names of the layers to which this node + * belongs. For example, a value of “foreground glowing” indicates that + * this node belongs to both the ‘foreground’ layer and the ‘glowing’ + * layer. The default value is empty, indicating that the node doesn’t + * belong to any layer. Optional attribute. + */ + domListOfNames attrLayer; + +protected: // Elements +/** + * The node element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The node element may contain any number of lookat elements. @see domLookat + */ + domLookat_Array elemLookat_array; +/** + * The node element may contain any number of matrix elements. @see domMatrix + */ + domMatrix_Array elemMatrix_array; +/** + * The node element may contain any number of rotate elements. @see domRotate + */ + domRotate_Array elemRotate_array; +/** + * The node element may contain any number of scale elements. @see domScale + */ + domScale_Array elemScale_array; +/** + * The node element may contain any number of skew elements. @see domSkew + */ + domSkew_Array elemSkew_array; +/** + * The node element may contain any number of translate elements. @see domTranslate + */ + domTranslate_Array elemTranslate_array; +/** + * The node element may instance any number of camera objects. @see domInstance_camera + */ + domInstance_camera_Array elemInstance_camera_array; +/** + * The node element may instance any number of controller objects. @see + * domInstance_controller + */ + domInstance_controller_Array elemInstance_controller_array; +/** + * The node element may instance any number of geometry objects. @see domInstance_geometry + */ + domInstance_geometry_Array elemInstance_geometry_array; +/** + * The node element may instance any number of light objects. @see domInstance_light + */ + domInstance_light_Array elemInstance_light_array; +/** + * The node element may instance any number of node elements or hierarchies + * objects. @see domInstance_node + */ + domInstance_node_Array elemInstance_node_array; +/** + * The node element may be hierarchical and be the parent of any number of + * other node elements. @see domNode + */ + domNode_Array elemNode_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[2] = true; } + + /** + * Gets the type attribute. + * @return Returns a domNodeType of the type attribute. + */ + domNodeType getType() const { return attrType; } + /** + * Sets the type attribute. + * @param atType The new value for the type attribute. + */ + void setType( domNodeType atType ) { attrType = atType; _validAttributeArray[3] = true; } + + /** + * Gets the layer array attribute. + * @return Returns a domListOfNames reference of the layer array attribute. + */ + domListOfNames &getLayer() { return attrLayer; } + /** + * Gets the layer array attribute. + * @return Returns a constant domListOfNames reference of the layer array attribute. + */ + const domListOfNames &getLayer() const { return attrLayer; } + /** + * Sets the layer array attribute. + * @param atLayer The new value for the layer array attribute. + */ + void setLayer( const domListOfNames &atLayer ) { attrLayer = atLayer; _validAttributeArray[4] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the lookat element array. + * @return Returns a reference to the array of lookat elements. + */ + domLookat_Array &getLookat_array() { return elemLookat_array; } + /** + * Gets the lookat element array. + * @return Returns a constant reference to the array of lookat elements. + */ + const domLookat_Array &getLookat_array() const { return elemLookat_array; } + /** + * Gets the matrix element array. + * @return Returns a reference to the array of matrix elements. + */ + domMatrix_Array &getMatrix_array() { return elemMatrix_array; } + /** + * Gets the matrix element array. + * @return Returns a constant reference to the array of matrix elements. + */ + const domMatrix_Array &getMatrix_array() const { return elemMatrix_array; } + /** + * Gets the rotate element array. + * @return Returns a reference to the array of rotate elements. + */ + domRotate_Array &getRotate_array() { return elemRotate_array; } + /** + * Gets the rotate element array. + * @return Returns a constant reference to the array of rotate elements. + */ + const domRotate_Array &getRotate_array() const { return elemRotate_array; } + /** + * Gets the scale element array. + * @return Returns a reference to the array of scale elements. + */ + domScale_Array &getScale_array() { return elemScale_array; } + /** + * Gets the scale element array. + * @return Returns a constant reference to the array of scale elements. + */ + const domScale_Array &getScale_array() const { return elemScale_array; } + /** + * Gets the skew element array. + * @return Returns a reference to the array of skew elements. + */ + domSkew_Array &getSkew_array() { return elemSkew_array; } + /** + * Gets the skew element array. + * @return Returns a constant reference to the array of skew elements. + */ + const domSkew_Array &getSkew_array() const { return elemSkew_array; } + /** + * Gets the translate element array. + * @return Returns a reference to the array of translate elements. + */ + domTranslate_Array &getTranslate_array() { return elemTranslate_array; } + /** + * Gets the translate element array. + * @return Returns a constant reference to the array of translate elements. + */ + const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } + /** + * Gets the instance_camera element array. + * @return Returns a reference to the array of instance_camera elements. + */ + domInstance_camera_Array &getInstance_camera_array() { return elemInstance_camera_array; } + /** + * Gets the instance_camera element array. + * @return Returns a constant reference to the array of instance_camera elements. + */ + const domInstance_camera_Array &getInstance_camera_array() const { return elemInstance_camera_array; } + /** + * Gets the instance_controller element array. + * @return Returns a reference to the array of instance_controller elements. + */ + domInstance_controller_Array &getInstance_controller_array() { return elemInstance_controller_array; } + /** + * Gets the instance_controller element array. + * @return Returns a constant reference to the array of instance_controller elements. + */ + const domInstance_controller_Array &getInstance_controller_array() const { return elemInstance_controller_array; } + /** + * Gets the instance_geometry element array. + * @return Returns a reference to the array of instance_geometry elements. + */ + domInstance_geometry_Array &getInstance_geometry_array() { return elemInstance_geometry_array; } + /** + * Gets the instance_geometry element array. + * @return Returns a constant reference to the array of instance_geometry elements. + */ + const domInstance_geometry_Array &getInstance_geometry_array() const { return elemInstance_geometry_array; } + /** + * Gets the instance_light element array. + * @return Returns a reference to the array of instance_light elements. + */ + domInstance_light_Array &getInstance_light_array() { return elemInstance_light_array; } + /** + * Gets the instance_light element array. + * @return Returns a constant reference to the array of instance_light elements. + */ + const domInstance_light_Array &getInstance_light_array() const { return elemInstance_light_array; } + /** + * Gets the instance_node element array. + * @return Returns a reference to the array of instance_node elements. + */ + domInstance_node_Array &getInstance_node_array() { return elemInstance_node_array; } + /** + * Gets the instance_node element array. + * @return Returns a constant reference to the array of instance_node elements. + */ + const domInstance_node_Array &getInstance_node_array() const { return elemInstance_node_array; } + /** + * Gets the node element array. + * @return Returns a reference to the array of node elements. + */ + domNode_Array &getNode_array() { return elemNode_array; } + /** + * Gets the node element array. + * @return Returns a constant reference to the array of node elements. + */ + const domNode_Array &getNode_array() const { return elemNode_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domNode(DAE& dae) : daeElement(dae), attrId(), attrName(), attrSid(), attrType(), attrLayer(), elemAsset(), elemLookat_array(), elemMatrix_array(), elemRotate_array(), elemScale_array(), elemSkew_array(), elemTranslate_array(), elemInstance_camera_array(), elemInstance_controller_array(), elemInstance_geometry_array(), elemInstance_light_array(), elemInstance_node_array(), elemNode_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domNode() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domNode &operator=( const domNode &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domP.h b/include/1.4/dom/domP.h new file mode 100644 index 0000000..4d18138 --- /dev/null +++ b/include/1.4/dom/domP.h @@ -0,0 +1,88 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domP_h__ +#define __domP_h__ + +#include +#include +#include + +class DAE; + +/** + * The p element represents primitive data for the primitive types (lines, + * linestrips, polygons, polylist, triangles, trifans, tristrips). The p + * element contains indices that reference into the parent's source elements + * referenced by the input elements. + */ +class domP : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::P; } + static daeInt ID() { return 617; } + virtual daeInt typeID() const { return ID(); } + +protected: // Value + /** + * The domListOfUInts value of the text data of this element. + */ + domListOfUInts _value; + +public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domListOfUInts reference of the _value array. + */ + domListOfUInts &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfUInts reference of the _value array. + */ + const domListOfUInts &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfUInts &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domP(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domP() {} + /** + * Overloaded assignment operator + */ + virtual domP &operator=( const domP &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domParam.h b/include/1.4/dom/domParam.h new file mode 100644 index 0000000..664eed8 --- /dev/null +++ b/include/1.4/dom/domParam.h @@ -0,0 +1,146 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domParam_h__ +#define __domParam_h__ + +#include +#include +#include + +class DAE; + +/** + * The param element declares parametric information regarding its parent + * element. + */ +class domParam : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 610; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The semantic attribute is the user-defined meaning of the parameter. Optional + * attribute. + */ + xsNMTOKEN attrSemantic; +/** + * The type attribute indicates the type of the value data. This text string + * must be understood by the application. Required attribute. + */ + xsNMTOKEN attrType; + +protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the semantic attribute. + * @return Returns a xsNMTOKEN of the semantic attribute. + */ + xsNMTOKEN getSemantic() const { return attrSemantic; } + /** + * Sets the semantic attribute. + * @param atSemantic The new value for the semantic attribute. + */ + void setSemantic( xsNMTOKEN atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[2] = true; } + + /** + * Gets the type attribute. + * @return Returns a xsNMTOKEN of the type attribute. + */ + xsNMTOKEN getType() const { return attrType; } + /** + * Sets the type attribute. + * @param atType The new value for the type attribute. + */ + void setType( xsNMTOKEN atType ) { *(daeStringRef*)&attrType = atType; _validAttributeArray[3] = true; } + + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + +protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), attrName(), attrSid(), attrSemantic(), attrType(), _value() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domPhysics_material.h b/include/1.4/dom/domPhysics_material.h new file mode 100644 index 0000000..722abf6 --- /dev/null +++ b/include/1.4/dom/domPhysics_material.h @@ -0,0 +1,232 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domPhysics_material_h__ +#define __domPhysics_material_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * This element defines the physical properties of an object. It contains + * a technique/profile with parameters. The COMMON profile defines the built-in + * names, such as static_friction. + */ +class domPhysics_material : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PHYSICS_MATERIAL; } + static daeInt ID() { return 791; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the physics_material information + * for the common profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 792; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * Dynamic friction coefficient @see domDynamic_friction + */ + domTargetableFloatRef elemDynamic_friction; +/** + * The proportion of the kinetic energy preserved in the impact (typically + * ranges from 0.0 to 1.0) @see domRestitution + */ + domTargetableFloatRef elemRestitution; +/** + * Static friction coefficient @see domStatic_friction + */ + domTargetableFloatRef elemStatic_friction; + + public: //Accessors and Mutators + /** + * Gets the dynamic_friction element. + * @return a daeSmartRef to the dynamic_friction element. + */ + const domTargetableFloatRef getDynamic_friction() const { return elemDynamic_friction; } + /** + * Gets the restitution element. + * @return a daeSmartRef to the restitution element. + */ + const domTargetableFloatRef getRestitution() const { return elemRestitution; } + /** + * Gets the static_friction element. + * @return a daeSmartRef to the static_friction element. + */ + const domTargetableFloatRef getStatic_friction() const { return elemStatic_friction; } + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemDynamic_friction(), elemRestitution(), elemStatic_friction() {} + /** + * Destructor + */ + virtual ~domTechnique_common() {} + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The physics_material element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The technique_common element specifies the physics_material information + * for the common profile which all COLLADA implementations need to support. + * @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domPhysics_material(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPhysics_material() {} + /** + * Overloaded assignment operator + */ + virtual domPhysics_material &operator=( const domPhysics_material &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domPhysics_model.h b/include/1.4/dom/domPhysics_model.h new file mode 100644 index 0000000..893ee3a --- /dev/null +++ b/include/1.4/dom/domPhysics_model.h @@ -0,0 +1,174 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domPhysics_model_h__ +#define __domPhysics_model_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +class DAE; + +/** + * This element allows for building complex combinations of rigid-bodies and + * constraints that may be instantiated multiple times. + */ +class domPhysics_model : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PHYSICS_MODEL; } + static daeInt ID() { return 813; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The physics_model element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The physics_model may define any number of rigid_body elements. @see + * domRigid_body + */ + domRigid_body_Array elemRigid_body_array; +/** + * The physics_model may define any number of rigid_constraint elements. + * @see domRigid_constraint + */ + domRigid_constraint_Array elemRigid_constraint_array; +/** + * The physics_model may instance any number of other physics_model elements. + * @see domInstance_physics_model + */ + domInstance_physics_model_Array elemInstance_physics_model_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the rigid_body element array. + * @return Returns a reference to the array of rigid_body elements. + */ + domRigid_body_Array &getRigid_body_array() { return elemRigid_body_array; } + /** + * Gets the rigid_body element array. + * @return Returns a constant reference to the array of rigid_body elements. + */ + const domRigid_body_Array &getRigid_body_array() const { return elemRigid_body_array; } + /** + * Gets the rigid_constraint element array. + * @return Returns a reference to the array of rigid_constraint elements. + */ + domRigid_constraint_Array &getRigid_constraint_array() { return elemRigid_constraint_array; } + /** + * Gets the rigid_constraint element array. + * @return Returns a constant reference to the array of rigid_constraint elements. + */ + const domRigid_constraint_Array &getRigid_constraint_array() const { return elemRigid_constraint_array; } + /** + * Gets the instance_physics_model element array. + * @return Returns a reference to the array of instance_physics_model elements. + */ + domInstance_physics_model_Array &getInstance_physics_model_array() { return elemInstance_physics_model_array; } + /** + * Gets the instance_physics_model element array. + * @return Returns a constant reference to the array of instance_physics_model elements. + */ + const domInstance_physics_model_Array &getInstance_physics_model_array() const { return elemInstance_physics_model_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domPhysics_model(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemRigid_body_array(), elemRigid_constraint_array(), elemInstance_physics_model_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPhysics_model() {} + /** + * Overloaded assignment operator + */ + virtual domPhysics_model &operator=( const domPhysics_model &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domPhysics_scene.h b/include/1.4/dom/domPhysics_scene.h new file mode 100644 index 0000000..6b128bd --- /dev/null +++ b/include/1.4/dom/domPhysics_scene.h @@ -0,0 +1,248 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domPhysics_scene_h__ +#define __domPhysics_scene_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class DAE; + +class domPhysics_scene : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PHYSICS_SCENE; } + static daeInt ID() { return 793; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the physics_scene information for + * the common profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 794; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The gravity vector to use for the physics_scene. @see domGravity + */ + domTargetableFloat3Ref elemGravity; +/** + * The time_step for the physics_scene. @see domTime_step + */ + domTargetableFloatRef elemTime_step; + + public: //Accessors and Mutators + /** + * Gets the gravity element. + * @return a daeSmartRef to the gravity element. + */ + const domTargetableFloat3Ref getGravity() const { return elemGravity; } + /** + * Gets the time_step element. + * @return a daeSmartRef to the time_step element. + */ + const domTargetableFloatRef getTime_step() const { return elemTime_step; } + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemGravity(), elemTime_step() {} + /** + * Destructor + */ + virtual ~domTechnique_common() {} + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The physics_scene element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * There may be any number of instance_force_field elements. @see domInstance_force_field + */ + domInstance_force_field_Array elemInstance_force_field_array; +/** + * There may be any number of instance_physics_model elements. @see domInstance_physics_model + */ + domInstance_physics_model_Array elemInstance_physics_model_array; +/** + * The technique_common element specifies the physics_scene information for + * the common profile which all COLLADA implementations need to support. + * @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the instance_force_field element array. + * @return Returns a reference to the array of instance_force_field elements. + */ + domInstance_force_field_Array &getInstance_force_field_array() { return elemInstance_force_field_array; } + /** + * Gets the instance_force_field element array. + * @return Returns a constant reference to the array of instance_force_field elements. + */ + const domInstance_force_field_Array &getInstance_force_field_array() const { return elemInstance_force_field_array; } + /** + * Gets the instance_physics_model element array. + * @return Returns a reference to the array of instance_physics_model elements. + */ + domInstance_physics_model_Array &getInstance_physics_model_array() { return elemInstance_physics_model_array; } + /** + * Gets the instance_physics_model element array. + * @return Returns a constant reference to the array of instance_physics_model elements. + */ + const domInstance_physics_model_Array &getInstance_physics_model_array() const { return elemInstance_physics_model_array; } + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domPhysics_scene(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemInstance_force_field_array(), elemInstance_physics_model_array(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPhysics_scene() {} + /** + * Overloaded assignment operator + */ + virtual domPhysics_scene &operator=( const domPhysics_scene &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domPlane.h b/include/1.4/dom/domPlane.h new file mode 100644 index 0000000..8d143c0 --- /dev/null +++ b/include/1.4/dom/domPlane.h @@ -0,0 +1,159 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domPlane_h__ +#define __domPlane_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * An infinite plane primitive. + */ +class domPlane : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PLANE; } + static daeInt ID() { return 769; } + virtual daeInt typeID() const { return ID(); } +public: + class domEquation; + + typedef daeSmartRef domEquationRef; + typedef daeTArray domEquation_Array; + +/** + * 4 float values that represent the coefficients for the plane’s equation: + * Ax + By + Cz + D = 0 + */ + class domEquation : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::EQUATION; } + static daeInt ID() { return 770; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat4 value of the text data of this element. + */ + domFloat4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat4 reference of the _value array. + */ + domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat4 reference of the _value array. + */ + const domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domEquation(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domEquation() {} + /** + * Overloaded assignment operator + */ + virtual domEquation &operator=( const domEquation &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * 4 float values that represent the coefficients for the plane’s equation: + * Ax + By + Cz + D = 0 @see domEquation + */ + domEquationRef elemEquation; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the equation element. + * @return a daeSmartRef to the equation element. + */ + const domEquationRef getEquation() const { return elemEquation; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domPlane(DAE& dae) : daeElement(dae), elemEquation(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPlane() {} + /** + * Overloaded assignment operator + */ + virtual domPlane &operator=( const domPlane &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domPolygons.h b/include/1.4/dom/domPolygons.h new file mode 100644 index 0000000..79bd0b5 --- /dev/null +++ b/include/1.4/dom/domPolygons.h @@ -0,0 +1,344 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domPolygons_h__ +#define __domPolygons_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The polygons element provides the information needed to bind vertex attributes + * together and then organize those vertices into individual polygons. The + * polygons described can contain arbitrary numbers of vertices. These polygons + * may be self intersecting and may also contain holes. + */ +class domPolygons : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYGONS; } + static daeInt ID() { return 620; } + virtual daeInt typeID() const { return ID(); } +public: + class domPh; + + typedef daeSmartRef domPhRef; + typedef daeTArray domPh_Array; + +/** + * The ph element descripes a polygon with holes. + */ + class domPh : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PH; } + static daeInt ID() { return 621; } + virtual daeInt typeID() const { return ID(); } + public: + class domH; + + typedef daeSmartRef domHRef; + typedef daeTArray domH_Array; + +/** + * The h element represents a hole in the polygon specified. There must be + * at least one h element. + */ + class domH : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::H; } + static daeInt ID() { return 622; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domListOfUInts value of the text data of this element. + */ + domListOfUInts _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domListOfUInts reference of the _value array. + */ + domListOfUInts &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfUInts reference of the _value array. + */ + const domListOfUInts &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfUInts &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domH(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domH() {} + /** + * Overloaded assignment operator + */ + virtual domH &operator=( const domH &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * Theere may only be one p element. @see domP + */ + domPRef elemP; +/** + * The h element represents a hole in the polygon specified. There must be + * at least one h element. @see domH + */ + domH_Array elemH_array; + + public: //Accessors and Mutators + /** + * Gets the p element. + * @return a daeSmartRef to the p element. + */ + const domPRef getP() const { return elemP; } + /** + * Gets the h element array. + * @return Returns a reference to the array of h elements. + */ + domH_Array &getH_array() { return elemH_array; } + /** + * Gets the h element array. + * @return Returns a constant reference to the array of h elements. + */ + const domH_Array &getH_array() const { return elemH_array; } + protected: + /** + * Constructor + */ + domPh(DAE& dae) : daeElement(dae), elemP(), elemH_array() {} + /** + * Destructor + */ + virtual ~domPh() {} + /** + * Overloaded assignment operator + */ + virtual domPh &operator=( const domPh &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of polygon primitives. Required + * attribute. + */ + domUint attrCount; +/** + * The material attribute declares a symbol for a material. This symbol is + * bound to a material at the time of instantiation. If the material attribute + * is not specified then the lighting and shading results are application + * defined. Optional attribute. + */ + xsNCName attrMaterial; + +protected: // Elements +/** + * The input element may occur any number of times. This input is a local + * input with the offset and set attributes. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The p element may occur any number of times. @see domP + */ + domP_Array elemP_array; +/** + * The ph element descripes a polygon with holes. @see domPh + */ + domPh_Array elemPh_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } + + /** + * Gets the material attribute. + * @return Returns a xsNCName of the material attribute. + */ + xsNCName getMaterial() const { return attrMaterial; } + /** + * Sets the material attribute. + * @param atMaterial The new value for the material attribute. + */ + void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the p element array. + * @return Returns a reference to the array of p elements. + */ + domP_Array &getP_array() { return elemP_array; } + /** + * Gets the p element array. + * @return Returns a constant reference to the array of p elements. + */ + const domP_Array &getP_array() const { return elemP_array; } + /** + * Gets the ph element array. + * @return Returns a reference to the array of ph elements. + */ + domPh_Array &getPh_array() { return elemPh_array; } + /** + * Gets the ph element array. + * @return Returns a constant reference to the array of ph elements. + */ + const domPh_Array &getPh_array() const { return elemPh_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domPolygons(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemP_array(), elemPh_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPolygons() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domPolygons &operator=( const domPolygons &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domPolylist.h b/include/1.4/dom/domPolylist.h new file mode 100644 index 0000000..e2b9f8a --- /dev/null +++ b/include/1.4/dom/domPolylist.h @@ -0,0 +1,241 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domPolylist_h__ +#define __domPolylist_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The polylist element provides the information needed to bind vertex attributes + * together and then organize those vertices into individual polygons. The + * polygons described in polylist can contain arbitrary numbers of vertices. + * Unlike the polygons element, the polylist element cannot contain polygons + * with holes. + */ +class domPolylist : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYLIST; } + static daeInt ID() { return 623; } + virtual daeInt typeID() const { return ID(); } +public: + class domVcount; + + typedef daeSmartRef domVcountRef; + typedef daeTArray domVcount_Array; + +/** + * The vcount element contains a list of integers describing the number of + * sides for each polygon described by the polylist element. The vcount element + * may occur once. + */ + class domVcount : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VCOUNT; } + static daeInt ID() { return 624; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domListOfUInts value of the text data of this element. + */ + domListOfUInts _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domListOfUInts reference of the _value array. + */ + domListOfUInts &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfUInts reference of the _value array. + */ + const domListOfUInts &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfUInts &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domVcount(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domVcount() {} + /** + * Overloaded assignment operator + */ + virtual domVcount &operator=( const domVcount &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of polygon primitives. Required + * attribute. + */ + domUint attrCount; +/** + * The material attribute declares a symbol for a material. This symbol is + * bound to a material at the time of instantiation. If the material attribute + * is not specified then the lighting and shading results are application + * defined. Optional attribute. + */ + xsNCName attrMaterial; + +protected: // Elements +/** + * The input element may occur any number of times. This input is a local + * input with the offset and set attributes. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The vcount element contains a list of integers describing the number of + * sides for each polygon described by the polylist element. The vcount element + * may occur once. @see domVcount + */ + domVcountRef elemVcount; +/** + * The p element may occur once. @see domP + */ + domPRef elemP; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } + + /** + * Gets the material attribute. + * @return Returns a xsNCName of the material attribute. + */ + xsNCName getMaterial() const { return attrMaterial; } + /** + * Sets the material attribute. + * @param atMaterial The new value for the material attribute. + */ + void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the vcount element. + * @return a daeSmartRef to the vcount element. + */ + const domVcountRef getVcount() const { return elemVcount; } + /** + * Gets the p element. + * @return a daeSmartRef to the p element. + */ + const domPRef getP() const { return elemP; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domPolylist(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemVcount(), elemP(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPolylist() {} + /** + * Overloaded assignment operator + */ + virtual domPolylist &operator=( const domPolylist &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domProfile_CG.h b/include/1.4/dom/domProfile_CG.h new file mode 100644 index 0000000..0d3ed37 --- /dev/null +++ b/include/1.4/dom/domProfile_CG.h @@ -0,0 +1,1176 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domProfile_CG_h__ +#define __domProfile_CG_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * Opens a block of CG platform-specific data types and technique declarations. + */ +class domProfile_CG : public domFx_profile_abstract +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_CG; } + static daeInt ID() { return 746; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique; + + typedef daeSmartRef domTechniqueRef; + typedef daeTArray domTechnique_Array; + +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. + */ + class domTechnique : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } + static daeInt ID() { return 747; } + virtual daeInt typeID() const { return ID(); } + public: + class domPass; + + typedef daeSmartRef domPassRef; + typedef daeTArray domPass_Array; + +/** + * A static declaration of all the render states, shaders, and settings for + * one rendering pipeline. + */ + class domPass : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PASS; } + static daeInt ID() { return 748; } + virtual daeInt typeID() const { return ID(); } + public: + class domDraw; + + typedef daeSmartRef domDrawRef; + typedef daeTArray domDraw_Array; + + class domDraw : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DRAW; } + static daeInt ID() { return 749; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_draw_common value of the text data of this element. + */ + domFx_draw_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_draw_common of the value. + */ + domFx_draw_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_draw_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domDraw(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domDraw() {} + /** + * Overloaded assignment operator + */ + virtual domDraw &operator=( const domDraw &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domShader; + + typedef daeSmartRef domShaderRef; + typedef daeTArray domShader_Array; + +/** + * Declare and prepare a shader for execution in the rendering pipeline of + * a pass. + */ + class domShader : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHADER; } + static daeInt ID() { return 750; } + virtual daeInt typeID() const { return ID(); } + public: + class domCompiler_target; + + typedef daeSmartRef domCompiler_targetRef; + typedef daeTArray domCompiler_target_Array; + + class domCompiler_target : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMPILER_TARGET; } + static daeInt ID() { return 751; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNMTOKEN value of the text data of this element. + */ + xsNMTOKEN _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNMTOKEN of the value. + */ + xsNMTOKEN getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNMTOKEN val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domCompiler_target(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domCompiler_target() {} + /** + * Overloaded assignment operator + */ + virtual domCompiler_target &operator=( const domCompiler_target &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCompiler_options; + + typedef daeSmartRef domCompiler_optionsRef; + typedef daeTArray domCompiler_options_Array; + +/** + * A string containing command-line operations for the shader compiler. + */ + class domCompiler_options : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMPILER_OPTIONS; } + static daeInt ID() { return 752; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domCompiler_options(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domCompiler_options() {} + /** + * Overloaded assignment operator + */ + virtual domCompiler_options &operator=( const domCompiler_options &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domName; + + typedef daeSmartRef domNameRef; + typedef daeTArray domName_Array; + +/** + * The entry symbol for the shader function. + */ + class domName : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME; } + static daeInt ID() { return 753; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrSource; + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a xsNCName of the source attribute. + */ + xsNCName getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domName(DAE& dae) : daeElement(dae), attrSource(), _value() {} + /** + * Destructor + */ + virtual ~domName() {} + /** + * Overloaded assignment operator + */ + virtual domName &operator=( const domName &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBind; + + typedef daeSmartRef domBindRef; + typedef daeTArray domBind_Array; + +/** + * Binds values to uniform inputs of a shader. + */ + class domBind : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND; } + static daeInt ID() { return 754; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + +/** + * References a predefined parameter in shader binding declarations. + */ + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 755; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsNCName of the ref attribute. + */ + xsNCName getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), attrRef() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The identifier for a uniform input parameter to the shader (a formal function + * parameter or in-scope global) that will be bound to an external resource. + */ + xsNCName attrSymbol; + + protected: // Elements + domCg_param_typeRef elemCg_param_type; +/** + * References a predefined parameter in shader binding declarations. @see + * domParam + */ + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the symbol attribute. + * @return Returns a xsNCName of the symbol attribute. + */ + xsNCName getSymbol() const { return attrSymbol; } + /** + * Sets the symbol attribute. + * @param atSymbol The new value for the symbol attribute. + */ + void setSymbol( xsNCName atSymbol ) { *(daeStringRef*)&attrSymbol = atSymbol; _validAttributeArray[0] = true; } + + /** + * Gets the cg_param_type element. + * @return a daeSmartRef to the cg_param_type element. + */ + const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domBind(DAE& dae) : daeElement(dae), attrSymbol(), elemCg_param_type(), elemParam() {} + /** + * Destructor + */ + virtual ~domBind() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domBind &operator=( const domBind &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * In which pipeline stage this programmable shader is designed to execute, + * for example, VERTEX, FRAGMENT, etc. + */ + domCg_pipeline_stage attrStage; + + protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domCompiler_targetRef elemCompiler_target; +/** + * A string containing command-line operations for the shader compiler. @see + * domCompiler_options + */ + domCompiler_optionsRef elemCompiler_options; +/** + * The entry symbol for the shader function. @see domName + */ + domNameRef elemName; +/** + * Binds values to uniform inputs of a shader. @see domBind + */ + domBind_Array elemBind_array; + + public: //Accessors and Mutators + /** + * Gets the stage attribute. + * @return Returns a domCg_pipeline_stage of the stage attribute. + */ + domCg_pipeline_stage getStage() const { return attrStage; } + /** + * Sets the stage attribute. + * @param atStage The new value for the stage attribute. + */ + void setStage( domCg_pipeline_stage atStage ) { attrStage = atStage; _validAttributeArray[0] = true; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the compiler_target element. + * @return a daeSmartRef to the compiler_target element. + */ + const domCompiler_targetRef getCompiler_target() const { return elemCompiler_target; } + /** + * Gets the compiler_options element. + * @return a daeSmartRef to the compiler_options element. + */ + const domCompiler_optionsRef getCompiler_options() const { return elemCompiler_options; } + /** + * Gets the name element. + * @return a daeSmartRef to the name element. + */ + const domNameRef getName() const { return elemName; } + /** + * Gets the bind element array. + * @return Returns a reference to the array of bind elements. + */ + domBind_Array &getBind_array() { return elemBind_array; } + /** + * Gets the bind element array. + * @return Returns a constant reference to the array of bind elements. + */ + const domBind_Array &getBind_array() const { return elemBind_array; } + protected: + /** + * Constructor + */ + domShader(DAE& dae) : daeElement(dae), attrStage(), elemAnnotate_array(), elemCompiler_target(), elemCompiler_options(), elemName(), elemBind_array() {} + /** + * Destructor + */ + virtual ~domShader() {} + /** + * Overloaded assignment operator + */ + virtual domShader &operator=( const domShader &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domFx_colortarget_common_Array elemColor_target_array; + domFx_depthtarget_common_Array elemDepth_target_array; + domFx_stenciltarget_common_Array elemStencil_target_array; + domFx_clearcolor_common_Array elemColor_clear_array; + domFx_cleardepth_common_Array elemDepth_clear_array; + domFx_clearstencil_common_Array elemStencil_clear_array; + domDrawRef elemDraw; + domGl_pipeline_settings_Array elemGl_pipeline_settings_array; +/** + * Declare and prepare a shader for execution in the rendering pipeline of + * a pass. @see domShader + */ + domShader_Array elemShader_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the color_target element array. + * @return Returns a reference to the array of color_target elements. + */ + domFx_colortarget_common_Array &getColor_target_array() { return elemColor_target_array; } + /** + * Gets the color_target element array. + * @return Returns a constant reference to the array of color_target elements. + */ + const domFx_colortarget_common_Array &getColor_target_array() const { return elemColor_target_array; } + /** + * Gets the depth_target element array. + * @return Returns a reference to the array of depth_target elements. + */ + domFx_depthtarget_common_Array &getDepth_target_array() { return elemDepth_target_array; } + /** + * Gets the depth_target element array. + * @return Returns a constant reference to the array of depth_target elements. + */ + const domFx_depthtarget_common_Array &getDepth_target_array() const { return elemDepth_target_array; } + /** + * Gets the stencil_target element array. + * @return Returns a reference to the array of stencil_target elements. + */ + domFx_stenciltarget_common_Array &getStencil_target_array() { return elemStencil_target_array; } + /** + * Gets the stencil_target element array. + * @return Returns a constant reference to the array of stencil_target elements. + */ + const domFx_stenciltarget_common_Array &getStencil_target_array() const { return elemStencil_target_array; } + /** + * Gets the color_clear element array. + * @return Returns a reference to the array of color_clear elements. + */ + domFx_clearcolor_common_Array &getColor_clear_array() { return elemColor_clear_array; } + /** + * Gets the color_clear element array. + * @return Returns a constant reference to the array of color_clear elements. + */ + const domFx_clearcolor_common_Array &getColor_clear_array() const { return elemColor_clear_array; } + /** + * Gets the depth_clear element array. + * @return Returns a reference to the array of depth_clear elements. + */ + domFx_cleardepth_common_Array &getDepth_clear_array() { return elemDepth_clear_array; } + /** + * Gets the depth_clear element array. + * @return Returns a constant reference to the array of depth_clear elements. + */ + const domFx_cleardepth_common_Array &getDepth_clear_array() const { return elemDepth_clear_array; } + /** + * Gets the stencil_clear element array. + * @return Returns a reference to the array of stencil_clear elements. + */ + domFx_clearstencil_common_Array &getStencil_clear_array() { return elemStencil_clear_array; } + /** + * Gets the stencil_clear element array. + * @return Returns a constant reference to the array of stencil_clear elements. + */ + const domFx_clearstencil_common_Array &getStencil_clear_array() const { return elemStencil_clear_array; } + /** + * Gets the draw element. + * @return a daeSmartRef to the draw element. + */ + const domDrawRef getDraw() const { return elemDraw; } + /** + * Gets the gl_pipeline_settings element array. + * @return Returns a reference to the array of gl_pipeline_settings elements. + */ + domGl_pipeline_settings_Array &getGl_pipeline_settings_array() { return elemGl_pipeline_settings_array; } + /** + * Gets the gl_pipeline_settings element array. + * @return Returns a constant reference to the array of gl_pipeline_settings elements. + */ + const domGl_pipeline_settings_Array &getGl_pipeline_settings_array() const { return elemGl_pipeline_settings_array; } + /** + * Gets the shader element array. + * @return Returns a reference to the array of shader elements. + */ + domShader_Array &getShader_array() { return elemShader_array; } + /** + * Gets the shader element array. + * @return Returns a constant reference to the array of shader elements. + */ + const domShader_Array &getShader_array() const { return elemShader_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domPass(DAE& dae) : daeElement(dae), attrSid(), elemAnnotate_array(), elemColor_target_array(), elemDepth_target_array(), elemStencil_target_array(), elemColor_clear_array(), elemDepth_clear_array(), elemStencil_clear_array(), elemDraw(), elemGl_pipeline_settings_array(), elemShader_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPass() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domPass &operator=( const domPass &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Elements +/** + * The technique element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; + domFx_annotate_common_Array elemAnnotate_array; + domFx_code_profile_Array elemCode_array; + domFx_include_common_Array elemInclude_array; + domImage_Array elemImage_array; + domCg_newparam_Array elemNewparam_array; + domCg_setparam_Array elemSetparam_array; +/** + * A static declaration of all the render states, shaders, and settings for + * one rendering pipeline. @see domPass + */ + domPass_Array elemPass_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the code element array. + * @return Returns a reference to the array of code elements. + */ + domFx_code_profile_Array &getCode_array() { return elemCode_array; } + /** + * Gets the code element array. + * @return Returns a constant reference to the array of code elements. + */ + const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } + /** + * Gets the include element array. + * @return Returns a reference to the array of include elements. + */ + domFx_include_common_Array &getInclude_array() { return elemInclude_array; } + /** + * Gets the include element array. + * @return Returns a constant reference to the array of include elements. + */ + const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domCg_newparam_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domCg_newparam_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the setparam element array. + * @return Returns a reference to the array of setparam elements. + */ + domCg_setparam_Array &getSetparam_array() { return elemSetparam_array; } + /** + * Gets the setparam element array. + * @return Returns a constant reference to the array of setparam elements. + */ + const domCg_setparam_Array &getSetparam_array() const { return elemSetparam_array; } + /** + * Gets the pass element array. + * @return Returns a reference to the array of pass elements. + */ + domPass_Array &getPass_array() { return elemPass_array; } + /** + * Gets the pass element array. + * @return Returns a constant reference to the array of pass elements. + */ + const domPass_Array &getPass_array() const { return elemPass_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAsset(), elemAnnotate_array(), elemCode_array(), elemInclude_array(), elemImage_array(), elemNewparam_array(), elemSetparam_array(), elemPass_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTechnique() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The type of platform. This is a vendor-defined character string that indicates + * the platform or capability target for the technique. Optional + */ + xsNCName attrPlatform; + +protected: // Elements + domAssetRef elemAsset; + domFx_code_profile_Array elemCode_array; + domFx_include_common_Array elemInclude_array; + domImage_Array elemImage_array; + domCg_newparam_Array elemNewparam_array; +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. @see domTechnique + */ + domTechnique_Array elemTechnique_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the platform attribute. + * @return Returns a xsNCName of the platform attribute. + */ + xsNCName getPlatform() const { return attrPlatform; } + /** + * Sets the platform attribute. + * @param atPlatform The new value for the platform attribute. + */ + void setPlatform( xsNCName atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the code element array. + * @return Returns a reference to the array of code elements. + */ + domFx_code_profile_Array &getCode_array() { return elemCode_array; } + /** + * Gets the code element array. + * @return Returns a constant reference to the array of code elements. + */ + const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } + /** + * Gets the include element array. + * @return Returns a reference to the array of include elements. + */ + domFx_include_common_Array &getInclude_array() { return elemInclude_array; } + /** + * Gets the include element array. + * @return Returns a constant reference to the array of include elements. + */ + const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domCg_newparam_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domCg_newparam_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domProfile_CG(DAE& dae) : domFx_profile_abstract(dae), attrId(), attrPlatform(), elemAsset(), elemCode_array(), elemInclude_array(), elemImage_array(), elemNewparam_array(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domProfile_CG() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domProfile_CG &operator=( const domProfile_CG &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domProfile_COMMON.h b/include/1.4/dom/domProfile_COMMON.h new file mode 100644 index 0000000..2cb40bf --- /dev/null +++ b/include/1.4/dom/domProfile_COMMON.h @@ -0,0 +1,728 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domProfile_COMMON_h__ +#define __domProfile_COMMON_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * Opens a block of COMMON platform-specific data types and technique declarations. + */ +class domProfile_COMMON : public domFx_profile_abstract +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_COMMON; } + static daeInt ID() { return 740; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique; + + typedef daeSmartRef domTechniqueRef; + typedef daeTArray domTechnique_Array; + +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. + */ + class domTechnique : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } + static daeInt ID() { return 741; } + virtual daeInt typeID() const { return ID(); } + public: + class domConstant; + + typedef daeSmartRef domConstantRef; + typedef daeTArray domConstant_Array; + + class domConstant : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONSTANT; } + static daeInt ID() { return 742; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements + domCommon_color_or_texture_typeRef elemEmission; + domCommon_color_or_texture_typeRef elemReflective; + domCommon_float_or_param_typeRef elemReflectivity; + domCommon_transparent_typeRef elemTransparent; + domCommon_float_or_param_typeRef elemTransparency; + domCommon_float_or_param_typeRef elemIndex_of_refraction; + + public: //Accessors and Mutators + /** + * Gets the emission element. + * @return a daeSmartRef to the emission element. + */ + const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } + /** + * Gets the reflective element. + * @return a daeSmartRef to the reflective element. + */ + const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } + /** + * Gets the reflectivity element. + * @return a daeSmartRef to the reflectivity element. + */ + const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } + /** + * Gets the transparent element. + * @return a daeSmartRef to the transparent element. + */ + const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } + /** + * Gets the transparency element. + * @return a daeSmartRef to the transparency element. + */ + const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } + /** + * Gets the index_of_refraction element. + * @return a daeSmartRef to the index_of_refraction element. + */ + const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } + protected: + /** + * Constructor + */ + domConstant(DAE& dae) : daeElement(dae), elemEmission(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} + /** + * Destructor + */ + virtual ~domConstant() {} + /** + * Overloaded assignment operator + */ + virtual domConstant &operator=( const domConstant &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLambert; + + typedef daeSmartRef domLambertRef; + typedef daeTArray domLambert_Array; + + class domLambert : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LAMBERT; } + static daeInt ID() { return 743; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements + domCommon_color_or_texture_typeRef elemEmission; + domCommon_color_or_texture_typeRef elemAmbient; + domCommon_color_or_texture_typeRef elemDiffuse; + domCommon_color_or_texture_typeRef elemReflective; + domCommon_float_or_param_typeRef elemReflectivity; + domCommon_transparent_typeRef elemTransparent; + domCommon_float_or_param_typeRef elemTransparency; + domCommon_float_or_param_typeRef elemIndex_of_refraction; + + public: //Accessors and Mutators + /** + * Gets the emission element. + * @return a daeSmartRef to the emission element. + */ + const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } + /** + * Gets the ambient element. + * @return a daeSmartRef to the ambient element. + */ + const domCommon_color_or_texture_typeRef getAmbient() const { return elemAmbient; } + /** + * Gets the diffuse element. + * @return a daeSmartRef to the diffuse element. + */ + const domCommon_color_or_texture_typeRef getDiffuse() const { return elemDiffuse; } + /** + * Gets the reflective element. + * @return a daeSmartRef to the reflective element. + */ + const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } + /** + * Gets the reflectivity element. + * @return a daeSmartRef to the reflectivity element. + */ + const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } + /** + * Gets the transparent element. + * @return a daeSmartRef to the transparent element. + */ + const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } + /** + * Gets the transparency element. + * @return a daeSmartRef to the transparency element. + */ + const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } + /** + * Gets the index_of_refraction element. + * @return a daeSmartRef to the index_of_refraction element. + */ + const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } + protected: + /** + * Constructor + */ + domLambert(DAE& dae) : daeElement(dae), elemEmission(), elemAmbient(), elemDiffuse(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} + /** + * Destructor + */ + virtual ~domLambert() {} + /** + * Overloaded assignment operator + */ + virtual domLambert &operator=( const domLambert &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPhong; + + typedef daeSmartRef domPhongRef; + typedef daeTArray domPhong_Array; + + class domPhong : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PHONG; } + static daeInt ID() { return 744; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements + domCommon_color_or_texture_typeRef elemEmission; + domCommon_color_or_texture_typeRef elemAmbient; + domCommon_color_or_texture_typeRef elemDiffuse; + domCommon_color_or_texture_typeRef elemSpecular; + domCommon_float_or_param_typeRef elemShininess; + domCommon_color_or_texture_typeRef elemReflective; + domCommon_float_or_param_typeRef elemReflectivity; + domCommon_transparent_typeRef elemTransparent; + domCommon_float_or_param_typeRef elemTransparency; + domCommon_float_or_param_typeRef elemIndex_of_refraction; + + public: //Accessors and Mutators + /** + * Gets the emission element. + * @return a daeSmartRef to the emission element. + */ + const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } + /** + * Gets the ambient element. + * @return a daeSmartRef to the ambient element. + */ + const domCommon_color_or_texture_typeRef getAmbient() const { return elemAmbient; } + /** + * Gets the diffuse element. + * @return a daeSmartRef to the diffuse element. + */ + const domCommon_color_or_texture_typeRef getDiffuse() const { return elemDiffuse; } + /** + * Gets the specular element. + * @return a daeSmartRef to the specular element. + */ + const domCommon_color_or_texture_typeRef getSpecular() const { return elemSpecular; } + /** + * Gets the shininess element. + * @return a daeSmartRef to the shininess element. + */ + const domCommon_float_or_param_typeRef getShininess() const { return elemShininess; } + /** + * Gets the reflective element. + * @return a daeSmartRef to the reflective element. + */ + const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } + /** + * Gets the reflectivity element. + * @return a daeSmartRef to the reflectivity element. + */ + const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } + /** + * Gets the transparent element. + * @return a daeSmartRef to the transparent element. + */ + const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } + /** + * Gets the transparency element. + * @return a daeSmartRef to the transparency element. + */ + const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } + /** + * Gets the index_of_refraction element. + * @return a daeSmartRef to the index_of_refraction element. + */ + const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } + protected: + /** + * Constructor + */ + domPhong(DAE& dae) : daeElement(dae), elemEmission(), elemAmbient(), elemDiffuse(), elemSpecular(), elemShininess(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} + /** + * Destructor + */ + virtual ~domPhong() {} + /** + * Overloaded assignment operator + */ + virtual domPhong &operator=( const domPhong &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBlinn; + + typedef daeSmartRef domBlinnRef; + typedef daeTArray domBlinn_Array; + + class domBlinn : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BLINN; } + static daeInt ID() { return 745; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements + domCommon_color_or_texture_typeRef elemEmission; + domCommon_color_or_texture_typeRef elemAmbient; + domCommon_color_or_texture_typeRef elemDiffuse; + domCommon_color_or_texture_typeRef elemSpecular; + domCommon_float_or_param_typeRef elemShininess; + domCommon_color_or_texture_typeRef elemReflective; + domCommon_float_or_param_typeRef elemReflectivity; + domCommon_transparent_typeRef elemTransparent; + domCommon_float_or_param_typeRef elemTransparency; + domCommon_float_or_param_typeRef elemIndex_of_refraction; + + public: //Accessors and Mutators + /** + * Gets the emission element. + * @return a daeSmartRef to the emission element. + */ + const domCommon_color_or_texture_typeRef getEmission() const { return elemEmission; } + /** + * Gets the ambient element. + * @return a daeSmartRef to the ambient element. + */ + const domCommon_color_or_texture_typeRef getAmbient() const { return elemAmbient; } + /** + * Gets the diffuse element. + * @return a daeSmartRef to the diffuse element. + */ + const domCommon_color_or_texture_typeRef getDiffuse() const { return elemDiffuse; } + /** + * Gets the specular element. + * @return a daeSmartRef to the specular element. + */ + const domCommon_color_or_texture_typeRef getSpecular() const { return elemSpecular; } + /** + * Gets the shininess element. + * @return a daeSmartRef to the shininess element. + */ + const domCommon_float_or_param_typeRef getShininess() const { return elemShininess; } + /** + * Gets the reflective element. + * @return a daeSmartRef to the reflective element. + */ + const domCommon_color_or_texture_typeRef getReflective() const { return elemReflective; } + /** + * Gets the reflectivity element. + * @return a daeSmartRef to the reflectivity element. + */ + const domCommon_float_or_param_typeRef getReflectivity() const { return elemReflectivity; } + /** + * Gets the transparent element. + * @return a daeSmartRef to the transparent element. + */ + const domCommon_transparent_typeRef getTransparent() const { return elemTransparent; } + /** + * Gets the transparency element. + * @return a daeSmartRef to the transparency element. + */ + const domCommon_float_or_param_typeRef getTransparency() const { return elemTransparency; } + /** + * Gets the index_of_refraction element. + * @return a daeSmartRef to the index_of_refraction element. + */ + const domCommon_float_or_param_typeRef getIndex_of_refraction() const { return elemIndex_of_refraction; } + protected: + /** + * Constructor + */ + domBlinn(DAE& dae) : daeElement(dae), elemEmission(), elemAmbient(), elemDiffuse(), elemSpecular(), elemShininess(), elemReflective(), elemReflectivity(), elemTransparent(), elemTransparency(), elemIndex_of_refraction() {} + /** + * Destructor + */ + virtual ~domBlinn() {} + /** + * Overloaded assignment operator + */ + virtual domBlinn &operator=( const domBlinn &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Elements +/** + * The technique element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; + domImage_Array elemImage_array; + domCommon_newparam_type_Array elemNewparam_array; + domConstantRef elemConstant; + domLambertRef elemLambert; + domPhongRef elemPhong; + domBlinnRef elemBlinn; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domCommon_newparam_type_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domCommon_newparam_type_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the constant element. + * @return a daeSmartRef to the constant element. + */ + const domConstantRef getConstant() const { return elemConstant; } + /** + * Gets the lambert element. + * @return a daeSmartRef to the lambert element. + */ + const domLambertRef getLambert() const { return elemLambert; } + /** + * Gets the phong element. + * @return a daeSmartRef to the phong element. + */ + const domPhongRef getPhong() const { return elemPhong; } + /** + * Gets the blinn element. + * @return a daeSmartRef to the blinn element. + */ + const domBlinnRef getBlinn() const { return elemBlinn; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAsset(), elemImage_array(), elemNewparam_array(), elemConstant(), elemLambert(), elemPhong(), elemBlinn(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTechnique() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; + +protected: // Elements + domAssetRef elemAsset; + domImage_Array elemImage_array; + domCommon_newparam_type_Array elemNewparam_array; +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. @see domTechnique + */ + domTechniqueRef elemTechnique; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domCommon_newparam_type_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domCommon_newparam_type_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the technique element. + * @return a daeSmartRef to the technique element. + */ + const domTechniqueRef getTechnique() const { return elemTechnique; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domProfile_COMMON(DAE& dae) : domFx_profile_abstract(dae), attrId(), elemAsset(), elemImage_array(), elemNewparam_array(), elemTechnique(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domProfile_COMMON() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domProfile_COMMON &operator=( const domProfile_COMMON &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domProfile_GLES.h b/include/1.4/dom/domProfile_GLES.h new file mode 100644 index 0000000..18f5483 --- /dev/null +++ b/include/1.4/dom/domProfile_GLES.h @@ -0,0 +1,1023 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domProfile_GLES_h__ +#define __domProfile_GLES_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * Opens a block of GLES platform-specific data types and technique declarations. + */ +class domProfile_GLES : public domFx_profile_abstract +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_GLES; } + static daeInt ID() { return 756; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique; + + typedef daeSmartRef domTechniqueRef; + typedef daeTArray domTechnique_Array; + +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. + */ + class domTechnique : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } + static daeInt ID() { return 757; } + virtual daeInt typeID() const { return ID(); } + public: + class domSetparam; + + typedef daeSmartRef domSetparamRef; + typedef daeTArray domSetparam_Array; + + class domSetparam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SETPARAM; } + static daeInt ID() { return 758; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrRef; + + protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domGles_basic_type_commonRef elemGles_basic_type_common; + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsNCName of the ref attribute. + */ + xsNCName getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the gles_basic_type_common element. + * @return a daeSmartRef to the gles_basic_type_common element. + */ + const domGles_basic_type_commonRef getGles_basic_type_common() const { return elemGles_basic_type_common; } + protected: + /** + * Constructor + */ + domSetparam(DAE& dae) : daeElement(dae), attrRef(), elemAnnotate_array(), elemGles_basic_type_common() {} + /** + * Destructor + */ + virtual ~domSetparam() {} + /** + * Overloaded assignment operator + */ + virtual domSetparam &operator=( const domSetparam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domPass; + + typedef daeSmartRef domPassRef; + typedef daeTArray domPass_Array; + +/** + * A static declaration of all the render states, shaders, and settings for + * one rendering pipeline. + */ + class domPass : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PASS; } + static daeInt ID() { return 759; } + virtual daeInt typeID() const { return ID(); } + public: + class domColor_target; + + typedef daeSmartRef domColor_targetRef; + typedef daeTArray domColor_target_Array; + + class domColor_target : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_TARGET; } + static daeInt ID() { return 760; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGles_rendertarget_common value of the text data of this element. + */ + domGles_rendertarget_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGles_rendertarget_common of the value. + */ + domGles_rendertarget_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGles_rendertarget_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domColor_target(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domColor_target() {} + /** + * Overloaded assignment operator + */ + virtual domColor_target &operator=( const domColor_target &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_target; + + typedef daeSmartRef domDepth_targetRef; + typedef daeTArray domDepth_target_Array; + + class domDepth_target : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_TARGET; } + static daeInt ID() { return 761; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGles_rendertarget_common value of the text data of this element. + */ + domGles_rendertarget_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGles_rendertarget_common of the value. + */ + domGles_rendertarget_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGles_rendertarget_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domDepth_target(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domDepth_target() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_target &operator=( const domDepth_target &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_target; + + typedef daeSmartRef domStencil_targetRef; + typedef daeTArray domStencil_target_Array; + + class domStencil_target : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_TARGET; } + static daeInt ID() { return 762; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domGles_rendertarget_common value of the text data of this element. + */ + domGles_rendertarget_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domGles_rendertarget_common of the value. + */ + domGles_rendertarget_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domGles_rendertarget_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domStencil_target(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domStencil_target() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_target &operator=( const domStencil_target &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domColor_clear; + + typedef daeSmartRef domColor_clearRef; + typedef daeTArray domColor_clear_Array; + + class domColor_clear : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR_CLEAR; } + static daeInt ID() { return 763; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_color_common value of the text data of this element. + */ + domFx_color_common _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFx_color_common reference of the _value array. + */ + domFx_color_common &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFx_color_common reference of the _value array. + */ + const domFx_color_common &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFx_color_common &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domColor_clear(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domColor_clear() {} + /** + * Overloaded assignment operator + */ + virtual domColor_clear &operator=( const domColor_clear &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDepth_clear; + + typedef daeSmartRef domDepth_clearRef; + typedef daeTArray domDepth_clear_Array; + + class domDepth_clear : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DEPTH_CLEAR; } + static daeInt ID() { return 764; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domDepth_clear(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domDepth_clear() {} + /** + * Overloaded assignment operator + */ + virtual domDepth_clear &operator=( const domDepth_clear &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domStencil_clear; + + typedef daeSmartRef domStencil_clearRef; + typedef daeTArray domStencil_clear_Array; + + class domStencil_clear : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STENCIL_CLEAR; } + static daeInt ID() { return 765; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsByte value of the text data of this element. + */ + xsByte _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a xsByte of the value. + */ + xsByte getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsByte val ) { _value = val; } + + protected: + /** + * Constructor + */ + domStencil_clear(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domStencil_clear() {} + /** + * Overloaded assignment operator + */ + virtual domStencil_clear &operator=( const domStencil_clear &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domDraw; + + typedef daeSmartRef domDrawRef; + typedef daeTArray domDraw_Array; + + class domDraw : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DRAW; } + static daeInt ID() { return 766; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_draw_common value of the text data of this element. + */ + domFx_draw_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_draw_common of the value. + */ + domFx_draw_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_draw_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domDraw(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domDraw() {} + /** + * Overloaded assignment operator + */ + virtual domDraw &operator=( const domDraw &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domColor_targetRef elemColor_target; + domDepth_targetRef elemDepth_target; + domStencil_targetRef elemStencil_target; + domColor_clearRef elemColor_clear; + domDepth_clearRef elemDepth_clear; + domStencil_clearRef elemStencil_clear; + domDrawRef elemDraw; + domGles_pipeline_settings_Array elemGles_pipeline_settings_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the color_target element. + * @return a daeSmartRef to the color_target element. + */ + const domColor_targetRef getColor_target() const { return elemColor_target; } + /** + * Gets the depth_target element. + * @return a daeSmartRef to the depth_target element. + */ + const domDepth_targetRef getDepth_target() const { return elemDepth_target; } + /** + * Gets the stencil_target element. + * @return a daeSmartRef to the stencil_target element. + */ + const domStencil_targetRef getStencil_target() const { return elemStencil_target; } + /** + * Gets the color_clear element. + * @return a daeSmartRef to the color_clear element. + */ + const domColor_clearRef getColor_clear() const { return elemColor_clear; } + /** + * Gets the depth_clear element. + * @return a daeSmartRef to the depth_clear element. + */ + const domDepth_clearRef getDepth_clear() const { return elemDepth_clear; } + /** + * Gets the stencil_clear element. + * @return a daeSmartRef to the stencil_clear element. + */ + const domStencil_clearRef getStencil_clear() const { return elemStencil_clear; } + /** + * Gets the draw element. + * @return a daeSmartRef to the draw element. + */ + const domDrawRef getDraw() const { return elemDraw; } + /** + * Gets the gles_pipeline_settings element array. + * @return Returns a reference to the array of gles_pipeline_settings elements. + */ + domGles_pipeline_settings_Array &getGles_pipeline_settings_array() { return elemGles_pipeline_settings_array; } + /** + * Gets the gles_pipeline_settings element array. + * @return Returns a constant reference to the array of gles_pipeline_settings elements. + */ + const domGles_pipeline_settings_Array &getGles_pipeline_settings_array() const { return elemGles_pipeline_settings_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domPass(DAE& dae) : daeElement(dae), attrSid(), elemAnnotate_array(), elemColor_target(), elemDepth_target(), elemStencil_target(), elemColor_clear(), elemDepth_clear(), elemStencil_clear(), elemDraw(), elemGles_pipeline_settings_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPass() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domPass &operator=( const domPass &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attributes + xsID attrId; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. + */ + xsNCName attrSid; + + protected: // Elements + domAssetRef elemAsset; + domFx_annotate_common_Array elemAnnotate_array; + domImage_Array elemImage_array; + domGles_newparam_Array elemNewparam_array; + domSetparam_Array elemSetparam_array; +/** + * A static declaration of all the render states, shaders, and settings for + * one rendering pipeline. @see domPass + */ + domPass_Array elemPass_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domGles_newparam_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domGles_newparam_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the setparam element array. + * @return Returns a reference to the array of setparam elements. + */ + domSetparam_Array &getSetparam_array() { return elemSetparam_array; } + /** + * Gets the setparam element array. + * @return Returns a constant reference to the array of setparam elements. + */ + const domSetparam_Array &getSetparam_array() const { return elemSetparam_array; } + /** + * Gets the pass element array. + * @return Returns a reference to the array of pass elements. + */ + domPass_Array &getPass_array() { return elemPass_array; } + /** + * Gets the pass element array. + * @return Returns a constant reference to the array of pass elements. + */ + const domPass_Array &getPass_array() const { return elemPass_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAsset(), elemAnnotate_array(), elemImage_array(), elemNewparam_array(), elemSetparam_array(), elemPass_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTechnique() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The type of platform. This is a vendor-defined character string that indicates + * the platform or capability target for the technique. Optional + */ + xsNCName attrPlatform; + +protected: // Elements + domAssetRef elemAsset; + domImage_Array elemImage_array; + domGles_newparam_Array elemNewparam_array; +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. @see domTechnique + */ + domTechnique_Array elemTechnique_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the platform attribute. + * @return Returns a xsNCName of the platform attribute. + */ + xsNCName getPlatform() const { return attrPlatform; } + /** + * Sets the platform attribute. + * @param atPlatform The new value for the platform attribute. + */ + void setPlatform( xsNCName atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domGles_newparam_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domGles_newparam_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domProfile_GLES(DAE& dae) : domFx_profile_abstract(dae), attrId(), attrPlatform(), elemAsset(), elemImage_array(), elemNewparam_array(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domProfile_GLES() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domProfile_GLES &operator=( const domProfile_GLES &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domProfile_GLSL.h b/include/1.4/dom/domProfile_GLSL.h new file mode 100644 index 0000000..d00c6c6 --- /dev/null +++ b/include/1.4/dom/domProfile_GLSL.h @@ -0,0 +1,1152 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domProfile_GLSL_h__ +#define __domProfile_GLSL_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * Opens a block of GLSL platform-specific data types and technique declarations. + */ +class domProfile_GLSL : public domFx_profile_abstract +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_GLSL; } + static daeInt ID() { return 730; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique; + + typedef daeSmartRef domTechniqueRef; + typedef daeTArray domTechnique_Array; + +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. + */ + class domTechnique : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } + static daeInt ID() { return 731; } + virtual daeInt typeID() const { return ID(); } + public: + class domPass; + + typedef daeSmartRef domPassRef; + typedef daeTArray domPass_Array; + +/** + * A static declaration of all the render states, shaders, and settings for + * one rendering pipeline. + */ + class domPass : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PASS; } + static daeInt ID() { return 732; } + virtual daeInt typeID() const { return ID(); } + public: + class domDraw; + + typedef daeSmartRef domDrawRef; + typedef daeTArray domDraw_Array; + + class domDraw : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DRAW; } + static daeInt ID() { return 733; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFx_draw_common value of the text data of this element. + */ + domFx_draw_common _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFx_draw_common of the value. + */ + domFx_draw_common getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFx_draw_common val ) { _value = val; } + + protected: + /** + * Constructor + */ + domDraw(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domDraw() {} + /** + * Overloaded assignment operator + */ + virtual domDraw &operator=( const domDraw &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domShader; + + typedef daeSmartRef domShaderRef; + typedef daeTArray domShader_Array; + +/** + * Declare and prepare a shader for execution in the rendering pipeline of + * a pass. + */ + class domShader : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHADER; } + static daeInt ID() { return 734; } + virtual daeInt typeID() const { return ID(); } + public: + class domCompiler_target; + + typedef daeSmartRef domCompiler_targetRef; + typedef daeTArray domCompiler_target_Array; + +/** + * A string declaring which profile or platform the compiler is targeting + * this shader for. + */ + class domCompiler_target : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMPILER_TARGET; } + static daeInt ID() { return 735; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNMTOKEN value of the text data of this element. + */ + xsNMTOKEN _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNMTOKEN of the value. + */ + xsNMTOKEN getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNMTOKEN val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domCompiler_target(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domCompiler_target() {} + /** + * Overloaded assignment operator + */ + virtual domCompiler_target &operator=( const domCompiler_target &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domCompiler_options; + + typedef daeSmartRef domCompiler_optionsRef; + typedef daeTArray domCompiler_options_Array; + +/** + * A string containing command-line operations for the shader compiler. + */ + class domCompiler_options : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMPILER_OPTIONS; } + static daeInt ID() { return 736; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsString value of the text data of this element. + */ + xsString _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsString of the value. + */ + xsString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsString val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domCompiler_options(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domCompiler_options() {} + /** + * Overloaded assignment operator + */ + virtual domCompiler_options &operator=( const domCompiler_options &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domName; + + typedef daeSmartRef domNameRef; + typedef daeTArray domName_Array; + +/** + * The entry symbol for the shader function. + */ + class domName : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME; } + static daeInt ID() { return 737; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsNCName attrSource; + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a xsNCName of the source attribute. + */ + xsNCName getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domName(DAE& dae) : daeElement(dae), attrSource(), _value() {} + /** + * Destructor + */ + virtual ~domName() {} + /** + * Overloaded assignment operator + */ + virtual domName &operator=( const domName &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domBind; + + typedef daeSmartRef domBindRef; + typedef daeTArray domBind_Array; + +/** + * Binds values to uniform inputs of a shader. + */ + class domBind : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND; } + static daeInt ID() { return 738; } + virtual daeInt typeID() const { return ID(); } + public: + class domParam; + + typedef daeSmartRef domParamRef; + typedef daeTArray domParam_Array; + + class domParam : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } + static daeInt ID() { return 739; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute + xsString attrRef; + + + public: //Accessors and Mutators + /** + * Gets the ref attribute. + * @return Returns a xsString of the ref attribute. + */ + xsString getRef() const { return attrRef; } + /** + * Sets the ref attribute. + * @param atRef The new value for the ref attribute. + */ + void setRef( xsString atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } + + protected: + /** + * Constructor + */ + domParam(DAE& dae) : daeElement(dae), attrRef() {} + /** + * Destructor + */ + virtual ~domParam() {} + /** + * Overloaded assignment operator + */ + virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The identifier for a uniform input parameter to the shader (a formal function + * parameter or in-scope global) that will be bound to an external resource. + */ + xsNCName attrSymbol; + + protected: // Elements + domGlsl_param_typeRef elemGlsl_param_type; + domParamRef elemParam; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the symbol attribute. + * @return Returns a xsNCName of the symbol attribute. + */ + xsNCName getSymbol() const { return attrSymbol; } + /** + * Sets the symbol attribute. + * @param atSymbol The new value for the symbol attribute. + */ + void setSymbol( xsNCName atSymbol ) { *(daeStringRef*)&attrSymbol = atSymbol; _validAttributeArray[0] = true; } + + /** + * Gets the glsl_param_type element. + * @return a daeSmartRef to the glsl_param_type element. + */ + const domGlsl_param_typeRef getGlsl_param_type() const { return elemGlsl_param_type; } + /** + * Gets the param element. + * @return a daeSmartRef to the param element. + */ + const domParamRef getParam() const { return elemParam; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domBind(DAE& dae) : daeElement(dae), attrSymbol(), elemGlsl_param_type(), elemParam() {} + /** + * Destructor + */ + virtual ~domBind() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domBind &operator=( const domBind &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * In which pipeline stage this programmable shader is designed to execute, + * for example, VERTEX, FRAGMENT, etc. + */ + domGlsl_pipeline_stage attrStage; + + protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; +/** + * A string declaring which profile or platform the compiler is targeting + * this shader for. @see domCompiler_target + */ + domCompiler_targetRef elemCompiler_target; +/** + * A string containing command-line operations for the shader compiler. @see + * domCompiler_options + */ + domCompiler_optionsRef elemCompiler_options; +/** + * The entry symbol for the shader function. @see domName + */ + domNameRef elemName; +/** + * Binds values to uniform inputs of a shader. @see domBind + */ + domBind_Array elemBind_array; + + public: //Accessors and Mutators + /** + * Gets the stage attribute. + * @return Returns a domGlsl_pipeline_stage of the stage attribute. + */ + domGlsl_pipeline_stage getStage() const { return attrStage; } + /** + * Sets the stage attribute. + * @param atStage The new value for the stage attribute. + */ + void setStage( domGlsl_pipeline_stage atStage ) { attrStage = atStage; _validAttributeArray[0] = true; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the compiler_target element. + * @return a daeSmartRef to the compiler_target element. + */ + const domCompiler_targetRef getCompiler_target() const { return elemCompiler_target; } + /** + * Gets the compiler_options element. + * @return a daeSmartRef to the compiler_options element. + */ + const domCompiler_optionsRef getCompiler_options() const { return elemCompiler_options; } + /** + * Gets the name element. + * @return a daeSmartRef to the name element. + */ + const domNameRef getName() const { return elemName; } + /** + * Gets the bind element array. + * @return Returns a reference to the array of bind elements. + */ + domBind_Array &getBind_array() { return elemBind_array; } + /** + * Gets the bind element array. + * @return Returns a constant reference to the array of bind elements. + */ + const domBind_Array &getBind_array() const { return elemBind_array; } + protected: + /** + * Constructor + */ + domShader(DAE& dae) : daeElement(dae), attrStage(), elemAnnotate_array(), elemCompiler_target(), elemCompiler_options(), elemName(), elemBind_array() {} + /** + * Destructor + */ + virtual ~domShader() {} + /** + * Overloaded assignment operator + */ + virtual domShader &operator=( const domShader &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domFx_colortarget_common_Array elemColor_target_array; + domFx_depthtarget_common_Array elemDepth_target_array; + domFx_stenciltarget_common_Array elemStencil_target_array; + domFx_clearcolor_common_Array elemColor_clear_array; + domFx_cleardepth_common_Array elemDepth_clear_array; + domFx_clearstencil_common_Array elemStencil_clear_array; + domDrawRef elemDraw; + domGl_pipeline_settings_Array elemGl_pipeline_settings_array; +/** + * Declare and prepare a shader for execution in the rendering pipeline of + * a pass. @see domShader + */ + domShader_Array elemShader_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the color_target element array. + * @return Returns a reference to the array of color_target elements. + */ + domFx_colortarget_common_Array &getColor_target_array() { return elemColor_target_array; } + /** + * Gets the color_target element array. + * @return Returns a constant reference to the array of color_target elements. + */ + const domFx_colortarget_common_Array &getColor_target_array() const { return elemColor_target_array; } + /** + * Gets the depth_target element array. + * @return Returns a reference to the array of depth_target elements. + */ + domFx_depthtarget_common_Array &getDepth_target_array() { return elemDepth_target_array; } + /** + * Gets the depth_target element array. + * @return Returns a constant reference to the array of depth_target elements. + */ + const domFx_depthtarget_common_Array &getDepth_target_array() const { return elemDepth_target_array; } + /** + * Gets the stencil_target element array. + * @return Returns a reference to the array of stencil_target elements. + */ + domFx_stenciltarget_common_Array &getStencil_target_array() { return elemStencil_target_array; } + /** + * Gets the stencil_target element array. + * @return Returns a constant reference to the array of stencil_target elements. + */ + const domFx_stenciltarget_common_Array &getStencil_target_array() const { return elemStencil_target_array; } + /** + * Gets the color_clear element array. + * @return Returns a reference to the array of color_clear elements. + */ + domFx_clearcolor_common_Array &getColor_clear_array() { return elemColor_clear_array; } + /** + * Gets the color_clear element array. + * @return Returns a constant reference to the array of color_clear elements. + */ + const domFx_clearcolor_common_Array &getColor_clear_array() const { return elemColor_clear_array; } + /** + * Gets the depth_clear element array. + * @return Returns a reference to the array of depth_clear elements. + */ + domFx_cleardepth_common_Array &getDepth_clear_array() { return elemDepth_clear_array; } + /** + * Gets the depth_clear element array. + * @return Returns a constant reference to the array of depth_clear elements. + */ + const domFx_cleardepth_common_Array &getDepth_clear_array() const { return elemDepth_clear_array; } + /** + * Gets the stencil_clear element array. + * @return Returns a reference to the array of stencil_clear elements. + */ + domFx_clearstencil_common_Array &getStencil_clear_array() { return elemStencil_clear_array; } + /** + * Gets the stencil_clear element array. + * @return Returns a constant reference to the array of stencil_clear elements. + */ + const domFx_clearstencil_common_Array &getStencil_clear_array() const { return elemStencil_clear_array; } + /** + * Gets the draw element. + * @return a daeSmartRef to the draw element. + */ + const domDrawRef getDraw() const { return elemDraw; } + /** + * Gets the gl_pipeline_settings element array. + * @return Returns a reference to the array of gl_pipeline_settings elements. + */ + domGl_pipeline_settings_Array &getGl_pipeline_settings_array() { return elemGl_pipeline_settings_array; } + /** + * Gets the gl_pipeline_settings element array. + * @return Returns a constant reference to the array of gl_pipeline_settings elements. + */ + const domGl_pipeline_settings_Array &getGl_pipeline_settings_array() const { return elemGl_pipeline_settings_array; } + /** + * Gets the shader element array. + * @return Returns a reference to the array of shader elements. + */ + domShader_Array &getShader_array() { return elemShader_array; } + /** + * Gets the shader element array. + * @return Returns a constant reference to the array of shader elements. + */ + const domShader_Array &getShader_array() const { return elemShader_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domPass(DAE& dae) : daeElement(dae), attrSid(), elemAnnotate_array(), elemColor_target_array(), elemDepth_target_array(), elemStencil_target_array(), elemColor_clear_array(), elemDepth_clear_array(), elemStencil_clear_array(), elemDraw(), elemGl_pipeline_settings_array(), elemShader_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domPass() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domPass &operator=( const domPass &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Elements + domFx_annotate_common_Array elemAnnotate_array; + domFx_code_profile_Array elemCode_array; + domFx_include_common_Array elemInclude_array; + domImage_Array elemImage_array; + domGlsl_newparam_Array elemNewparam_array; + domGlsl_setparam_Array elemSetparam_array; +/** + * A static declaration of all the render states, shaders, and settings for + * one rendering pipeline. @see domPass + */ + domPass_Array elemPass_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } + + /** + * Gets the annotate element array. + * @return Returns a reference to the array of annotate elements. + */ + domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } + /** + * Gets the annotate element array. + * @return Returns a constant reference to the array of annotate elements. + */ + const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } + /** + * Gets the code element array. + * @return Returns a reference to the array of code elements. + */ + domFx_code_profile_Array &getCode_array() { return elemCode_array; } + /** + * Gets the code element array. + * @return Returns a constant reference to the array of code elements. + */ + const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } + /** + * Gets the include element array. + * @return Returns a reference to the array of include elements. + */ + domFx_include_common_Array &getInclude_array() { return elemInclude_array; } + /** + * Gets the include element array. + * @return Returns a constant reference to the array of include elements. + */ + const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domGlsl_newparam_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domGlsl_newparam_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the setparam element array. + * @return Returns a reference to the array of setparam elements. + */ + domGlsl_setparam_Array &getSetparam_array() { return elemSetparam_array; } + /** + * Gets the setparam element array. + * @return Returns a constant reference to the array of setparam elements. + */ + const domGlsl_setparam_Array &getSetparam_array() const { return elemSetparam_array; } + /** + * Gets the pass element array. + * @return Returns a reference to the array of pass elements. + */ + domPass_Array &getPass_array() { return elemPass_array; } + /** + * Gets the pass element array. + * @return Returns a constant reference to the array of pass elements. + */ + const domPass_Array &getPass_array() const { return elemPass_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAnnotate_array(), elemCode_array(), elemInclude_array(), elemImage_array(), elemNewparam_array(), elemSetparam_array(), elemPass_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTechnique() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; + +protected: // Elements + domAssetRef elemAsset; + domFx_code_profile_Array elemCode_array; + domFx_include_common_Array elemInclude_array; + domImage_Array elemImage_array; + domGlsl_newparam_Array elemNewparam_array; +/** + * Holds a description of the textures, samplers, shaders, parameters, and + * passes necessary for rendering this effect using one method. @see domTechnique + */ + domTechnique_Array elemTechnique_array; + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the code element array. + * @return Returns a reference to the array of code elements. + */ + domFx_code_profile_Array &getCode_array() { return elemCode_array; } + /** + * Gets the code element array. + * @return Returns a constant reference to the array of code elements. + */ + const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } + /** + * Gets the include element array. + * @return Returns a reference to the array of include elements. + */ + domFx_include_common_Array &getInclude_array() { return elemInclude_array; } + /** + * Gets the include element array. + * @return Returns a constant reference to the array of include elements. + */ + const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } + /** + * Gets the image element array. + * @return Returns a reference to the array of image elements. + */ + domImage_Array &getImage_array() { return elemImage_array; } + /** + * Gets the image element array. + * @return Returns a constant reference to the array of image elements. + */ + const domImage_Array &getImage_array() const { return elemImage_array; } + /** + * Gets the newparam element array. + * @return Returns a reference to the array of newparam elements. + */ + domGlsl_newparam_Array &getNewparam_array() { return elemNewparam_array; } + /** + * Gets the newparam element array. + * @return Returns a constant reference to the array of newparam elements. + */ + const domGlsl_newparam_Array &getNewparam_array() const { return elemNewparam_array; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domProfile_GLSL(DAE& dae) : domFx_profile_abstract(dae), attrId(), elemAsset(), elemCode_array(), elemInclude_array(), elemImage_array(), elemNewparam_array(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domProfile_GLSL() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domProfile_GLSL &operator=( const domProfile_GLSL &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domRigid_body.h b/include/1.4/dom/domRigid_body.h new file mode 100644 index 0000000..4a0fcef --- /dev/null +++ b/include/1.4/dom/domRigid_body.h @@ -0,0 +1,792 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domRigid_body_h__ +#define __domRigid_body_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * This element allows for describing simulated bodies that do not deform. + * These bodies may or may not be connected by constraints (hinge, ball-joint + * etc.). Rigid-bodies, constraints etc. are encapsulated in physics_model + * elements to allow for instantiating complex models. + */ +class domRigid_body : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RIGID_BODY; } + static daeInt ID() { return 795; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the rigid_body information for the + * common profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 796; } + virtual daeInt typeID() const { return ID(); } + public: + class domDynamic; + + typedef daeSmartRef domDynamicRef; + typedef daeTArray domDynamic_Array; + +/** + * If false, the rigid_body is not moveable + */ + class domDynamic : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DYNAMIC; } + static daeInt ID() { return 797; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Value + /** + * The domBool value of the text data of this element. + */ + domBool _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return a domBool of the value. + */ + domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domDynamic(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domDynamic() {} + /** + * Overloaded assignment operator + */ + virtual domDynamic &operator=( const domDynamic &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domMass_frame; + + typedef daeSmartRef domMass_frameRef; + typedef daeTArray domMass_frame_Array; + +/** + * Defines the center and orientation of mass of the rigid-body relative to + * the local origin of the “root” shape.This makes the off-diagonal elements + * of the inertia tensor (products of inertia) all 0 and allows us to just + * store the diagonal elements (moments of inertia). + */ + class domMass_frame : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MASS_FRAME; } + static daeInt ID() { return 798; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements + domTranslate_Array elemTranslate_array; + domRotate_Array elemRotate_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the translate element array. + * @return Returns a reference to the array of translate elements. + */ + domTranslate_Array &getTranslate_array() { return elemTranslate_array; } + /** + * Gets the translate element array. + * @return Returns a constant reference to the array of translate elements. + */ + const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } + /** + * Gets the rotate element array. + * @return Returns a reference to the array of rotate elements. + */ + domRotate_Array &getRotate_array() { return elemRotate_array; } + /** + * Gets the rotate element array. + * @return Returns a constant reference to the array of rotate elements. + */ + const domRotate_Array &getRotate_array() const { return elemRotate_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domMass_frame(DAE& dae) : daeElement(dae), elemTranslate_array(), elemRotate_array() {} + /** + * Destructor + */ + virtual ~domMass_frame() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domMass_frame &operator=( const domMass_frame &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domShape; + + typedef daeSmartRef domShapeRef; + typedef daeTArray domShape_Array; + +/** + * This element allows for describing components of a rigid_body. + */ + class domShape : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHAPE; } + static daeInt ID() { return 799; } + virtual daeInt typeID() const { return ID(); } + public: + class domHollow; + + typedef daeSmartRef domHollowRef; + typedef daeTArray domHollow_Array; + +/** + * If true, the mass is distributed along the surface of the shape + */ + class domHollow : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HOLLOW; } + static daeInt ID() { return 800; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Value + /** + * The domBool value of the text data of this element. + */ + domBool _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return a domBool of the value. + */ + domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHollow(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domHollow() {} + /** + * Overloaded assignment operator + */ + virtual domHollow &operator=( const domHollow &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * If true, the mass is distributed along the surface of the shape @see domHollow + */ + domHollowRef elemHollow; +/** + * The mass of the shape. @see domMass + */ + domTargetableFloatRef elemMass; +/** + * The density of the shape. @see domDensity + */ + domTargetableFloatRef elemDensity; +/** + * References a physics_material for the shape. @see domInstance_physics_material + */ + domInstance_physics_materialRef elemInstance_physics_material; +/** + * Defines a physics_material for the shape. @see domPhysics_material + */ + domPhysics_materialRef elemPhysics_material; +/** + * Instances a geometry to use to define this shape. @see domInstance_geometry + */ + domInstance_geometryRef elemInstance_geometry; +/** + * Defines a plane to use for this shape. @see domPlane + */ + domPlaneRef elemPlane; +/** + * Defines a box to use for this shape. @see domBox + */ + domBoxRef elemBox; +/** + * Defines a sphere to use for this shape. @see domSphere + */ + domSphereRef elemSphere; +/** + * Defines a cyliner to use for this shape. @see domCylinder + */ + domCylinderRef elemCylinder; +/** + * Defines a tapered_cylinder to use for this shape. @see domTapered_cylinder + */ + domTapered_cylinderRef elemTapered_cylinder; +/** + * Defines a capsule to use for this shape. @see domCapsule + */ + domCapsuleRef elemCapsule; +/** + * Defines a tapered_capsule to use for this shape. @see domTapered_capsule + */ + domTapered_capsuleRef elemTapered_capsule; +/** + * Allows a tranformation for the shape. @see domTranslate + */ + domTranslate_Array elemTranslate_array; +/** + * Allows a tranformation for the shape. @see domRotate + */ + domRotate_Array elemRotate_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the hollow element. + * @return a daeSmartRef to the hollow element. + */ + const domHollowRef getHollow() const { return elemHollow; } + /** + * Gets the mass element. + * @return a daeSmartRef to the mass element. + */ + const domTargetableFloatRef getMass() const { return elemMass; } + /** + * Gets the density element. + * @return a daeSmartRef to the density element. + */ + const domTargetableFloatRef getDensity() const { return elemDensity; } + /** + * Gets the instance_physics_material element. + * @return a daeSmartRef to the instance_physics_material element. + */ + const domInstance_physics_materialRef getInstance_physics_material() const { return elemInstance_physics_material; } + /** + * Gets the physics_material element. + * @return a daeSmartRef to the physics_material element. + */ + const domPhysics_materialRef getPhysics_material() const { return elemPhysics_material; } + /** + * Gets the instance_geometry element. + * @return a daeSmartRef to the instance_geometry element. + */ + const domInstance_geometryRef getInstance_geometry() const { return elemInstance_geometry; } + /** + * Gets the plane element. + * @return a daeSmartRef to the plane element. + */ + const domPlaneRef getPlane() const { return elemPlane; } + /** + * Gets the box element. + * @return a daeSmartRef to the box element. + */ + const domBoxRef getBox() const { return elemBox; } + /** + * Gets the sphere element. + * @return a daeSmartRef to the sphere element. + */ + const domSphereRef getSphere() const { return elemSphere; } + /** + * Gets the cylinder element. + * @return a daeSmartRef to the cylinder element. + */ + const domCylinderRef getCylinder() const { return elemCylinder; } + /** + * Gets the tapered_cylinder element. + * @return a daeSmartRef to the tapered_cylinder element. + */ + const domTapered_cylinderRef getTapered_cylinder() const { return elemTapered_cylinder; } + /** + * Gets the capsule element. + * @return a daeSmartRef to the capsule element. + */ + const domCapsuleRef getCapsule() const { return elemCapsule; } + /** + * Gets the tapered_capsule element. + * @return a daeSmartRef to the tapered_capsule element. + */ + const domTapered_capsuleRef getTapered_capsule() const { return elemTapered_capsule; } + /** + * Gets the translate element array. + * @return Returns a reference to the array of translate elements. + */ + domTranslate_Array &getTranslate_array() { return elemTranslate_array; } + /** + * Gets the translate element array. + * @return Returns a constant reference to the array of translate elements. + */ + const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } + /** + * Gets the rotate element array. + * @return Returns a reference to the array of rotate elements. + */ + domRotate_Array &getRotate_array() { return elemRotate_array; } + /** + * Gets the rotate element array. + * @return Returns a constant reference to the array of rotate elements. + */ + const domRotate_Array &getRotate_array() const { return elemRotate_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domShape(DAE& dae) : daeElement(dae), elemHollow(), elemMass(), elemDensity(), elemInstance_physics_material(), elemPhysics_material(), elemInstance_geometry(), elemPlane(), elemBox(), elemSphere(), elemCylinder(), elemTapered_cylinder(), elemCapsule(), elemTapered_capsule(), elemTranslate_array(), elemRotate_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domShape() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domShape &operator=( const domShape &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * If false, the rigid_body is not moveable @see domDynamic + */ + domDynamicRef elemDynamic; +/** + * The total mass of the rigid-body @see domMass + */ + domTargetableFloatRef elemMass; +/** + * Defines the center and orientation of mass of the rigid-body relative to + * the local origin of the “root” shape.This makes the off-diagonal elements + * of the inertia tensor (products of inertia) all 0 and allows us to just + * store the diagonal elements (moments of inertia). @see domMass_frame + */ + domMass_frameRef elemMass_frame; +/** + * float3 – The diagonal elements of the inertia tensor (moments of inertia), + * which is represented in the local frame of the center of mass. See above. + * @see domInertia + */ + domTargetableFloat3Ref elemInertia; +/** + * References a physics_material for the rigid_body. @see domInstance_physics_material + */ + domInstance_physics_materialRef elemInstance_physics_material; +/** + * Defines a physics_material for the rigid_body. @see domPhysics_material + */ + domPhysics_materialRef elemPhysics_material; +/** + * This element allows for describing components of a rigid_body. @see domShape + */ + domShape_Array elemShape_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the dynamic element. + * @return a daeSmartRef to the dynamic element. + */ + const domDynamicRef getDynamic() const { return elemDynamic; } + /** + * Gets the mass element. + * @return a daeSmartRef to the mass element. + */ + const domTargetableFloatRef getMass() const { return elemMass; } + /** + * Gets the mass_frame element. + * @return a daeSmartRef to the mass_frame element. + */ + const domMass_frameRef getMass_frame() const { return elemMass_frame; } + /** + * Gets the inertia element. + * @return a daeSmartRef to the inertia element. + */ + const domTargetableFloat3Ref getInertia() const { return elemInertia; } + /** + * Gets the instance_physics_material element. + * @return a daeSmartRef to the instance_physics_material element. + */ + const domInstance_physics_materialRef getInstance_physics_material() const { return elemInstance_physics_material; } + /** + * Gets the physics_material element. + * @return a daeSmartRef to the physics_material element. + */ + const domPhysics_materialRef getPhysics_material() const { return elemPhysics_material; } + /** + * Gets the shape element array. + * @return Returns a reference to the array of shape elements. + */ + domShape_Array &getShape_array() { return elemShape_array; } + /** + * Gets the shape element array. + * @return Returns a constant reference to the array of shape elements. + */ + const domShape_Array &getShape_array() const { return elemShape_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemDynamic(), elemMass(), elemMass_frame(), elemInertia(), elemInstance_physics_material(), elemPhysics_material(), elemShape_array() {} + /** + * Destructor + */ + virtual ~domTechnique_common() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The technique_common element specifies the rigid_body information for the + * common profile which all COLLADA implementations need to support. @see + * domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domRigid_body(DAE& dae) : daeElement(dae), attrSid(), attrName(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domRigid_body() {} + /** + * Overloaded assignment operator + */ + virtual domRigid_body &operator=( const domRigid_body &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domRigid_constraint.h b/include/1.4/dom/domRigid_constraint.h new file mode 100644 index 0000000..c6f0e8f --- /dev/null +++ b/include/1.4/dom/domRigid_constraint.h @@ -0,0 +1,1107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domRigid_constraint_h__ +#define __domRigid_constraint_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * This element allows for connecting components, such as rigid_body into + * complex physics models with moveable parts. + */ +class domRigid_constraint : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RIGID_CONSTRAINT; } + static daeInt ID() { return 801; } + virtual daeInt typeID() const { return ID(); } +public: + class domRef_attachment; + + typedef daeSmartRef domRef_attachmentRef; + typedef daeTArray domRef_attachment_Array; + +/** + * Defines the attachment (to a rigid_body or a node) to be used as the reference-frame. + */ + class domRef_attachment : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REF_ATTACHMENT; } + static daeInt ID() { return 802; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The “rigid_body” attribute is a relative reference to a rigid-body + * within the same physics_model. + */ + xsAnyURI attrRigid_body; + + protected: // Elements +/** + * Allows you to "position" the attachment point. @see domTranslate + */ + domTranslate_Array elemTranslate_array; +/** + * Allows you to "position" the attachment point. @see domRotate + */ + domRotate_Array elemRotate_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the rigid_body attribute. + * @return Returns a xsAnyURI reference of the rigid_body attribute. + */ + xsAnyURI &getRigid_body() { return attrRigid_body; } + /** + * Gets the rigid_body attribute. + * @return Returns a constant xsAnyURI reference of the rigid_body attribute. + */ + const xsAnyURI &getRigid_body() const { return attrRigid_body; } + /** + * Sets the rigid_body attribute. + * @param atRigid_body The new value for the rigid_body attribute. + */ + void setRigid_body( const xsAnyURI &atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; } + /** + * Sets the rigid_body attribute. + * @param atRigid_body The new value for the rigid_body attribute. + */ + void setRigid_body( xsString atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; } + + /** + * Gets the translate element array. + * @return Returns a reference to the array of translate elements. + */ + domTranslate_Array &getTranslate_array() { return elemTranslate_array; } + /** + * Gets the translate element array. + * @return Returns a constant reference to the array of translate elements. + */ + const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } + /** + * Gets the rotate element array. + * @return Returns a reference to the array of rotate elements. + */ + domRotate_Array &getRotate_array() { return elemRotate_array; } + /** + * Gets the rotate element array. + * @return Returns a constant reference to the array of rotate elements. + */ + const domRotate_Array &getRotate_array() const { return elemRotate_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domRef_attachment(DAE& dae) : daeElement(dae), attrRigid_body(dae, *this), elemTranslate_array(), elemRotate_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domRef_attachment() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domRef_attachment &operator=( const domRef_attachment &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domAttachment; + + typedef daeSmartRef domAttachmentRef; + typedef daeTArray domAttachment_Array; + +/** + * Defines an attachment to a rigid-body or a node. + */ + class domAttachment : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ATTACHMENT; } + static daeInt ID() { return 803; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The “rigid_body” attribute is a relative reference to a rigid-body + * within the same physics_model. + */ + xsAnyURI attrRigid_body; + + protected: // Elements +/** + * Allows you to "position" the attachment point. @see domTranslate + */ + domTranslate_Array elemTranslate_array; +/** + * Allows you to "position" the attachment point. @see domRotate + */ + domRotate_Array elemRotate_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + + public: //Accessors and Mutators + /** + * Gets the rigid_body attribute. + * @return Returns a xsAnyURI reference of the rigid_body attribute. + */ + xsAnyURI &getRigid_body() { return attrRigid_body; } + /** + * Gets the rigid_body attribute. + * @return Returns a constant xsAnyURI reference of the rigid_body attribute. + */ + const xsAnyURI &getRigid_body() const { return attrRigid_body; } + /** + * Sets the rigid_body attribute. + * @param atRigid_body The new value for the rigid_body attribute. + */ + void setRigid_body( const xsAnyURI &atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; } + /** + * Sets the rigid_body attribute. + * @param atRigid_body The new value for the rigid_body attribute. + */ + void setRigid_body( xsString atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; } + + /** + * Gets the translate element array. + * @return Returns a reference to the array of translate elements. + */ + domTranslate_Array &getTranslate_array() { return elemTranslate_array; } + /** + * Gets the translate element array. + * @return Returns a constant reference to the array of translate elements. + */ + const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; } + /** + * Gets the rotate element array. + * @return Returns a reference to the array of rotate elements. + */ + domRotate_Array &getRotate_array() { return elemRotate_array; } + /** + * Gets the rotate element array. + * @return Returns a constant reference to the array of rotate elements. + */ + const domRotate_Array &getRotate_array() const { return elemRotate_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + protected: + /** + * Constructor + */ + domAttachment(DAE& dae) : daeElement(dae), attrRigid_body(dae, *this), elemTranslate_array(), elemRotate_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domAttachment() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domAttachment &operator=( const domAttachment &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique_common element specifies the rigid_constraint information + * for the common profile which all COLLADA implementations need to support. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 804; } + virtual daeInt typeID() const { return ID(); } + public: + class domEnabled; + + typedef daeSmartRef domEnabledRef; + typedef daeTArray domEnabled_Array; + +/** + * If false, the constraint doesn’t exert any force or influence on the + * rigid bodies. + */ + class domEnabled : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ENABLED; } + static daeInt ID() { return 805; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Value + /** + * The domBool value of the text data of this element. + */ + domBool _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return a domBool of the value. + */ + domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domEnabled(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domEnabled() {} + /** + * Overloaded assignment operator + */ + virtual domEnabled &operator=( const domEnabled &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domInterpenetrate; + + typedef daeSmartRef domInterpenetrateRef; + typedef daeTArray domInterpenetrate_Array; + +/** + * Indicates whether the attached rigid bodies may inter-penetrate. + */ + class domInterpenetrate : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INTERPENETRATE; } + static daeInt ID() { return 806; } + virtual daeInt typeID() const { return ID(); } + protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + + protected: // Value + /** + * The domBool value of the text data of this element. + */ + domBool _value; + + public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the value of this element. + * @return a domBool of the value. + */ + domBool getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domBool val ) { _value = val; } + + protected: + /** + * Constructor + */ + domInterpenetrate(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domInterpenetrate() {} + /** + * Overloaded assignment operator + */ + virtual domInterpenetrate &operator=( const domInterpenetrate &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLimits; + + typedef daeSmartRef domLimitsRef; + typedef daeTArray domLimits_Array; + +/** + * The limits element provides a flexible way to specify the constraint limits + * (degrees of freedom and ranges). + */ + class domLimits : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIMITS; } + static daeInt ID() { return 807; } + virtual daeInt typeID() const { return ID(); } + public: + class domSwing_cone_and_twist; + + typedef daeSmartRef domSwing_cone_and_twistRef; + typedef daeTArray domSwing_cone_and_twist_Array; + +/** + * The swing_cone_and_twist element describes the angular limits along each + * rotation axis in degrees. The the X and Y limits describe a “swing cone” + * and the Z limits describe the “twist angle” range + */ + class domSwing_cone_and_twist : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SWING_CONE_AND_TWIST; } + static daeInt ID() { return 808; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The minimum values for the limit. @see domMin + */ + domTargetableFloat3Ref elemMin; +/** + * The maximum values for the limit. @see domMax + */ + domTargetableFloat3Ref elemMax; + + public: //Accessors and Mutators + /** + * Gets the min element. + * @return a daeSmartRef to the min element. + */ + const domTargetableFloat3Ref getMin() const { return elemMin; } + /** + * Gets the max element. + * @return a daeSmartRef to the max element. + */ + const domTargetableFloat3Ref getMax() const { return elemMax; } + protected: + /** + * Constructor + */ + domSwing_cone_and_twist(DAE& dae) : daeElement(dae), elemMin(), elemMax() {} + /** + * Destructor + */ + virtual ~domSwing_cone_and_twist() {} + /** + * Overloaded assignment operator + */ + virtual domSwing_cone_and_twist &operator=( const domSwing_cone_and_twist &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLinear; + + typedef daeSmartRef domLinearRef; + typedef daeTArray domLinear_Array; + +/** + * The linear element describes linear (translational) limits along each axis. + */ + class domLinear : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINEAR; } + static daeInt ID() { return 809; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The minimum values for the limit. @see domMin + */ + domTargetableFloat3Ref elemMin; +/** + * The maximum values for the limit. @see domMax + */ + domTargetableFloat3Ref elemMax; + + public: //Accessors and Mutators + /** + * Gets the min element. + * @return a daeSmartRef to the min element. + */ + const domTargetableFloat3Ref getMin() const { return elemMin; } + /** + * Gets the max element. + * @return a daeSmartRef to the max element. + */ + const domTargetableFloat3Ref getMax() const { return elemMax; } + protected: + /** + * Constructor + */ + domLinear(DAE& dae) : daeElement(dae), elemMin(), elemMax() {} + /** + * Destructor + */ + virtual ~domLinear() {} + /** + * Overloaded assignment operator + */ + virtual domLinear &operator=( const domLinear &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The swing_cone_and_twist element describes the angular limits along each + * rotation axis in degrees. The the X and Y limits describe a “swing cone” + * and the Z limits describe the “twist angle” range @see domSwing_cone_and_twist + */ + domSwing_cone_and_twistRef elemSwing_cone_and_twist; +/** + * The linear element describes linear (translational) limits along each axis. + * @see domLinear + */ + domLinearRef elemLinear; + + public: //Accessors and Mutators + /** + * Gets the swing_cone_and_twist element. + * @return a daeSmartRef to the swing_cone_and_twist element. + */ + const domSwing_cone_and_twistRef getSwing_cone_and_twist() const { return elemSwing_cone_and_twist; } + /** + * Gets the linear element. + * @return a daeSmartRef to the linear element. + */ + const domLinearRef getLinear() const { return elemLinear; } + protected: + /** + * Constructor + */ + domLimits(DAE& dae) : daeElement(dae), elemSwing_cone_and_twist(), elemLinear() {} + /** + * Destructor + */ + virtual ~domLimits() {} + /** + * Overloaded assignment operator + */ + virtual domLimits &operator=( const domLimits &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domSpring; + + typedef daeSmartRef domSpringRef; + typedef daeTArray domSpring_Array; + +/** + * Spring, based on distance (“LINEAR”) or angle (“ANGULAR”). + */ + class domSpring : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SPRING; } + static daeInt ID() { return 810; } + virtual daeInt typeID() const { return ID(); } + public: + class domAngular; + + typedef daeSmartRef domAngularRef; + typedef daeTArray domAngular_Array; + +/** + * The angular spring properties. + */ + class domAngular : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANGULAR; } + static daeInt ID() { return 811; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The stiffness (also called spring coefficient) has units of force/angle + * in degrees. @see domStiffness + */ + domTargetableFloatRef elemStiffness; +/** + * The spring damping coefficient. @see domDamping + */ + domTargetableFloatRef elemDamping; +/** + * The spring's target or resting distance. @see domTarget_value + */ + domTargetableFloatRef elemTarget_value; + + public: //Accessors and Mutators + /** + * Gets the stiffness element. + * @return a daeSmartRef to the stiffness element. + */ + const domTargetableFloatRef getStiffness() const { return elemStiffness; } + /** + * Gets the damping element. + * @return a daeSmartRef to the damping element. + */ + const domTargetableFloatRef getDamping() const { return elemDamping; } + /** + * Gets the target_value element. + * @return a daeSmartRef to the target_value element. + */ + const domTargetableFloatRef getTarget_value() const { return elemTarget_value; } + protected: + /** + * Constructor + */ + domAngular(DAE& dae) : daeElement(dae), elemStiffness(), elemDamping(), elemTarget_value() {} + /** + * Destructor + */ + virtual ~domAngular() {} + /** + * Overloaded assignment operator + */ + virtual domAngular &operator=( const domAngular &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domLinear; + + typedef daeSmartRef domLinearRef; + typedef daeTArray domLinear_Array; + +/** + * The linear spring properties. + */ + class domLinear : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINEAR; } + static daeInt ID() { return 812; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The stiffness (also called spring coefficient) has units of force/distance. + * @see domStiffness + */ + domTargetableFloatRef elemStiffness; +/** + * The spring damping coefficient. @see domDamping + */ + domTargetableFloatRef elemDamping; +/** + * The spring's target or resting distance. @see domTarget_value + */ + domTargetableFloatRef elemTarget_value; + + public: //Accessors and Mutators + /** + * Gets the stiffness element. + * @return a daeSmartRef to the stiffness element. + */ + const domTargetableFloatRef getStiffness() const { return elemStiffness; } + /** + * Gets the damping element. + * @return a daeSmartRef to the damping element. + */ + const domTargetableFloatRef getDamping() const { return elemDamping; } + /** + * Gets the target_value element. + * @return a daeSmartRef to the target_value element. + */ + const domTargetableFloatRef getTarget_value() const { return elemTarget_value; } + protected: + /** + * Constructor + */ + domLinear(DAE& dae) : daeElement(dae), elemStiffness(), elemDamping(), elemTarget_value() {} + /** + * Destructor + */ + virtual ~domLinear() {} + /** + * Overloaded assignment operator + */ + virtual domLinear &operator=( const domLinear &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * The angular spring properties. @see domAngular + */ + domAngularRef elemAngular; +/** + * The linear spring properties. @see domLinear + */ + domLinearRef elemLinear; + + public: //Accessors and Mutators + /** + * Gets the angular element. + * @return a daeSmartRef to the angular element. + */ + const domAngularRef getAngular() const { return elemAngular; } + /** + * Gets the linear element. + * @return a daeSmartRef to the linear element. + */ + const domLinearRef getLinear() const { return elemLinear; } + protected: + /** + * Constructor + */ + domSpring(DAE& dae) : daeElement(dae), elemAngular(), elemLinear() {} + /** + * Destructor + */ + virtual ~domSpring() {} + /** + * Overloaded assignment operator + */ + virtual domSpring &operator=( const domSpring &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + + protected: // Elements +/** + * If false, the constraint doesn’t exert any force or influence on the + * rigid bodies. @see domEnabled + */ + domEnabledRef elemEnabled; +/** + * Indicates whether the attached rigid bodies may inter-penetrate. @see domInterpenetrate + */ + domInterpenetrateRef elemInterpenetrate; +/** + * The limits element provides a flexible way to specify the constraint limits + * (degrees of freedom and ranges). @see domLimits + */ + domLimitsRef elemLimits; +/** + * Spring, based on distance (“LINEAR”) or angle (“ANGULAR”). @see + * domSpring + */ + domSpringRef elemSpring; + + public: //Accessors and Mutators + /** + * Gets the enabled element. + * @return a daeSmartRef to the enabled element. + */ + const domEnabledRef getEnabled() const { return elemEnabled; } + /** + * Gets the interpenetrate element. + * @return a daeSmartRef to the interpenetrate element. + */ + const domInterpenetrateRef getInterpenetrate() const { return elemInterpenetrate; } + /** + * Gets the limits element. + * @return a daeSmartRef to the limits element. + */ + const domLimitsRef getLimits() const { return elemLimits; } + /** + * Gets the spring element. + * @return a daeSmartRef to the spring element. + */ + const domSpringRef getSpring() const { return elemSpring; } + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemEnabled(), elemInterpenetrate(), elemLimits(), elemSpring() {} + /** + * Destructor + */ + virtual ~domTechnique_common() {} + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * Defines the attachment (to a rigid_body or a node) to be used as the reference-frame. + * @see domRef_attachment + */ + domRef_attachmentRef elemRef_attachment; +/** + * Defines an attachment to a rigid-body or a node. @see domAttachment + */ + domAttachmentRef elemAttachment; +/** + * The technique_common element specifies the rigid_constraint information + * for the common profile which all COLLADA implementations need to support. + * @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the ref_attachment element. + * @return a daeSmartRef to the ref_attachment element. + */ + const domRef_attachmentRef getRef_attachment() const { return elemRef_attachment; } + /** + * Gets the attachment element. + * @return a daeSmartRef to the attachment element. + */ + const domAttachmentRef getAttachment() const { return elemAttachment; } + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domRigid_constraint(DAE& dae) : daeElement(dae), attrSid(), attrName(), elemRef_attachment(), elemAttachment(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domRigid_constraint() {} + /** + * Overloaded assignment operator + */ + virtual domRigid_constraint &operator=( const domRigid_constraint &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domRotate.h b/include/1.4/dom/domRotate.h new file mode 100644 index 0000000..13481fd --- /dev/null +++ b/include/1.4/dom/domRotate.h @@ -0,0 +1,104 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domRotate_h__ +#define __domRotate_h__ + +#include +#include +#include + +class DAE; + +/** + * The rotate element contains an angle and a mathematical vector that represents + * the axis of rotation. + */ +class domRotate : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ROTATE; } + static daeInt ID() { return 631; } + virtual daeInt typeID() const { return ID(); } +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Value + /** + * The domFloat4 value of the text data of this element. + */ + domFloat4 _value; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the _value array. + * @return Returns a domFloat4 reference of the _value array. + */ + domFloat4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat4 reference of the _value array. + */ + const domFloat4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat4 &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domRotate(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domRotate() {} + /** + * Overloaded assignment operator + */ + virtual domRotate &operator=( const domRotate &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domSampler.h b/include/1.4/dom/domSampler.h new file mode 100644 index 0000000..56b32c2 --- /dev/null +++ b/include/1.4/dom/domSampler.h @@ -0,0 +1,103 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domSampler_h__ +#define __domSampler_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The sampler element declares an N-dimensional function used for animation. + * Animation function curves are represented by 1-D sampler elements in COLLADA. + * The sampler defines sampling points and how to interpolate between them. + */ +class domSampler : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SAMPLER; } + static daeInt ID() { return 654; } + virtual daeInt typeID() const { return ID(); } +protected: // Attribute +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; + +protected: // Element +/** + * The input element must occur at least one time. These inputs are local + * inputs. @see domInput + */ + domInputLocal_Array elemInput_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocal_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocal_Array &getInput_array() const { return elemInput_array; } +protected: + /** + * Constructor + */ + domSampler(DAE& dae) : daeElement(dae), attrId(), elemInput_array() {} + /** + * Destructor + */ + virtual ~domSampler() {} + /** + * Overloaded assignment operator + */ + virtual domSampler &operator=( const domSampler &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domScale.h b/include/1.4/dom/domScale.h new file mode 100644 index 0000000..130dfd0 --- /dev/null +++ b/include/1.4/dom/domScale.h @@ -0,0 +1,75 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domScale_h__ +#define __domScale_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The scale element contains a mathematical vector that represents the relative + * proportions of the X, Y and Z axes of a coordinated system. + */ +class domScale : public daeElement, public domTargetableFloat3_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SCALE; } + static daeInt ID() { return 632; } + virtual daeInt typeID() const { return ID(); } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domScale(DAE& dae) : daeElement(dae), domTargetableFloat3_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domScale() {} + /** + * Overloaded assignment operator + */ + virtual domScale &operator=( const domScale &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domSkew.h b/include/1.4/dom/domSkew.h new file mode 100644 index 0000000..5160432 --- /dev/null +++ b/include/1.4/dom/domSkew.h @@ -0,0 +1,104 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domSkew_h__ +#define __domSkew_h__ + +#include +#include +#include + +class DAE; + +/** + * The skew element contains an angle and two mathematical vectors that represent + * the axis of rotation and the axis of translation. + */ +class domSkew : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SKEW; } + static daeInt ID() { return 633; } + virtual daeInt typeID() const { return ID(); } +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Value + /** + * The domFloat7 value of the text data of this element. + */ + domFloat7 _value; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + + /** + * Gets the _value array. + * @return Returns a domFloat7 reference of the _value array. + */ + domFloat7 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat7 reference of the _value array. + */ + const domFloat7 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat7 &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domSkew(DAE& dae) : daeElement(dae), attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domSkew() {} + /** + * Overloaded assignment operator + */ + virtual domSkew &operator=( const domSkew &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domSkin.h b/include/1.4/dom/domSkin.h new file mode 100644 index 0000000..a129d27 --- /dev/null +++ b/include/1.4/dom/domSkin.h @@ -0,0 +1,559 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domSkin_h__ +#define __domSkin_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * The skin element contains vertex and primitive information sufficient to + * describe blend-weight skinning. + */ +class domSkin : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SKIN; } + static daeInt ID() { return 656; } + virtual daeInt typeID() const { return ID(); } +public: + class domBind_shape_matrix; + + typedef daeSmartRef domBind_shape_matrixRef; + typedef daeTArray domBind_shape_matrix_Array; + +/** + * This provides extra information about the position and orientation of the + * base mesh before binding. If bind_shape_matrix is not specified then an + * identity matrix may be used as the bind_shape_matrix. The bind_shape_matrix + * element may occur zero or one times. + */ + class domBind_shape_matrix : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_SHAPE_MATRIX; } + static daeInt ID() { return 657; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat4x4 value of the text data of this element. + */ + domFloat4x4 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat4x4 reference of the _value array. + */ + domFloat4x4 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat4x4 reference of the _value array. + */ + const domFloat4x4 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat4x4 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domBind_shape_matrix(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domBind_shape_matrix() {} + /** + * Overloaded assignment operator + */ + virtual domBind_shape_matrix &operator=( const domBind_shape_matrix &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domJoints; + + typedef daeSmartRef domJointsRef; + typedef daeTArray domJoints_Array; + +/** + * The joints element associates joint, or skeleton, nodes with attribute + * data. In COLLADA, this is specified by the inverse bind matrix of each + * joint (influence) in the skeleton. + */ + class domJoints : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::JOINTS; } + static daeInt ID() { return 658; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The input element must occur at least twice. These inputs are local inputs. + * @see domInput + */ + domInputLocal_Array elemInput_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + + public: //Accessors and Mutators + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocal_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocal_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + protected: + /** + * Constructor + */ + domJoints(DAE& dae) : daeElement(dae), elemInput_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domJoints() {} + /** + * Overloaded assignment operator + */ + virtual domJoints &operator=( const domJoints &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domVertex_weights; + + typedef daeSmartRef domVertex_weightsRef; + typedef daeTArray domVertex_weights_Array; + +/** + * The vertex_weights element associates a set of joint-weight pairs with + * each vertex in the base mesh. + */ + class domVertex_weights : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VERTEX_WEIGHTS; } + static daeInt ID() { return 659; } + virtual daeInt typeID() const { return ID(); } + public: + class domVcount; + + typedef daeSmartRef domVcountRef; + typedef daeTArray domVcount_Array; + +/** + * The vcount element contains a list of integers describing the number of + * influences for each vertex. The vcount element may occur once. + */ + class domVcount : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VCOUNT; } + static daeInt ID() { return 660; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domListOfUInts value of the text data of this element. + */ + domListOfUInts _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domListOfUInts reference of the _value array. + */ + domListOfUInts &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfUInts reference of the _value array. + */ + const domListOfUInts &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfUInts &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domVcount(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domVcount() {} + /** + * Overloaded assignment operator + */ + virtual domVcount &operator=( const domVcount &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domV; + + typedef daeSmartRef domVRef; + typedef daeTArray domV_Array; + +/** + * The v element describes which bones and attributes are associated with + * each vertex. An index of –1 into the array of joints refers to the + * bind shape. Weights should be normalized before use. The v element must + * occur zero or one times. + */ + class domV : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::V; } + static daeInt ID() { return 661; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domListOfInts value of the text data of this element. + */ + domListOfInts _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domListOfInts reference of the _value array. + */ + domListOfInts &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domListOfInts reference of the _value array. + */ + const domListOfInts &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domListOfInts &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domV(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domV() {} + /** + * Overloaded assignment operator + */ + virtual domV &operator=( const domV &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The count attribute describes the number of vertices in the base mesh. + * Required element. + */ + domUint attrCount; + + protected: // Elements +/** + * The input element must occur at least twice. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The vcount element contains a list of integers describing the number of + * influences for each vertex. The vcount element may occur once. @see domVcount + */ + domVcountRef elemVcount; +/** + * The v element describes which bones and attributes are associated with + * each vertex. An index of –1 into the array of joints refers to the + * bind shape. Weights should be normalized before use. The v element must + * occur zero or one times. @see domV + */ + domVRef elemV; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + + public: //Accessors and Mutators + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[0] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the vcount element. + * @return a daeSmartRef to the vcount element. + */ + const domVcountRef getVcount() const { return elemVcount; } + /** + * Gets the v element. + * @return a daeSmartRef to the v element. + */ + const domVRef getV() const { return elemV; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + protected: + /** + * Constructor + */ + domVertex_weights(DAE& dae) : daeElement(dae), attrCount(), elemInput_array(), elemVcount(), elemV(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domVertex_weights() {} + /** + * Overloaded assignment operator + */ + virtual domVertex_weights &operator=( const domVertex_weights &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute +/** + * The source attribute contains a URI reference to the base mesh, (a static + * mesh or a morphed mesh). This also provides the bind-shape of the skinned + * mesh. Required attribute. + */ + xsAnyURI attrSource; + +protected: // Elements +/** + * This provides extra information about the position and orientation of the + * base mesh before binding. If bind_shape_matrix is not specified then an + * identity matrix may be used as the bind_shape_matrix. The bind_shape_matrix + * element may occur zero or one times. @see domBind_shape_matrix + */ + domBind_shape_matrixRef elemBind_shape_matrix; +/** + * The skin element must contain at least three source elements. @see domSource + */ + domSource_Array elemSource_array; +/** + * The joints element associates joint, or skeleton, nodes with attribute + * data. In COLLADA, this is specified by the inverse bind matrix of each + * joint (influence) in the skeleton. @see domJoints + */ + domJointsRef elemJoints; +/** + * The vertex_weights element associates a set of joint-weight pairs with + * each vertex in the base mesh. @see domVertex_weights + */ + domVertex_weightsRef elemVertex_weights; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the source attribute. + * @return Returns a xsAnyURI reference of the source attribute. + */ + xsAnyURI &getSource() { return attrSource; } + /** + * Gets the source attribute. + * @return Returns a constant xsAnyURI reference of the source attribute. + */ + const xsAnyURI &getSource() const { return attrSource; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( const xsAnyURI &atSource ) { attrSource = atSource; _validAttributeArray[0] = true; } + /** + * Sets the source attribute. + * @param atSource The new value for the source attribute. + */ + void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[0] = true; } + + /** + * Gets the bind_shape_matrix element. + * @return a daeSmartRef to the bind_shape_matrix element. + */ + const domBind_shape_matrixRef getBind_shape_matrix() const { return elemBind_shape_matrix; } + /** + * Gets the source element array. + * @return Returns a reference to the array of source elements. + */ + domSource_Array &getSource_array() { return elemSource_array; } + /** + * Gets the source element array. + * @return Returns a constant reference to the array of source elements. + */ + const domSource_Array &getSource_array() const { return elemSource_array; } + /** + * Gets the joints element. + * @return a daeSmartRef to the joints element. + */ + const domJointsRef getJoints() const { return elemJoints; } + /** + * Gets the vertex_weights element. + * @return a daeSmartRef to the vertex_weights element. + */ + const domVertex_weightsRef getVertex_weights() const { return elemVertex_weights; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domSkin(DAE& dae) : daeElement(dae), attrSource(dae, *this), elemBind_shape_matrix(), elemSource_array(), elemJoints(), elemVertex_weights(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domSkin() {} + /** + * Overloaded assignment operator + */ + virtual domSkin &operator=( const domSkin &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domSource.h b/include/1.4/dom/domSource.h new file mode 100644 index 0000000..ccc49d0 --- /dev/null +++ b/include/1.4/dom/domSource.h @@ -0,0 +1,272 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domSource_h__ +#define __domSource_h__ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class DAE; + +/** + * The source element declares a data repository that provides values according + * to the semantics of an input element that refers to it. + */ +class domSource : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE; } + static daeInt ID() { return 611; } + virtual daeInt typeID() const { return ID(); } +public: + class domTechnique_common; + + typedef daeSmartRef domTechnique_commonRef; + typedef daeTArray domTechnique_common_Array; + +/** + * The technique common specifies the common method for accessing this source + * element's data. + */ + class domTechnique_common : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } + static daeInt ID() { return 612; } + virtual daeInt typeID() const { return ID(); } + + protected: // Element +/** + * The source's technique_common must have one and only one accessor. @see + * domAccessor + */ + domAccessorRef elemAccessor; + + public: //Accessors and Mutators + /** + * Gets the accessor element. + * @return a daeSmartRef to the accessor element. + */ + const domAccessorRef getAccessor() const { return elemAccessor; } + protected: + /** + * Constructor + */ + domTechnique_common(DAE& dae) : daeElement(dae), elemAccessor() {} + /** + * Destructor + */ + virtual ~domTechnique_common() {} + /** + * Overloaded assignment operator + */ + virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Required attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The source element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The source element may contain an IDREF_array. @see domIDREF_array + */ + domIDREF_arrayRef elemIDREF_array; +/** + * The source element may contain a Name_array. @see domName_array + */ + domName_arrayRef elemName_array; +/** + * The source element may contain a bool_array. @see domBool_array + */ + domBool_arrayRef elemBool_array; +/** + * The source element may contain a float_array. @see domFloat_array + */ + domFloat_arrayRef elemFloat_array; +/** + * The source element may contain an int_array. @see domInt_array + */ + domInt_arrayRef elemInt_array; +/** + * The technique common specifies the common method for accessing this source + * element's data. @see domTechnique_common + */ + domTechnique_commonRef elemTechnique_common; +/** + * This element may contain any number of non-common profile techniques. + * @see domTechnique + */ + domTechnique_Array elemTechnique_array; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + /** + * Used to store information needed for some content model objects. + */ + daeTArray< daeCharArray * > _CMData; + + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the IDREF_array element. + * @return a daeSmartRef to the IDREF_array element. + */ + const domIDREF_arrayRef getIDREF_array() const { return elemIDREF_array; } + /** + * Gets the Name_array element. + * @return a daeSmartRef to the Name_array element. + */ + const domName_arrayRef getName_array() const { return elemName_array; } + /** + * Gets the bool_array element. + * @return a daeSmartRef to the bool_array element. + */ + const domBool_arrayRef getBool_array() const { return elemBool_array; } + /** + * Gets the float_array element. + * @return a daeSmartRef to the float_array element. + */ + const domFloat_arrayRef getFloat_array() const { return elemFloat_array; } + /** + * Gets the int_array element. + * @return a daeSmartRef to the int_array element. + */ + const domInt_arrayRef getInt_array() const { return elemInt_array; } + /** + * Gets the technique_common element. + * @return a daeSmartRef to the technique_common element. + */ + const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } + /** + * Gets the technique element array. + * @return Returns a reference to the array of technique elements. + */ + domTechnique_Array &getTechnique_array() { return elemTechnique_array; } + /** + * Gets the technique element array. + * @return Returns a constant reference to the array of technique elements. + */ + const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domSource(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemIDREF_array(), elemName_array(), elemBool_array(), elemFloat_array(), elemInt_array(), elemTechnique_common(), elemTechnique_array() {} + /** + * Destructor + */ + virtual ~domSource() { daeElement::deleteCMDataArray(_CMData); } + /** + * Overloaded assignment operator + */ + virtual domSource &operator=( const domSource &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domSphere.h b/include/1.4/dom/domSphere.h new file mode 100644 index 0000000..7c730d7 --- /dev/null +++ b/include/1.4/dom/domSphere.h @@ -0,0 +1,152 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domSphere_h__ +#define __domSphere_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A centered sphere primitive. + */ +class domSphere : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SPHERE; } + static daeInt ID() { return 771; } + virtual daeInt typeID() const { return ID(); } +public: + class domRadius; + + typedef daeSmartRef domRadiusRef; + typedef daeTArray domRadius_Array; + +/** + * A float value that represents the radius of the sphere + */ + class domRadius : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS; } + static daeInt ID() { return 772; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRadius(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRadius() {} + /** + * Overloaded assignment operator + */ + virtual domRadius &operator=( const domRadius &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * A float value that represents the radius of the sphere @see domRadius + */ + domRadiusRef elemRadius; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the radius element. + * @return a daeSmartRef to the radius element. + */ + const domRadiusRef getRadius() const { return elemRadius; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domSphere(DAE& dae) : daeElement(dae), elemRadius(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domSphere() {} + /** + * Overloaded assignment operator + */ + virtual domSphere &operator=( const domSphere &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domSpline.h b/include/1.4/dom/domSpline.h new file mode 100644 index 0000000..e631c75 --- /dev/null +++ b/include/1.4/dom/domSpline.h @@ -0,0 +1,198 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domSpline_h__ +#define __domSpline_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The spline element contains control vertex information sufficient to describe + * basic splines. + */ +class domSpline : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SPLINE; } + static daeInt ID() { return 615; } + virtual daeInt typeID() const { return ID(); } +public: + class domControl_vertices; + + typedef daeSmartRef domControl_verticesRef; + typedef daeTArray domControl_vertices_Array; + +/** + * The control vertices element must occur exactly one time. It is used + * to describe the CVs of the spline. + */ + class domControl_vertices : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONTROL_VERTICES; } + static daeInt ID() { return 616; } + virtual daeInt typeID() const { return ID(); } + + protected: // Elements +/** + * The input element must occur at least one time. These inputs are local + * inputs. @see domInput + */ + domInputLocal_Array elemInput_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + + public: //Accessors and Mutators + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocal_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocal_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } + protected: + /** + * Constructor + */ + domControl_vertices(DAE& dae) : daeElement(dae), elemInput_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domControl_vertices() {} + /** + * Overloaded assignment operator + */ + virtual domControl_vertices &operator=( const domControl_vertices &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attribute + domBool attrClosed; + +protected: // Elements +/** + * The mesh element must contain one or more source elements. @see domSource + */ + domSource_Array elemSource_array; +/** + * The control vertices element must occur exactly one time. It is used + * to describe the CVs of the spline. @see domControl_vertices + */ + domControl_verticesRef elemControl_vertices; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the closed attribute. + * @return Returns a domBool of the closed attribute. + */ + domBool getClosed() const { return attrClosed; } + /** + * Sets the closed attribute. + * @param atClosed The new value for the closed attribute. + */ + void setClosed( domBool atClosed ) { attrClosed = atClosed; _validAttributeArray[0] = true; } + + /** + * Gets the source element array. + * @return Returns a reference to the array of source elements. + */ + domSource_Array &getSource_array() { return elemSource_array; } + /** + * Gets the source element array. + * @return Returns a constant reference to the array of source elements. + */ + const domSource_Array &getSource_array() const { return elemSource_array; } + /** + * Gets the control_vertices element. + * @return a daeSmartRef to the control_vertices element. + */ + const domControl_verticesRef getControl_vertices() const { return elemControl_vertices; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domSpline(DAE& dae) : daeElement(dae), attrClosed(), elemSource_array(), elemControl_vertices(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domSpline() {} + /** + * Overloaded assignment operator + */ + virtual domSpline &operator=( const domSpline &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTapered_capsule.h b/include/1.4/dom/domTapered_capsule.h new file mode 100644 index 0000000..cee6bda --- /dev/null +++ b/include/1.4/dom/domTapered_capsule.h @@ -0,0 +1,311 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTapered_capsule_h__ +#define __domTapered_capsule_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A tapered capsule primitive that is centered on, and aligned with, the + * local Y axis. + */ +class domTapered_capsule : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TAPERED_CAPSULE; } + static daeInt ID() { return 785; } + virtual daeInt typeID() const { return ID(); } +public: + class domHeight; + + typedef daeSmartRef domHeightRef; + typedef daeTArray domHeight_Array; + +/** + * A float value that represents the length of the line segment connecting + * the centers of the capping hemispheres. + */ + class domHeight : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HEIGHT; } + static daeInt ID() { return 786; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHeight(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHeight() {} + /** + * Overloaded assignment operator + */ + virtual domHeight &operator=( const domHeight &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRadius1; + + typedef daeSmartRef domRadius1Ref; + typedef daeTArray domRadius1_Array; + +/** + * Two float values that represent the radii of the tapered capsule at the + * positive (height/2) Y value.Both ends of the tapered capsule may be elliptical. + */ + class domRadius1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS1; } + static daeInt ID() { return 787; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat2 value of the text data of this element. + */ + domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat2 reference of the _value array. + */ + domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat2 reference of the _value array. + */ + const domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRadius1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRadius1() {} + /** + * Overloaded assignment operator + */ + virtual domRadius1 &operator=( const domRadius1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRadius2; + + typedef daeSmartRef domRadius2Ref; + typedef daeTArray domRadius2_Array; + +/** + * Two float values that represent the radii of the tapered capsule at the + * negative (height/2) Y value.Both ends of the tapered capsule may be elliptical. + */ + class domRadius2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS2; } + static daeInt ID() { return 788; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat2 value of the text data of this element. + */ + domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat2 reference of the _value array. + */ + domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat2 reference of the _value array. + */ + const domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRadius2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRadius2() {} + /** + * Overloaded assignment operator + */ + virtual domRadius2 &operator=( const domRadius2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * A float value that represents the length of the line segment connecting + * the centers of the capping hemispheres. @see domHeight + */ + domHeightRef elemHeight; +/** + * Two float values that represent the radii of the tapered capsule at the + * positive (height/2) Y value.Both ends of the tapered capsule may be elliptical. + * @see domRadius1 + */ + domRadius1Ref elemRadius1; +/** + * Two float values that represent the radii of the tapered capsule at the + * negative (height/2) Y value.Both ends of the tapered capsule may be elliptical. + * @see domRadius2 + */ + domRadius2Ref elemRadius2; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the height element. + * @return a daeSmartRef to the height element. + */ + const domHeightRef getHeight() const { return elemHeight; } + /** + * Gets the radius1 element. + * @return a daeSmartRef to the radius1 element. + */ + const domRadius1Ref getRadius1() const { return elemRadius1; } + /** + * Gets the radius2 element. + * @return a daeSmartRef to the radius2 element. + */ + const domRadius2Ref getRadius2() const { return elemRadius2; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domTapered_capsule(DAE& dae) : daeElement(dae), elemHeight(), elemRadius1(), elemRadius2(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTapered_capsule() {} + /** + * Overloaded assignment operator + */ + virtual domTapered_capsule &operator=( const domTapered_capsule &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTapered_cylinder.h b/include/1.4/dom/domTapered_cylinder.h new file mode 100644 index 0000000..6074f4a --- /dev/null +++ b/include/1.4/dom/domTapered_cylinder.h @@ -0,0 +1,311 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTapered_cylinder_h__ +#define __domTapered_cylinder_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * A tapered cylinder primitive that is centered on and aligned with the local + * Y axis. + */ +class domTapered_cylinder : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TAPERED_CYLINDER; } + static daeInt ID() { return 778; } + virtual daeInt typeID() const { return ID(); } +public: + class domHeight; + + typedef daeSmartRef domHeightRef; + typedef daeTArray domHeight_Array; + +/** + * A float value that represents the length of the cylinder along the Y axis. + */ + class domHeight : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HEIGHT; } + static daeInt ID() { return 779; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + + protected: + /** + * Constructor + */ + domHeight(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domHeight() {} + /** + * Overloaded assignment operator + */ + virtual domHeight &operator=( const domHeight &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRadius1; + + typedef daeSmartRef domRadius1Ref; + typedef daeTArray domRadius1_Array; + +/** + * Two float values that represent the radii of the tapered cylinder at the + * positive (height/2) Y value. Both ends of the tapered cylinder may be + * elliptical. + */ + class domRadius1 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS1; } + static daeInt ID() { return 780; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat2 value of the text data of this element. + */ + domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat2 reference of the _value array. + */ + domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat2 reference of the _value array. + */ + const domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRadius1(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRadius1() {} + /** + * Overloaded assignment operator + */ + virtual domRadius1 &operator=( const domRadius1 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + class domRadius2; + + typedef daeSmartRef domRadius2Ref; + typedef daeTArray domRadius2_Array; + +/** + * Two float values that represent the radii of the tapered cylinder at the + * negative (height/2) Y value.Both ends of the tapered cylinder may be elliptical. + */ + class domRadius2 : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS2; } + static daeInt ID() { return 781; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The domFloat2 value of the text data of this element. + */ + domFloat2 _value; + + public: //Accessors and Mutators + /** + * Gets the _value array. + * @return Returns a domFloat2 reference of the _value array. + */ + domFloat2 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat2 reference of the _value array. + */ + const domFloat2 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat2 &val ) { _value = val; } + + protected: + /** + * Constructor + */ + domRadius2(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domRadius2() {} + /** + * Overloaded assignment operator + */ + virtual domRadius2 &operator=( const domRadius2 &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + +protected: // Elements +/** + * A float value that represents the length of the cylinder along the Y axis. + * @see domHeight + */ + domHeightRef elemHeight; +/** + * Two float values that represent the radii of the tapered cylinder at the + * positive (height/2) Y value. Both ends of the tapered cylinder may be + * elliptical. @see domRadius1 + */ + domRadius1Ref elemRadius1; +/** + * Two float values that represent the radii of the tapered cylinder at the + * negative (height/2) Y value.Both ends of the tapered cylinder may be elliptical. + * @see domRadius2 + */ + domRadius2Ref elemRadius2; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the height element. + * @return a daeSmartRef to the height element. + */ + const domHeightRef getHeight() const { return elemHeight; } + /** + * Gets the radius1 element. + * @return a daeSmartRef to the radius1 element. + */ + const domRadius1Ref getRadius1() const { return elemRadius1; } + /** + * Gets the radius2 element. + * @return a daeSmartRef to the radius2 element. + */ + const domRadius2Ref getRadius2() const { return elemRadius2; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domTapered_cylinder(DAE& dae) : daeElement(dae), elemHeight(), elemRadius1(), elemRadius2(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTapered_cylinder() {} + /** + * Overloaded assignment operator + */ + virtual domTapered_cylinder &operator=( const domTapered_cylinder &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTargetableFloat.h b/include/1.4/dom/domTargetableFloat.h new file mode 100644 index 0000000..460ebd8 --- /dev/null +++ b/include/1.4/dom/domTargetableFloat.h @@ -0,0 +1,132 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTargetableFloat_h__ +#define __domTargetableFloat_h__ + +#include +#include +#include + +class DAE; + +/** + * The TargetableFloat type is used to represent elements which contain a + * single float value which can be targeted for animation. + */ +class domTargetableFloat_complexType +{ +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Value + /** + * The domFloat value of the text data of this element. + */ + domFloat _value; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the value of this element. + * @return a domFloat of the value. + */ + domFloat getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( domFloat val ) { _value = val; } + +protected: + /** + * Constructor + */ + domTargetableFloat_complexType(DAE& dae, daeElement* elt) : attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domTargetableFloat_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domTargetableFloat_complexType &operator=( const domTargetableFloat_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domTargetableFloat_complexType. + */ +class domTargetableFloat : public daeElement, public domTargetableFloat_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TARGETABLEFLOAT; } + static daeInt ID() { return 4; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domTargetableFloat(DAE& dae) : daeElement(dae), domTargetableFloat_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domTargetableFloat() {} + /** + * Overloaded assignment operator + */ + virtual domTargetableFloat &operator=( const domTargetableFloat &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTargetableFloat3.h b/include/1.4/dom/domTargetableFloat3.h new file mode 100644 index 0000000..9ee9103 --- /dev/null +++ b/include/1.4/dom/domTargetableFloat3.h @@ -0,0 +1,137 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTargetableFloat3_h__ +#define __domTargetableFloat3_h__ + +#include +#include +#include + +class DAE; + +/** + * The TargetableFloat3 type is used to represent elements which contain a + * float3 value which can be targeted for animation. + */ +class domTargetableFloat3_complexType +{ +protected: // Attribute +/** + * The sid attribute is a text string value containing the sub-identifier + * of this element. This value must be unique within the scope of the parent + * element. Optional attribute. + */ + xsNCName attrSid; + +protected: // Value + /** + * The domFloat3 value of the text data of this element. + */ + domFloat3 _value; + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;} + + /** + * Gets the _value array. + * @return Returns a domFloat3 reference of the _value array. + */ + domFloat3 &getValue() { return _value; } + /** + * Gets the _value array. + * @return Returns a constant domFloat3 reference of the _value array. + */ + const domFloat3 &getValue() const { return _value; } + /** + * Sets the _value array. + * @param val The new value for the _value array. + */ + void setValue( const domFloat3 &val ) { _value = val; } + +protected: + /** + * Constructor + */ + domTargetableFloat3_complexType(DAE& dae, daeElement* elt) : attrSid(), _value() {} + /** + * Destructor + */ + virtual ~domTargetableFloat3_complexType() {} + /** + * Overloaded assignment operator + */ + virtual domTargetableFloat3_complexType &operator=( const domTargetableFloat3_complexType &cpy ) { (void)cpy; return *this; } +}; + +/** + * An element of type domTargetableFloat3_complexType. + */ +class domTargetableFloat3 : public daeElement, public domTargetableFloat3_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TARGETABLEFLOAT3; } + static daeInt ID() { return 5; } + virtual daeInt typeID() const { return ID(); } + +public: //Accessors and Mutators + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domTargetableFloat3(DAE& dae) : daeElement(dae), domTargetableFloat3_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domTargetableFloat3() {} + /** + * Overloaded assignment operator + */ + virtual domTargetableFloat3 &operator=( const domTargetableFloat3 &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTechnique.h b/include/1.4/dom/domTechnique.h new file mode 100644 index 0000000..b5381e9 --- /dev/null +++ b/include/1.4/dom/domTechnique.h @@ -0,0 +1,130 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTechnique_h__ +#define __domTechnique_h__ + +#include +#include +#include + +class DAE; + +/** + * The technique element declares the information used to process some portion + * of the content. Each technique conforms to an associated profile. Techniques + * generally act as a “switch”. If more than one is present for a particular + * portion of content, on import, one or the other is picked, but usually + * not both. Selection should be based on which profile the importing application + * can support. Techniques contain application data and programs, making them + * assets that can be managed as a unit. + */ +class domTechnique : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } + static daeInt ID() { return 680; } + virtual daeInt typeID() const { return ID(); } +protected: // Attribute + /** + * This element may specify its own xmlns. + */ + xsAnyURI attrXmlns; +/** + * The profile attribute indicates the type of profile. This is a vendor + * defined character string that indicates the platform or capability target + * for the technique. Required attribute. + */ + xsNMTOKEN attrProfile; + +protected: // Element + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + + +public: //Accessors and Mutators + /** + * Gets the xmlns attribute. + * @return Returns a xsAnyURI reference of the xmlns attribute. + */ + xsAnyURI &getXmlns() { return attrXmlns; } + /** + * Gets the xmlns attribute. + * @return Returns a constant xsAnyURI reference of the xmlns attribute. + */ + const xsAnyURI &getXmlns() const { return attrXmlns; } + /** + * Sets the xmlns attribute. + * @param xmlns The new value for the xmlns attribute. + */ + void setXmlns( const xsAnyURI &xmlns ) { attrXmlns = xmlns; + _validAttributeArray[0] = true; } + + /** + * Gets the profile attribute. + * @return Returns a xsNMTOKEN of the profile attribute. + */ + xsNMTOKEN getProfile() const { return attrProfile; } + /** + * Sets the profile attribute. + * @param atProfile The new value for the profile attribute. + */ + void setProfile( xsNMTOKEN atProfile ) { *(daeStringRef*)&attrProfile = atProfile; _validAttributeArray[1] = true; } + + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + +protected: + /** + * Constructor + */ + domTechnique(DAE& dae) : daeElement(dae), attrXmlns(dae, *this), attrProfile() {} + /** + * Destructor + */ + virtual ~domTechnique() {} + /** + * Overloaded assignment operator + */ + virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTranslate.h b/include/1.4/dom/domTranslate.h new file mode 100644 index 0000000..4e8f574 --- /dev/null +++ b/include/1.4/dom/domTranslate.h @@ -0,0 +1,75 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTranslate_h__ +#define __domTranslate_h__ + +#include +#include +#include + +#include +class DAE; + +/** + * The translate element contains a mathematical vector that represents the + * distance along the X, Y and Z-axes. + */ +class domTranslate : public daeElement, public domTargetableFloat3_complexType +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TRANSLATE; } + static daeInt ID() { return 634; } + virtual daeInt typeID() const { return ID(); } + + /** + * Gets the sid attribute. + * @return Returns a xsNCName of the sid attribute. + */ + xsNCName getSid() const { return attrSid; } + /** + * Sets the sid attribute. + * @param atSid The new value for the sid attribute. + */ + void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } + +protected: + /** + * Constructor + */ + domTranslate(DAE& dae) : daeElement(dae), domTargetableFloat3_complexType(dae, this) {} + /** + * Destructor + */ + virtual ~domTranslate() {} + /** + * Overloaded assignment operator + */ + virtual domTranslate &operator=( const domTranslate &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTriangles.h b/include/1.4/dom/domTriangles.h new file mode 100644 index 0000000..d0e0ade --- /dev/null +++ b/include/1.4/dom/domTriangles.h @@ -0,0 +1,160 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTriangles_h__ +#define __domTriangles_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The triangles element provides the information needed to bind vertex attributes + * together and then organize those vertices into individual triangles.Each + * triangle described by the mesh has three vertices. The first triangle + * is formed from the first, second, and third vertices. The second triangle + * is formed from the fourth, fifth, and sixth vertices, and so on. + */ +class domTriangles : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TRIANGLES; } + static daeInt ID() { return 625; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of triangle primitives. Required + * attribute. + */ + domUint attrCount; +/** + * The material attribute declares a symbol for a material. This symbol is + * bound to a material at the time of instantiation. Optional attribute. + * If the material attribute is not specified then the lighting and shading + * results are application defined. + */ + xsNCName attrMaterial; + +protected: // Elements +/** + * The input element may occur any number of times. This input is a local + * input with the offset and set attributes. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The triangles element may have any number of p elements. @see domP + */ + domPRef elemP; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } + + /** + * Gets the material attribute. + * @return Returns a xsNCName of the material attribute. + */ + xsNCName getMaterial() const { return attrMaterial; } + /** + * Sets the material attribute. + * @param atMaterial The new value for the material attribute. + */ + void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the p element. + * @return a daeSmartRef to the p element. + */ + const domPRef getP() const { return elemP; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domTriangles(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemP(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTriangles() {} + /** + * Overloaded assignment operator + */ + virtual domTriangles &operator=( const domTriangles &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTrifans.h b/include/1.4/dom/domTrifans.h new file mode 100644 index 0000000..434c176 --- /dev/null +++ b/include/1.4/dom/domTrifans.h @@ -0,0 +1,165 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTrifans_h__ +#define __domTrifans_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The trifans element provides the information needed to bind vertex attributes + * together and then organize those vertices into connected triangles. Each + * triangle described by the mesh has three vertices. The first triangle + * is formed from first, second, and third vertices. Each subsequent triangle + * is formed from the current vertex, reusing the first and the previous vertices. + */ +class domTrifans : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TRIFANS; } + static daeInt ID() { return 626; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of triangle fan primitives. Required + * attribute. + */ + domUint attrCount; +/** + * The material attribute declares a symbol for a material. This symbol is + * bound to a material at the time of instantiation. If the material attribute + * is not specified then the lighting and shading results are application + * defined. Optional attribute. + */ + xsNCName attrMaterial; + +protected: // Elements +/** + * The input element may occur any number of times. This input is a local + * input with the offset and set attributes. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The trifans element may have any number of p elements. @see domP + */ + domP_Array elemP_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } + + /** + * Gets the material attribute. + * @return Returns a xsNCName of the material attribute. + */ + xsNCName getMaterial() const { return attrMaterial; } + /** + * Sets the material attribute. + * @param atMaterial The new value for the material attribute. + */ + void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the p element array. + * @return Returns a reference to the array of p elements. + */ + domP_Array &getP_array() { return elemP_array; } + /** + * Gets the p element array. + * @return Returns a constant reference to the array of p elements. + */ + const domP_Array &getP_array() const { return elemP_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domTrifans(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemP_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTrifans() {} + /** + * Overloaded assignment operator + */ + virtual domTrifans &operator=( const domTrifans &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTristrips.h b/include/1.4/dom/domTristrips.h new file mode 100644 index 0000000..d4cccb7 --- /dev/null +++ b/include/1.4/dom/domTristrips.h @@ -0,0 +1,165 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domTristrips_h__ +#define __domTristrips_h__ + +#include +#include +#include + +#include +#include +#include +class DAE; + +/** + * The tristrips element provides the information needed to bind vertex attributes + * together and then organize those vertices into connected triangles. Each + * triangle described by the mesh has three vertices. The first triangle + * is formed from first, second, and third vertices. Each subsequent triangle + * is formed from the current vertex, reusing the previous two vertices. + */ +class domTristrips : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TRISTRIPS; } + static daeInt ID() { return 627; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; +/** + * The count attribute indicates the number of triangle strip primitives. + * Required attribute. + */ + domUint attrCount; +/** + * The material attribute declares a symbol for a material. This symbol is + * bound to a material at the time of instantiation. If the material attribute + * is not specified then the lighting and shading results are application + * defined. Optional attribute. + */ + xsNCName attrMaterial; + +protected: // Elements +/** + * The input element may occur any number of times. This input is a local + * input with the offset and set attributes. @see domInput + */ + domInputLocalOffset_Array elemInput_array; +/** + * The tristrips element may have any number of p elements. @see domP + */ + domP_Array elemP_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the count attribute. + * @return Returns a domUint of the count attribute. + */ + domUint getCount() const { return attrCount; } + /** + * Sets the count attribute. + * @param atCount The new value for the count attribute. + */ + void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } + + /** + * Gets the material attribute. + * @return Returns a xsNCName of the material attribute. + */ + xsNCName getMaterial() const { return attrMaterial; } + /** + * Sets the material attribute. + * @param atMaterial The new value for the material attribute. + */ + void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocalOffset_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the p element array. + * @return Returns a reference to the array of p elements. + */ + domP_Array &getP_array() { return elemP_array; } + /** + * Gets the p element array. + * @return Returns a constant reference to the array of p elements. + */ + const domP_Array &getP_array() const { return elemP_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domTristrips(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemP_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domTristrips() {} + /** + * Overloaded assignment operator + */ + virtual domTristrips &operator=( const domTristrips &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domTypes.h b/include/1.4/dom/domTypes.h new file mode 100644 index 0000000..f6a1f09 --- /dev/null +++ b/include/1.4/dom/domTypes.h @@ -0,0 +1,1248 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DOM_TYPES_H__ +#define __DOM_TYPES_H__ + +#include + +typedef xsBoolean domBool; +typedef xsDateTime domDateTime; +typedef xsDouble domFloat; +typedef xsLong domInt; +typedef xsName domName; +typedef xsString domString; +typedef xsToken domToken; +typedef xsUnsignedLong domUint; +typedef daeTArray domListOfBools; +typedef daeTArray domListOfFloats; +typedef xsHexBinaryArray domListOfHexBinary; +typedef daeTArray domListOfInts; +typedef daeTArray domListOfNames; +typedef daeTArray domListOfTokens; +typedef daeTArray domListOfUInts; +typedef domListOfBools domBool2; +typedef domListOfBools domBool3; +typedef domListOfBools domBool4; +typedef domListOfFloats domFloat2; +typedef domListOfFloats domFloat3; +typedef domListOfFloats domFloat4; +typedef domListOfFloats domFloat7; +typedef domListOfFloats domFloat2x2; +typedef domListOfFloats domFloat3x3; +typedef domListOfFloats domFloat4x4; +typedef domListOfFloats domFloat2x3; +typedef domListOfFloats domFloat2x4; +typedef domListOfFloats domFloat3x2; +typedef domListOfFloats domFloat3x4; +typedef domListOfFloats domFloat4x2; +typedef domListOfFloats domFloat4x3; +typedef domListOfInts domInt2; +typedef domListOfInts domInt3; +typedef domListOfInts domInt4; +typedef domListOfInts domInt2x2; +typedef domListOfInts domInt3x3; +typedef domListOfInts domInt4x4; +/** + * This type is used for URI reference which can only reference a resource + * declared within it's same document. + */ +typedef xsAnyURI domURIFragmentType; +typedef domFloat4 domFx_color_common; +typedef xsString domFx_draw_common; +typedef xsNonNegativeInteger domGL_MAX_LIGHTS_index; +typedef xsNonNegativeInteger domGL_MAX_CLIP_PLANES_index; +typedef xsNonNegativeInteger domGL_MAX_TEXTURE_IMAGE_UNITS_index; +typedef xsFloat domGl_alpha_value_type; +typedef xsFloat domGlsl_float; +typedef xsInt domGlsl_int; +typedef xsBoolean domGlsl_bool; +typedef daeTArray domGlsl_ListOfBool; +typedef daeTArray domGlsl_ListOfFloat; +typedef daeTArray domGlsl_ListOfInt; +typedef domGlsl_ListOfBool domGlsl_bool2; +typedef domGlsl_ListOfBool domGlsl_bool3; +typedef domGlsl_ListOfBool domGlsl_bool4; +typedef domGlsl_ListOfFloat domGlsl_float2; +typedef domGlsl_ListOfFloat domGlsl_float3; +typedef domGlsl_ListOfFloat domGlsl_float4; +typedef domGlsl_ListOfFloat domGlsl_float2x2; +typedef domGlsl_ListOfFloat domGlsl_float3x3; +typedef domGlsl_ListOfFloat domGlsl_float4x4; +typedef domGlsl_ListOfInt domGlsl_int2; +typedef domGlsl_ListOfInt domGlsl_int3; +typedef domGlsl_ListOfInt domGlsl_int4; +typedef xsToken domGlsl_identifier; +typedef xsBoolean domCg_bool; +typedef xsFloat domCg_float; +typedef xsInt domCg_int; +typedef xsFloat domCg_half; +typedef xsFloat domCg_fixed; +typedef xsBoolean domCg_bool1; +typedef xsFloat domCg_float1; +typedef xsInt domCg_int1; +typedef xsFloat domCg_half1; +typedef xsFloat domCg_fixed1; +typedef daeTArray domCg_ListOfBool; +typedef daeTArray domCg_ListOfFloat; +typedef daeTArray domCg_ListOfInt; +typedef daeTArray domCg_ListOfHalf; +typedef daeTArray domCg_ListOfFixed; +typedef domCg_ListOfBool domCg_bool2; +typedef domCg_ListOfBool domCg_bool3; +typedef domCg_ListOfBool domCg_bool4; +typedef domCg_ListOfBool domCg_bool1x1; +typedef domCg_ListOfBool domCg_bool1x2; +typedef domCg_ListOfBool domCg_bool1x3; +typedef domCg_ListOfBool domCg_bool1x4; +typedef domCg_ListOfBool domCg_bool2x1; +typedef domCg_ListOfBool domCg_bool2x2; +typedef domCg_ListOfBool domCg_bool2x3; +typedef domCg_ListOfBool domCg_bool2x4; +typedef domCg_ListOfBool domCg_bool3x1; +typedef domCg_ListOfBool domCg_bool3x2; +typedef domCg_ListOfBool domCg_bool3x3; +typedef domCg_ListOfBool domCg_bool3x4; +typedef domCg_ListOfBool domCg_bool4x1; +typedef domCg_ListOfBool domCg_bool4x2; +typedef domCg_ListOfBool domCg_bool4x3; +typedef domCg_ListOfBool domCg_bool4x4; +typedef domCg_ListOfFloat domCg_float2; +typedef domCg_ListOfFloat domCg_float3; +typedef domCg_ListOfFloat domCg_float4; +typedef domCg_ListOfFloat domCg_float1x1; +typedef domCg_ListOfFloat domCg_float1x2; +typedef domCg_ListOfFloat domCg_float1x3; +typedef domCg_ListOfFloat domCg_float1x4; +typedef domCg_ListOfFloat domCg_float2x1; +typedef domCg_ListOfFloat domCg_float2x2; +typedef domCg_ListOfFloat domCg_float2x3; +typedef domCg_ListOfFloat domCg_float2x4; +typedef domCg_ListOfFloat domCg_float3x1; +typedef domCg_ListOfFloat domCg_float3x2; +typedef domCg_ListOfFloat domCg_float3x3; +typedef domCg_ListOfFloat domCg_float3x4; +typedef domCg_ListOfFloat domCg_float4x1; +typedef domCg_ListOfFloat domCg_float4x2; +typedef domCg_ListOfFloat domCg_float4x3; +typedef domCg_ListOfFloat domCg_float4x4; +typedef domCg_ListOfInt domCg_int2; +typedef domCg_ListOfInt domCg_int3; +typedef domCg_ListOfInt domCg_int4; +typedef domCg_ListOfInt domCg_int1x1; +typedef domCg_ListOfInt domCg_int1x2; +typedef domCg_ListOfInt domCg_int1x3; +typedef domCg_ListOfInt domCg_int1x4; +typedef domCg_ListOfInt domCg_int2x1; +typedef domCg_ListOfInt domCg_int2x2; +typedef domCg_ListOfInt domCg_int2x3; +typedef domCg_ListOfInt domCg_int2x4; +typedef domCg_ListOfInt domCg_int3x1; +typedef domCg_ListOfInt domCg_int3x2; +typedef domCg_ListOfInt domCg_int3x3; +typedef domCg_ListOfInt domCg_int3x4; +typedef domCg_ListOfInt domCg_int4x1; +typedef domCg_ListOfInt domCg_int4x2; +typedef domCg_ListOfInt domCg_int4x3; +typedef domCg_ListOfInt domCg_int4x4; +typedef domCg_ListOfHalf domCg_half2; +typedef domCg_ListOfHalf domCg_half3; +typedef domCg_ListOfHalf domCg_half4; +typedef domCg_ListOfHalf domCg_half1x1; +typedef domCg_ListOfHalf domCg_half1x2; +typedef domCg_ListOfHalf domCg_half1x3; +typedef domCg_ListOfHalf domCg_half1x4; +typedef domCg_ListOfHalf domCg_half2x1; +typedef domCg_ListOfHalf domCg_half2x2; +typedef domCg_ListOfHalf domCg_half2x3; +typedef domCg_ListOfHalf domCg_half2x4; +typedef domCg_ListOfHalf domCg_half3x1; +typedef domCg_ListOfHalf domCg_half3x2; +typedef domCg_ListOfHalf domCg_half3x3; +typedef domCg_ListOfHalf domCg_half3x4; +typedef domCg_ListOfHalf domCg_half4x1; +typedef domCg_ListOfHalf domCg_half4x2; +typedef domCg_ListOfHalf domCg_half4x3; +typedef domCg_ListOfHalf domCg_half4x4; +typedef domCg_ListOfFixed domCg_fixed2; +typedef domCg_ListOfFixed domCg_fixed3; +typedef domCg_ListOfFixed domCg_fixed4; +typedef domCg_ListOfFixed domCg_fixed1x1; +typedef domCg_ListOfFixed domCg_fixed1x2; +typedef domCg_ListOfFixed domCg_fixed1x3; +typedef domCg_ListOfFixed domCg_fixed1x4; +typedef domCg_ListOfFixed domCg_fixed2x1; +typedef domCg_ListOfFixed domCg_fixed2x2; +typedef domCg_ListOfFixed domCg_fixed2x3; +typedef domCg_ListOfFixed domCg_fixed2x4; +typedef domCg_ListOfFixed domCg_fixed3x1; +typedef domCg_ListOfFixed domCg_fixed3x2; +typedef domCg_ListOfFixed domCg_fixed3x3; +typedef domCg_ListOfFixed domCg_fixed3x4; +typedef domCg_ListOfFixed domCg_fixed4x1; +typedef domCg_ListOfFixed domCg_fixed4x2; +typedef domCg_ListOfFixed domCg_fixed4x3; +typedef domCg_ListOfFixed domCg_fixed4x4; +typedef xsToken domCg_identifier; +typedef xsNonNegativeInteger domGLES_MAX_LIGHTS_index; +typedef xsNonNegativeInteger domGLES_MAX_CLIP_PLANES_index; +typedef xsNonNegativeInteger domGLES_MAX_TEXTURE_COORDS_index; +typedef xsNonNegativeInteger domGLES_MAX_TEXTURE_IMAGE_UNITS_index; +typedef xsNonNegativeInteger domGles_texcombiner_argument_index_type; +typedef xsNCName domGles_rendertarget_common; + +/** + * An enumuerated type specifying the acceptable morph methods. + */ +enum domMorphMethodType { + MORPHMETHODTYPE_NORMALIZED, + MORPHMETHODTYPE_RELATIVE, + MORPHMETHODTYPE_COUNT = 2 +}; + +/** + * An enumerated type specifying the acceptable node types. + */ +enum domNodeType { + NODETYPE_JOINT, + NODETYPE_NODE, + NODETYPE_COUNT = 2 +}; + +/** + * An enumerated type specifying the acceptable up-axis values. + */ +enum domUpAxisType { + UPAXISTYPE_X_UP, + UPAXISTYPE_Y_UP, + UPAXISTYPE_Z_UP, + UPAXISTYPE_COUNT = 3 +}; + +/** + * An enumerated type specifying the acceptable document versions. + */ +enum domVersionType { + VERSIONTYPE_1_4_0, + VERSIONTYPE_1_4_1, + VERSIONTYPE_COUNT = 2 +}; + +enum domFx_opaque_enum { + FX_OPAQUE_ENUM_A_ONE, /**< When a transparent opaque attribute is set to A_ONE, it means the transparency information will be taken from the alpha channel of the color, texture, or parameter supplying the value. The value of 1.0 is opaque in this mode. */ + FX_OPAQUE_ENUM_RGB_ZERO, /**< When a transparent opaque attribute is set to RGB_ZERO, it means the transparency information will be taken from the red, green, and blue channels of the color, texture, or parameter supplying the value. Each channel is modulated independently. The value of 0.0 is opaque in this mode. */ + FX_OPAQUE_ENUM_COUNT = 2 +}; + +enum domFx_surface_type_enum { + FX_SURFACE_TYPE_ENUM_UNTYPED, /**< When a surface's type attribute is set to UNTYPED, its type is initially unknown and established later by the context in which it is used, such as by a texture sampler that references it. A surface of any other type may be changed into an UNTYPED surface at run-time, as if it were created by , using . If there is a type mismatch between a operation and what the run-time decides the type should be, the result is profile- and platform-specific behavior. */ + FX_SURFACE_TYPE_ENUM_1D, + FX_SURFACE_TYPE_ENUM_2D, + FX_SURFACE_TYPE_ENUM_3D, + FX_SURFACE_TYPE_ENUM_RECT, + FX_SURFACE_TYPE_ENUM_CUBE, + FX_SURFACE_TYPE_ENUM_DEPTH, + FX_SURFACE_TYPE_ENUM_COUNT = 7 +}; + +enum domFx_surface_face_enum { + FX_SURFACE_FACE_ENUM_POSITIVE_X, + FX_SURFACE_FACE_ENUM_NEGATIVE_X, + FX_SURFACE_FACE_ENUM_POSITIVE_Y, + FX_SURFACE_FACE_ENUM_NEGATIVE_Y, + FX_SURFACE_FACE_ENUM_POSITIVE_Z, + FX_SURFACE_FACE_ENUM_NEGATIVE_Z, + FX_SURFACE_FACE_ENUM_COUNT = 6 +}; + +/** + * The per-texel layout of the format. The length of the string indicate + * how many channels there are and the letter respresents the name of the + * channel. There are typically 0 to 4 channels. + */ +enum domFx_surface_format_hint_channels_enum { + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_RGB, /**< RGB color map */ + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_RGBA, /**< RGB color + Alpha map often used for color + transparency or other things packed into channel A like specular power */ + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_L, /**< Luminance map often used for light mapping */ + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_LA, /**< Luminance+Alpha map often used for light mapping */ + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_D, /**< Depth map often used for displacement, parellax, relief, or shadow mapping */ + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_XYZ, /**< Typically used for normal maps or 3component displacement maps. */ + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_XYZW, /**< Typically used for normal maps where W is the depth for relief or parrallax mapping */ + FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_COUNT = 7 +}; + +/** + * Each channel of the texel has a precision. Typically these are all linked + * together. An exact format lay lower the precision of an individual channel + * but applying a higher precision by linking the channels together may still + * convey the same information. + */ +enum domFx_surface_format_hint_precision_enum { + FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_LOW, /**< For integers this typically represents 8 bits. For floats typically 16 bits. */ + FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_MID, /**< For integers this typically represents 8 to 24 bits. For floats typically 16 to 32 bits. */ + FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_HIGH, /**< For integers this typically represents 16 to 32 bits. For floats typically 24 to 32 bits. */ + FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_COUNT = 3 +}; + +/** + * Each channel represents a range of values. Some example ranges are signed + * or unsigned integers, or between between a clamped range such as 0.0f to + * 1.0f, or high dynamic range via floating point + */ +enum domFx_surface_format_hint_range_enum { + FX_SURFACE_FORMAT_HINT_RANGE_ENUM_SNORM, /**< Format is representing a decimal value that remains within the -1 to 1 range. Implimentation could be integer-fixedpoint or floats. */ + FX_SURFACE_FORMAT_HINT_RANGE_ENUM_UNORM, /**< Format is representing a decimal value that remains within the 0 to 1 range. Implimentation could be integer-fixedpoint or floats. */ + FX_SURFACE_FORMAT_HINT_RANGE_ENUM_SINT, /**< Format is representing signed integer numbers. (ex. 8bits = -128 to 127) */ + FX_SURFACE_FORMAT_HINT_RANGE_ENUM_UINT, /**< Format is representing unsigned integer numbers. (ex. 8bits = 0 to 255) */ + FX_SURFACE_FORMAT_HINT_RANGE_ENUM_FLOAT, /**< Format should support full floating point ranges. High precision is expected to be 32bit. Mid precision may be 16 to 32 bit. Low precision is expected to be 16 bit. */ + FX_SURFACE_FORMAT_HINT_RANGE_ENUM_COUNT = 5 +}; + +/** + * Additional hints about data relationships and other things to help the + * application pick the best format. + */ +enum domFx_surface_format_hint_option_enum { + FX_SURFACE_FORMAT_HINT_OPTION_ENUM_SRGB_GAMMA, /**< colors are stored with respect to the sRGB 2.2 gamma curve rather than linear */ + FX_SURFACE_FORMAT_HINT_OPTION_ENUM_NORMALIZED3, /**< the texel's XYZ/RGB should be normalized such as in a normal map. */ + FX_SURFACE_FORMAT_HINT_OPTION_ENUM_NORMALIZED4, /**< the texel's XYZW/RGBA should be normalized such as in a normal map. */ + FX_SURFACE_FORMAT_HINT_OPTION_ENUM_COMPRESSABLE, /**< The surface may use run-time compression. Considering the best compression based on desired, channel, range, precision, and options */ + FX_SURFACE_FORMAT_HINT_OPTION_ENUM_COUNT = 4 +}; + +enum domFx_sampler_wrap_common { + FX_SAMPLER_WRAP_COMMON_NONE, + FX_SAMPLER_WRAP_COMMON_WRAP, + FX_SAMPLER_WRAP_COMMON_MIRROR, + FX_SAMPLER_WRAP_COMMON_CLAMP, + FX_SAMPLER_WRAP_COMMON_BORDER, + FX_SAMPLER_WRAP_COMMON_COUNT = 5 +}; + +enum domFx_sampler_filter_common { + FX_SAMPLER_FILTER_COMMON_NONE, + FX_SAMPLER_FILTER_COMMON_NEAREST, + FX_SAMPLER_FILTER_COMMON_LINEAR, + FX_SAMPLER_FILTER_COMMON_NEAREST_MIPMAP_NEAREST, + FX_SAMPLER_FILTER_COMMON_LINEAR_MIPMAP_NEAREST, + FX_SAMPLER_FILTER_COMMON_NEAREST_MIPMAP_LINEAR, + FX_SAMPLER_FILTER_COMMON_LINEAR_MIPMAP_LINEAR, + FX_SAMPLER_FILTER_COMMON_COUNT = 7 +}; + +enum domFx_modifier_enum_common { + FX_MODIFIER_ENUM_COMMON_CONST, + FX_MODIFIER_ENUM_COMMON_UNIFORM, + FX_MODIFIER_ENUM_COMMON_VARYING, + FX_MODIFIER_ENUM_COMMON_STATIC, + FX_MODIFIER_ENUM_COMMON_VOLATILE, + FX_MODIFIER_ENUM_COMMON_EXTERN, + FX_MODIFIER_ENUM_COMMON_SHARED, + FX_MODIFIER_ENUM_COMMON_COUNT = 7 +}; + +enum domFx_pipeline_stage_common { + FX_PIPELINE_STAGE_COMMON_VERTEXPROGRAM, + FX_PIPELINE_STAGE_COMMON_FRAGMENTPROGRAM, + FX_PIPELINE_STAGE_COMMON_VERTEXSHADER, + FX_PIPELINE_STAGE_COMMON_PIXELSHADER, + FX_PIPELINE_STAGE_COMMON_COUNT = 4 +}; + +enum domGl_blend_type { + GL_BLEND_TYPE_ZERO = 0x0, + GL_BLEND_TYPE_ONE = 0x1, + GL_BLEND_TYPE_SRC_COLOR = 0x0300, + GL_BLEND_TYPE_ONE_MINUS_SRC_COLOR = 0x0301, + GL_BLEND_TYPE_DEST_COLOR = 0x0306, + GL_BLEND_TYPE_ONE_MINUS_DEST_COLOR = 0x0307, + GL_BLEND_TYPE_SRC_ALPHA = 0x0302, + GL_BLEND_TYPE_ONE_MINUS_SRC_ALPHA = 0x0303, + GL_BLEND_TYPE_DST_ALPHA = 0x0304, + GL_BLEND_TYPE_ONE_MINUS_DST_ALPHA = 0x0305, + GL_BLEND_TYPE_CONSTANT_COLOR = 0x8001, + GL_BLEND_TYPE_ONE_MINUS_CONSTANT_COLOR = 0x8002, + GL_BLEND_TYPE_CONSTANT_ALPHA = 0x8003, + GL_BLEND_TYPE_ONE_MINUS_CONSTANT_ALPHA = 0x8004, + GL_BLEND_TYPE_SRC_ALPHA_SATURATE = 0x0308, + GL_BLEND_TYPE_COUNT = 15 +}; + +enum domGl_face_type { + GL_FACE_TYPE_FRONT = 0x0404, + GL_FACE_TYPE_BACK = 0x0405, + GL_FACE_TYPE_FRONT_AND_BACK = 0x0408, + GL_FACE_TYPE_COUNT = 3 +}; + +enum domGl_blend_equation_type { + GL_BLEND_EQUATION_TYPE_FUNC_ADD = 0x8006, + GL_BLEND_EQUATION_TYPE_FUNC_SUBTRACT = 0x800A, + GL_BLEND_EQUATION_TYPE_FUNC_REVERSE_SUBTRACT = 0x800B, + GL_BLEND_EQUATION_TYPE_MIN = 0x8007, + GL_BLEND_EQUATION_TYPE_MAX = 0x8008, + GL_BLEND_EQUATION_TYPE_COUNT = 5 +}; + +enum domGl_func_type { + GL_FUNC_TYPE_NEVER = 0x0200, + GL_FUNC_TYPE_LESS = 0x0201, + GL_FUNC_TYPE_LEQUAL = 0x0203, + GL_FUNC_TYPE_EQUAL = 0x0202, + GL_FUNC_TYPE_GREATER = 0x0204, + GL_FUNC_TYPE_NOTEQUAL = 0x0205, + GL_FUNC_TYPE_GEQUAL = 0x0206, + GL_FUNC_TYPE_ALWAYS = 0x0207, + GL_FUNC_TYPE_COUNT = 8 +}; + +enum domGl_stencil_op_type { + GL_STENCIL_OP_TYPE_KEEP = 0x1E00, + GL_STENCIL_OP_TYPE_ZERO = 0x0, + GL_STENCIL_OP_TYPE_REPLACE = 0x1E01, + GL_STENCIL_OP_TYPE_INCR = 0x1E02, + GL_STENCIL_OP_TYPE_DECR = 0x1E03, + GL_STENCIL_OP_TYPE_INVERT = 0x150A, + GL_STENCIL_OP_TYPE_INCR_WRAP = 0x8507, + GL_STENCIL_OP_TYPE_DECR_WRAP = 0x8508, + GL_STENCIL_OP_TYPE_COUNT = 8 +}; + +enum domGl_material_type { + GL_MATERIAL_TYPE_EMISSION = 0x1600, + GL_MATERIAL_TYPE_AMBIENT = 0x1200, + GL_MATERIAL_TYPE_DIFFUSE = 0x1201, + GL_MATERIAL_TYPE_SPECULAR = 0x1202, + GL_MATERIAL_TYPE_AMBIENT_AND_DIFFUSE = 0x1602, + GL_MATERIAL_TYPE_COUNT = 5 +}; + +enum domGl_fog_type { + GL_FOG_TYPE_LINEAR = 0x2601, + GL_FOG_TYPE_EXP = 0x0800, + GL_FOG_TYPE_EXP2 = 0x0801, + GL_FOG_TYPE_COUNT = 3 +}; + +enum domGl_fog_coord_src_type { + GL_FOG_COORD_SRC_TYPE_FOG_COORDINATE = 0x8451, + GL_FOG_COORD_SRC_TYPE_FRAGMENT_DEPTH = 0x8452, + GL_FOG_COORD_SRC_TYPE_COUNT = 2 +}; + +enum domGl_front_face_type { + GL_FRONT_FACE_TYPE_CW = 0x0900, + GL_FRONT_FACE_TYPE_CCW = 0x0901, + GL_FRONT_FACE_TYPE_COUNT = 2 +}; + +enum domGl_light_model_color_control_type { + GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_SINGLE_COLOR = 0x81F9, + GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_SEPARATE_SPECULAR_COLOR = 0x81FA, + GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_COUNT = 2 +}; + +enum domGl_logic_op_type { + GL_LOGIC_OP_TYPE_CLEAR = 0x1500, + GL_LOGIC_OP_TYPE_AND = 0x1501, + GL_LOGIC_OP_TYPE_AND_REVERSE = 0x1502, + GL_LOGIC_OP_TYPE_COPY = 0x1503, + GL_LOGIC_OP_TYPE_AND_INVERTED = 0x1504, + GL_LOGIC_OP_TYPE_NOOP = 0x1505, + GL_LOGIC_OP_TYPE_XOR = 0x1506, + GL_LOGIC_OP_TYPE_OR = 0x1507, + GL_LOGIC_OP_TYPE_NOR = 0x1508, + GL_LOGIC_OP_TYPE_EQUIV = 0x1509, + GL_LOGIC_OP_TYPE_INVERT = 0x150A, + GL_LOGIC_OP_TYPE_OR_REVERSE = 0x150B, + GL_LOGIC_OP_TYPE_COPY_INVERTED = 0x150C, + GL_LOGIC_OP_TYPE_NAND = 0x150E, + GL_LOGIC_OP_TYPE_SET = 0x150F, + GL_LOGIC_OP_TYPE_COUNT = 15 +}; + +enum domGl_polygon_mode_type { + GL_POLYGON_MODE_TYPE_POINT = 0x1B00, + GL_POLYGON_MODE_TYPE_LINE = 0x1B01, + GL_POLYGON_MODE_TYPE_FILL = 0x1B02, + GL_POLYGON_MODE_TYPE_COUNT = 3 +}; + +enum domGl_shade_model_type { + GL_SHADE_MODEL_TYPE_FLAT = 0x1D00, + GL_SHADE_MODEL_TYPE_SMOOTH = 0x1D01, + GL_SHADE_MODEL_TYPE_COUNT = 2 +}; + +enum domGlsl_pipeline_stage { + GLSL_PIPELINE_STAGE_VERTEXPROGRAM, + GLSL_PIPELINE_STAGE_FRAGMENTPROGRAM, + GLSL_PIPELINE_STAGE_COUNT = 2 +}; + +enum domCg_pipeline_stage { + CG_PIPELINE_STAGE_VERTEX, + CG_PIPELINE_STAGE_FRAGMENT, + CG_PIPELINE_STAGE_COUNT = 2 +}; + +enum domGles_texenv_mode_enums { + GLES_TEXENV_MODE_ENUMS_REPLACE = 0x1E01, + GLES_TEXENV_MODE_ENUMS_MODULATE = 0x2100, + GLES_TEXENV_MODE_ENUMS_DECAL = 0x2101, + GLES_TEXENV_MODE_ENUMS_BLEND = 0x0BE2, + GLES_TEXENV_MODE_ENUMS_ADD = 0x0104, + GLES_TEXENV_MODE_ENUMS_COUNT = 5 +}; + +enum domGles_texcombiner_operatorRGB_enums { + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_REPLACE = 0x1E01, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_MODULATE = 0x2100, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_ADD = 0x0104, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_ADD_SIGNED = 0x8574, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_INTERPOLATE = 0x8575, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_SUBTRACT = 0x84E7, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_DOT3_RGB = 0x86AE, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_DOT3_RGBA = 0x86AF, + GLES_TEXCOMBINER_OPERATORRGB_ENUMS_COUNT = 8 +}; + +enum domGles_texcombiner_operatorAlpha_enums { + GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_REPLACE = 0x1E01, + GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_MODULATE = 0x2100, + GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_ADD = 0x0104, + GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_ADD_SIGNED = 0x8574, + GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_INTERPOLATE = 0x8575, + GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_SUBTRACT = 0x84E7, + GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_COUNT = 6 +}; + +enum domGles_texcombiner_source_enums { + GLES_TEXCOMBINER_SOURCE_ENUMS_TEXTURE = 0x1702, + GLES_TEXCOMBINER_SOURCE_ENUMS_CONSTANT = 0x8576, + GLES_TEXCOMBINER_SOURCE_ENUMS_PRIMARY = 0x8577, + GLES_TEXCOMBINER_SOURCE_ENUMS_PREVIOUS = 0x8578, + GLES_TEXCOMBINER_SOURCE_ENUMS_COUNT = 4 +}; + +enum domGles_texcombiner_operandRGB_enums { + GLES_TEXCOMBINER_OPERANDRGB_ENUMS_SRC_COLOR = 0x0300, + GLES_TEXCOMBINER_OPERANDRGB_ENUMS_ONE_MINUS_SRC_COLOR = 0x0301, + GLES_TEXCOMBINER_OPERANDRGB_ENUMS_SRC_ALPHA = 0x0302, + GLES_TEXCOMBINER_OPERANDRGB_ENUMS_ONE_MINUS_SRC_ALPHA = 0x0303, + GLES_TEXCOMBINER_OPERANDRGB_ENUMS_COUNT = 4 +}; + +enum domGles_texcombiner_operandAlpha_enums { + GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_SRC_ALPHA = 0x0302, + GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_ONE_MINUS_SRC_ALPHA = 0x0303, + GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_COUNT = 2 +}; + +enum domGles_sampler_wrap { + GLES_SAMPLER_WRAP_REPEAT, + GLES_SAMPLER_WRAP_CLAMP, + GLES_SAMPLER_WRAP_CLAMP_TO_EDGE, + GLES_SAMPLER_WRAP_MIRRORED_REPEAT, /**< supported by GLES 1.1 only */ + GLES_SAMPLER_WRAP_COUNT = 4 +}; + +enum domGles_stencil_op_type { + GLES_STENCIL_OP_TYPE_KEEP = 0x1E00, + GLES_STENCIL_OP_TYPE_ZERO = 0x0, + GLES_STENCIL_OP_TYPE_REPLACE = 0x1E01, + GLES_STENCIL_OP_TYPE_INCR = 0x1E02, + GLES_STENCIL_OP_TYPE_DECR = 0x1E03, + GLES_STENCIL_OP_TYPE_INVERT = 0x150A, + GLES_STENCIL_OP_TYPE_COUNT = 6 +}; + +enum domSpringType { + SPRINGTYPE_LINEAR, + SPRINGTYPE_ANGULAR, + SPRINGTYPE_COUNT = 2 +}; + +enum domGl_enumeration { + GL_ENUMERATION_ZERO = 0x0, + GL_ENUMERATION_ONE = 0x1, + GL_ENUMERATION_SRC_COLOR = 0x0300, + GL_ENUMERATION_ONE_MINUS_SRC_COLOR = 0x0301, + GL_ENUMERATION_DEST_COLOR = 0x0306, + GL_ENUMERATION_ONE_MINUS_DEST_COLOR = 0x0307, + GL_ENUMERATION_SRC_ALPHA = 0x0302, + GL_ENUMERATION_ONE_MINUS_SRC_ALPHA = 0x0303, + GL_ENUMERATION_DST_ALPHA = 0x0304, + GL_ENUMERATION_ONE_MINUS_DST_ALPHA = 0x0305, + GL_ENUMERATION_CONSTANT_COLOR = 0x8001, + GL_ENUMERATION_ONE_MINUS_CONSTANT_COLOR = 0x8002, + GL_ENUMERATION_CONSTANT_ALPHA = 0x8003, + GL_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA = 0x8004, + GL_ENUMERATION_SRC_ALPHA_SATURATE = 0x0308, + GL_ENUMERATION_FRONT = 0x0404, + GL_ENUMERATION_BACK = 0x0405, + GL_ENUMERATION_FRONT_AND_BACK = 0x0408, + GL_ENUMERATION_FUNC_ADD = 0x8006, + GL_ENUMERATION_FUNC_SUBTRACT = 0x800A, + GL_ENUMERATION_FUNC_REVERSE_SUBTRACT = 0x800B, + GL_ENUMERATION_MIN = 0x8007, + GL_ENUMERATION_MAX = 0x8008, + GL_ENUMERATION_NEVER = 0x0200, + GL_ENUMERATION_LESS = 0x0201, + GL_ENUMERATION_LEQUAL = 0x0203, + GL_ENUMERATION_EQUAL = 0x0202, + GL_ENUMERATION_GREATER = 0x0204, + GL_ENUMERATION_NOTEQUAL = 0x0205, + GL_ENUMERATION_GEQUAL = 0x0206, + GL_ENUMERATION_ALWAYS = 0x0207, + GL_ENUMERATION_KEEP = 0x1E00, + GL_ENUMERATION_REPLACE = 0x1E01, + GL_ENUMERATION_INCR = 0x1E02, + GL_ENUMERATION_DECR = 0x1E03, + GL_ENUMERATION_INVERT = 0x150A, + GL_ENUMERATION_INCR_WRAP = 0x8507, + GL_ENUMERATION_DECR_WRAP = 0x8508, + GL_ENUMERATION_EMISSION = 0x1600, + GL_ENUMERATION_AMBIENT = 0x1200, + GL_ENUMERATION_DIFFUSE = 0x1201, + GL_ENUMERATION_SPECULAR = 0x1202, + GL_ENUMERATION_AMBIENT_AND_DIFFUSE = 0x1602, + GL_ENUMERATION_LINEAR = 0x2601, + GL_ENUMERATION_EXP = 0x0800, + GL_ENUMERATION_EXP2 = 0x0801, + GL_ENUMERATION_FOG_COORDINATE = 0x8451, + GL_ENUMERATION_FRAGMENT_DEPTH = 0x8452, + GL_ENUMERATION_CW = 0x0900, + GL_ENUMERATION_CCW = 0x0901, + GL_ENUMERATION_SINGLE_COLOR = 0x81F9, + GL_ENUMERATION_SEPARATE_SPECULAR_COLOR = 0x81FA, + GL_ENUMERATION_CLEAR = 0x1500, + GL_ENUMERATION_AND = 0x1501, + GL_ENUMERATION_AND_REVERSE = 0x1502, + GL_ENUMERATION_COPY = 0x1503, + GL_ENUMERATION_AND_INVERTED = 0x1504, + GL_ENUMERATION_NOOP = 0x1505, + GL_ENUMERATION_XOR = 0x1506, + GL_ENUMERATION_OR = 0x1507, + GL_ENUMERATION_NOR = 0x1508, + GL_ENUMERATION_EQUIV = 0x1509, + GL_ENUMERATION_OR_REVERSE = 0x150B, + GL_ENUMERATION_COPY_INVERTED = 0x150C, + GL_ENUMERATION_NAND = 0x150E, + GL_ENUMERATION_SET = 0x150F, + GL_ENUMERATION_POINT = 0x1B00, + GL_ENUMERATION_LINE = 0x1B01, + GL_ENUMERATION_FILL = 0x1B02, + GL_ENUMERATION_FLAT = 0x1D00, + GL_ENUMERATION_SMOOTH = 0x1D01, + GL_ENUMERATION_COUNT = 72 +}; + +enum domGles_enumeration { + GLES_ENUMERATION_ZERO = 0x0, + GLES_ENUMERATION_ONE = 0x1, + GLES_ENUMERATION_SRC_COLOR = 0x0300, + GLES_ENUMERATION_ONE_MINUS_SRC_COLOR = 0x0301, + GLES_ENUMERATION_DEST_COLOR = 0x0306, + GLES_ENUMERATION_ONE_MINUS_DEST_COLOR = 0x0307, + GLES_ENUMERATION_SRC_ALPHA = 0x0302, + GLES_ENUMERATION_ONE_MINUS_SRC_ALPHA = 0x0303, + GLES_ENUMERATION_DST_ALPHA = 0x0304, + GLES_ENUMERATION_ONE_MINUS_DST_ALPHA = 0x0305, + GLES_ENUMERATION_CONSTANT_COLOR = 0x8001, + GLES_ENUMERATION_ONE_MINUS_CONSTANT_COLOR = 0x8002, + GLES_ENUMERATION_CONSTANT_ALPHA = 0x8003, + GLES_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA = 0x8004, + GLES_ENUMERATION_SRC_ALPHA_SATURATE = 0x0308, + GLES_ENUMERATION_FRONT = 0x0404, + GLES_ENUMERATION_BACK = 0x0405, + GLES_ENUMERATION_FRONT_AND_BACK = 0x0408, + GLES_ENUMERATION_NEVER = 0x0200, + GLES_ENUMERATION_LESS = 0x0201, + GLES_ENUMERATION_LEQUAL = 0x0203, + GLES_ENUMERATION_EQUAL = 0x0202, + GLES_ENUMERATION_GREATER = 0x0204, + GLES_ENUMERATION_NOTEQUAL = 0x0205, + GLES_ENUMERATION_GEQUAL = 0x0206, + GLES_ENUMERATION_ALWAYS = 0x0207, + GLES_ENUMERATION_KEEP = 0x1E00, + GLES_ENUMERATION_REPLACE = 0x1E01, + GLES_ENUMERATION_INCR = 0x1E02, + GLES_ENUMERATION_DECR = 0x1E03, + GLES_ENUMERATION_INVERT = 0x150A, + GLES_ENUMERATION_INCR_WRAP = 0x8507, + GLES_ENUMERATION_DECR_WRAP = 0x8508, + GLES_ENUMERATION_EMISSION = 0x1600, + GLES_ENUMERATION_AMBIENT = 0x1200, + GLES_ENUMERATION_DIFFUSE = 0x1201, + GLES_ENUMERATION_SPECULAR = 0x1202, + GLES_ENUMERATION_AMBIENT_AND_DIFFUSE = 0x1602, + GLES_ENUMERATION_LINEAR = 0x2601, + GLES_ENUMERATION_EXP = 0x0800, + GLES_ENUMERATION_EXP2 = 0x0801, + GLES_ENUMERATION_CW = 0x0900, + GLES_ENUMERATION_CCW = 0x0901, + GLES_ENUMERATION_SINGLE_COLOR = 0x81F9, + GLES_ENUMERATION_SEPARATE_SPECULAR_COLOR = 0x81FA, + GLES_ENUMERATION_CLEAR = 0x1500, + GLES_ENUMERATION_AND = 0x1501, + GLES_ENUMERATION_AND_REVERSE = 0x1502, + GLES_ENUMERATION_COPY = 0x1503, + GLES_ENUMERATION_AND_INVERTED = 0x1504, + GLES_ENUMERATION_NOOP = 0x1505, + GLES_ENUMERATION_XOR = 0x1506, + GLES_ENUMERATION_OR = 0x1507, + GLES_ENUMERATION_NOR = 0x1508, + GLES_ENUMERATION_EQUIV = 0x1509, + GLES_ENUMERATION_OR_REVERSE = 0x150B, + GLES_ENUMERATION_COPY_INVERTED = 0x150C, + GLES_ENUMERATION_NAND = 0x150E, + GLES_ENUMERATION_SET = 0x150F, + GLES_ENUMERATION_POINT = 0x1B00, + GLES_ENUMERATION_LINE = 0x1B01, + GLES_ENUMERATION_FILL = 0x1B02, + GLES_ENUMERATION_FLAT = 0x1D00, + GLES_ENUMERATION_SMOOTH = 0x1D01, + GLES_ENUMERATION_COUNT = 65 +}; + +//Element Type Enum +namespace COLLADA_TYPE +{ + const int + NO_TYPE = 0, + ANY = 1, + INPUTGLOBAL = 2, + INPUTLOCAL = 3, + INPUTLOCALOFFSET = 4, + INSTANCEWITHEXTRA = 5, + TARGETABLEFLOAT = 6, + TARGETABLEFLOAT3 = 7, + FX_SURFACE_FORMAT_HINT_COMMON = 8, + CHANNELS = 9, + RANGE = 10, + PRECISION = 11, + OPTION = 12, + FX_SURFACE_INIT_PLANAR_COMMON = 13, + ALL = 14, + FX_SURFACE_INIT_VOLUME_COMMON = 15, + PRIMARY = 16, + FX_SURFACE_INIT_CUBE_COMMON = 17, + ORDER = 18, + FACE = 19, + FX_SURFACE_INIT_FROM_COMMON = 20, + FX_SURFACE_COMMON = 21, + FORMAT = 22, + SIZE = 23, + VIEWPORT_RATIO = 24, + MIP_LEVELS = 25, + MIPMAP_GENERATE = 26, + FX_SAMPLER1D_COMMON = 27, + SOURCE = 28, + WRAP_S = 29, + MINFILTER = 30, + MAGFILTER = 31, + MIPFILTER = 32, + BORDER_COLOR = 33, + MIPMAP_MAXLEVEL = 34, + MIPMAP_BIAS = 35, + FX_SAMPLER2D_COMMON = 36, + WRAP_T = 37, + FX_SAMPLER3D_COMMON = 38, + WRAP_P = 39, + FX_SAMPLERCUBE_COMMON = 40, + FX_SAMPLERRECT_COMMON = 41, + FX_SAMPLERDEPTH_COMMON = 42, + FX_COLORTARGET_COMMON = 43, + FX_DEPTHTARGET_COMMON = 44, + FX_STENCILTARGET_COMMON = 45, + FX_CLEARCOLOR_COMMON = 46, + FX_CLEARDEPTH_COMMON = 47, + FX_CLEARSTENCIL_COMMON = 48, + FX_ANNOTATE_COMMON = 49, + FX_INCLUDE_COMMON = 50, + FX_NEWPARAM_COMMON = 51, + SEMANTIC = 52, + MODIFIER = 53, + FX_CODE_PROFILE = 54, + GL_SAMPLER1D = 55, + GL_SAMPLER2D = 56, + GL_SAMPLER3D = 57, + GL_SAMPLERCUBE = 58, + GL_SAMPLERRECT = 59, + GL_SAMPLERDEPTH = 60, + GLSL_NEWARRAY_TYPE = 61, + GLSL_SETARRAY_TYPE = 62, + GLSL_SURFACE_TYPE = 63, + GENERATOR = 64, + NAME = 65, + GLSL_NEWPARAM = 66, + GLSL_SETPARAM_SIMPLE = 67, + GLSL_SETPARAM = 68, + COMMON_FLOAT_OR_PARAM_TYPE = 69, + FLOAT = 70, + PARAM = 71, + COMMON_COLOR_OR_TEXTURE_TYPE = 72, + COLOR = 73, + TEXTURE = 74, + COMMON_TRANSPARENT_TYPE = 75, + COMMON_NEWPARAM_TYPE = 76, + FLOAT2 = 77, + FLOAT3 = 78, + FLOAT4 = 79, + CG_SAMPLER1D = 80, + CG_SAMPLER2D = 81, + CG_SAMPLER3D = 82, + CG_SAMPLERCUBE = 83, + CG_SAMPLERRECT = 84, + CG_SAMPLERDEPTH = 85, + CG_CONNECT_PARAM = 86, + CG_NEWARRAY_TYPE = 87, + CG_SETARRAY_TYPE = 88, + CG_SETUSER_TYPE = 89, + CG_SURFACE_TYPE = 90, + CG_NEWPARAM = 91, + CG_SETPARAM_SIMPLE = 92, + CG_SETPARAM = 93, + GLES_TEXTURE_CONSTANT_TYPE = 94, + GLES_TEXENV_COMMAND_TYPE = 95, + GLES_TEXCOMBINER_ARGUMENTRGB_TYPE = 96, + GLES_TEXCOMBINER_ARGUMENTALPHA_TYPE = 97, + GLES_TEXCOMBINER_COMMANDRGB_TYPE = 98, + GLES_TEXCOMBINER_COMMANDALPHA_TYPE = 99, + GLES_TEXCOMBINER_COMMAND_TYPE = 100, + GLES_TEXTURE_PIPELINE = 101, + GLES_TEXTURE_UNIT = 102, + SURFACE = 103, + SAMPLER_STATE = 104, + TEXCOORD = 105, + GLES_SAMPLER_STATE = 106, + GLES_NEWPARAM = 107, + FX_SURFACE_INIT_COMMON = 108, + INIT_AS_NULL = 109, + INIT_AS_TARGET = 110, + FX_ANNOTATE_TYPE_COMMON = 111, + BOOL = 112, + BOOL2 = 113, + BOOL3 = 114, + BOOL4 = 115, + INT = 116, + INT2 = 117, + INT3 = 118, + INT4 = 119, + FLOAT2X2 = 120, + FLOAT3X3 = 121, + FLOAT4X4 = 122, + STRING = 123, + FX_BASIC_TYPE_COMMON = 124, + FLOAT1X1 = 125, + FLOAT1X2 = 126, + FLOAT1X3 = 127, + FLOAT1X4 = 128, + FLOAT2X1 = 129, + FLOAT2X3 = 130, + FLOAT2X4 = 131, + FLOAT3X1 = 132, + FLOAT3X2 = 133, + FLOAT3X4 = 134, + FLOAT4X1 = 135, + FLOAT4X2 = 136, + FLOAT4X3 = 137, + ENUM = 138, + GL_PIPELINE_SETTINGS = 139, + ALPHA_FUNC = 140, + FUNC = 141, + VALUE = 142, + BLEND_FUNC = 143, + SRC = 144, + DEST = 145, + BLEND_FUNC_SEPARATE = 146, + SRC_RGB = 147, + DEST_RGB = 148, + SRC_ALPHA = 149, + DEST_ALPHA = 150, + BLEND_EQUATION = 151, + BLEND_EQUATION_SEPARATE = 152, + RGB = 153, + ALPHA = 154, + COLOR_MATERIAL = 155, + MODE = 156, + CULL_FACE = 157, + DEPTH_FUNC = 158, + FOG_MODE = 159, + FOG_COORD_SRC = 160, + FRONT_FACE = 161, + LIGHT_MODEL_COLOR_CONTROL = 162, + LOGIC_OP = 163, + POLYGON_MODE = 164, + SHADE_MODEL = 165, + STENCIL_FUNC = 166, + REF = 167, + MASK = 168, + STENCIL_OP = 169, + FAIL = 170, + ZFAIL = 171, + ZPASS = 172, + STENCIL_FUNC_SEPARATE = 173, + FRONT = 174, + BACK = 175, + STENCIL_OP_SEPARATE = 176, + STENCIL_MASK_SEPARATE = 177, + LIGHT_ENABLE = 178, + LIGHT_AMBIENT = 179, + LIGHT_DIFFUSE = 180, + LIGHT_SPECULAR = 181, + LIGHT_POSITION = 182, + LIGHT_CONSTANT_ATTENUATION = 183, + LIGHT_LINEAR_ATTENUATION = 184, + LIGHT_QUADRATIC_ATTENUATION = 185, + LIGHT_SPOT_CUTOFF = 186, + LIGHT_SPOT_DIRECTION = 187, + LIGHT_SPOT_EXPONENT = 188, + TEXTURE1D = 189, + TEXTURE2D = 190, + TEXTURE3D = 191, + TEXTURECUBE = 192, + TEXTURERECT = 193, + TEXTUREDEPTH = 194, + TEXTURE1D_ENABLE = 195, + TEXTURE2D_ENABLE = 196, + TEXTURE3D_ENABLE = 197, + TEXTURECUBE_ENABLE = 198, + TEXTURERECT_ENABLE = 199, + TEXTUREDEPTH_ENABLE = 200, + TEXTURE_ENV_COLOR = 201, + TEXTURE_ENV_MODE = 202, + CLIP_PLANE = 203, + CLIP_PLANE_ENABLE = 204, + BLEND_COLOR = 205, + CLEAR_COLOR = 206, + CLEAR_STENCIL = 207, + CLEAR_DEPTH = 208, + COLOR_MASK = 209, + DEPTH_BOUNDS = 210, + DEPTH_MASK = 211, + DEPTH_RANGE = 212, + FOG_DENSITY = 213, + FOG_START = 214, + FOG_END = 215, + FOG_COLOR = 216, + LIGHT_MODEL_AMBIENT = 217, + LIGHTING_ENABLE = 218, + LINE_STIPPLE = 219, + LINE_WIDTH = 220, + MATERIAL_AMBIENT = 221, + MATERIAL_DIFFUSE = 222, + MATERIAL_EMISSION = 223, + MATERIAL_SHININESS = 224, + MATERIAL_SPECULAR = 225, + MODEL_VIEW_MATRIX = 226, + POINT_DISTANCE_ATTENUATION = 227, + POINT_FADE_THRESHOLD_SIZE = 228, + POINT_SIZE = 229, + POINT_SIZE_MIN = 230, + POINT_SIZE_MAX = 231, + POLYGON_OFFSET = 232, + PROJECTION_MATRIX = 233, + SCISSOR = 234, + STENCIL_MASK = 235, + ALPHA_TEST_ENABLE = 236, + AUTO_NORMAL_ENABLE = 237, + BLEND_ENABLE = 238, + COLOR_LOGIC_OP_ENABLE = 239, + COLOR_MATERIAL_ENABLE = 240, + CULL_FACE_ENABLE = 241, + DEPTH_BOUNDS_ENABLE = 242, + DEPTH_CLAMP_ENABLE = 243, + DEPTH_TEST_ENABLE = 244, + DITHER_ENABLE = 245, + FOG_ENABLE = 246, + LIGHT_MODEL_LOCAL_VIEWER_ENABLE = 247, + LIGHT_MODEL_TWO_SIDE_ENABLE = 248, + LINE_SMOOTH_ENABLE = 249, + LINE_STIPPLE_ENABLE = 250, + LOGIC_OP_ENABLE = 251, + MULTISAMPLE_ENABLE = 252, + NORMALIZE_ENABLE = 253, + POINT_SMOOTH_ENABLE = 254, + POLYGON_OFFSET_FILL_ENABLE = 255, + POLYGON_OFFSET_LINE_ENABLE = 256, + POLYGON_OFFSET_POINT_ENABLE = 257, + POLYGON_SMOOTH_ENABLE = 258, + POLYGON_STIPPLE_ENABLE = 259, + RESCALE_NORMAL_ENABLE = 260, + SAMPLE_ALPHA_TO_COVERAGE_ENABLE = 261, + SAMPLE_ALPHA_TO_ONE_ENABLE = 262, + SAMPLE_COVERAGE_ENABLE = 263, + SCISSOR_TEST_ENABLE = 264, + STENCIL_TEST_ENABLE = 265, + GLSL_PARAM_TYPE = 266, + CG_PARAM_TYPE = 267, + BOOL1 = 268, + BOOL1X1 = 269, + BOOL1X2 = 270, + BOOL1X3 = 271, + BOOL1X4 = 272, + BOOL2X1 = 273, + BOOL2X2 = 274, + BOOL2X3 = 275, + BOOL2X4 = 276, + BOOL3X1 = 277, + BOOL3X2 = 278, + BOOL3X3 = 279, + BOOL3X4 = 280, + BOOL4X1 = 281, + BOOL4X2 = 282, + BOOL4X3 = 283, + BOOL4X4 = 284, + FLOAT1 = 285, + INT1 = 286, + INT1X1 = 287, + INT1X2 = 288, + INT1X3 = 289, + INT1X4 = 290, + INT2X1 = 291, + INT2X2 = 292, + INT2X3 = 293, + INT2X4 = 294, + INT3X1 = 295, + INT3X2 = 296, + INT3X3 = 297, + INT3X4 = 298, + INT4X1 = 299, + INT4X2 = 300, + INT4X3 = 301, + INT4X4 = 302, + HALF = 303, + HALF1 = 304, + HALF2 = 305, + HALF3 = 306, + HALF4 = 307, + HALF1X1 = 308, + HALF1X2 = 309, + HALF1X3 = 310, + HALF1X4 = 311, + HALF2X1 = 312, + HALF2X2 = 313, + HALF2X3 = 314, + HALF2X4 = 315, + HALF3X1 = 316, + HALF3X2 = 317, + HALF3X3 = 318, + HALF3X4 = 319, + HALF4X1 = 320, + HALF4X2 = 321, + HALF4X3 = 322, + HALF4X4 = 323, + FIXED = 324, + FIXED1 = 325, + FIXED2 = 326, + FIXED3 = 327, + FIXED4 = 328, + FIXED1X1 = 329, + FIXED1X2 = 330, + FIXED1X3 = 331, + FIXED1X4 = 332, + FIXED2X1 = 333, + FIXED2X2 = 334, + FIXED2X3 = 335, + FIXED2X4 = 336, + FIXED3X1 = 337, + FIXED3X2 = 338, + FIXED3X3 = 339, + FIXED3X4 = 340, + FIXED4X1 = 341, + FIXED4X2 = 342, + FIXED4X3 = 343, + FIXED4X4 = 344, + GLES_PIPELINE_SETTINGS = 345, + TEXTURE_PIPELINE = 346, + LIGHT_LINEAR_ATTENUTATION = 347, + TEXTURE_PIPELINE_ENABLE = 348, + GLES_BASIC_TYPE_COMMON = 349, + COLLADA = 350, + SCENE = 351, + IDREF_ARRAY = 352, + NAME_ARRAY = 353, + BOOL_ARRAY = 354, + FLOAT_ARRAY = 355, + INT_ARRAY = 356, + ACCESSOR = 357, + TECHNIQUE_COMMON = 358, + GEOMETRY = 359, + MESH = 360, + SPLINE = 361, + CONTROL_VERTICES = 362, + P = 363, + LINES = 364, + LINESTRIPS = 365, + POLYGONS = 366, + PH = 367, + H = 368, + POLYLIST = 369, + VCOUNT = 370, + TRIANGLES = 371, + TRIFANS = 372, + TRISTRIPS = 373, + VERTICES = 374, + LOOKAT = 375, + MATRIX = 376, + ROTATE = 377, + SCALE = 378, + SKEW = 379, + TRANSLATE = 380, + IMAGE = 381, + DATA = 382, + INIT_FROM = 383, + LIGHT = 384, + AMBIENT = 385, + DIRECTIONAL = 386, + POINT = 387, + SPOT = 388, + MATERIAL = 389, + CAMERA = 390, + OPTICS = 391, + ORTHOGRAPHIC = 392, + PERSPECTIVE = 393, + IMAGER = 394, + ANIMATION = 395, + ANIMATION_CLIP = 396, + CHANNEL = 397, + SAMPLER = 398, + CONTROLLER = 399, + SKIN = 400, + BIND_SHAPE_MATRIX = 401, + JOINTS = 402, + VERTEX_WEIGHTS = 403, + V = 404, + MORPH = 405, + TARGETS = 406, + ASSET = 407, + CONTRIBUTOR = 408, + AUTHOR = 409, + AUTHORING_TOOL = 410, + COMMENTS = 411, + COPYRIGHT = 412, + SOURCE_DATA = 413, + CREATED = 414, + KEYWORDS = 415, + MODIFIED = 416, + REVISION = 417, + SUBJECT = 418, + TITLE = 419, + UNIT = 420, + UP_AXIS = 421, + EXTRA = 422, + TECHNIQUE = 423, + NODE = 424, + VISUAL_SCENE = 425, + EVALUATE_SCENE = 426, + RENDER = 427, + LAYER = 428, + BIND_MATERIAL = 429, + INSTANCE_CAMERA = 430, + INSTANCE_CONTROLLER = 431, + SKELETON = 432, + INSTANCE_EFFECT = 433, + TECHNIQUE_HINT = 434, + SETPARAM = 435, + INSTANCE_FORCE_FIELD = 436, + INSTANCE_GEOMETRY = 437, + INSTANCE_LIGHT = 438, + INSTANCE_MATERIAL = 439, + BIND = 440, + BIND_VERTEX_INPUT = 441, + INSTANCE_NODE = 442, + INSTANCE_PHYSICS_MATERIAL = 443, + INSTANCE_PHYSICS_MODEL = 444, + INSTANCE_RIGID_BODY = 445, + ANGULAR_VELOCITY = 446, + VELOCITY = 447, + DYNAMIC = 448, + MASS_FRAME = 449, + SHAPE = 450, + HOLLOW = 451, + INSTANCE_RIGID_CONSTRAINT = 452, + LIBRARY_ANIMATIONS = 453, + LIBRARY_ANIMATION_CLIPS = 454, + LIBRARY_CAMERAS = 455, + LIBRARY_CONTROLLERS = 456, + LIBRARY_GEOMETRIES = 457, + LIBRARY_EFFECTS = 458, + LIBRARY_FORCE_FIELDS = 459, + LIBRARY_IMAGES = 460, + LIBRARY_LIGHTS = 461, + LIBRARY_MATERIALS = 462, + LIBRARY_NODES = 463, + LIBRARY_PHYSICS_MATERIALS = 464, + LIBRARY_PHYSICS_MODELS = 465, + LIBRARY_PHYSICS_SCENES = 466, + LIBRARY_VISUAL_SCENES = 467, + FX_PROFILE_ABSTRACT = 468, + EFFECT = 469, + GL_HOOK_ABSTRACT = 470, + PROFILE_GLSL = 471, + PASS = 472, + DRAW = 473, + SHADER = 474, + COMPILER_TARGET = 475, + COMPILER_OPTIONS = 476, + PROFILE_COMMON = 477, + CONSTANT = 478, + LAMBERT = 479, + PHONG = 480, + BLINN = 481, + PROFILE_CG = 482, + PROFILE_GLES = 483, + COLOR_TARGET = 484, + DEPTH_TARGET = 485, + STENCIL_TARGET = 486, + COLOR_CLEAR = 487, + DEPTH_CLEAR = 488, + STENCIL_CLEAR = 489, + BOX = 490, + HALF_EXTENTS = 491, + PLANE = 492, + EQUATION = 493, + SPHERE = 494, + RADIUS = 495, + ELLIPSOID = 496, + CYLINDER = 497, + HEIGHT = 498, + TAPERED_CYLINDER = 499, + RADIUS1 = 500, + RADIUS2 = 501, + CAPSULE = 502, + TAPERED_CAPSULE = 503, + CONVEX_MESH = 504, + FORCE_FIELD = 505, + PHYSICS_MATERIAL = 506, + PHYSICS_SCENE = 507, + RIGID_BODY = 508, + RIGID_CONSTRAINT = 509, + REF_ATTACHMENT = 510, + ATTACHMENT = 511, + ENABLED = 512, + INTERPENETRATE = 513, + LIMITS = 514, + SWING_CONE_AND_TWIST = 515, + LINEAR = 516, + SPRING = 517, + ANGULAR = 518, + PHYSICS_MODEL = 519; +} + +// Returns the total number of schema types/dom* classes +daeInt DLLSPEC colladaTypeCount(); + +#endif diff --git a/include/1.4/dom/domVertices.h b/include/1.4/dom/domVertices.h new file mode 100644 index 0000000..f8c71b7 --- /dev/null +++ b/include/1.4/dom/domVertices.h @@ -0,0 +1,134 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domVertices_h__ +#define __domVertices_h__ + +#include +#include +#include + +#include +#include +class DAE; + +/** + * The vertices element declares the attributes and identity of mesh-vertices. + * The vertices element describes mesh-vertices in a mesh geometry. The mesh-vertices + * represent the position (identity) of the vertices comprising the mesh + * and other vertex attributes that are invariant to tessellation. + */ +class domVertices : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VERTICES; } + static daeInt ID() { return 628; } + virtual daeInt typeID() const { return ID(); } +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Required attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The input element must occur at least one time. These inputs are local + * inputs. @see domInput + */ + domInputLocal_Array elemInput_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the input element array. + * @return Returns a reference to the array of input elements. + */ + domInputLocal_Array &getInput_array() { return elemInput_array; } + /** + * Gets the input element array. + * @return Returns a constant reference to the array of input elements. + */ + const domInputLocal_Array &getInput_array() const { return elemInput_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domVertices(DAE& dae) : daeElement(dae), attrId(), attrName(), elemInput_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domVertices() {} + /** + * Overloaded assignment operator + */ + virtual domVertices &operator=( const domVertices &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/1.4/dom/domVisual_scene.h b/include/1.4/dom/domVisual_scene.h new file mode 100644 index 0000000..79d0045 --- /dev/null +++ b/include/1.4/dom/domVisual_scene.h @@ -0,0 +1,407 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __domVisual_scene_h__ +#define __domVisual_scene_h__ + +#include +#include +#include + +#include +#include +#include +#include +class DAE; + +/** + * The visual_scene element declares the base of the visual_scene hierarchy + * or scene graph. The scene contains elements that comprise much of the + * visual and transformational information content as created by the authoring + * tools. + */ +class domVisual_scene : public daeElement +{ +public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VISUAL_SCENE; } + static daeInt ID() { return 682; } + virtual daeInt typeID() const { return ID(); } +public: + class domEvaluate_scene; + + typedef daeSmartRef domEvaluate_sceneRef; + typedef daeTArray domEvaluate_scene_Array; + +/** + * The evaluate_scene element declares information specifying a specific way + * to evaluate this visual_scene. There may be any number of evaluate_scene + * elements. + */ + class domEvaluate_scene : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::EVALUATE_SCENE; } + static daeInt ID() { return 683; } + virtual daeInt typeID() const { return ID(); } + public: + class domRender; + + typedef daeSmartRef domRenderRef; + typedef daeTArray domRender_Array; + +/** + * The render element describes one effect pass to evaluate the scene. There + * must be at least one render element. + */ + class domRender : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RENDER; } + static daeInt ID() { return 684; } + virtual daeInt typeID() const { return ID(); } + public: + class domLayer; + + typedef daeSmartRef domLayerRef; + typedef daeTArray domLayer_Array; + +/** + * The layer element specifies which layer to render in this compositing step + * while evaluating the scene. You may specify any number of layers. + */ + class domLayer : public daeElement + { + public: + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LAYER; } + static daeInt ID() { return 685; } + virtual daeInt typeID() const { return ID(); } + + protected: // Value + /** + * The xsNCName value of the text data of this element. + */ + xsNCName _value; + + public: //Accessors and Mutators + /** + * Gets the value of this element. + * @return Returns a xsNCName of the value. + */ + xsNCName getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } + + protected: + /** + * Constructor + */ + domLayer(DAE& dae) : daeElement(dae), _value() {} + /** + * Destructor + */ + virtual ~domLayer() {} + /** + * Overloaded assignment operator + */ + virtual domLayer &operator=( const domLayer &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The camera_node attribute refers to a node that contains a camera describing + * the viewpoint to render this compositing step from. + */ + xsAnyURI attrCamera_node; + + protected: // Elements +/** + * The layer element specifies which layer to render in this compositing step + * while evaluating the scene. You may specify any number of layers. @see + * domLayer + */ + domLayer_Array elemLayer_array; +/** + * The instance_effect element specifies which effect to render in this compositing + * step while evaluating the scene. @see domInstance_effect + */ + domInstance_effectRef elemInstance_effect; + + public: //Accessors and Mutators + /** + * Gets the camera_node attribute. + * @return Returns a xsAnyURI reference of the camera_node attribute. + */ + xsAnyURI &getCamera_node() { return attrCamera_node; } + /** + * Gets the camera_node attribute. + * @return Returns a constant xsAnyURI reference of the camera_node attribute. + */ + const xsAnyURI &getCamera_node() const { return attrCamera_node; } + /** + * Sets the camera_node attribute. + * @param atCamera_node The new value for the camera_node attribute. + */ + void setCamera_node( const xsAnyURI &atCamera_node ) { attrCamera_node = atCamera_node; _validAttributeArray[0] = true; } + /** + * Sets the camera_node attribute. + * @param atCamera_node The new value for the camera_node attribute. + */ + void setCamera_node( xsString atCamera_node ) { attrCamera_node = atCamera_node; _validAttributeArray[0] = true; } + + /** + * Gets the layer element array. + * @return Returns a reference to the array of layer elements. + */ + domLayer_Array &getLayer_array() { return elemLayer_array; } + /** + * Gets the layer element array. + * @return Returns a constant reference to the array of layer elements. + */ + const domLayer_Array &getLayer_array() const { return elemLayer_array; } + /** + * Gets the instance_effect element. + * @return a daeSmartRef to the instance_effect element. + */ + const domInstance_effectRef getInstance_effect() const { return elemInstance_effect; } + protected: + /** + * Constructor + */ + domRender(DAE& dae) : daeElement(dae), attrCamera_node(dae, *this), elemLayer_array(), elemInstance_effect() {} + /** + * Destructor + */ + virtual ~domRender() {} + /** + * Overloaded assignment operator + */ + virtual domRender &operator=( const domRender &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + + protected: // Attribute +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + + protected: // Element +/** + * The render element describes one effect pass to evaluate the scene. There + * must be at least one render element. @see domRender + */ + domRender_Array elemRender_array; + + public: //Accessors and Mutators + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } + + /** + * Gets the render element array. + * @return Returns a reference to the array of render elements. + */ + domRender_Array &getRender_array() { return elemRender_array; } + /** + * Gets the render element array. + * @return Returns a constant reference to the array of render elements. + */ + const domRender_Array &getRender_array() const { return elemRender_array; } + protected: + /** + * Constructor + */ + domEvaluate_scene(DAE& dae) : daeElement(dae), attrName(), elemRender_array() {} + /** + * Destructor + */ + virtual ~domEvaluate_scene() {} + /** + * Overloaded assignment operator + */ + virtual domEvaluate_scene &operator=( const domEvaluate_scene &cpy ) { (void)cpy; return *this; } + + public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + }; + + +protected: // Attributes +/** + * The id attribute is a text string containing the unique identifier of + * this element. This value must be unique within the instance document. + * Optional attribute. + */ + xsID attrId; +/** + * The name attribute is the text string name of this element. Optional attribute. + */ + xsNCName attrName; + +protected: // Elements +/** + * The visual_scene element may contain an asset element. @see domAsset + */ + domAssetRef elemAsset; +/** + * The visual_scene element must have at least one node element. @see domNode + */ + domNode_Array elemNode_array; +/** + * The evaluate_scene element declares information specifying a specific way + * to evaluate this visual_scene. There may be any number of evaluate_scene + * elements. @see domEvaluate_scene + */ + domEvaluate_scene_Array elemEvaluate_scene_array; +/** + * The extra element may appear any number of times. @see domExtra + */ + domExtra_Array elemExtra_array; + +public: //Accessors and Mutators + /** + * Gets the id attribute. + * @return Returns a xsID of the id attribute. + */ + xsID getId() const { return attrId; } + /** + * Sets the id attribute. + * @param atId The new value for the id attribute. + */ + void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; + if( _document != NULL ) _document->changeElementID( this, attrId ); + } + + /** + * Gets the name attribute. + * @return Returns a xsNCName of the name attribute. + */ + xsNCName getName() const { return attrName; } + /** + * Sets the name attribute. + * @param atName The new value for the name attribute. + */ + void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } + + /** + * Gets the asset element. + * @return a daeSmartRef to the asset element. + */ + const domAssetRef getAsset() const { return elemAsset; } + /** + * Gets the node element array. + * @return Returns a reference to the array of node elements. + */ + domNode_Array &getNode_array() { return elemNode_array; } + /** + * Gets the node element array. + * @return Returns a constant reference to the array of node elements. + */ + const domNode_Array &getNode_array() const { return elemNode_array; } + /** + * Gets the evaluate_scene element array. + * @return Returns a reference to the array of evaluate_scene elements. + */ + domEvaluate_scene_Array &getEvaluate_scene_array() { return elemEvaluate_scene_array; } + /** + * Gets the evaluate_scene element array. + * @return Returns a constant reference to the array of evaluate_scene elements. + */ + const domEvaluate_scene_Array &getEvaluate_scene_array() const { return elemEvaluate_scene_array; } + /** + * Gets the extra element array. + * @return Returns a reference to the array of extra elements. + */ + domExtra_Array &getExtra_array() { return elemExtra_array; } + /** + * Gets the extra element array. + * @return Returns a constant reference to the array of extra elements. + */ + const domExtra_Array &getExtra_array() const { return elemExtra_array; } +protected: + /** + * Constructor + */ + domVisual_scene(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemNode_array(), elemEvaluate_scene_array(), elemExtra_array() {} + /** + * Destructor + */ + virtual ~domVisual_scene() {} + /** + * Overloaded assignment operator + */ + virtual domVisual_scene &operator=( const domVisual_scene &cpy ) { (void)cpy; return *this; } + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * If a daeMetaElement already exists it will return that instead of creating a new one. + * @return A daeMetaElement describing this COLLADA element. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); +}; + + +#endif diff --git a/include/dae.h b/include/dae.h new file mode 100644 index 0000000..49ab213 --- /dev/null +++ b/include/dae.h @@ -0,0 +1,209 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE__ +#define __DAE__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class domCOLLADA; +typedef daeSmartRef domCOLLADARef; +class daeDatabase; + +// The DAE class is the core interface via which you interact with the DOM. It +// has methods to load/save documents, get the root element of each document, +// etc. Although internally the DOM works exclusively with URIs, the methods of +// the DAE class that take document paths can take URIs or OS-specific file +// paths. +class DLLSPEC DAE +{ +public: + // Constructor. If no database or IO plugin are provided, a default database and + // IO plugin will be used. + DAE(daeDatabase* database = NULL, daeIOPlugin* ioPlugin = NULL) + : atomicTypes(*this), + baseUri(*this, cdom::getCurrentDirAsUri().c_str()) + { + // See the end of the thread linked below for an explanation of why we have the DAE + // constructor set up this way. Basically, I'm going to be changing the build output + // location, and when this happens people sometimes continue to link against the old + // libraries by accident (e.g. if they just do an svn update). By introducing a new + // function that gets called from a function in a header file, I'm ensuring that someone + // who tries linking against old libraries will get a link error. This may not sound + // very nice, but it's certainly better than getting bizarre runtime crashes. + // https://collada.org/public_forum/viewtopic.php?t=771&sid=f13c34f2d17ca720c5021bccbe5128b7 + init(database, ioPlugin); + dummyFunction1(); + } + + virtual ~DAE(); + + // Release all memory used by the DOM. You never need to call this explicitly. It's + // called automatically when all DAE objects go out of scope. + static void cleanup(); + +public: + // Database setup + virtual daeDatabase* getDatabase(); + virtual daeInt setDatabase(daeDatabase* database); + + // IO Plugin setup + virtual daeIOPlugin* getIOPlugin(); + virtual daeInt setIOPlugin(daeIOPlugin* plugin); + + // Creates a new document, returning null on failure. + virtual domCOLLADA* add(const std::string& path); + // Opens an existing document, returning null on failure. + virtual domCOLLADA* open(const std::string& path); + // Opens a document from memory, returning null on failure. + virtual domCOLLADA* openFromMemory(const std::string& path, daeString buffer); + // Write a document to the path specified by the document's URI, returning false on failure. + virtual bool write(const std::string& path); + // Write a document to the path specified in the second parameter, returning false on failure. + virtual bool writeTo(const std::string& docPath, const std::string& pathToWriteTo); + // Writes all documents, returning false if any document failed to write. + virtual bool writeAll(); + // Close a specific document, unloading all memory used by the document. Returns false on failure. + virtual void close(const std::string& path); + // Remove all loaded documents. Always returns DAE_OK. + virtual daeInt clear(); + + // Returns the total number of documents. + virtual int getDocCount(); + // Returns the i'th document . + virtual daeDocument* getDoc(int i); + // Returns a document matching the path. + virtual daeDocument* getDoc(const std::string& path); + + // Get the root domCOLLADA object corresponding to a particular document. + virtual domCOLLADA* getRoot(const std::string& path); + // Set the root domCOLLADA object corresponding to a particular document, returning false on failure. + virtual bool setRoot(const std::string& path, domCOLLADA* root); + + // Returns the Collada version, i.e. 1.4, 1.5, etc. Note that this _isn't_ the + // same as the DOM version (1.3, 2.0, ...). + virtual daeString getDomVersion(); + + // Returns the (modifiable) list of atomic type objects. + daeAtomicTypeList& getAtomicTypes(); + + // Get/set a daeMetaElement object given the meta object's type ID. + daeMetaElement* getMeta(daeInt typeID); + void setMeta(daeInt typeID, daeMetaElement& meta); + + // Get all daeMetaElement objects. + daeMetaElementRefArray& getAllMetas(); + + // Returns the list of URI resolvers. You can modify the list to add new resolvers. + daeURIResolverList& getURIResolvers(); + + // The base URI used for resolving relative URI references. + daeURI& getBaseURI(); + void setBaseURI(const daeURI& uri); + void setBaseURI(const std::string& uri); + + // Returns the list of ID reference resolvers. You can modify the list to add new + // resolvers. + daeIDRefResolverList& getIDRefResolvers(); + + // Meant for internal DOM use only. + daeRawRefCache& getRawRefCache(); + daeSidRefCache& getSidRefCache(); + + // These functions specify the client's character encoding for the DOM. The + // default is Utf8, but if you specify Latin1 then the DOM will use libxml's + // character conversion functions to convert to Utf8 when writing data and + // convert to Latin1 when reading data. This can help with the handling of + // non-ASCII characters on Windows. Only when using libxml for xml I/O does + // any character conversion occur. + // + // Most people can probably just ignore this completely. If you have trouble + // with non-ASCII characters on Windows, try setting the char encoding to + // Latin1 to see if that helps. + // + // Frankly this certainly isn't the best way of handling non-ASCII character + // support on Windows, so this interface is a likely target for significant + // changes in the future. + // + // See this Sourceforge thread for more info: + // http://sourceforge.net/tracker/index.php?func=detail&aid=1818473&group_id=157838&atid=805426 + // + enum charEncoding { + Utf8, + Latin1 + }; + + // Global encoding setting. Defaults to Utf8. Set this if you want to make a + // char encoding change and apply it to all DAE objects. + static charEncoding getGlobalCharEncoding(); + static void setGlobalCharEncoding(charEncoding encoding); + + // Local encoding setting. If set, overrides the global setting. Useful for setting + // a specific char encoding for a single DAE object but not for all DAE objects. + charEncoding getCharEncoding(); + void setCharEncoding(charEncoding encoding); + + // Deprecated. Alternative methods are given. + virtual daeInt load(daeString uri, daeString docBuffer = NULL); // Use open + virtual daeInt save(daeString uri, daeBool replace=true); // Use write + virtual daeInt save(daeUInt documentIndex, daeBool replace=true); // Use write + virtual daeInt saveAs(daeString uriToSaveTo, daeString docUri, daeBool replace=true); // Use writeTo + virtual daeInt saveAs(daeString uriToSaveTo, daeUInt documentIndex=0, daeBool replace=true); // Use writeTo + virtual daeInt unload(daeString uri); // Use close + virtual domCOLLADA* getDom(daeString uri); // use getRoot + virtual daeInt setDom(daeString uri, domCOLLADA* dom); // use setRoot + +private: + void init(daeDatabase* database, daeIOPlugin* ioPlugin); + void dummyFunction1(); + std::string makeFullUri(const std::string& path); + domCOLLADA* openCommon(const std::string& path, daeString buffer); + bool writeCommon(const std::string& docPath, const std::string& pathToWriteTo, bool replace); + + daeDatabase *database; + daeIOPlugin *plugin; + bool defaultDatabase; + bool defaultPlugin; + daeAtomicTypeList atomicTypes; + daeMetaElementRefArray metas; + daeURI baseUri; + daeURIResolverList uriResolvers; + daeIDRefResolverList idRefResolvers; + daeRawRefCache rawRefCache; + daeSidRefCache sidRefCache; + + std::auto_ptr localCharEncoding; + static charEncoding globalCharEncoding; +}; + + +template +inline T *daeSafeCast(daeElement *element) +{ + if (element && element->typeID() == T::ID()) + return (T*)element; + return NULL; +} + + +#endif // __DAE_INTERFACE__ diff --git a/include/dae/daeArray.h b/include/dae/daeArray.h new file mode 100644 index 0000000..33c0129 --- /dev/null +++ b/include/dae/daeArray.h @@ -0,0 +1,706 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_ARRAY_H__ +#define __DAE_ARRAY_H__ +#include +#include + +class daeAtomicType; + +/** + * COLLADA C++ class that implements storage for resizable array containers. + */ +class daeArray +{ +protected: + size_t _count; + size_t _capacity; + daeMemoryRef _data; + size_t _elementSize; + daeAtomicType* _type; +public: + /** + * Constructor + */ + DLLSPEC daeArray(); + /** + * Destructor + */ + virtual DLLSPEC ~daeArray(); + /** + * Clears the contents of the array. Do not use this function if the array contains @c daeSmartRef objects and the + * @c dom* class the array belongs to has a @c _contents member. + * + * Many @c dom* objects have a @c _contents member that stores the original creation order of the @c daeElements + * that are their children. If you use @c clear() on a @c daeArray of @c daeSmartRef derived objects, these + * objects will not be removed from @c _contents, which can cause problems when you + * save the data. We recommended that @c clear() not be used on arrays that are part of a @c dom* object. + */ + virtual DLLSPEC void clear() = 0; + /** + * Sets the size of an element in the array. This clears and reinitializes the array. + * @param elementSize Size of an element in the array. + */ + DLLSPEC void setElementSize(size_t elementSize); + /** + * Gets the size of an element in this array. + * @return Returns the size of an element in this array. + */ + size_t getElementSize() const {return _elementSize;} + /** + * Grows the array to the specified size and sets the @c daeArray to that size. + * @param cnt Size to grow the array to. + */ + virtual void setCount(size_t cnt) = 0; + /** + * Gets the number of items stored in this @c daeArray. + * @return Returns the number of items stored in this @c daeArray. + */ + size_t getCount() const {return _count;} + /** + * Increases the capacity of the @c daeArray. + * @param minCapacity The minimum array capacity (the actual resulting capacity may be higher). + */ + virtual void grow(size_t minCapacity) = 0; + /** + * Gets the current capacity of the array, the biggest it can get without incurring a realloc. + * @return Returns the capacity of the array. + */ + size_t getCapacity() const {return _capacity;} + /** + * Gets a pointer to the raw memory of a particular element. + * @return Returns a pointer to the memory for the raw data. + */ + daeMemoryRef getRaw(size_t index) const {return _data + index*_elementSize;} + /** + * Removes an item at a specific index in the @c daeArray. + * @param index Index number of the item to delete. + * @return Returns DAE_OK if success, a negative value defined in daeError.h otherwise. + * @note The @c daeElement objects sometimes list + * objects in two places, the class member and the @c _contents array, when you remove something from the + * dom, you must remove it from both places. + */ + virtual daeInt removeIndex(size_t index) = 0; + + // Provided for backward compatibility only. Don't use these. + void setRawCount(size_t cnt) { setCount(cnt); } // Use setCount instead + daeMemoryRef getRawData() const {return _data;} // Use getRaw instead +}; + +/** + * COLLADA C++ templated version of @c daeArray for storing items of various types. + */ +template +class daeTArray : public daeArray +{ +protected: + T* prototype; +public: + /** + * Constructor. + */ + daeTArray() { + _elementSize = sizeof( T ); + prototype = NULL; + } + /** + * Constructor. + */ + explicit daeTArray(T* prototype) : prototype(prototype) { + _elementSize = sizeof( T ); + } + /** + * Copy Constructor + */ + daeTArray( const daeTArray &cpy ) : daeArray() { + prototype = NULL; + *this = cpy; + } + /** + * Constructor that takes one element and turns into an array + */ + explicit daeTArray( const T &el ) { + _elementSize = sizeof(T); + prototype = NULL; + append( el ); + } + /** + * Destructor. + */ + virtual ~daeTArray() { + clear(); + delete prototype; + } + /** + * Frees the memory in this array and resets it to it's initial state. + */ + virtual void clear() + { + for(size_t i=0;i<_count;i++) + ((T*)_data + i)->~T(); + free(_data); + _count = 0; + _capacity = 0; + _data = NULL; + } + + /** + * Increases the capacity of the @c daeArray. + * @param minCapacity The minimum array capacity (the actual resulting capacity may be higher). + */ + void grow(size_t minCapacity) { + if (minCapacity <= _capacity) + return; + + size_t newCapacity = _capacity == 0 ? 1 : _capacity; + while(newCapacity < minCapacity) + newCapacity *= 2; + + T* newData = (T*)malloc(newCapacity*_elementSize); + for (size_t i = 0; i < _count; i++) { + new (&newData[i]) T(get(i)); + ((T*)_data + i)->~T(); + } + + if (_data != NULL) + free(_data); + + _data = (daeMemoryRef)newData; + _capacity = newCapacity; + } + + /** + * Removes an item at a specific index in the @c daeArray. + * @param index Index number of the item to delete. + * @return Returns DAE_OK if success, a negative value defined in daeError.h otherwise. + * @note The @c daeElement objects sometimes list + * objects in two places, the class member and the @c _contents array, when you remove something from the + * dom, you must remove it from both places. + */ + virtual daeInt removeIndex(size_t index) + { + if (index >= _count) + return(DAE_ERR_INVALID_CALL); + + for (size_t i = index; i < _count-1; i++) + *((T*)_data+i) = *((T*)_data+i+1); + ((T*)_data+(_count-1))->~T(); + _count--; + return DAE_OK; + } + + /** + * Resets the number of elements in the array. If the array increases in size, the new + * elements will be initialized to the specified value. + * @param nElements The new size of the array. + * @param value The value new elements will be initialized to. + * @note Shrinking the array does NOT free up memory. + */ + void setCount(size_t nElements, const T& value) + { + grow(nElements); + // Destruct the elements that are being chopped off + for (size_t i = nElements; i < _count; i++) + ((T*)_data+i)->~T(); + // Use value to initialize the new elements + for (size_t i = _count; i < nElements; i++) + new ((void*)((T*)_data+i)) T(value); + _count = nElements; + } + + /** + * Resets the number of elements in the array. If the array increases in size, the new + * elements will be initialized with a default constructor. + * @param nElements The new size of the array. + * @note Shrinking the array does NOT free up memory. + */ + virtual void setCount(size_t nElements) { + if (prototype) + setCount(nElements, *prototype); + else + setCount(nElements, T()); + } + + /** + * Sets a specific index in the @c daeArray, growing the array if necessary. + * @param index Index of the object to set, asserts if the index is out of bounds. + * @param value Value to store at index in the array. + */ + void set(size_t index, const T& value) { + if (index >= _count) + setCount(index+1); + ((T*)_data)[index] = value; + } + + /** + * Gets the object at a specific index in the @c daeArray. + * @param index Index of the object to get, asserts if the index is out of bounds. + * @return Returns the object at index. + */ + T& get(size_t index) { + assert(index < _count); + return ((T*)_data)[index]; } + /** + * Gets the object at a specific index in the @c daeArray. + * @param index Index of the object to get, asserts if the index is out of bounds. + * @return Returns the object at index. + */ + const T& get(size_t index) const { + assert(index < _count); + return ((T*)_data)[index]; } + + /** + * Appends a new object to the end of the @c daeArray. + * @param value Value of the object to append. + * @return Returns the index of the new object. + */ + size_t append(const T& value) { + set(_count, value); + return _count-1; + } + + /** + * Appends a unique object to the end of the @c daeArray. + * Functions the same as @c append(), but does nothing if the value is already in the @c daeArray. + * @param value Value of the object to append. + * @return Returns the index where this value was appended. If the value already exists in the array, + * returns the index in this array where the value was found. + */ + size_t appendUnique(const T& value) { + size_t ret; + if (find(value,ret) != DAE_OK) + return append(value); + else + return ret; + } + + /** + * Adds a new item to the front of the @c daeArray. + * @param value Item to be added. + */ + void prepend(const T& value) { + insertAt(0, value); + } + + /** + * Removes an item from the @c daeArray. + * @param value A reference to the item to delete. + * @return Returns DAE_OK if success, a negative value defined in daeError.h otherwise. + * @note The @c daeElement objects sometimes list + * objects in two places, the class member and the @c _contents array, when you remove something from the + * do, you must remove it from both places. + */ + daeInt remove(const T& value, size_t *idx = NULL ) + { + size_t index; + if(find(value,index) == DAE_OK) + { + if ( idx != NULL ) { + *idx = index; + } + return(removeIndex( index )); + } + else + { + return(DAE_ERR_INVALID_CALL); + } + } + /** + * Finds an item from the @c daeArray. + * @param value A reference to the item to find. + * @param index If the function returns DAE_OK, this is set to the index where the value appears in the array. + * @return Returns DAE_OK if no error or DAE_ERR_QUERY_NO_MATCH if the value was not found. + */ + daeInt find(const T& value, size_t &index) const + { + size_t i; + for(i=0;i<_count;i++) + { + if (((T*)_data)[i] == value) + { + index = i; + return DAE_OK; + } + } + + return DAE_ERR_QUERY_NO_MATCH; + } + /** + * Just like the previous function, but has a more reasonable interface. + * @param value The value to find. + * @return Returns a pointer to the value if found, null otherwise. + */ + T* find(const T& value) const { + size_t i; + if (find(value, i) == DAE_OK) + return get(i); + return NULL; + } + /** + * Gets the object at a specific index in the @c daeArray. + * @param index Index of the object to get, asserts if the index is out of bounds. + * @return Returns the object at @c index. + */ + T& operator[](size_t index) { + assert(index < _count); + return ((T*)_data)[index]; } + /** + * Gets the object at a specific index in the @c daeArray. + * @param index Index of the object to get, asserts if the index is out of bounds. + * @return Returns the object at @c index. + */ + const T& operator[](size_t index) const { + assert(index < _count); + return ((T*)_data)[index]; } + + /** + * Inserts the specified number of elements at a specific location in the array. + * @param index Index into the array where the elements will be inserted + * @param n The number of elements to insert + * @param val The value to insert + */ + void insert(size_t index, size_t n, const T& val = T()) { + if (index >= _count) { + // Append to the end of the array + size_t oldCount = _count; + setCount(index + n); + for (size_t i = oldCount; i < _count; i++) + get(i) = val; + } + else { + setCount(_count + n); + for (size_t i = _count-1; i >= index+n; i--) + get(i) = get(i-n); + for (size_t i = index; i < index+n; i++) + get(i) = val; + } + } + + /** + * Inserts an object at a specific index in the daeArray, growing the array if neccessary + * @param index Index into the array for where to place the object + * @param value The object to append + */ + void insertAt(size_t index, const T& value) { + insert(index, 1); + get(index) = value; + } + + /** + * Overloaded assignment operator. + * @param other A reference to the array to copy + * @return A reference to this object. + */ + daeTArray &operator=( const daeTArray &other ) { + if (this != &other) { + clear(); + _elementSize = other._elementSize; + _type = other._type; + grow(other._count); + for(size_t i=0;i& other) { + if (getCount() != other.getCount()) + return false; + for (size_t i = 0; i < getCount(); i++) + if (get(i) != other.get(i)) + return false; + return true; + } + + //some helpers + /** + * Sets the array to the contain the two values specified. + * @param one The first value. + * @param two The second value. + */ + void set2( const T &one, const T &two ) + { + setCount( 2 ); + set( 0, one ); + set( 1, two ); + } + /** + * Sets the array to the contain the three values specified. + * @param one The first value. + * @param two The second value. + * @param three The third value. + */ + void set3( const T &one, const T &two, const T &three ) + { + setCount( 3 ); + set( 0, one ); + set( 1, two ); + set( 2, three ); + } + /** + * Sets the array to the contain the four values specified. + * @param one The first value. + * @param two The second value. + * @param three The third value. + * @param four The fourth value. + */ + void set4( const T &one, const T &two, const T &three, const T &four ) + { + setCount( 4 ); + set( 0, one ); + set( 1, two ); + set( 2, three ); + set( 3, four ); + } + + /** + * Sets the values in the array at the specified location to the contain the two + * values specified. This function will grow the array if needed. + * @param index The position in the array to start setting. + * @param one The first value. + * @param two The second value. + */ + void set2at( size_t index, const T &one, const T &two ) + { + set( index, one ); + set( index+1, two ); + } + /** + * Sets the values in the array at the specified location to the contain the three + * values specified. This function will grow the array if needed. + * @param index The position in the array to start setting. + * @param one The first value. + * @param two The second value. + * @param three The third value. + */ + void set3at( size_t index, const T &one, const T &two, const T &three ) + { + set( index, one ); + set( index+1, two ); + set( index+2, three ); + } + /** + * Sets the values in the array at the specified location to the contain the four + * values specified. This function will grow the array if needed. + * @param index The position in the array to start setting. + * @param one The first value. + * @param two The second value. + * @param three The third value. + * @param four The fourth value. + */ + void set4at( size_t index, const T &one, const T &two, const T &three, const T &four ) + { + set( index, one ); + set( index+1, two ); + set( index+2, three ); + set( index+3, four ); + } + + /** + * Appends two values to the array. + * @param one The first value. + * @param two The second value. + */ + void append2( const T &one, const T &two ) + { + append( one ); + append( two ); + } + /** + * Appends three values to the array. + * @param one The first value. + * @param two The second value. + * @param three The third value. + */ + void append3( const T &one, const T &two, const T &three ) + { + append( one ); + append( two ); + append( three ); + } + /** + * Appends four values to the array. + * @param one The first value. + * @param two The second value. + * @param three The third value. + * @param four The fourth value. + */ + void append4( const T &one, const T &two, const T &three, const T &four ) + { + append( one ); + append( two ); + append( three ); + append( four ); + } + + /** + * Inserts two values into the array at the specified location. + * @param index The position in the array to start inserting. + * @param one The first value. + * @param two The second value. + */ + void insert2at( size_t index, const T &one, const T &two ) + { + insert(index, 2); + set(index, one); + set(index+1, two); + } + /** + * Inserts three values into the array at the specified location. + * @param index The position in the array to start inserting. + * @param one The first value. + * @param two The second value. + * @param three The third value. + */ + void insert3at( size_t index, const T &one, const T &two, const T &three ) + { + insert(index, 3); + set( index, one ); + set( index+1, two ); + set( index+2, three ); + } + /** + * Inserts four values into the array at the specified location. + * @param index The position in the array to start inserting. + * @param one The first value. + * @param two The second value. + * @param three The third value. + * @param four The fourth value. + */ + void insert4at( size_t index, const T &one, const T &two, const T &three, const T &four ) + { + insert(index, 4); + set( index, one ); + set( index+1, two ); + set( index+2, three ); + set( index+4, four ); + } + + /** + * Gets two values from the array at the specified location. + * @param index The position in the array to start getting. + * @param one Variable to store the first value. + * @param two Variable to store the second value. + * @return Returns The number of elements retrieved. + */ + daeInt get2at( size_t index, T &one, T &two ) + { + daeInt retVal = 0; + if ( index < _count ) + { + one = get(index); + retVal++; + } + if ( index+1 < _count ) + { + two = get(index+1); + retVal++; + } + return retVal; + } + /** + * Gets three values from the array at the specified location. + * @param index The position in the array to start getting. + * @param one Variable to store the first value. + * @param two Variable to store the second value. + * @param three Variable to store the third value. + * @return Returns The number of elements retrieved. + */ + daeInt get3at( size_t index, T &one, T &two, T &three ) + { + daeInt retVal = 0; + if ( index < _count ) + { + one = get(index); + retVal++; + } + if ( index+1 < _count ) + { + two = get(index+1); + retVal++; + } + if ( index+2 < _count ) + { + three = get(index+2); + retVal++; + } + return retVal; + } + /** + * Gets four values from the array at the specified location. + * @param index The position in the array to start getting. + * @param one Variable to store the first value. + * @param two Variable to store the second value. + * @param three Variable to store the third value. + * @param four Variable to store the fourth value. + * @return Returns The number of elements retrieved. + */ + daeInt get4at( size_t index, T &one, T &two, T &three, T &four ) + { + daeInt retVal = 0; + if ( index < _count ) + { + one = get(index); + retVal++; + } + if ( index+1 < _count ) + { + two = get(index+1); + retVal++; + } + if ( index+2 < _count ) + { + three = get(index+2); + retVal++; + } + if ( index+3 < _count ) + { + four = get(index+3); + retVal++; + } + return retVal; + } + + /** + * Appends a number of elements to this array from a C native array. + * @param num The number of elements to append. + * @param array The C native array that contains the values to append. + */ + void appendArray( size_t num, T *array ) + { + if ( array == NULL ) + return; + + for ( size_t i = 0; i < num; i++ ) + append( array[i] ); + } + /** + * Appends a number of elements to this array from another daeTArray. + * @param array The daeTArray that contains the values to append. + */ + void appendArray( const daeTArray &array ){ + size_t num = array.getCount(); + for ( size_t i = 0; i < num; i++ ) + append( array[i] ); + } +}; + + +#endif //__DAE_ARRAY_H__ diff --git a/include/dae/daeArrayTypes.h b/include/dae/daeArrayTypes.h new file mode 100644 index 0000000..13781e0 --- /dev/null +++ b/include/dae/daeArrayTypes.h @@ -0,0 +1,30 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_ARRAY_TYPES_H__ +#define __DAE_ARRAY_TYPES_H__ + +#include +#include +typedef daeTArray daeIntArray; +typedef daeTArray daeUIntArray; +typedef daeTArray daeFloatArray; +typedef daeTArray daeEnumArray; +typedef daeTArray daeStringArray; +typedef daeTArray daeCharArray; +typedef daeTArray daeBoolArray; +typedef daeTArray daeDoubleArray; +typedef daeTArray daeLongArray; +typedef daeTArray daeShortArray; + +#endif //__DAE_ARRAY_TYPES_H__ diff --git a/include/dae/daeAtomicType.h b/include/dae/daeAtomicType.h new file mode 100644 index 0000000..5c6d28a --- /dev/null +++ b/include/dae/daeAtomicType.h @@ -0,0 +1,731 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_ATOMIC_TYPE_H__ +#define __DAE_ATOMIC_TYPE_H__ + +#include +#include +#include +#include +#include + +#ifndef _WIN32 +#include +#endif + +class DAE; +class daeAtomicType; +class daeMetaElement; + +typedef daeTArray daeAtomicTypeArray; +class daeMetaAttribute; +typedef daeSmartRef daeMetaAttributeRef; + +/** + * The @c daeAtomicType class implements a standard interface for + * data elements in the reflective object system. + * + * @c daeAtomicType provides a central virtual interface that can be + * used by the rest of the reflective object system. + * + * The atomic type system if very useful for file IO and building + * automatic tools for data inspection and manipulation, + * such as hierarchy examiners and object editors. + * + * Types provide the following symantic operations: + * - @c print() + * - @c memoryToString() + * - @c stringToMemory() + * + * Types are also able to align data pointers appropriately. + */ +class DLLSPEC daeAtomicType +{ +public: + /** + * destructor + */ + virtual ~daeAtomicType() {} + + /** + * constructor + */ + daeAtomicType(DAE& dae); + +public: + /** + * Prints an atomic typed element into a destination string. + * @param src Source of the raw data from which to get the typed items. + * @param dst Destination to output the string version of the elements to. + * @return Returns true if the operation was successful, false if not successful. + */ + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst) = 0; + + /** + * Reads an atomic typed item into the destination runtime memory. + * @param src Source string. + * @param dst Raw binary location to store the resulting value. + * @return Returns true if the operation was successful, false if not successful. + */ + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + /** + * Converts an array of atomic items into a whitespace separated string. + * @param array The array of data. + * @param buffer The buffer to write into. + */ + virtual void arrayToString(daeArray& array, std::ostringstream& buffer); + + /** + * Reads a whitespace separated list of atomic items into an array. The array is + * cleared before writing into it. + * @param src Whitespace separated list of items. + * @param array The output array of data. + * @return Returns true if the operation was successful, false otherwise. + */ + virtual daeBool stringToArray(daeChar* src, daeArray& array); + + /** + * Creates a new object of the appropriate type for this daeAtomicType and returns it + * as a pointer. The return value must be freed by calling destroy. + * @return Returns a pointer to a new value. The memory must be freed by calling destroy. + */ + virtual daeMemoryRef create() = 0; + + /** + * Deletes an object previously allocated with create. + * @param obj The object previously allocated with create. + */ + virtual void destroy(daeMemoryRef obj) = 0; + + /** + * Creates a daeTArray of the appropriate type (e.g. daeTArray, daeTArray) + * and returns it as a daeArray*. + * @return Returns a daeArray*. This array should be freed by the caller with + * operator delete. + */ + virtual daeArray* createArray() = 0; + + /** + * Performs a virtual comparison operation between two values of the same atomic type. + * @param value1 Memory location of the first value. + * @param value2 Memory location of the second value. + * @return Returns a positive integer if value1 > value2, a negative integer if + * value1 < value2, and 0 if value1 == value2. + */ + virtual daeInt compare(daeChar* value1, daeChar* value2); + + /** + * Array version of the compare function. + * @param value1 First array to compare. + * @param value2 Second array to compare. + * @return Returns a positive integer if value1 > value2, a negative integer if + * value1 < value2, and 0 if value1 == value2. + */ + virtual daeInt compareArray(daeArray& value1, daeArray& value2); + + /** + * Performs a virtual copy operation. + * @param src Memory location of the value to copy from. + * @param dst Memory location of the value to copy to. + */ + virtual void copy(daeChar* src, daeChar* dst) = 0; + + /** + * Array version of the copy function. + * @param src Array to copy from. + * @param dst Array to copy to. + */ + virtual void copyArray(daeArray& src, daeArray& dst); + + /** + * Gets the array of strings as name bindings for this type. + * @return Returns the array of strings. + */ + daeStringRefArray& getNameBindings() { return _nameBindings; } + + /** + * Gets the enum associated with this atomic type. This is not scalable and only + * works for base types, otherwise 'extension' is used. + * @return Returns the enum associated with this atomic type. + */ + daeEnum getTypeEnum() { return _typeEnum; } + + /** + * Gets the size in bytes for this atomic type. + * @return Returns the size of the atomic type in bytes. + */ + daeInt getSize() { return _size; } + + /** + * Gets the scanf format used for this type. + * @return Returns the scanf format. + * @note + * Warning - this field is only for convenience and may not always work. + * It is used only when the read functions are left to the base + * implementation. + */ + daeStringRef getScanFormat() { return _scanFormat; } + + /** + * Gets the printf format used for this type. + * @return Returns the printf format. + * @note + * Warning - this field is only for convenience and may not always work. + * It is used only when the print functions are left to the base + * implementation. + */ + daeStringRef getPrintFormat() { return _printFormat; } + + /** + * Gets the alignment in bytes necessary for this type on this + * platform. + * @return Returns the alignment in bytes. + */ + daeInt getAlignment() { return _alignment; } + + /** + * Gets the string associated with this type. + * @return Returns the string associated with this type. + */ + daeStringRef getTypeString() { return _typeString; } + + /** + * Performs an alignment based on the alignment for this type. + * @param ptr Pointer to be aligned. + * @return Returns the aligned pointer computed via + * (ptr+alignment-1)&(~(alignment-1). + * + */ + daeChar* align(daeChar* ptr) { + return (daeChar*)(((intptr_t)(ptr+_alignment-1))&(~(_alignment - 1))); } + + /** + * Notifies an object when the containing document changes. + * @param value Memory location of the atomic type value. + * @param doc The new document. + */ + virtual void setDocument(daeChar* value, daeDocument* doc) { } + + /** + * Same as the previous method, but works on an array of objects. + * @param values Array of the atomic type values. + * @param doc The new document. + */ + virtual void setDocument(daeArray& array, daeDocument* doc) { } + +protected: + DAE* _dae; + daeInt _size; + daeInt _alignment; + daeEnum _typeEnum; + daeStringRef _typeString; + daeStringRef _printFormat; + daeStringRef _scanFormat; + daeInt _maxStringLength; + +public: + /** + * An array of strings as name bindings for this type. + */ + daeStringRefArray _nameBindings; + +public: // Static Interface + /** An enum for identifying the different atomic types */ + enum daeAtomicTypes { + /** bool atomic type */ + BoolType, + /** enum atomic type */ + EnumType, + /** character atomic type */ + CharType, + /** short integer atomic type */ + ShortType, + /** integer atomic type */ + IntType, + /** unsigned integer atomic type */ + UIntType, + /** long integer atomic type */ + LongType, + /** unsigned long integer atomic type */ + ULongType, + /** floating point atomic type */ + FloatType, + /** double precision floating point atomic type */ + DoubleType, + /** string reference atomic type */ + StringRefType, + /** element reference atomic type */ + ElementRefType, + /** memory reference atomic type */ + MemoryRefType, + /** void reference atomic type */ + RawRefType, + /** resolver atomic type */ + ResolverType, + /** ID resolver atomic type */ + IDResolverType, + /** string token atomic type */ + TokenType, + /** extension atomic type */ + ExtensionType + }; +}; + + +// This is a container class for storing a modifiable list of daeAtomicType objects. +class DLLSPEC daeAtomicTypeList { +public: + daeAtomicTypeList(DAE& dae); + ~daeAtomicTypeList(); + + /** + * Appends a new type to the list. + * @param t Type to append. + * @return Returns the index of the type in the list. + */ + daeInt append(daeAtomicType* t); + + /** + * Gets a type from the list of types, based on its index. + * @param index Index of the type to retrieve. + * @return Returns the @c daeAtomicType indicated by index. + */ + const daeAtomicType* getByIndex(daeInt index); + + /** + * Gets the number of atomic types in the list. + * @return Returns the number of atomic types in the list. + */ + daeInt getCount(); + + /** + * Finds a type by its string name. + * @param type String name of the type. + * @return Returns the type with the corresponding name. + */ + daeAtomicType* get(daeStringRef type); + + /** + * Finds a type by its enum. + * @param type Enum representing the desired type. + * @return Returns the type with the corresponding enum. + */ + daeAtomicType* get(daeEnum type); + +private: + daeAtomicTypeArray types; +}; + + +/** + * The @c daeBoolType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeBool. + */ +class DLLSPEC daeBoolType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeBoolType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeIntType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeInt. + */ +class DLLSPEC daeIntType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeIntType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeLongType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeLong. + */ +class DLLSPEC daeLongType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeLongType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeUIntType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeUInt. + */ +class DLLSPEC daeUIntType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeUIntType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeUIntType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeUInt. + */ +class DLLSPEC daeULongType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeULongType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeShortType is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeShort. + */ +class DLLSPEC daeShortType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeShortType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeFloatType is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeFloat. + */ +class DLLSPEC daeFloatType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeFloatType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeDoubleType is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeDouble. + */ +class DLLSPEC daeDoubleType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeDoubleType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeStringRefType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeStringRef. + */ +class DLLSPEC daeStringRefType : public daeAtomicType +{ +public: + /** + * Constructor + */ + daeStringRefType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeInt compare(daeChar* value1, daeChar* value2); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeTokenType class is derived from @c daeStringRefType, and implements + * the reflective system for objects of type daeStringRef, with specialized + * treatment from the parser. + */ +class DLLSPEC daeTokenType : public daeStringRefType +{ +public: + /** + * Constructor + */ + daeTokenType(DAE& dae); + +public: + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeElementRefType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeElementRef. + */ +class DLLSPEC daeElementRefType : public daeAtomicType +{ +public: + /** + * The @c daeMetaElement for the type this @c daeElementRefType represents. + */ + daeMetaElement* _elementType; + +public: + /** + * Constructor + */ + daeElementRefType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeEnumType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type daeEnum. + */ +class DLLSPEC daeEnumType: public daeAtomicType +{ +public: + /** + * The array which contains the values used in this enum. + */ + daeEnumArray* _values; + /** + * The array which contains the strings to associate with the values used in this enum. + */ + daeStringRefArray* _strings; + +public: + /** + * Constructor + */ + daeEnumType(DAE& dae); + + /** + * Destructor + */ + ~daeEnumType(); + +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeRawRefType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeRawRef. + */ +class DLLSPEC daeRawRefType: public daeAtomicType +{ +public: + /** + * Constructor. + */ + daeRawRefType(DAE& dae); + +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + +/** + * The @c daeResolverType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeResolver. + */ +class DLLSPEC daeResolverType : public daeAtomicType +{ +public: + /** + * Constructor. + */ + daeResolverType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeInt compare(daeChar* value1, daeChar* value2); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); + + virtual void setDocument(daeChar* value, daeDocument* doc); + + virtual void setDocument(daeArray& array, daeDocument* doc); +}; + +/** + * The @c daeIDResolverType class is derived from @c daeAtomicType, and implements + * the reflective system for objects of type @c daeIDResolver. + */ +class DLLSPEC daeIDResolverType : public daeAtomicType +{ +public: + /** + * Constructor. + */ + daeIDResolverType(DAE& dae); +public: + virtual daeBool memoryToString(daeChar* src, std::ostringstream& dst); + + virtual daeBool stringToMemory(daeChar* src, daeChar* dst); + + virtual daeInt compare(daeChar* value1, daeChar* value2); + + virtual daeMemoryRef create(); + + virtual void destroy(daeMemoryRef obj); + + virtual void copy(daeChar* src, daeChar* dst); + + virtual daeArray* createArray(); +}; + + + +#endif // __DAE_ATOMIC_TYPE_H__ + + + diff --git a/include/dae/daeDatabase.h b/include/dae/daeDatabase.h new file mode 100644 index 0000000..f52743a --- /dev/null +++ b/include/dae/daeDatabase.h @@ -0,0 +1,334 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_DATABASE__ +#define __DAE_DATABASE__ + +#include +#include +#include +#include +#include +#include + + +/** + * The @c daeDatabase class defines the COLLADA runtime database interface. + */ +class DLLSPEC daeDatabase +{ +public: + /** + * Constructor + */ + daeDatabase(DAE& dae); + + /** + * Destructor + */ + virtual ~daeDatabase() {} + + /** + * Get the associated DAE object. + * @return The associated DAE object. + */ + virtual DAE* getDAE(); + + /** + * Creates a new document, defining its root as the dom object; returns an error if the document name already exists. + * @param name Name of the new document, must be a valid URI. + * @param dom Existing @c domCOLLADA root element of the document + * @param document Pointer to a @c daeDocument pointer that receives the document created + * @return Returns @c DAE_OK if the document was created successfully, otherwise returns a negative value as defined in daeError.h. + * @note The @c daeElement passed in as dom should always be a @c domCOLLADA object, the API may enforce this in the future. + * @deprecated This function will be removed in future versions. Please use createDocument. + */ + virtual daeInt insertDocument(daeString name, daeElement* dom, daeDocument** document = NULL) = 0; + /** + * Creates a new @c domCOLLADA root element and a new document; returns an error if the document name already exists. + * @param name Name of the new document, must be a valid URI. + * @param document Pointer to a @c daeDocument pointer that receives the document created + * @return Returns DAE_OK if the document was created successfully, otherwise returns a negative value as defined in daeError.h. + * @deprecated This function will be removed in future versions. Please use createDocument. + */ + virtual daeInt insertDocument(daeString name, daeDocument** document = NULL) = 0; + /** + * Creates a new document, defining its root as the dom object; returns an error if the document name already exists. + * @param name Name of the new document, must be a valid URI. + * @param dom Existing @c domCOLLADA root element of the document + * @param document Pointer to a @c daeDocument pointer that receives the document created + * @return Returns @c DAE_OK if the document was created successfully, otherwise returns a negative value as defined in daeError.h. + * @note The @c daeElement passed in as dom should always be a @c domCOLLADA object, the API may enforce this in the future. + */ + virtual daeInt createDocument(daeString name, daeElement* dom, daeDocument** document = NULL) = 0; + /** + * Creates a new @c domCOLLADA root element and a new document; returns an error if the document name already exists. + * @param name Name of the new document, must be a valid URI. + * @param document Pointer to a @c daeDocument pointer that receives the document created + * @return Returns DAE_OK if the document was created successfully, otherwise returns a negative value as defined in daeError.h. + */ + virtual daeInt createDocument(daeString name, daeDocument** document = NULL) = 0; + + /** + * Inserts an already existing document into the database. + * @param c The document to insert. + * @return Returns DAE_OK if the document was inserted successfully, otherwise returns a negative value as defined in daeError.h. + */ + virtual daeInt insertDocument( daeDocument *c ) = 0; + + /** + * Removes a document from the database. + * @param document Document to remove from the database + * @return Returns DAE_OK if the document was successfully removed, otherwise returns a negative value as defined in daeError.h. + */ + virtual daeInt removeDocument(daeDocument* document) = 0; + /** + * Gets the number of documents. + * @return Returns the number of documents. + */ + virtual daeUInt getDocumentCount() = 0; + /** + * Gets a document based on the document index. + * @param index Index of the document to get. + * @return Returns a pointer on the document, or NULL if not found. + */ + virtual daeDocument* getDocument(daeUInt index) = 0; + /** + * Gets a document based on the document index. + * @param index Index of the document to get. + * @return Returns a pointer on the document, or NULL if not found. + */ + daeDocument* getDoc(daeUInt index); + /** + * Gets a document based on the document name. + * @param name The name of the document as a URI. + * @param skipUriNormalization Use the document name as is; don't normalize it first. + * This is mostly for improved performance. + * @return Returns a pointer to the document, or NULL if not found. + * @note If the URI contains a fragment, the fragment is stripped off. + */ + virtual daeDocument* getDocument(daeString name, bool skipUriNormalization = false) = 0; + /** + * Gets a document name. + * @param index Index of the document to get. + * @return Returns the name of the document at the given index. + */ + virtual daeString getDocumentName(daeUInt index) = 0; + /** + * Indicates if a document is loaded or not. + * @param name Name of the document as a URI. + * @return Returns true if the document is loaded, false otherwise. + * @note If the URI contains a fragment, the fragment is stripped off. + */ + virtual daeBool isDocumentLoaded(daeString name) = 0; + + /** + * Inserts a @c daeElement into the runtime database. + * @param document Document in which the @c daeElement lives. + * @param element @c daeElement to insert in the database + * @return Returns @c DAE_OK if element successfully inserted, otherwise returns a negative value as defined in daeError.h. + */ + virtual daeInt insertElement(daeDocument* document, + daeElement* element) = 0; + /** + * Removes a @c daeElement from the runtime database; not implemented in the reference STL implementation. + * @param document Document in which the @c daeElement lives. + * @param element Element to remove. + * @return Returns @c DAE_OK if element successfully removed, otherwise returns a negative value as defined in daeError.h. + */ + virtual daeInt removeElement(daeDocument* document, + daeElement* element) = 0; + /** + * Updates the database to reflect a change to the ID of a @c daeElement. + * @param element @c daeElement whose ID is going to change. + * @param newID The ID that will be assigned to the element. + * @return Returns @c DAE_OK if the database was successfully updated, otherwise returns a negative value as defined in daeError.h. + * @note The database doesn't actually change the ID of the element, it + * merely updates its internal structures to reflect the change. It's + * expected that the ID will be assigned to the element by someone else. + */ + virtual daeInt changeElementID(daeElement* element, + daeString newID) = 0; + + /** + * Updates the database to reflect a change to the sid of a @c daeElement. + * @param element @c daeElement whose sid is going to change. + * @param newSID The sid that will be assigned to the element. + * @return Returns @c DAE_OK if the database was successfully updated, otherwise returns a negative value as defined in daeError.h. + * @note The database doesn't actually change the sid of the element, it + * merely updates its internal structures to reflect the change. It's + * expected that the sid will be assigned to the element by someone else. + * Note - This function currently isn't implemented in the default database. + */ + virtual daeInt changeElementSID(daeElement* element, + daeString newSID) = 0; + + /** + * Unloads all of the documents of the runtime database. + * This function frees all the @c dom* objects created so far, + * except any objects on which you still have a smart pointer reference (@c daeSmartRef). + * @return Returns @c DAE_OK if all documents successfully unloaded, otherwise returns a negative value as defined in daeError.h. + */ + virtual daeInt clear() = 0; + + /** + * Lookup elements by ID, searching through all documents. + * @param id The ID to match on. + * @return The array of matching elements. + */ + virtual std::vector idLookup(const std::string& id) = 0; + + /** + * Find an element with the given ID in a specific document. + * @param id The ID to match on. + * @param doc The document to search in. + * @return The matching element if one is found, NULL otherwise. + */ + daeElement* idLookup(const std::string& id, daeDocument* doc); + + /** + * Lookup elements by type ID. + * @param typeID The type to match on, e.g. domNode::ID(). + * @param doc The document to search in, or NULL to search in all documents. + * @return The array of matching elements. + */ + std::vector typeLookup(daeInt typeID, daeDocument* doc = NULL); + + /** + * Same as the previous method, but returns the array of matching elements via a + * reference parameter for additional efficiency. + * @param typeID The type to match on, e.g. domNode::ID(). + * @param matchingElements The array of matching elements. + * @param doc The document to search in, or NULL to search in all documents. + */ + virtual void typeLookup(daeInt typeID, + std::vector& matchingElements, + daeDocument* doc = NULL) = 0; + + /** + * Lookup elements by type ID. + * @param doc The document to search in, or NULL to search in all documents. + * @return The array of matching elements. + */ + template + std::vector typeLookup(daeDocument* doc = NULL) { + std::vector result; + typeLookup(result, doc); + return result; + } + + /** + * Same as the previous method, but returns the array of matching elements via a + * reference parameter for additional efficiency. + * @param matchingElements The array of matching elements. + * @param doc The document to search in, or NULL to search in all documents. + */ + template void + typeLookup(std::vector& matchingElements, daeDocument* doc = NULL) { + std::vector elts; + typeLookup(T::ID(), elts, doc); + matchingElements.clear(); + matchingElements.reserve(elts.size()); + for (size_t i = 0; i < elts.size(); i++) + matchingElements.push_back((T*)elts[i]); + } + + /** + * Lookup elements by sid. + * @param sid The sid to match on. + * @param doc The document to search in, or NULL to search in all documents. + * @return The array of matching elements. + * Note - This function currently isn't implemented in the default database. + */ + std::vector sidLookup(const std::string& sid, daeDocument* doc = NULL); + + /** + * Same as the previous method, but the results are returned via a parameter instead + * of a return value, for extra efficiency. + * @param sid The sid to match on. + * @param matchingElements The array of matching elements. + * @param doc The document to search in, or NULL to search in all documents. + * Note - This function currently isn't implemented in the default database. + */ + virtual void sidLookup(const std::string& sid, + std::vector& matchingElements, + daeDocument* doc = NULL) = 0; + + /** + * Sets the top meta object. + * Called by @c dae::setDatabase() when the database changes. It passes to this function the + * top meta object, which is the root of a + * hierarchy of @c daeMetaElement objects. This top meta object is capable of creating + * any of the root objects in the DOM tree. + * @param _topMeta Top meta object to use to create objects to fill the database. + * @return Returns DAE_OK if successful, otherwise returns a negative value defined in daeError.h. + */ + virtual daeInt setMeta(daeMetaElement *_topMeta) = 0; + +public: + // The following methods are deprecated, and it's recommended that you don't use them. + // Where appropriate, alternative methods are specified. + + virtual daeUInt getTypeCount() = 0; + virtual daeString getTypeName(daeUInt index) = 0; + + // Instead of the following two methods, use idLookup or typeLookup. + virtual daeUInt getElementCount(daeString name = NULL, + daeString type = NULL, + daeString file = NULL) = 0; + virtual daeInt getElement(daeElement** pElement, + daeInt index, + daeString name = NULL, + daeString type = NULL, + daeString file = NULL ) = 0; + + inline daeInt insertCollection(daeString name, daeElement* dom, daeDocument** document = NULL) { + return insertDocument( name, dom, document ); + } + inline daeInt insertCollection(daeString name, daeDocument** document = NULL) { + return insertDocument( name, document ); + } + inline daeInt createCollection(daeString name, daeElement* dom, daeDocument** document = NULL) { + return createDocument( name, dom, document ); + } + inline daeInt createCollection(daeString name, daeDocument** document = NULL) { + return createDocument( name, document ); + } + inline daeInt insertCollection( daeDocument *c ) { + return insertDocument( c ); + } + inline daeInt removeCollection(daeDocument* document) { + return removeDocument( document ); + } + inline daeUInt getCollectionCount() { + return getDocumentCount(); + } + inline daeDocument* getCollection(daeUInt index) { + return getDocument( index ); + } + inline daeDocument* getCollection(daeString name) { + return getDocument( name ); + } + inline daeString getCollectionName(daeUInt index) { + return getDocumentName( index ); + } + inline daeBool isCollectionLoaded(daeString name) { + return isDocumentLoaded( name ); + } + +protected: + DAE& dae; +}; + +#endif //__DAE_DATABASE__ + diff --git a/include/dae/daeDocument.h b/include/dae/daeDocument.h new file mode 100644 index 0000000..efc38a4 --- /dev/null +++ b/include/dae/daeDocument.h @@ -0,0 +1,140 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_DOCUMENT__ +#define __DAE_DOCUMENT__ + +#include +#include +#include +#include + +class DAE; +class daeDatabase; + +/** + * The @c daeDocument class implements a COLLADA runtime database entry. + */ +class DLLSPEC daeDocument +{ +public: + /** + * Constructor + * @param dae The dae that owns this document. + */ + daeDocument(DAE& dae); + + /** + * Destructor + */ + ~daeDocument(); + + /** + * Accessor to get the @c domCollada associated with this document. + * @return A @c daeElementRef for the @c domCollada that is the root of this document. + * @note This function should really return a domColladaRef, + * but we're trying to avoid having @c dae classes depend on generated dom classes. + */ + daeElement* getDomRoot() const {return(dom);} + /** + * Accessor to set the domCollada associated with this document + * @param domRoot the domCollada that is the root of this document + * @remarks Should really require a domColladaRef but we're trying to avoid having dae classes depend on generated dom classes. + */ + void setDomRoot(daeElement* domRoot) {dom = domRoot; domRoot->setDocument(this); } + /** + * Accessor to get the URI associated with the document in this document; + * this is currently set to the URI from which the document was loaded, but + * is blank if the document was created with @c insertDocument(). + * @return Returns a pointer to the URI for this document. + * @note This is the full URI of the document and not the document base URI. + */ + daeURI* getDocumentURI() {return (&uri);} + + /** + * Const accessor to get the URI associated with the document in this collection; + * this is currently set to the URI from which the collection was loaded, but + * is blank if the collection was created with @c insertCollection(). + * @return Returns a pointer to the URI for this collection. + * @note This is the full URI of the document and not the document base URI. + */ + const daeURI* getDocumentURI() const {return (&uri);} + + /** + * Accessor to get the DAE that owns this document. + * @return Returns the DAE that owns this document. + */ + DAE* getDAE(); + + /** + * Accessor to get the database associated with this document. + * @return Returns the database associated with this document. + */ + daeDatabase* getDatabase(); + + /** + * This function is used to track how a document gets modified. It gets called internally. + * @param element The element that was added to this document. + * @note This function is called internally and not meant to be called by the client application. + * Calling this function from the client application may result in unexpected behavior. + */ + void insertElement( daeElementRef element ); + /** + * This function is used to track how a document gets modified. It gets called internally. + * @param element The element that was removed from this document. + * @note This function is called internally and not meant to be called by the client application. + * Calling this function from the client application may result in unexpected behavior. + */ + void removeElement( daeElementRef element ); + /** + * This function is used to track how a document gets modified. It gets called internally. + * @param element The element whose ID is about to be changed. + * @param newID The ID that is going to be assigned to the element. + * @note This function is called internally and not meant to be called by the client application. + * Calling this function from the client application may result in unexpected behavior. + */ + void changeElementID( daeElementRef element, daeString newID ); + /** + * This function is just like changeElementID, except it keeps track of sids instead of IDs. + * @param element The element whose sid is about to be changed. + * @param newSID The sid that is going to be assigned to the element. + * @note This function is called internally and not meant to be called by the client application. + * Calling this function from the client application may result in unexpected behavior. + */ + void changeElementSID( daeElementRef element, daeString newSID ); + + +private: + /** + * The DAE that owns this document. The DAE's database is notified by the document when + * elements are inserted, removed, or have their ID changed. + */ + DAE* dae; + + /** + * Top Level element for of the document, always a domCollada + * @remarks This member will eventually be taken private, use getDomRoot() to access it. + */ + daeElementRef dom; + + /** + * The URI of the document, may be blank if the document wasn't loaded from a URI + * @remarks This member will eventually be taken private, use getDocumentURI() to access it. + */ + daeURI uri; +}; + +typedef daeDocument daeCollection; + +#endif + diff --git a/include/dae/daeDom.h b/include/dae/daeDom.h new file mode 100644 index 0000000..f329f8e --- /dev/null +++ b/include/dae/daeDom.h @@ -0,0 +1,22 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_DOM__ +#define __DAE_DOM__ + +class daeMetaElement; +class DAE; + +daeMetaElement* initializeDomMeta(DAE& dae); + +#endif //__DAE_DOM__ diff --git a/include/dae/daeDomTypes.h b/include/dae/daeDomTypes.h new file mode 100644 index 0000000..17363ce --- /dev/null +++ b/include/dae/daeDomTypes.h @@ -0,0 +1,68 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_DOM_TYPES__ +#define __DAE_DOM_TYPES__ + +#include +#include +#include +#include +#include + +//This line is used as a workaround because the array types enum is invalid when autogenerated +//typedef daeString domArrayTypes; // ENUM +typedef daeElement domElement; + +typedef daeURI xsAnyURI; +typedef daeString xsDateTime; + +typedef daeString xsID; +typedef daeIDRef xsIDREF; +typedef daeTArray xsIDREFS; +typedef daeString xsNCName; +typedef daeString xsNMTOKEN; +typedef daeString xsName; +typedef daeString xsToken; +typedef daeString xsString; +typedef daeBool xsBoolean; +typedef daeShort xsShort; +typedef daeInt xsInt; +typedef daeLong xsInteger; +typedef daeUInt xsNonNegativeInteger; +typedef daeLong xsLong; +typedef daeFloat xsFloat; +typedef daeDouble xsDouble; +typedef daeDouble xsDecimal; +typedef daeCharArray xsHexBinaryArray; +typedef daeBoolArray xsBooleanArray; +typedef daeFloatArray xsFloatArray; +typedef daeDoubleArray xsDoubleArray; +typedef daeShortArray xsShortArray; +typedef daeIntArray xsIntegerArray; +typedef daeLongArray xsLongArray; +typedef daeStringRefArray xsNameArray; +typedef daeStringRefArray xsNCNameArray; +typedef daeStringRefArray xsTokenArray; + +typedef daeChar xsByte; +typedef daeUChar xsUnsignedByte; +typedef daeUInt xsUnsignedInt; +typedef daeUInt xsPositiveInteger; +typedef daeULong xsUnsignedLong; + + +#define daeTSmartRef daeSmartRef + +#endif //__DAE_DOM_TYPES__ + diff --git a/include/dae/daeElement.h b/include/dae/daeElement.h new file mode 100644 index 0000000..84fa260 --- /dev/null +++ b/include/dae/daeElement.h @@ -0,0 +1,556 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_ELEMENT_H__ +#define __DAE_ELEMENT_H__ +#include +#include +#include +#include +#include +#include +#include + +//#ifndef NO_MALLOC_HEADER +//#include +//#endif + +namespace COLLADA_TYPE +{ + typedef int TypeEnum; +} + +class DAE; +class daeMetaElement; +class daeMetaAttribute; +class daeDocument; +class daeURI; + +/** + * The @c daeElement class represents an instance of a COLLADA "Element"; + * it is the main base class for the COLLADA Dom. + * Features of this class include: + * - Uses factory concepts defined via daeMetaElement + * - Composed of attributes, content elements and content values + * - Reference counted via daeSmartRef + * - Contains information for XML base URI, and XML containing element + */ +class DLLSPEC daeElement : public daeRefCountedObj +{ +public: + /** + * Macro that defines new and delete overrides for this class + */ + DAE_ALLOC +protected: + daeElement* _parent; + daeDocument* _document; + daeMetaElement* _meta; + daeString _elementName; + daeBoolArray _validAttributeArray; + void* _userData; + +protected: + daeElement( const daeElement &cpy ) : daeRefCountedObj() { (void)cpy; }; + virtual daeElement &operator=( const daeElement &cpy ) { (void)cpy; return *this; } + + void init(); + + // These functions are called internally. + void setDocument( daeDocument* c, bool notifyDocument ); + daeElement* simpleAdd(daeString name, int index = -1); + +public: + /** + * Element Constructor. + * @note This should not be used externally. + * Use factories to create elements + */ + daeElement(); + /** + * Element Constructor. + * @note This should not be used externally. + * Use factories to create elements + */ + daeElement(DAE& dae); + + /** + * Element Destructor. + * @note This should not be used externally, + * if daeSmartRefs are being used. + */ + virtual ~daeElement(); + + /** + * Sets up a @c daeElement. Called on all @c daeElements as part of their initialization. + * @param meta Meta element to use to configure this element. + * @note Should not be called externally. + */ + void setup(daeMetaElement* meta); + + // These functions are for adding child elements. They return null if adding + // the element failed. + daeElement* add(daeString name, int index = -1); + daeElement* add(daeElement* elt, int index = -1); + daeElement* addBefore(daeElement* elt, daeElement* index); + daeElement* addAfter(daeElement* elt, daeElement* index); + + // These functions are deprecated. Use 'add' instead. + daeElement* createAndPlace(daeString elementName); + daeElement* createAndPlaceAt(daeInt index, daeString elementName); + daeBool placeElement(daeElement* element); + daeBool placeElementAt(daeInt index, daeElement* element); + daeBool placeElementBefore( daeElement* marker, daeElement *element ); + daeBool placeElementAfter( daeElement* marker, daeElement *element ); + + /** + * Finds the last index into the array of children of the name specified. + * @param elementName The name to look for. + * @return Returns the index into the children array of the last element with name elementName. -1 if + * there are no children of name elementName. + */ + daeInt findLastIndexOf( daeString elementName ); + + /** + * Removes the specified element from it parent, the @c this element. + * This function is the opposite of @c placeElement(). It removes the specified + * element from the _contents array, and from wherever else it appears + * inside of the @c this element. Use this function instead of @c clear(), @c remove() or @c delete() + * if you want to keep the _contents field up-to-date. + * + * @param element Element to be removed in the @c this container. + * @return Returns true if the element was successfully removed, false otherwise. + */ + daeBool removeChildElement(daeElement* element); + + /** + * Removes the specified element from its parent element. + * This function is the opposite of @c placeElement(). It removes the specified + * element from both the _contents array and from wherever else it appears + * inside of its parent. The function itself finds the parent, and is defined as a static method, + * since removing the element from its parent may result in the deletion of the element. + * If the element has no parent, nothing is done. + * + * Use this function instead of @c clear(), @c remove() or @c delete() + * if you want to keep _contents up-to-date. + * + * @param element Element to remove from its parent container, the function finds the parent element. + * @return Returns true if the element was successfully removed, false otherwise. + */ + static daeBool removeFromParent(daeElement* element) + { + if(element != NULL && element->_parent != NULL) + return(element->_parent->removeChildElement(element)); + return false; + }; + + /** + * Returns the number of attributes in this element. + * @return The number of attributes this element has. + */ + size_t getAttributeCount(); + + /** + * Returns the daeMetaAttribute object corresponding to the attribute specified. + * @param name The name of the attribute to find. + * @return Returns the corresponding daeMetaAttribute object or NULL if this element + * doesn't have the specified attribute. + */ + daeMetaAttribute* getAttributeObject(daeString name); + + /** + * Returns the daeMetaAttribute object corresponding to attribute i. + * @param i The index of the attribute to find. + * @return Returns the corresponding daeMetaAttribute object + */ + daeMetaAttribute* getAttributeObject(size_t i); + + /** + * Returns the name of the attribute at the specified index. + * @param i The index of the attribute whose name should be retrieved. + * @return Returns the name of the attribute, or "" if the index is out of range. + */ + std::string getAttributeName(size_t i); + + /** + * Checks if this element can have the attribute specified. + * @param name The name of the attribute to look for. + * @return Returns true is this element can have an attribute with the name specified. False otherwise. + */ + daeBool hasAttribute(daeString name); + + /** + * Checks if an attribute has been set either by being loaded from the COLLADA document or set + * programmatically. + * @param name The name of the attribute to check. + * @return Returns true if the attribute has been set. False if the attribute hasn't been set + * or doesn't exist for this element. + */ + daeBool isAttributeSet(daeString name); + + /** + * Gets an attribute's value as a string. + * @param name The name of the attribute. + * @return The value of the attribute. Returns an empty string if this element doesn't + * have the specified attribute. + */ + std::string getAttribute(daeString name); + + /** + * Just like the previous method, this method gets an attribute's value as a string. It + * takes the string as a reference parameter instead of returning it, for extra efficiency. + * @param name The name of the attribute. + * @param A string in which to store the value of the attribute. This will be set to an empty + * string if this element doesn't have the specified attribute. + */ + void getAttribute(daeString name, std::string& value); + + /** + * Gets an attribute's value as a string. + * @param i The index of the attribute to retrieve. + * @return The value of the attribute. + */ + std::string getAttribute(size_t i); + + /** + * Just like the previous method, this method gets an attribute's value as a string. It + * takes the string as a reference parameter instead of returning it, for extra efficiency. + * @param i The index of the attribute to retrieve. + * @param A string in which to store the value of the attribute. + */ + void getAttribute(size_t i, std::string& value); + + struct DLLSPEC attr { + attr(); + attr(const std::string& name, const std::string& value); + + std::string name; + std::string value; + }; + + /** + * Returns an array containing all the attributes of this element. + * @return A daeArray of attr objects. + */ + daeTArray getAttributes(); + + /** + * Just like the previous method, this method returns an array containing all the attributes + * of this element. It returns the result via a reference parameter for extra efficiency. + * @param attrs The array of attr objects to return. + */ + void getAttributes(daeTArray& attrs); + + /** + * Sets the attribute to the specified value. + * @param name Attribute to set. + * @param value Value to apply to the attribute. + * @return Returns true if the attribute was found and the value was set, false otherwise. + */ + virtual daeBool setAttribute(daeString name, daeString value); + + /** + * Sets the attribute at the specified index to the given value. + * @param i Index of the attribute to set. + * @param value Value to apply to the attribute. + * @return Returns true if the attribute was found and the value was set, false otherwise. + */ + virtual daeBool setAttribute(size_t i, daeString value); + + /** + * Returns the daeMetaAttribute object corresponding to the character data for this element. + * @return Returns a daeMetaAttribute object or NULL if this element doesn't have + * character data. + */ + daeMetaAttribute* getCharDataObject(); + + /** + * Checks if this element can have character data. + * @return Returns true if this element can have character data, false otherwise. + */ + daeBool hasCharData(); + + /** + * Returns this element's character data as a string. + * @return A string containing this element's character data, or an empty string + * if this element can't have character data. + */ + std::string getCharData(); + + /** + * Similar to the previous method, but fills a string passed in by the user for efficiency. + * @param data The string to be filled with this element's character content. The + * string is set to an empty string if this element can't have character data. + */ + void getCharData(std::string& data); + + /** + * Sets this element's character data. + * @param data The new character data of this element. + * @return Returns true if this element can have character data and the character data + * was successfully changed, false otherwise. + */ + daeBool setCharData(const std::string& data); + + // These functions are deprecated. + daeMemoryRef getAttributeValue(daeString name); // Use getAttribute or getAttributeObject instead. + daeBool hasValue(); // Use hasCharData instead. + daeMemoryRef getValuePointer(); // Use getCharData or getCharDataObject instead. + + /** + * Finds the database document associated with @c this element. + * @return Returns the @c daeDocument representing the containing file or database + * group. + */ + daeDocument* getDocument() const { return _document; } + + /** + * Deprecated. + */ + daeDocument* getCollection() const { return _document; } + + /** + * Get the associated DAE object. + * @return The associated DAE object. + */ + DAE* getDAE(); + + /** + * Sets the database document associated with this element. + * @param c The daeDocument to associate with this element. + */ + void setDocument(daeDocument* c) { setDocument( c, true ); } + /** + * Deprecated. + */ + void setCollection(daeDocument* c ); + + /** + * Gets the URI of the document containing this element, note that this is NOT the URI of the element. + * @return Returns a pointer to the daeURI of the document containing this element. + */ + daeURI* getDocumentURI() const; + + /** + * Creates an element via the element factory system. This creation + * is based @em only on potential child elements of this element. + * @param elementName Class name of the subelement to create. + * @return Returns the created @c daeElement, if it was successfully created. + */ + daeSmartRef createElement(daeString elementName); + + /** + * Gets the container element for @c this element. + * If @c createAndPlace() was used to create the element, its parent is the the caller of @c createAndPlace(). + * @return Returns the parent element, if @c this is not the top level element. + */ + daeElement* getParentElement() { return _parent;} + /** + * Deprecated. Use getParentElement() + * @deprecated + */ + daeElement* getXMLParentElement() { return _parent;} + /** + * Sets the parent element for this element. + * @param newParent The element which is the new parent element for this element. + * @note This function is called internally and not meant to be called form the client application. + */ + void setParentElement( daeElement *parent ) { _parent = parent; } + + // These are helper structures to let the xml hierarchy search functions know when we've + // found a match. You can implement a custom matcher by inheriting from this structure, + // just like matchName and matchType. + struct DLLSPEC matchElement { + virtual bool operator()(daeElement* elt) const = 0; + virtual ~matchElement() { }; + }; + + // Matches an element by name + struct DLLSPEC matchName : public matchElement { + matchName(daeString name); + virtual bool operator()(daeElement* elt) const; + std::string name; + }; + + // Matches an element by schema type + struct DLLSPEC matchType : public matchElement { + matchType(daeInt typeID); + virtual bool operator()(daeElement* elt) const; + daeInt typeID; + }; + + // Returns a matching child element. By "child", I mean one hierarchy level beneath the + // current element. This function is basically the same as getDescendant, except that it + // only goes one level deep. + daeElement* getChild(const matchElement& matcher); + + // Performs a breadth-first search and returns a matching descendant element. A "descendant + // element" is an element beneath the current element in the xml hierarchy. + daeElement* getDescendant(const matchElement& matcher); + + // Returns the parent element. + daeElement* getParent(); + + // Searches up through the xml hiearchy and returns a matching element. + daeElement* getAncestor(const matchElement& matcher); + + // These functions perform the same as the functions above, except that they take the element + // name to match as a string. This makes these functions a little simpler to use if you're + // matching based on element name, which is assumed to be the most common case. Instead of + // "getChild(matchName(eltName))", you can just write "getChild(eltName)". + daeElement* getChild(daeString eltName); + daeElement* getDescendant(daeString eltName); + daeElement* getAncestor(daeString eltName); + + /** + * Gets the associated Meta information for this element. This + * Meta also acts as a factory. See @c daeMetaElement documentation for more + * information. + * @return Returns the associated meta information. + */ + inline daeMetaElement* getMeta() { return _meta; } + + // These functions are deprecated. Use typeID instead. + virtual COLLADA_TYPE::TypeEnum getElementType() const { return (COLLADA_TYPE::TypeEnum)0; } + daeString getTypeName() const; + + /** + * Returns this element's type ID. Every element is an instance of a type specified in + * the Collada schema, and every schema type has a unique ID. + * @return The element's type ID. + */ + virtual daeInt typeID() const = 0; + + /** + * Gets this element's name. + * @return Returns the string for the name. + * @remarks This function returns NULL if the element's name is identical to it's type's name. + */ + daeString getElementName() const; + /** + * Sets this element's name. + * @param nm Specifies the string to use as the element's name. + * @remarks Use caution when using this function since you can easily create invalid COLLADA documents. + */ + void setElementName( daeString nm ); + + /** + * Gets the element ID if it exists. + * @return Returns the value of the ID attribute, if there is such + * an attribute on this element type. + * @return the string for the element ID if it exists. + */ + daeString getID() const; + + /** + * Gets the children/sub-elements of this element. + * This is a helper function used to easily access an element's children without the use of the + * _meta objects. This function adds the convenience of the _contents array to elements that do + * not contain a _contents array. + * @return The return value. An elementref array to append this element's children to. + */ + daeTArray< daeSmartRef > getChildren(); + + /** + * Same as the previous function, but returns the result via a parameter instead + * of a return value, for extra efficiency. + * @param array The return value. An elementref array to append this element's children to. + */ + //void getChildren( daeElementRefArray &array ); + void getChildren( daeTArray > &array ); + + /** + * Gets all the children of a particular type. + * @return An array containing the matching child elements. + */ + template + daeTArray< daeSmartRef > getChildrenByType() { + daeTArray< daeSmartRef > result; + getChildrenByType(result); + return result; + } + + /** + * Same as the previous function, but returns the result via a parameter instead + * of a return value, for extra efficiency. + * @return An array containing the matching child elements. + */ + template + void getChildrenByType(daeTArray< daeSmartRef >& matchingChildren) { + matchingChildren.setCount(0); + daeTArray< daeSmartRef > children; + getChildren(children); + for (size_t i = 0; i < children.getCount(); i++) + if (children[i]->typeID() == T::ID()) + matchingChildren.append((T*)children[i].cast()); + } + + /** + * Clones/deep copies this @c daeElement and all of it's subtree. + * @param idSuffix A string to append to the copied element's ID, if one exists. + * Default is no ID mangling. + * @param nameSuffix A string to append to the copied element's name, if one exists. + * Default is no name mangling. + * @return Returns a @c daeElement smartref of the copy of this element. + */ + daeSmartRef clone( daeString idSuffix = NULL, daeString nameSuffix = NULL ); + + // Class for reporting info about element comparisons + struct DLLSPEC compareResult { + int compareValue; // > 0 if elt1 > elt2, + // < 0 if elt1 < elt2, + // = 0 if elt1 = elt2 + daeElement* elt1; + daeElement* elt2; + bool nameMismatch; // true if the names didn't match + std::string attrMismatch; // The name of the mismatched attribute, or "" if there was no attr mismatch + bool charDataMismatch; // true if the char data didn't match + bool childCountMismatch; // true if the number of children didn't match + + compareResult(); + std::string format(); // Write to a string + }; + + // Function for doing a generic, recursive comparison of two xml elements. It + // also provides a full element ordering, so that you could store elements in + // a map or a set. Return val is > 0 if elt1 > elt2, < 0 if elt1 < elt2, and 0 + // if elt1 == elt2. + static int compare(daeElement& elt1, daeElement& elt2); + + // Same as the previous function, but returns a full compareResult object. + static compareResult compareWithFullResult(daeElement& elt1, daeElement& elt2); + + /** + * Sets the user data pointer attached to this element. + * @param data User's custom data to store. + */ + void setUserData(void* data); + + /** + * Gets the user data pointer attached to this element. + * @return User data pointer previously set with setUserData. + */ + void* getUserData(); + +public: + // This function is called internally + static void deleteCMDataArray(daeTArray& cmData); +}; + +#include +typedef daeSmartRef daeElementRef; +typedef daeSmartRef daeElementConstRef; +//#include +typedef daeTArray daeElementRefArray; + +#endif //__DAE_ELEMENT_H__ diff --git a/include/dae/daeError.h b/include/dae/daeError.h new file mode 100644 index 0000000..2dbfc91 --- /dev/null +++ b/include/dae/daeError.h @@ -0,0 +1,51 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE__ERROR__ +#define __DAE__ERROR__ + +#include + +/** Success */ +#define DAE_OK 0 +/** Fatal Error, should never be returned unless there is a bug in the library. */ +#define DAE_ERR_FATAL -1 +/** Call invalid, the combination of parameters given is invalid. */ +#define DAE_ERR_INVALID_CALL -2 +/** Generic error */ +#define DAE_ERROR -3 +/** IO error, the file hasn't been found or there is a problem with the IO plugin. */ +#define DAE_ERR_BACKEND_IO -100 +/** The IOPlugin backend wasn't able to successfully validate the data. */ +#define DAE_ERR_BACKEND_VALIDATION -101 +/** The IOPlugin tried to write to a file that already exists and the "replace" parameter was set to false */ +#define DAE_ERR_BACKEND_FILE_EXISTS -102 +/** Error in the syntax of the query. */ +#define DAE_ERR_QUERY_SYNTAX -200 +/** No match to the search criteria. */ +#define DAE_ERR_QUERY_NO_MATCH -201 +/** A document with that name already exists. */ +#define DAE_ERR_COLLECTION_ALREADY_EXISTS -202 +/** A document with that name does not exist. */ +#define DAE_ERR_COLLECTION_DOES_NOT_EXIST -203 +/** Function is not implemented. */ +#define DAE_ERR_NOT_IMPLEMENTED -1000 + + +/** Gets the ASCII error string. +* @param errorCode Error code returned by a function of the API. +* @return Returns an English string describing the error. +*/ +DLLSPEC const char *daeErrorString(int errorCode); + +#endif //__DAE__ERROR__ diff --git a/include/dae/daeErrorHandler.h b/include/dae/daeErrorHandler.h new file mode 100644 index 0000000..6d64994 --- /dev/null +++ b/include/dae/daeErrorHandler.h @@ -0,0 +1,66 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef _DAE_ERROR_HANDLER_ +#define _DAE_ERROR_HANDLER_ + +#include +#include + +/** + * The @c daeErrorHandler class is a plugin that allows the use to overwrite how error and warning + * messages get handled in the client application. An example of this would be a class that reports + * the message to a gui front end instead of just printing on stdout. + */ +class DLLSPEC daeErrorHandler { +public: + /** + * Constructor. + */ + daeErrorHandler(); + /** + * Destructor. + */ + virtual ~daeErrorHandler(); + + /** + * This function is called when there is an error and a string needs to be sent to the user. + * You must overwrite this function in your plugin. + * @param msg Error message. + */ + virtual void handleError( daeString msg ) = 0; + /** + * This function is called when there is a warning and a string needs to be sent to the user. + * You must overwrite this function in your plugin. + * @param msg Warning message. + */ + virtual void handleWarning( daeString msg ) = 0; + + /** + * Sets the daeErrorHandler to the one specified. + * @param eh The new daeErrorHandler to use. Passing in NULL results in the default plugin being used. + */ + static void setErrorHandler( daeErrorHandler *eh ); + /** + * Returns the current daeErrorHandlerPlugin. A program has one globally-accessible + * daeErrorHandler active at a time. + * @return The current daeErrorHandler. + */ + static daeErrorHandler *get(); + +private: + static daeErrorHandler *_instance; + static std::auto_ptr _defaultInstance; +}; + +#endif diff --git a/include/dae/daeGCCPlatform.h b/include/dae/daeGCCPlatform.h new file mode 100644 index 0000000..5dbf11b --- /dev/null +++ b/include/dae/daeGCCPlatform.h @@ -0,0 +1,30 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_GCC_PLATFORM_H__ +#define __DAE_GCC_PLATFORM_H__ + +#define PLATFORM_INT8 char +#define PLATFORM_INT16 short +#define PLATFORM_INT32 int +#define PLATFORM_INT64 long long +#define PLATFORM_UINT8 unsigned char +#define PLATFORM_UINT16 unsigned short +#define PLATFORM_UINT32 unsigned int +#define PLATFORM_UINT64 unsigned long long +#define PLATFORM_FLOAT32 float +#define PLATFORM_FLOAT64 double + +#define DLLSPEC + +#endif diff --git a/include/dae/daeIDRef.h b/include/dae/daeIDRef.h new file mode 100644 index 0000000..abbb146 --- /dev/null +++ b/include/dae/daeIDRef.h @@ -0,0 +1,235 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_IDREF_H__ +#define __DAE_IDREF_H__ + +#include +#include +#include +class DAE; + +/** + * The @c daeIDRef is a simple class designed to aid in the parsing and resolution of + * ID references inside of COLLADA elements. + * A @c daeIDRef is created for every IDREF data type in the COLLADA schema. + * It also has the capability to attempt to resolve this reference + * into a @c daeElement. If a @c daeIDRef is stored within a @c daeElement it fills + * in its container field to point to the containing element. + * + * The main API is the @c daeIDRef::resolveElement() will use a @c daeIDRefResolver + * to search for the @c daeElement inside of a @c daeDatabase. + * + */ +class DLLSPEC daeIDRef +{ +public: + /** + * An enum describing the status of the ID resolution process. + */ + enum ResolveState{ + /** No ID specified */ + id_empty, + /** ID specified but not resolved */ + id_loaded, + /** ID resolution pending */ + id_pending, + /** ID resolved correctly */ + id_success, + /** Resolution failed because ID was not found */ + id_failed_id_not_found, + /** Resolution failed because ID was invalid */ + id_failed_invalid_id, + /** Resoltion failed due to invalid reference */ + id_failed_invalid_reference, + /** Resolution failed due to an external error */ + id_failed_externalization, + /** Resolution failed because we don't have a document in which to search for the element. + This means you probably forgot to set a container element. */ + id_failed_no_document + }; + +private: + /** ID used to refer to another element */ + std::string id; + + /** Element that owns this ID (if any) */ + daeElement* container; + +public: + /** + * Simple Constructor + */ + daeIDRef(); + + /** + * Constructs an id reference via a string, using @c setID(); loads the status. + * @param id ID to construct a reference for, passed to @c setID() automatically. + */ + daeIDRef(daeString id); + + /** + * Constructs a new id reference by copying an existing one. + * @param constructFromIDRef @c daeIDRef to copy into this one. + */ + daeIDRef(const daeIDRef& constructFromIDRef); + + /** + * Constructs an id reference with a container element + * @param container The container element. + */ + daeIDRef(daeElement& container); + + /** + * Gets the ID string + * @return Returns the full ID string from id. + */ + daeString getID() const; + + /** + * Copies ID into the id data member. + * After the call to @c setID(), the state is set to @c id_loaded + * @param ID String to use to configure this @c daeIDRef. + */ + void setID(daeString ID); + + /** + * Gets the element that this URI resolves to in memory. + * @return Returns a ref to the element. + */ + daeElement* getElement() const; + + /** + * Gets a pointer to the @c daeElement that contains this URI. + * @return Returns the pointer to the containing daeElmement. + */ + daeElement* getContainer() const; + + /** + * Sets the pointer to the @c daeElement that contains this URI. + * @param cont Pointer to the containing @c daeElmement. + */ + void setContainer(daeElement* cont); + + /** + * Outputs all components of this @c daeIDRef to stderr. + */ + void print(); + + /** + * Resets this @c daeIDRef; frees all string references + * and returns state to @c empty. + */ + void reset(); + + /** + * Initializes the @c daeIDREf, setting id, element, and container to NULL. + */ + void initialize(); + + /** + * Comparison operator. + * @return Returns true if URI's are equal. + */ + bool operator==(const daeIDRef& other) const; + + /** + * Assignment operator. + * @return Returns a reference to this object. + */ + daeIDRef &operator=( const daeIDRef& other); + + // These methods are only provided for backwards compatibility. Use the listed alternatives. + daeIDRef &get( daeUInt idx ); // Never should have existed. No alternative. + size_t getCount() const; // Never should have existed. No alternative. + daeIDRef& operator[](size_t index); // Never should have existed. No alternative. + void resolveElement( daeString typeNameHint = NULL ); // Call getElement. No separate "resolve" step needed. + void resolveID(); // Never should have existed. No alternative. + void validate(); // Never should have existed. No alternative. + void copyFrom(const daeIDRef& from); // Use the assignment operator instead. + ResolveState getState() const; // Never should have existed. No alternative. +}; + +/** + * The @c daeIDRefResolver class is the plugin point for @c daeIDRef resolution. + * This class is an abstract base class that defines an interface for + * resolving @c daeIDRefs. + */ +class DLLSPEC daeIDRefResolver +{ +public: + /** + * Constructor + */ + daeIDRefResolver(DAE& dae); + + /** + * Destructor + */ + virtual ~daeIDRefResolver(); + + /** + * Provides an abstract interface to convert a @c daeIDRef into a @c daeElement. + * @param id The ID of the element to find. + * @param doc The document containing the element. + * @return Returns a daeElement with matching ID, if one is found. + */ + virtual daeElement* resolveElement(const std::string& id, daeDocument* doc) = 0; + + + /** + * Gets the name of this resolver. + * @return Returns the string name. + */ + virtual daeString getName() = 0; + +protected: + DAE* dae; +}; + + +/** + * The @c daeDefaultIDRefResolver resolves a @c daeIDRef by checking with a database. + * It is a concrete implementation for @c daeIDRefResolver. + */ +class DLLSPEC daeDefaultIDRefResolver : public daeIDRefResolver +{ +public: + daeDefaultIDRefResolver(DAE& dae); + ~daeDefaultIDRefResolver(); + virtual daeElement* resolveElement(const std::string& id, daeDocument* doc); + virtual daeString getName(); +}; + + +// This is a container class for storing a modifiable list of daeIDRefResolver objects. +class DLLSPEC daeIDRefResolverList { +public: + daeIDRefResolverList(); + ~daeIDRefResolverList(); + + void addResolver(daeIDRefResolver* resolver); + void removeResolver(daeIDRefResolver* resolver); + + daeElement* resolveElement(const std::string& id, daeDocument* doc); + +private: + // Disabled copy constructor/assignment operator + daeIDRefResolverList(const daeIDRefResolverList& resolverList) { }; + daeIDRefResolverList& operator=(const daeIDRefResolverList& resolverList) { return *this; }; + + daeTArray resolvers; +}; + + +#endif //__DAE_IDREF_H__ diff --git a/include/dae/daeIOPlugin.h b/include/dae/daeIOPlugin.h new file mode 100644 index 0000000..518a76f --- /dev/null +++ b/include/dae/daeIOPlugin.h @@ -0,0 +1,133 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_IOPLUGIN__ +#define __DAE_IOPLUGIN__ + +#include +#include +#include +class daeDatabase; +class daeMetaElement; +class daeURI; +class daeDocument; + +/** +* The @c daeIOPlugin class provides the input/output plugin interface, which is +* the interface between the COLLADA runtime and the backend storage. A native +* COLLADA XML plugin implementation is provided along with this interface. +*/ +class DLLSPEC daeIOPlugin +{ +public: + /** + * Destructor + */ + virtual ~daeIOPlugin() {} + /** + * Sets the top meta object. + * Called by @c dae::setIOPlugin() when the IO plugin changes. It passes to this function the + * top meta object, which is the root of a + * hierarchy of @c daeMetaElement objects. This top meta object is capable of creating + * any of the root objects in the DOM tree. + * @param topMeta Top meta object to use to create objects to fill the database. + * @return Returns DAE_OK if successful, otherwise returns a negative value defined in daeError.h. + */ + virtual daeInt setMeta(daeMetaElement *topMeta) = 0; + + /** @name Database setup */ + //@{ + /** + * Sets the database to use. + * All @c daeIOPlugins use the same interface to the @c daeDatabase, + * @c setDatabase() tells the @c daeIOPlugin which @c daeDatabase object it should use + * for storage and queries. + * @param database Database to set. + */ + virtual void setDatabase(daeDatabase* database) = 0; + //@} + + + /** @name Operations */ + //@{ + /** + * Imports content into the database from an input. + * The input can be a file, a database or another runtime. + * @param uri the URI of the COLLADA document to load, not all plugins accept all types of URIs, + * check the documentation for the IO plugin you are using. + * @param docBuffer A string containing the text of the document to load. This is an optional attribute + * and should only be used if the document has already been loaded into memory. + * @return Returns DAE_OK if successfully loaded, otherwise returns a negative value defined in daeError.h. + * @see @c DAE::load(). + */ + virtual daeInt read(const daeURI& uri, daeString docBuffer) = 0; + + /** @name Operations */ + //@{ + /** + * Writes a specific document to an output. + * @param name URI to write the document to, not all IO plugins support all types of URIs + * check the documentation for the IO plugin you are using. + * @param document Pointer to the document that we're going to write out. + * @param replace True if write should overwrite an existing file. False otherwise. + * @return Returns DAE_OK if success, a negative value defined in daeError.h otherwise. + * @see @c DAE::saveAs() + */ + virtual daeInt write(const daeURI& name, daeDocument *document, daeBool replace) = 0; + //@} + + /** + * Returns a list of the URI protocols that this plugin supports. + * @return Returns a daeArray containing the supported protocols. + */ + virtual const std::vector& getSupportedProtocols() { + return supportedProtocols; + } + + /** + * setOption allows you to set options for this IOPlugin. Which options a plugin supports is + * dependent on the plugin itself. There is currently no list of options that plugins are + * suggested to implement. + * @param option The option to set. + * @param value The value to set the option. + * @return Returns DAE_OK upon success. + */ + virtual daeInt setOption( daeString option, daeString value ) = 0; + + /** + * getOption retrieves the value of an option from this IOPlugin. Which options a plugin supports is + * dependent on the plugin itself. + * @param option The option to get. + * @return Returns the string value of the option or NULL if option is not valid. + */ + virtual daeString getOption( daeString option ) = 0; + +protected: + // This is an array of the URI protocols supported by this plugin, e.g. "http", "file", + // etc. Each plugin should initialize this variable in the constructor. + std::vector supportedProtocols; +}; + + +class DLLSPEC daeIOEmpty : public daeIOPlugin { +public: + virtual daeInt setMeta(daeMetaElement *topMeta) { return DAE_ERROR; } + virtual void setDatabase(daeDatabase* database) { } + virtual daeInt read(const daeURI& uri, daeString docBuffer) { return DAE_ERROR; } + virtual daeInt write(const daeURI& name, daeDocument *document, daeBool replace) { return DAE_ERROR; } + virtual daeInt setOption( daeString option, daeString value ) { return DAE_ERROR; } + virtual daeString getOption( daeString option ) { return ""; } +}; + + +#endif // __DAE_IOPLUGIN__ diff --git a/include/dae/daeIOPluginCommon.h b/include/dae/daeIOPluginCommon.h new file mode 100644 index 0000000..83ca2b6 --- /dev/null +++ b/include/dae/daeIOPluginCommon.h @@ -0,0 +1,68 @@ +/* + * Copyright 2007 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_IO_PLUGIN_COMMON__ +#define __DAE_IO_PLUGIN_COMMON__ + +#include +#include +#include +#include +#include + +class daeMetaElement; +class daeDocument; + +/** + * The @c daeIOPluginCommon class was created to serve as a base class for the common functionality + * between the daeLIBXMLPlugin and daeTinyXMLPlugin classes. + */ +class DLLSPEC daeIOPluginCommon : public daeIOPlugin { +public: + /** + * Constructor. + */ + daeIOPluginCommon(); + /** + * Destructor. + */ + virtual ~daeIOPluginCommon(); + + virtual daeInt setMeta(daeMetaElement *topMeta); + + // Database setup + virtual void setDatabase(daeDatabase* database); + + // Operations + virtual daeInt read(const daeURI& uri, daeString docBuffer); + +protected: + daeDatabase* database; + + // On failure, these functions return NULL + virtual daeElementRef readFromFile(const daeURI& uri) = 0; + virtual daeElementRef readFromMemory(daeString buffer, const daeURI& baseUri) = 0; + + // Reading support for subclasses + typedef std::pair attrPair; + daeElementRef beginReadElement(daeElement* parentElement, + daeString elementName, + const std::vector& attributes, + daeInt lineNumber); + bool readElementText(daeElement* element, daeString text, daeInt elementLineNumber); + +private: + daeMetaElement* topMeta; +}; + +#endif //__DAE_IO_PLUGIN_COMMON__ diff --git a/include/dae/daeMemorySystem.h b/include/dae/daeMemorySystem.h new file mode 100644 index 0000000..bba2dad --- /dev/null +++ b/include/dae/daeMemorySystem.h @@ -0,0 +1,62 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_MEMORY_SYSTEM_H__ +#define __DAE_MEMORY_SYSTEM_H__ + +#include + +/** + * The @c daeMemorySystem class is a simple wrapper for memory operations. + * Every allocation passes a string pool name such that + * in the future different pools can be used based on allocation type. + * Currently the system is just a pass-through to system @c malloc. + */ +class daeMemorySystem +{ +public: + /** + * Provides a wrapper malloc with pool field. + * @param pool String name of the pool to use for this allocation. + * @param n Number of bytes to allocate. + * @return Returns the memory allocated if successful, or NULL if not. + */ + static DLLSPEC daeRawRef alloc(daeString pool, size_t n); + + /** + * Provides a wrapper free with pool argument. + * @param pool Pool the memory should be freed from. + * @param mem Memory to be freed. + */ + static DLLSPEC void dealloc(daeString pool, daeRawRef mem); +}; + +// (steveT) These new/delete overrides aren't complete. What about new[] and delete[]? +// Standard new should throw a bad_alloc exception, and a nothrow new should be provided +// that returns null instead of throwing bad_alloc. Because of these problems, plus the +// fact that we currently don't benefit in any way from overriding new and delete, this +// code is currently disabled. + +#if 0 +#define DAE_ALLOC \ + /* Standard new/delete */ \ + inline void* operator new(size_t size) { return daeMemorySystem::alloc("meta", size); } \ + inline void operator delete(void* p) { daeMemorySystem::dealloc("meta", p); } \ + /* Placement new/delete */ \ + inline void* operator new(size_t, void* p) { return p; } \ + inline void operator delete(void*, void*) { } +#endif + +#define DAE_ALLOC + +#endif // __DAE_MEMORY_H__ diff --git a/include/dae/daeMetaAny.h b/include/dae/daeMetaAny.h new file mode 100644 index 0000000..92e8ba2 --- /dev/null +++ b/include/dae/daeMetaAny.h @@ -0,0 +1,44 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_ANY_H__ +#define __DAE_META_ANY_H__ + +#include + +/** + * The daeMetaAny class defines the behavior of an xs:any content model in the COLLADA Schema. + */ +class daeMetaAny : public daeMetaCMPolicy +{ +public: + /** + * Constructor. + * @param container The daeMetaElement that this policy object belongs to. + * @param parent The daeMetaCMPolicy parent of this policy object. + * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the + * correct order of child elements. + * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema. + * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema. + */ + daeMetaAny( daeMetaElement *container, daeMetaCMPolicy *parent = NULL, daeUInt ordinal = 0, daeInt minO = 1, daeInt maxO = 1 ); + ~daeMetaAny(); + + daeElement *placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL ); + daeBool removeElement(daeElement* parent, daeElement* child); + daeMetaElement *findChild( daeString elementName ); + void getChildren( daeElement* parent, daeElementRefArray &array ); +}; + +#endif + diff --git a/include/dae/daeMetaAttribute.h b/include/dae/daeMetaAttribute.h new file mode 100644 index 0000000..6f9d5f8 --- /dev/null +++ b/include/dae/daeMetaAttribute.h @@ -0,0 +1,325 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_ATTRIBUTE_H__ +#define __DAE_META_ATTRIBUTE_H__ + +#include +#include +#include +#include +#include +#include +#include + +class daeElement; +class daeMetaElement; +class daeMetaAttribute; +class daeMetaElementAttribute; + +/** + * The @c daeMetaAttribute class describes one attribute in a C++ COLLADA dom element. + * + * In the case of the C++ object model a conceptual attribute can be + * either a dom attribute, a dom element, or a dom value. + * Essentially, the meta attribute describes fields on the C++ class. + * However these attributes are stored separately in the containing meta + * @c daeMetaElement. + * @c daeMetaAttributes always exist inside of @c daeMetaElements. + * Each @c daeMetaAttribute has certain semantic operations it is capable of + * including @c set(), @c get(), and @c print(). + * @c daeMetaAttributes use the @c daeAtomicType system as their underlying semantic + * implementation, but contain additional information about the packaging + * of the atomic types into the C++ dom classes such as offset, and + * array information. + */ +class DLLSPEC daeMetaAttribute : public daeRefCountedObj +{ +protected: + daeStringRef _name; + daeInt _offset; + daeAtomicType* _type; + daeMetaElement* _container; + std::string _defaultString; + daeMemoryRef _defaultValue; + daeBool _isRequired; + +public: + /** + * Constructor + */ + daeMetaAttribute(); + + /** + * Destructor + */ + virtual ~daeMetaAttribute(); +public: + /** + * Determines if the schema indicates that this is a required attribute. + * @return Returns true if this is a required attribute, false if not. + */ + daeBool getIsRequired() {return _isRequired; } + /** + * Sets the value that indicates that this attribute is required by the schema. If set, the attribute + * will always be exported by the API regardless of its value. + * @param isRequired Indicates if the schema says this attribute is required, true if it is, false if not. + */ + void setIsRequired(daeBool isRequired) {_isRequired = isRequired;} + /** + * Sets the byte offset (from @c this) where this attribute's storage is + * found in its container element class. + * @param offset Integer byte offset from @c this pointer. + */ + void setOffset(daeInt offset) { _offset = offset; } + + /** + * Gets the byte offset (from @ this) where this attribute's storage is + * found in its container element class. + * @return Returns the integer byte offset from @c this pointer for this attribute. + */ + daeInt getOffset() { return _offset; } + + /** + * Sets the name of the attribute. + * @param name @c daeString that is directly stored as a pointer + * without being copied. + */ + void setName(daeString name) { _name = name; } + + /** + * Gets the name of this attribute. + * @return Returnsthe name of this attribute. + */ + daeStringRef getName() { return _name; } + + /** + * Sets the type of the attribute. + * @param type @c daeAtomicType to use for interacting with this + * attribute in a containing @c daeElement. + */ + void setType(daeAtomicType* type) { _type = type; } + + /** + * Gets the @c daeAtomicType used by this attribute. + * @return Returns the @c daeAtomicType that this attribute uses for its + * implementation. + */ + daeAtomicType* getType() { return _type; } + + /** + * Sets the default for this attribute via a string. + * @param defaultVal @c daeString representing the default value. + */ + virtual void setDefaultString(daeString defaultVal); + + /** + * Sets the default for this attribute via a memory pointer. + * @param defaultVal @c daeMemoryRef representing the default value. + */ + virtual void setDefaultValue(daeMemoryRef defaultVal); + + /** + * Gets the default for this attribute as a string. + * @return Returns a @c daeString representing the default value. + */ + daeString getDefaultString(); + + /** + * Gets the default for this attribute as a memory value. + * @return Returns a @c daeMemoryRef representing the default value. + */ + daeMemoryRef getDefaultValue(); + + /** + * Sets the containing @c daeMetaElement for this attribute. + * @param container Element on which this @c daeMetaAttribute belongs. + */ + void setContainer(daeMetaElement* container) { _container = container; } + + /** + * Gets the containing @c daeMetaElement for this attribute. + * @return Returns the @c daeMetaElement to which this @c daeAttribute belongs. + */ + daeMetaElement* getContainer() { return _container; } + + /** + * Notifies an attribute when the containing document changes. + */ + virtual void setDocument(daeElement* e, daeDocument* doc); + + /** + * Converts an element's attribute value to a string. + */ + virtual void memoryToString(daeElement* e, std::ostringstream& buffer); + + /** + * Converts a string to a memory value in the specified element. + */ + virtual void stringToMemory(daeElement* e, daeString s); + + /** + * Gets the attribute's memory pointer from containing element e. + * @param e Containing element from which to get the value. + * @return Returns the memory pointer corresponding to this attribute out of parent element e. + */ + virtual daeMemoryRef get(daeElement* e); + + /** + * Gets if this attribute is an array attribute. + * @return Returns true if this attribute is an array type. + */ + virtual daeBool isArrayAttribute() { return false; } + +public: + /** + * Gets the number of bytes for this attribute. + * @return Returns the number of bytes in the C++ COLLADA dom element for this + * attribute. + */ + virtual daeInt getSize(); + + /** + * Gets the alignment in bytes on the class of this meta attribute type. + * @return Returns the alignment in bytes. + */ + virtual daeInt getAlignment(); + + /** + * Copies the value of this attribute from fromElement into toElement. + * @param toElement Pointer to a @c daeElement to copy this attribute to. + * @param fromElement Pointer to a @c daeElement to copy this attribute from. + */ + virtual void copy(daeElement* toElement, daeElement* fromElement); + + /** + * Copies the default value of this attribute to the element + * @param element Pointer to a @c daeElement to copy the default value to. + */ + virtual void copyDefault(daeElement* element); + + /** + * Compares the value of this attribute in the given elements. + * @param elt1 The first element whose attribute value should be compared. + * @param elt2 The second element whose attribute value should be compared. + * @return Returns a positive integer if value1 > value2, a negative integer if + * value1 < value2, and 0 if value1 == value2. + */ + virtual daeInt compare(daeElement* elt1, daeElement* elt2); + + /** + * Compares the value of this attribute from the given element to the default value + * of this attribute (if one exists). + * @param e The element whose value should be compared to the default value. + * @return Returns a positive integer if value > default, a negative integer if + * value < default, and 0 if value == default. + */ + virtual daeInt compareToDefault(daeElement* e); + +public: + // These methods are deprecated. + virtual daeChar* getWritableMemory(daeElement* e); // Use get instead. + virtual void set(daeElement* element, daeString s); // Use stringToMemory instead. +}; + + +/** + * The @c daeMetaArrayAttribute class is simple a wrapper that implements + * an array of atomic types rather than a singleton. + * The corresponding storage is an array + * and the corresponding operations are implemented on the array + * data structure rather than on inlined storage in elements. + */ +class DLLSPEC daeMetaArrayAttribute : public daeMetaAttribute +{ +public: + virtual ~daeMetaArrayAttribute(); + + /** + * Defines the override version of this method from @c daeMetaAttribute. + * @param toElement Pointer to a @c daeElement to copy this attribute to. + * @param fromElement Pointer to a @c daeElement to copy this attribute from. + */ + virtual void copy(daeElement* toElement, daeElement* fromElement); + + /** + * Copies the default value of this attribute to the element + * @param element Pointer to a @c daeElement to copy the default value to. + */ + virtual void copyDefault(daeElement* element); + + /** + * Compares the value of this attribute in the given elements. + * @param elt1 The first element whose attribute value should be compared. + * @param elt2 The second element whose attribute value should be compared. + * @return Returns a positive integer if value1 > value2, a negative integer if + * value1 < value2, and 0 if value1 == value2. + */ + virtual daeInt compare(daeElement* elt1, daeElement* elt2); + + /** + * Compares the value of this attribute from the given element to the default value + * of this attribute (if one exists). + * @param e The element whose value should be compared to the default value. + * @return Returns a positive integer if value > default, a negative integer if + * value < default, and 0 if value == default. + */ + virtual daeInt compareToDefault(daeElement* e); + + /** + * Converts an element's attribute value to a string. + */ + virtual void memoryToString(daeElement* e, std::ostringstream& buffer); + + /** + * Converts a string to a memory value in the specified element. + */ + virtual void stringToMemory(daeElement* e, daeString s); + + /** + * Sets the default for this attribute via a string. + * @param defaultVal @c daeString representing the default value. + */ + virtual void setDefaultString(daeString defaultVal); + + /** + * Sets the default for this attribute via a memory pointer. + * @param defaultVal @c daeMemoryRef representing the default value. + */ + virtual void setDefaultValue(daeMemoryRef defaultVal); + + /** + * Gets if this attribute is an array attribute. + * @return Returns true if this attribute is an array type. + */ + virtual daeBool isArrayAttribute() { return true; } + + /** + * Notifies an attribute when the containing document changes. + */ + virtual void setDocument(daeElement* e, daeDocument* doc); +}; + + +typedef daeSmartRef daeMetaAttributeRef; + +typedef daeTArray daeMetaAttributeRefArray; +typedef daeTArray daeMetaAttributePtrArray; + +#endif //__DAE_META_ATTRIBUTE_H__ + + + + + + diff --git a/include/dae/daeMetaCMPolicy.h b/include/dae/daeMetaCMPolicy.h new file mode 100644 index 0000000..9fb7e6d --- /dev/null +++ b/include/dae/daeMetaCMPolicy.h @@ -0,0 +1,120 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_CM_POLICY_H__ +#define __DAE_META_CM_POLICY_H__ + +#include +#include +//class daeElement; +class daeMetaElement; + +/** + * The daeMetaCMPolicy class is the base class for the content model policy classes which are used to + * describe the availability and ordering of an element's children. + */ +class daeMetaCMPolicy +{ +public: + /** + * Places an element into the parent element based on this content model policy object. + * @param parent The parent element for which the child element will be placed. + * @param child The new child element. + * @param ordinal A reference to a daeUInt which holds the ordinal return value for a placed child. Used + * to maintain proper ording of child elements. + * @param offset The offset to used when attempting to place this element. Affects comparison against + * minOccurs and maxOccurs. + * @param before The element that the child should appear before. Optional. + * @param after The element that the child should appear after. Optional. + * @return Returns The child element that was placed within this content model object or any of its + * children. NULL if placement failed. + */ + virtual daeElement *placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL ) = 0; + /** + * Removes an element from the parent based on this content model object. + * @param parent The parent element for which child you want to remove. + * @param child The child that will be removed from the parent. + * @return Returns true if the child was successfully removed from this content model object or any of + * its children. False otherwise. + */ + virtual daeBool removeElement(daeElement* parent, daeElement* child ) = 0; + /** + * Gets the daeMetaElement of an acceptable child of this content model object. + * @param elementName The name of the element whos metaElement information you are interested in. + * @return Returns a pointer to a daeMetaElement class that describes the element interested in. + * Returns NULL if the element is not valid in this content model. + */ + virtual daeMetaElement *findChild( daeString elementName ) = 0; + /** + * Populates an array with the children of parent based on this content model object. + * @param parent The parent element whos children you want. + * @param array The array where you the children will be appended to. + */ + virtual void getChildren( daeElement* parent, daeElementRefArray &array ) = 0; + + /** + * Adds a child to this content model object. + * @param p The child content model policy object. + */ + void appendChild( daeMetaCMPolicy *p ) { _children.append( p ); } + + /** + * Gets the parent of this content model policy object. + * @return Returns a pointer to the parent node. + */ + daeMetaCMPolicy *getParent() { return _parent; } + + /** + * Sets the maximum ordinal value of this policy objects children. Used to keep proper ordering for + * cm objects that may appear multiple times. + * @param ord The maximum ordinal value for this content model object. + */ + void setMaxOrdinal( daeUInt ord ) { _maxOrdinal = ord; } + +protected: + /** + * Constructor. + * @param container The daeMetaElement that this policy object belongs to. + * @param parent The daeMetaCMPolicy parent of this policy object. + * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the + * correct order of child elements. + * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema. + * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema. + */ + daeMetaCMPolicy( daeMetaElement *container ,daeMetaCMPolicy *parent, daeUInt ordinal, + daeInt minO, daeInt maxO ) : _container( container ), _parent( parent ), _minOccurs( minO ), + _maxOccurs( maxO ), _maxOrdinal( 0 ), _ordinalOffset( ordinal ) {} + +public: + /** + * Destructor. + */ + virtual ~daeMetaCMPolicy(); + +protected: + daeMetaElement * _container; + daeMetaCMPolicy * _parent; + daeTArray _children; + + /** Minimum number of times this meta element can occur. */ + daeInt _minOccurs; + /** Maximum number of times this meta element can occur. -1 for unbounded */ + daeInt _maxOccurs; + + daeUInt _maxOrdinal; + daeUInt _ordinalOffset; + +}; + +#endif + diff --git a/include/dae/daeMetaChoice.h b/include/dae/daeMetaChoice.h new file mode 100644 index 0000000..60809bb --- /dev/null +++ b/include/dae/daeMetaChoice.h @@ -0,0 +1,48 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_CHOICE_H__ +#define __DAE_META_CHOICE_H__ + +#include + +/** + * The daeMetaChoice class defines the behavior of an xs:choice content model in the COLLADA Schema. + */ +class daeMetaChoice : public daeMetaCMPolicy +{ +public: + /** + * Constructor. + * @param container The daeMetaElement that this policy object belongs to. + * @param parent The daeMetaCMPolicy parent of this policy object. + * @param choiceNum An unsigned integer that represents which index in an element's CMData array coresponds to this choice's data. + * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the + * correct order of child elements. + * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema. + * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema. + */ + daeMetaChoice( daeMetaElement *container, daeMetaCMPolicy *parent = NULL, daeUInt choiceNum = 0, daeUInt ordinal = 0, daeInt minO = 1, daeInt maxO = 1 ); + ~daeMetaChoice(); + + daeElement *placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL ); + daeBool removeElement(daeElement* parent, daeElement* child); + daeMetaElement *findChild( daeString elementName ); + void getChildren( daeElement* parent, daeElementRefArray &array ); + +private: + daeUInt _choiceNum; +}; + +#endif + diff --git a/include/dae/daeMetaElement.h b/include/dae/daeMetaElement.h new file mode 100644 index 0000000..4e6ef49 --- /dev/null +++ b/include/dae/daeMetaElement.h @@ -0,0 +1,368 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_ELEMENT_H__ +#define __DAE_META_ELEMENT_H__ + +#include +#include +#include +#include +#include + +class DAE; +class daeMetaCMPolicy; +class daeMetaElementArrayAttribute; + +typedef daeElementRef (*daeElementConstructFunctionPtr)(DAE& dae); + +/** + * Each instance of the @c daeMetaElement class describes a C++ COLLADA dom + * element type. + * @par + * The meta information in @c daeMetaElement is a combination of the information + * required to create and maintain C++ object instances and + * the information necessary to parse and construct a hierarchy of COLLADA + * elements. + * @par + * @c daeMetaElement objects also act as factories for C++ COLLADA dom classes where + * each @c daeElement is capable of creating an instance of the class it describes. + * Further, each @c daeMetaElement contains references to other @c daeMetaElements + * for potential XML children elements. This enables this system to easily + * create @c daeElements of the appropriate type while navigating through XML + * recursive parse. + * @par + * See @c daeElement for information about the functionality that every @c daeElement implements. + */ +class daeMetaElement : public daeRefCountedObj +{ +protected: + daeStringRef _name; + + daeElementConstructFunctionPtr _createFunc; + daeInt _elementSize; + + daeMetaAttributeRefArray _metaAttributes; + daeMetaAttributeRef _metaValue; + daeMetaElementArrayAttribute* _metaContents; + daeMetaArrayAttribute* _metaContentsOrder; + + daeMetaAttributeRef _metaID; + + daeBool _isTrackableForQueries; + daeBool _usesStringContents; + + daeBool _isTransparent; + daeBool _isAbstract; + daeBool _allowsAny; + daeBool _innerClass; + + daeMetaCMPolicy* _contentModel; + daeMetaArrayAttribute* _metaCMData; + daeUInt _numMetaChoices; + + DAE& dae; + +public: + /** + * Constructor + */ + DLLSPEC daeMetaElement(DAE& dae); + + /** + * Destructor + */ + DLLSPEC ~daeMetaElement(); + +public: // public accessors + + /** + * Gets the DAE object that owns this daeMetaElement. + * @return Returns the owning DAE. + */ + DAE* getDAE(); + + /** + * Determines if elements of this type is an inner class. + * @return Returns true if this element type is an inner class. + */ + daeBool getIsInnerClass() { return _innerClass; } + /** + * Sets if elements of this type are inner classes. + * @param abstract True if this type is an inner class. + */ + void setIsInnerClass( daeBool ic ) { _innerClass = ic; } + /** + * Determines if elements of this type can be placed in the object model. + * @return Returns true if this element type is abstract, false otherwise. + */ + daeBool getIsAbstract() { return _isAbstract; } + /** + * Determines if elements of this type should have an element tag printed when saving. + * @return Returns true if this element type should not have a tag, false otherwise. + */ + daeBool getIsTransparent() { return _isTransparent; } + /** + * Sets if elements of this type are abstract. + * @param abstract True if this type is abstract. + */ + void setIsAbstract( daeBool abstract ) { _isAbstract = abstract; } + /** + * Sets whether or not elements of this type should have an element tag printed when saving. + * @param transparent True if this type is transparent. + */ + void setIsTransparent( daeBool transparent ) { _isTransparent = transparent; } + + /** + * Determines if elements of this type should be tracked + * for daeDatabase queries. + * @return Returns true if this element type should be tracked + */ + daeBool getIsTrackableForQueries() { return _isTrackableForQueries; } + + /** + * Sets whether elements of this type should be tracked + * for @c daeDatabase queries. + * @param trackable Indicates whether this element should be tracked. + * A value of true indicates this element type should be tracked and be available for + * database queries. + */ + void setIsTrackableForQueries(daeBool trackable) { + _isTrackableForQueries = trackable; } + + /** + * Determines if elements of this type allow for any element as a child. + * @return Returns true if this element can have any child element, false otherwise. + */ + daeBool getAllowsAny() { return _allowsAny; } + /** + * Sets if elements of this type allow for any element as a child. + * @param allows True if this element allows for any child element, false otherwise. + */ + void setAllowsAny( daeBool allows ) { _allowsAny = allows; } + + /** + * Gets the @c daeMetaAttribute for the non-element contents of a @c daeElement. + * This corresponds to a @c daeMetaFloatAttribute, @c daeMetaFloatArrayAttribute, + * et cetera. + * @return Returns the @c daeMetaAttribute pointer for the non-element contents of + * this element type. + */ + daeMetaAttribute* getValueAttribute() { return _metaValue; } + + /** + * Gets the @c daeMetaAttribute for the ID attribute of a @c daeElement. + * @return Returns the ID @c daeMetaAttribute, or NULL if the element type + * does not have an ID attribute. + */ + daeMetaAttribute* getIDAttribute() { return _metaID; } + + /** + * Gets the name of this element type. + * @return Returns the name of this element type. + */ + daeStringRef getName() { return _name; } + + /** + * Sets the name of this element type. + * @param s String name to set. + */ + void setName(daeString s) { _name = s; } + + /** + * Gets the array of all known attributes on this element type. + * This includes all meta attributes except those describing child + * elements. It does include the value element. + * @return Returns the array of @c daeMetaAttributeRefs. + */ + daeMetaAttributeRefArray& getMetaAttributes() { + return _metaAttributes; } + + /** + * Gets the attribute which has a name as provided by the s parameter. + * @param s String containing the desired attribute's name. + * @return Returns the corresponding @c daeMetaAttribute, or NULL if none found. + */ + DLLSPEC daeMetaAttribute* getMetaAttribute(daeString s); + + /** + * Sets the size in bytes of each instance of this element type. + * Used for factory element creation. + * @param size Number of bytes for each C++ element instance. + */ + void setElementSize(daeInt size) {_elementSize = size;} + + /** + * Gets the size in bytes of each instance of this element type. + * Used for factory element creation. + * @return Returns the number of bytes for each C++ element instance. + */ + daeInt getElementSize() { return _elementSize;} + +public: + /** + * Registers with the reflective object system that the dom class described by this @c daeMetaElement + * contains a _contents array. This method is @em only for @c daeMetaElement contstuction, and + * should only be called by the system as it sets up the Reflective Object System. + * @param offset Byte offset for the contents field in the C++ element class. + */ + DLLSPEC void addContents(daeInt offset); + /** + * Registers with the reflective object system the array that stores the _contents ordering. This method is @em + * only for @c daeMetaElement contstuction, and should only be called by the system as it sets up the Reflective + * Object System. + * @param offset Byte offset for the contents order array in the C++ element class. + */ + DLLSPEC void addContentsOrder( daeInt offset ); + /** + * Registers with the reflective object system that the dom class described by this @c daeMetaElement + * contains at least one choice group in the content model for this element. This method is @em only + * for @c daeMetaElement contstuction, and should only be called by the system as it sets up the + * Reflective Object System. + * @param offset Byte offset for the contents field in the C++ element class. + * @param numChoices The number of choice content model blocks there are for this element type. + */ + DLLSPEC void addCMDataArray( daeInt offset, daeUInt numChoices ); + + /** + * Gets the attribute associated with the contents meta information. + * @see @c addContents() + * @return Returns the @c daeMetaElementArrayAttribute. + */ + daeMetaElementArrayAttribute* getContents() { return _metaContents; } + /** + * Gets the attribute associated with the CMData array meta information. + * @see @c addCMDataArray() + * @return Returns the @c daeMetaArrayAttribute for the CMData of an element. + */ + daeMetaArrayAttribute* getMetaCMData() { return _metaCMData; } + /** + * Gets the number of choice content model blocks there are for this element type. + * @return Returns the number of daeMetaChoice's there are in the content model. + */ + daeUInt getNumChoices() const { return _numMetaChoices; } + + /** + * Appends a @c daeMetaAttribute that represents a field corresponding to an + * XML attribute to the C++ version of this element type. + * @param attr Attribute to append to this element types list + * of potential attributes. + */ + DLLSPEC void appendAttribute(daeMetaAttribute* attr); + + /** + * Registers the function that can construct a C++ instance of this class. + * Necessary for the factory system such that C++ can still call @c new and the + * @c vptr will still be initialized even when constructed via the factory system. + * @param func Pointer to a function that does object construction. + */ + void registerClass(daeElementConstructFunctionPtr func) { + _createFunc = func; } + + /** + * Validates this class to be used by the runtime c++ object model + * including factory creation. + */ + DLLSPEC void validate(); + + /** + * Places a child element into the parent element where the + * calling object is the @c daeMetaElement for the parent element. + * @param parent Element to act as the container. + * @param child Child element to place in the parent. + * @return Returns true if the operation was successful, false otherwise. + */ + DLLSPEC daeBool place(daeElement *parent, daeElement *child, daeUInt *ordinal = NULL); + /** + * Places a child element into the parent element at a specific location + * where the calling object is the @c daeMetaElement for the parent element. + * @param index The location in the contents array to insert. + * @param parent Element to act as the container. + * @param child Child element to place in the parent. + * @return Returns true if the operation was successful, false otherwise. + * @note This should only be called on elements that have a _contents array. Elements without + * a _contents array will be placed normally. + */ + DLLSPEC daeBool placeAt( daeInt index, daeElement *parent, daeElement *child ); + /** + * Places a child element into the parent element at a specific location which is right + * before the marker element. + * @param marker The element location in the contents array to insert before. + * @param parent Element to act as the container. + * @param child Child element to place in the parent. + * @return Returns true if the operation was successful, false otherwise. + */ + DLLSPEC daeBool placeBefore( daeElement* marker, daeElement *parent, daeElement *child, daeUInt *ordinal = NULL ); + /** + * Places a child element into the parent element at a specific location which is right + * after the marker element. + * @param marker The element location in the contents array to insert after. + * @param parent Element to act as the container. + * @param child Child element to place in the parent. + * @return Returns true if the operation was successful, false otherwise. + */ + DLLSPEC daeBool placeAfter( daeElement* marker, daeElement *parent, daeElement *child, daeUInt *ordinal = NULL ); + + /** + * Removes a child element from its parent element. + * @param parent Element That is the parent. + * @param child Child element to remove. + * @return Returns true if the operation was successful, false otherwise. + */ + DLLSPEC daeBool remove( daeElement *parent, daeElement *child ); + /** + * Gets all of the children from an element of this type. + * @param parent The element that you want to get the children from. + * @param array The return value. An elementref array to append this element's children to. + */ + DLLSPEC void getChildren( daeElement* parent, daeElementRefArray &array ); + + /** + * Invokes the factory element creation routine set by @c registerConstructor() + * to return a C++ COLLADA Object Model instance of this element type. + * @return Returns a created @c daeElement of appropriate type via the + * object creation function and the daeElement::setup() function. + */ + DLLSPEC daeElementRef create(); + + /** + * Looks through the list of potential child elements + * for this element type finding the corresponding element type; if a corresponding element type + * is found, use that type as a factory and return an instance of that + * child type. Typically @c place() is called after @c create(childelementname) + * @param childElementTypeName Type name to create. + * @return Returns the created element if the type was found as a potential child element. + */ + DLLSPEC daeElementRef create(daeString childElementTypeName); + + /** + * Gets the root of the content model policy tree. + * @return Returns the root element of the tree of content model policy elements. + */ + daeMetaCMPolicy *getCMRoot() { return _contentModel; } + /** + * Sets the root of the content model policy tree. + * @param cm The root element of the tree of content model policy elements. + */ + DLLSPEC void setCMRoot( daeMetaCMPolicy *cm ); +}; + +typedef daeSmartRef daeMetaElementRef; +typedef daeTArray daeMetaElementRefArray; + +#endif //__DAE_META_ELEMENT_H__ + + + + + diff --git a/include/dae/daeMetaElementAttribute.h b/include/dae/daeMetaElementAttribute.h new file mode 100644 index 0000000..3ebdc7a --- /dev/null +++ b/include/dae/daeMetaElementAttribute.h @@ -0,0 +1,189 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_ELEMENT_ATTRIBUTE_H__ +#define __DAE_META_ELEMENT_ATTRIBUTE_H__ + +#include +#include +#include + +class daeMetaElement; +class daeElement; +class daeDocument; + +/** +* The @c daeMetaElementAttribute class represents a content model object that is an element. +*/ +class daeMetaElementAttribute : public daeMetaAttribute, public daeMetaCMPolicy +{ +public: + /** The metaElement that describes the element type of this attribute */ + daeMetaElement* _elementType; + +public: + /** + * Constructor. + * @param container The daeMetaElement that this policy object belongs to. + * @param parent The daeMetaCMPolicy parent of this policy object. + * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the + * correct order of child elements. + * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema. + * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema. + */ + daeMetaElementAttribute( daeMetaElement *container, daeMetaCMPolicy *parent = NULL, daeUInt ordinal = 0, daeInt minO = 1, daeInt maxO = 1); + /** + * Destructor + */ + virtual ~daeMetaElementAttribute(); + +public: + + virtual daeElement *placeElement(daeElement* parent, daeElement* child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL); + virtual daeBool removeElement(daeElement* parent, daeElement* child); + + daeMetaElement *findChild( daeString elementName ); + + virtual void getChildren( daeElement* parent, daeElementRefArray &array ); + +public: + /** + * Sets the element type for the element that this attribute points to. + * @param elementType @c daeMetaElement representing the type. + */ + void setElementType(daeMetaElement *elementType) { + _elementType = elementType; } + + /** + * Gets the element type for the element that this attribute points to. + * @return Returns the @c daeMetaElement representing the type. + */ + daeMetaElement* getElementType() { return _elementType; } + + /** + * Sets the database document associated with this element. + * @param parent The daeElement to set the document. + * @param c The @c daeDocument to associate with this element. + */ + virtual void setDocument(daeElement *parent, daeDocument* c ); + inline void setCollection(daeElement *parent, daeDocument* c ) { + setDocument( parent, c ); + } + + /** + * Gets the number of elements associated with this attribute in instance e. + * @param e Containing element to run the operation on. + * @return Returns the number of elements associated with this attribute + * in instance e. + */ + virtual daeInt getCount(daeElement* e); + + /** + * Gets an element from containing element e based on index. + * @param e Containing element from which to get the element. + * @param index Index of the element to retrieve if indeed + * there is an array of elements rather than a singleton. + * @return Returns the associated element out of parent element e, based on index, if necessary. + */ + virtual daeMemoryRef get(daeElement* e, daeInt index); + + /** + * Defines the override version of base method. + * @param element Element on which to set this attribute. + * @param s String containing the value to be converted via the + * atomic type system. + */ + virtual void set(daeElement* element, daeString s); + /** + * Defines the override version of base method. + * @param toElement Pointer to a @c daeElement to copy this attribute to. + * @param fromElement Pointer to a @c daeElement to copy this attribute from. + */ + virtual void copy(daeElement* toElement, daeElement* fromElement); + + /** + * Gets if this attribute is an array attribute. + * @return Returns true if this attribute is an array type. + */ + virtual daeBool isArrayAttribute() { return false; } +}; +typedef daeSmartRef daeMetaElementAttributeRef; +typedef daeTArray daeMetaElementAttributeArray; + + +/** + * The @c daeMetaElementArrayAttribute class is similar to daeMetaElementAttribute + * except that this meta attribute describes an array of elements rather than a singleton. + */ +class daeMetaElementArrayAttribute : public daeMetaElementAttribute +{ +public: + /** + * Constructor. + * @param container The daeMetaElement that this policy object belongs to. + * @param parent The daeMetaCMPolicy parent of this policy object. + * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the + * correct order of child elements. + * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema. + * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema. + */ + daeMetaElementArrayAttribute(daeMetaElement *container, daeMetaCMPolicy *parent = NULL, daeUInt ordinal = 0, daeInt minO = 1, daeInt maxO = 1); + ~daeMetaElementArrayAttribute(); +public: + virtual daeElement *placeElement(daeElement* parent, daeElement* child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL); + virtual daeBool removeElement(daeElement* parent, daeElement* child); + + void getChildren( daeElement* parent, daeElementRefArray &array ); + + /** + * Sets the database document associated with this element. + * @param c The @c daeDocument to associate with this element. + */ + virtual void setDocument(daeElement *parent, daeDocument* c ); + inline void setCollection(daeElement *parent, daeDocument* c ) { + setDocument( parent, c ); + } + + /** + * Defines the override version of this method from @c daeMetaElement. + * @param e Containing element to run the operation on. + * @return Returns the number of particles associated with this attribute + * in instance e. + */ + virtual daeInt getCount(daeElement* e); + /** + * Defines the override version of this method from @c daeMetaElement. + * @param e Containing element from which to get the element. + * @param index Index of the particle to retrieve if indeed + * there is an array of elements rather than a singleton. + * @return Returns the associated particle out of parent element e, based on index, if necessary. + */ + virtual daeMemoryRef get(daeElement* e, daeInt index); + /** + * Defines the override version of this method from @c daeMetaElement. + * @param toElement Pointer to a @c daeElement to copy this attribute to. + * @param fromElement Pointer to a @c daeElement to copy this attribute from. + */ + virtual void copy(daeElement* toElement, daeElement* fromElement); + + /** + * Gets if this attribute is an array attribute. + * @return Returns true if this attribute is an array type. + */ + virtual daeBool isArrayAttribute() { return true; } +}; +typedef daeSmartRef daeMetaElementArrayAttributeRef; +typedef daeTArray daeMetaElementArrayAttributeArray; + +#endif + diff --git a/include/dae/daeMetaGroup.h b/include/dae/daeMetaGroup.h new file mode 100644 index 0000000..f03d12a --- /dev/null +++ b/include/dae/daeMetaGroup.h @@ -0,0 +1,55 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_GROUP_H__ +#define __DAE_META_GROUP_H__ + +#include + +class daeMetaElementAttribute; + +/** + * The daeMetaGroup class defines the behavior of an xs:group ref content model from the COLLADA Schema. + */ +class daeMetaGroup : public daeMetaCMPolicy +{ +public: + /** + * Constructor. + * @param econ The daeMetaElementAttribute that represents the group element in the parent. + * @param container The daeMetaElement that this policy object belongs to. + * @param parent The daeMetaCMPolicy parent of this policy object. + * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the + * correct order of child elements. + * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema. + * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema. + */ + daeMetaGroup( daeMetaElementAttribute *econ, daeMetaElement *container, daeMetaCMPolicy *parent = NULL, + daeUInt ordinal = 0, daeInt minO = 1, daeInt maxO = 1 ); + + /** + * Destructor. + */ + ~daeMetaGroup(); + + daeElement *placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL ); + daeBool removeElement(daeElement* parent, daeElement* child); + daeMetaElement *findChild( daeString elementName ); + void getChildren( daeElement* parent, daeElementRefArray &array ); + +protected: + daeMetaElementAttribute *_elementContainer; +}; + +#endif + diff --git a/include/dae/daeMetaSequence.h b/include/dae/daeMetaSequence.h new file mode 100644 index 0000000..b2028b4 --- /dev/null +++ b/include/dae/daeMetaSequence.h @@ -0,0 +1,51 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_META_SEQUENCE_H__ +#define __DAE_META_SEQUENCE_H__ + +#include + +/** + * The daeMetaSequence class defines the behavior of an xs:sequence content model in the COLLADA Schema. + */ +class daeMetaSequence : public daeMetaCMPolicy +{ +public: + /** + * Constructor. + * @param container The daeMetaElement that this policy object belongs to. + * @param parent The daeMetaCMPolicy parent of this policy object. + * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the + * correct order of child elements. + * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema. + * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema. + */ + daeMetaSequence( daeMetaElement *container, daeMetaCMPolicy *parent = NULL, daeUInt ordinal = 0, daeInt minO = 1, daeInt maxO = 1 ); + + /** + * Destructor. + */ + ~daeMetaSequence(); + + daeElement *placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL ); + daeBool removeElement(daeElement* parent, daeElement* child); + daeMetaElement *findChild( daeString elementName ); + void getChildren( daeElement* parent, daeElementRefArray &array ); + +}; + + +#endif + + diff --git a/include/dae/daePlatform.h b/include/dae/daePlatform.h new file mode 100644 index 0000000..cc2dd6a --- /dev/null +++ b/include/dae/daePlatform.h @@ -0,0 +1,39 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_PLATFORM_H__ +#define __DAE_PLATFORM_H__ + +#ifdef WIN32 +#include +#elif defined( __GCC__ ) +#include +#else +// Use some generic settings +#include + +#define PLATFORM_INT8 char +#define PLATFORM_INT16 short +#define PLATFORM_INT32 int +#define PLATFORM_INT64 long long +#define PLATFORM_UINT8 unsigned char +#define PLATFORM_UINT16 unsigned short +#define PLATFORM_UINT32 unsigned int +#define PLATFORM_UINT64 unsigned long long +#define PLATFORM_FLOAT32 float +#define PLATFORM_FLOAT64 double + +#define DLLSPEC +#endif + +#endif diff --git a/include/dae/daeRawResolver.h b/include/dae/daeRawResolver.h new file mode 100644 index 0000000..17dc47c --- /dev/null +++ b/include/dae/daeRawResolver.h @@ -0,0 +1,57 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_RAWRESOLVER_H__ +#define __DAE_RAWRESOLVER_H__ + +#include +#include +#include +class DAE; + +/** + * The @c daeRawResolver class derives from @c daeURIResolver and implements + * the .raw backend resolver for raw binary data. + */ +class DLLSPEC daeRawResolver : public daeURIResolver +{ +public: + /** + * Constructor. + */ + daeRawResolver(DAE& dae); + /** + * Destructor. + */ + ~daeRawResolver(); + +public: // Abstract Interface + virtual daeElement* resolveElement(const daeURI& uri); + virtual daeString getName(); +}; + +// A simple class to make speed up the process of resolving a .raw URI. +// The result of the resolve is cached for future use. +// This is meant for DOM internal use only. +class DLLSPEC daeRawRefCache { +public: + daeElement* lookup(const daeURI& uri); + void add(const daeURI& uri, daeElement* elt); + void remove(const daeURI& uri); + void clear(); + +private: + std::map lookupTable; +}; + +#endif diff --git a/include/dae/daeRefCountedObj.h b/include/dae/daeRefCountedObj.h new file mode 100644 index 0000000..9adaa60 --- /dev/null +++ b/include/dae/daeRefCountedObj.h @@ -0,0 +1,46 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef daeRefCountedObj_h +#define daeRefCountedObj_h + +#include +#include + +class DLLSPEC daeRefCountedObj { +protected: + mutable daeInt _refCount; + +public: + daeRefCountedObj(); + virtual ~daeRefCountedObj(); + + /** + * Decrements the reference count and deletes the object if reference count is zero. + * @note Should not be used externally if daeSmartRefs are being used, they call it + * automatically. + */ + void release() const; + + /** + * Increments the reference count of this element. + * @note Should not be used externally if daeSmartRefs are being used, they call it + * automatically. + */ + void ref() const; +}; + +void DLLSPEC checkedRelease(const daeRefCountedObj* obj); +void DLLSPEC checkedRef(const daeRefCountedObj* obj); + +#endif diff --git a/include/dae/daeSIDResolver.h b/include/dae/daeSIDResolver.h new file mode 100644 index 0000000..ec2538a --- /dev/null +++ b/include/dae/daeSIDResolver.h @@ -0,0 +1,179 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_SIDRESOLVER_H__ +#define __DAE_SIDRESOLVER_H__ + +#include +#include +#include +#include + + +// This is an alternative to the daeSIDResolver class. It's recommended you use +// this class instead. Typical usage: get the element a sid ref points to. For +// example, if you want to find the element with sid 'sampler' using a +// daeElement pointer named 'effect', that would look like this: +// daeElement* elt = daeSidRef("sampler", effect).resolve().elt +struct DLLSPEC daeSidRef { + // A helper class for returning all the data retrieved when a sid is resolved. + struct DLLSPEC resolveData { + resolveData(); + resolveData(daeElement* elt, daeDoubleArray* array, daeDouble* scalar); + + daeElement* elt; + daeDoubleArray* array; + daeDouble* scalar; + }; + + daeSidRef(); + daeSidRef(const std::string& sidRef, daeElement* referenceElt, const std::string& profile = ""); + bool operator<(const daeSidRef& other) const; + + resolveData resolve(); + + std::string sidRef; + daeElement* refElt; + std::string profile; +}; + + +/** + * The daeSIDResolver class is designed to resolve sid references within a COLLADA document. + * The rules for sid resolution are set forth by the Addressing Syntax section in Chapter 3 of the + * COLLADA specification which can be found at https://www.khronos.org/collada . + * This resolver always attempts to resolve to the daeElement which is referenced. If the element contains + * a daeDoubleArray (domFloatArray) value, the resolver will set the pointer to that array. The + * resolver will also do this if the sid target points to a element which has a as + * a child. If the sid target specifies a value, i.e. blah.X or blah(6), the resolver will attempt to + * get a pointer to that specific value. The resolver only attempts to resolve to that level for values which + * are defined in the COMMON profile glossary of the COLLADA specification, or values reference with the (#) + * syntax. You can check the return value from getState() to see which level of resolution is possible. + */ +class DLLSPEC daeSIDResolver +{ +public: + /** + * An enum describing the status of the SID resolution process. + */ + enum ResolveState{ + /** No target specified */ + target_empty, + /** target specified but not resolved */ + target_loaded, + /** Resolution failed because target was not found */ + sid_failed_not_found, + /** Resolution successful to the Element level */ + sid_success_element, + /** Resolution successful to the Double Array level */ + sid_success_array, + /** Resolution successful to the Double level */ + sid_success_double + }; + + /** + * Constructor. + * @param container The element which contains the target that you want to resolve. + * @param target The target string which needs to be resolved. + * @param platform The platform name of the technique to use. A NULL value indicates the common platform. + */ + daeSIDResolver( daeElement *container, daeString target, daeString platform = NULL ); + + /** + * Gets the target string. + * @return Returns the target string of this SID resolver. + */ + daeString getTarget() const; + /** + * Sets the target string. + * @param t The new target string for this resolver. + */ + void setTarget( daeString t ); + + /** + * Gets the name of the profile to use when resolving. + * @return Returns the name of the profile or NULL for the common profile. + */ + daeString getProfile() const; + /** + * Sets the profile to use when resolving. + * @param p The profile name of the technique to use. A NULL value indicates the common profile. + */ + void setProfile( daeString p ); + + /** + * Gets a pointer to the @c daeElement that contains the target to resolve. + * @return Returns the pointer to the containing daeElmement. + */ + daeElement* getContainer() const; + /** + * Sets the pointer to the @c daeElement that contains the target to resolve. + * @param element Pointer to the containing @c daeElmement. + */ + void setContainer(daeElement* element); + + /** + * Gets the element that this SID resolves to. + * @return Returns the element that the URI resolves to. + */ + daeElement* getElement(); + + /** + * Gets the value array of the element that the SID resolves to. + * @return Returns a pointer to the value array that the SID resolves to + * @note The daeSIDResolver can only resolve to this level for daeDoubleArray values. + */ + daeDoubleArray *getDoubleArray(); + + /** + * Gets a pointer to the particle this target resolved to. + * @return Returns a pointer to a double value which is the fully resolved target. + * @note The daeSIDResolver can only resolve to this level for domDouble values and only if the + * final symbolic name is from the COMMON profile or a cardinal value is specified. + * @note The daeSIDResolver assumes the value is a 4x4 matrix if there are 2 cardinal values specified. + */ + daeDouble *getDouble(); + + // This method is deprecated. Don't use it. + ResolveState getState() const; + +private: + // This data is provided by the user + std::string target; + std::string profile; + daeElement* container; +}; + + +// A class to make sid ref lookups faster. Meant for DOM internal use only. +class DLLSPEC daeSidRefCache { +public: + daeSidRefCache(); + + daeSidRef::resolveData lookup(const daeSidRef& sidRef); + void add(const daeSidRef& sidRef, const daeSidRef::resolveData& data); + void clear(); + + // For debugging/testing + bool empty(); + int misses(); + int hits(); + +private: + std::map lookupTable; + int hitCount; + int missCount; +}; + +#endif + diff --git a/include/dae/daeSmartRef.h b/include/dae/daeSmartRef.h new file mode 100644 index 0000000..decf7ba --- /dev/null +++ b/include/dae/daeSmartRef.h @@ -0,0 +1,139 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_SMARTREF_H__ +#define __DAE_SMARTREF_H__ + +#include +#include + +/** + * The @c daeSmartRef template class automates reference counting for + * objects derived from @c daeRefCountedObj. + */ +template class daeSmartRef +{ +public: + /** + * Constructor + */ + inline daeSmartRef() : _ptr(NULL) { } + + /** + * Destructor + */ + inline ~daeSmartRef() { + checkedRelease(_ptr); + } + + /** + * Copy Constructor that will convert from one template to the other. + * @param smartRef a daeSmartRef to the object to copy from. + */ + template + inline daeSmartRef(const daeSmartRef& smartRef) : _ptr(smartRef.cast()) { + checkedRef(_ptr); + } + + /** + * Function that returns a pointer to object being reference counted. + * @return the object being reference counted. + */ + inline T* cast() const { return _ptr; } + + /** + * Copy Constructor. + * @param smartRef a daeSmartRef of the same template type to copy from + */ + inline daeSmartRef(const daeSmartRef& smartRef) : _ptr(smartRef._ptr) { + checkedRef(_ptr); + } + + /** + * Constructor + * @param ptr a pointer to an object of the same template type. + */ + inline daeSmartRef(T* ptr) : _ptr(ptr) { + checkedRef(_ptr); + } + + /** + * Overloaded assignment operator which will convert between template types. + * @param smartRef a daeSmartRef to the object to copy from. + * @return Returns a reference to this object. + */ + template + inline const daeSmartRef& operator=(const daeSmartRef& smartRef) { + T* ptr = smartRef.cast(); + checkedRef(ptr); + checkedRelease(_ptr); + _ptr = ptr; + return *this; } + + /** + * Overloaded assignment operator. + * @param other a daeSmartRef to the object to copy from. Must be of the same template type. + * @return Returns a reference to this object. + */ + inline const daeSmartRef& operator=(const daeSmartRef& other) { + T* ptr = other._ptr; + checkedRef(ptr); + checkedRelease(_ptr); + _ptr = ptr; + return *this; } + + /** + * Overloaded assignment operator. + * @param ptr a pointer to the object to copy from. Must be of the same template type. + * @return Returns a reference to this object. + */ + inline const daeSmartRef& operator=(T* ptr) { + checkedRef(ptr); + checkedRelease(_ptr); + _ptr = ptr; + return *this; } + + /** + * Overloaded member selection operator. + * @return a pointer of the template class to the object. + */ + inline T* operator->() const { + assert (_ptr != (T*)NULL); return _ptr; } + + /** + * Overloaded cast operator. + * @return a pointer of the template class to the object. + */ + inline operator T*() const { + return _ptr; } + + /** + * Static cast function. + * @param smartRef a smartRef to cast from + * @return a pointer to an object of this template class + */ + template + inline static T* staticCast(const daeSmartRef& smartRef) { + return static_cast(smartRef.cast()); } + +private: + /* The pointer to the element which is being reference counted */ + T* _ptr; +}; + +#endif // __DAE_SMARTREF_H__ + + + + + diff --git a/include/dae/daeStandardURIResolver.h b/include/dae/daeStandardURIResolver.h new file mode 100644 index 0000000..0c92bcc --- /dev/null +++ b/include/dae/daeStandardURIResolver.h @@ -0,0 +1,44 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_STANDARD_URI_RESOLVER__ +#define __DAE_STANDARD_URI_RESOVLER__ + +#include +#include "dae/daeURI.h" +class DAE; + +/** + * The @c daeStandardURIResolver class derives from @c daeURIResolver and implements + * the default XML backend resolver. + */ +class daeStandardURIResolver : public daeURIResolver +{ +public: + /** + * Constructor. + * @param database The @c daeDatabase used. + * @param plugin The @c daeIOPlugin used. + */ + DLLSPEC daeStandardURIResolver(DAE& dae); + /** + * Destructor. + */ + DLLSPEC ~daeStandardURIResolver(); + +public: // Abstract Interface + virtual DLLSPEC daeElement* resolveElement(const daeURI& uri); + virtual DLLSPEC daeString getName(); +}; + +#endif //__DAE_STANDARD_URI_RESOLVER__ diff --git a/include/dae/daeStringRef.h b/include/dae/daeStringRef.h new file mode 100644 index 0000000..aee0175 --- /dev/null +++ b/include/dae/daeStringRef.h @@ -0,0 +1,108 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_STRING_REF_H__ +#define __DAE_STRING_REF_H__ + +#include +#include + +/** + *Defines the @c daeStringRef class. + */ +class daeStringRef +{ +public: + /** + * Macro that defines new and delete overrides for this class + */ + DAE_ALLOC +private: + daeString _string; + static daeStringTable &_stringTable(); +public: + + /** + * Destructor + */ + inline ~daeStringRef() { _string = NULL; } + + /** + * Constructor + */ + inline daeStringRef() { _string = NULL; } + + /** + * Constructor that copies from another @c daeStringRef. + * @param other Reference to copy from. + */ + inline daeStringRef(const daeStringRef& other) { + _string = other._string; } + + /** + * Constructor that creates from a const char *. + * @param string External string to create from. + */ + DLLSPEC daeStringRef(daeString string); + + /** + * Assignment operator. + * @param other The daeStringRef to copy. + * @return A reference to this object. + */ + inline const daeStringRef& operator= (const daeStringRef& other) { + _string = other._string; + return *this; + } + + /** + * Sets a string from an external const char *. + * @param string The daeString to copy. + * @return A reference to this object. + */ + DLLSPEC const daeStringRef& set(daeString string); + + /** + * Assignment operator from an external const char *. + * @param string The daeString to copy. + * @return A reference to this object. + */ + DLLSPEC const daeStringRef& operator= (daeString string); + + /** + * Cast operator that returns a const char *. + */ + inline operator daeString() const { return _string; } + + /** + * Comparison operator, the comparison is done via pointers as both + * strings will have same pointer if they are the same address + * @param other The daeStringRef to compare + * @return True if strings are equal. False otherwise. + */ + inline bool operator==(const daeStringRef& other) const{ + //return (other._string == _string); } + return (!strcmp(other._string, _string)); } + +//Contributed by Nus - Wed, 08 Nov 2006 + /** + * Release string table... + */ + static void releaseStringTable(void); +//-------------------- +}; + +typedef daeTArray daeStringRefArray; +typedef daeTArray daeStringRefArrayArray; + +#endif //__DAE_STRING_REF_H__ diff --git a/include/dae/daeStringTable.h b/include/dae/daeStringTable.h new file mode 100644 index 0000000..b0d547d --- /dev/null +++ b/include/dae/daeStringTable.h @@ -0,0 +1,64 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_STRING_TABLE_H__ +#define __DAE_STRING_TABLE_H__ +#include +#include + +/** + * The @c daeStringTable is a simple string table class to hold a float list of strings + * without a lot of allocations. + */ +class daeStringTable +{ +public: // allocate/construct/destruct/deallocate + /** + * Macro that defines new and delete overrides for this class + */ + DAE_ALLOC + /** + * Constructor which specifies fixed buffer size. + * @param stringBufferSize The size of the buffer to create for string allocation. + */ + DLLSPEC daeStringTable(int stringBufferSize = 1024*1024); + + /** + * Destructor. + */ + ~daeStringTable() { clear(); } + +public: // INTERFACE + /** + * Allocates a string from the table. + * @param string const char * to copy into the table. + * @return Returns an allocated string. + */ + DLLSPEC daeString allocString(daeString string); + + /** + * Clears the storage. + */ + DLLSPEC void clear(); + +private: // MEMBERS + size_t _stringBufferSize; + size_t _stringBufferIndex; + daeStringArray _stringBuffersList; + + daeString allocateBuffer(); + + daeString _empty; +}; + +#endif //__DAE_STRING_TABLE_H__ diff --git a/include/dae/daeTinyXMLPlugin.h b/include/dae/daeTinyXMLPlugin.h new file mode 100644 index 0000000..06b55db --- /dev/null +++ b/include/dae/daeTinyXMLPlugin.h @@ -0,0 +1,75 @@ +/* + * Copyright 2007 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_TINYXMLPLUGIN__ +#define __DAE_TINYXMLPLUGIN__ + +#include +#include +#include +#include +#include + +class TiXmlDocument; +class TiXmlElement; + +class daeTinyXMLPlugin : public daeIOPluginCommon +{ +public: + // Constructor / destructor + /** + * Constructor. + */ + DLLSPEC daeTinyXMLPlugin(); + /** + * Destructor. + */ + virtual DLLSPEC ~daeTinyXMLPlugin(); + + // Operations + virtual DLLSPEC daeInt write(const daeURI& name, daeDocument *document, daeBool replace); + + /** + * setOption allows you to set options for this IOPlugin. Which options a plugin supports is + * dependent on the plugin itself. There is currently no list of options that plugins are + * suggested to implement. daeLibXML2Plugin supports only one option, "saveRawBinary". Set to + * "true" to save float_array data as a .raw binary file. The daeRawResolver will convert the + * data back into COLLADA domFloat_array elements upon load. + * @param option The option to set. + * @param value The value to set the option. + * @return Returns DAE_OK upon success. + */ + virtual DLLSPEC daeInt setOption( daeString option, daeString value ); + + /** + * getOption retrieves the value of an option from this IOPlugin. Which options a plugin supports is + * dependent on the plugin itself. + * @param option The option to get. + * @return Returns the string value of the option or NULL if option is not valid. + */ + virtual DLLSPEC daeString getOption( daeString option ); + +private: + TiXmlDocument* m_doc; + std::list m_elements; + + virtual daeElementRef readFromFile(const daeURI& uri); + virtual daeElementRef readFromMemory(daeString buffer, const daeURI& baseUri); + daeElementRef readElement(TiXmlElement* tinyXmlElement, daeElement* parentElement); + + void writeElement( daeElement* element ); + void writeAttribute( daeMetaAttribute* attr, daeElement* element ); + void writeValue( daeElement* element ); +}; + +#endif //__DAE_TINYXMLPLUGIN__ diff --git a/include/dae/daeTypes.h b/include/dae/daeTypes.h new file mode 100644 index 0000000..27e560c --- /dev/null +++ b/include/dae/daeTypes.h @@ -0,0 +1,55 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_TYPES_H__ +#define __DAE_TYPES_H__ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#define daeOffsetOf(class, member) \ + ((size_t)&(((class*)0x0100)->member) - (size_t)0x0100) + +typedef PLATFORM_INT8 daeChar; +typedef PLATFORM_INT16 daeShort; +typedef PLATFORM_INT32 daeInt; +typedef PLATFORM_INT64 daeLong; +typedef PLATFORM_UINT8 daeUChar; +typedef PLATFORM_UINT16 daeUShort; +typedef PLATFORM_UINT32 daeUInt; +typedef PLATFORM_UINT64 daeULong; +typedef PLATFORM_FLOAT32 daeFloat; +typedef PLATFORM_FLOAT64 daeDouble; + +// base types + +typedef const char* daeString; +typedef bool daeBool; +typedef const void* daeConstRawRef; +typedef void* daeRawRef; +typedef daeInt daeEnum; +typedef daeChar* daeMemoryRef; + +typedef daeChar daeFixedName[512]; + +#include +#include + +#endif //__DAE_TYPES_H__ diff --git a/include/dae/daeURI.h b/include/dae/daeURI.h new file mode 100644 index 0000000..ffb9358 --- /dev/null +++ b/include/dae/daeURI.h @@ -0,0 +1,498 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_URI_H__ +#define __DAE_URI_H__ + +#include +#include +#include +#include +class DAE; + +/** + * The @c daeURI is a simple class designed to aid in the parsing and resolution + * of URI references inside COLLADA elements. + * A @c daeURI is created for every @c anyURL and @c IDREF in the COLLADA schema. + * For example, the element has the url= attribute of type @c anyURL, and the + * element has the target= attribute of type @c IDREF. + * The @c daeURI class contains a URI string; the @c set() method breaks the string into + * its components including scheme, authority, path (directory), and fragment. + * It also has the capability to attempt to resolve this reference + * into a @c daeElement, through the method @c resolveElement(). + * If a @c daeURI is stored within a @c daeElement, it fills + * its container field to point to the containing element. + * + * The main API on the @c daeURI, @c resolveElement(), uses a @c daeURIResolver + * to search for the @c daeElement inside a @c daeDatabase. + * + * URIs are resolved hierarchically, where each URI is resolved based on + * the following criteria via itself and its element's base URI, which represents the + * URI of the document that contains the element, retrieved by + * daeElement::getBaseURI(). + * If no base URI is provided, then the application URI + * is used as a base. + * + * The URI resolution order for the COLLADA DOM is as follows: + * - Absolute URI is specified (see definition below): + * The URI ignores its parent/base URI when validating. + * - Relative URI is specified: + * The URI uses the base URI to provide the scheme, authority, and base path. + * This URI's path is appended to the path given the the base URI. + * This URI's file and ID are used. + * - Each level of URI is resolved in this way against the base URI of the + * containing file until the top level is reached. Then the application URI + * is used as the default. + * + * Definition of Absolute URI: + * For the purposes of the COLLADA DOM, a URI is considered absolute + * if it starts by specifying a scheme. + * For example, + * - file:///c:/data/foo.dae#myScene is an absolute URI. + * - foo.dae#myScene is relative. + * - foo.dae is a top-level file reference and is relative. + * If the URI does not include a pound sign (#), the fragment is empty. + */ +class DLLSPEC daeURI +{ +private: + daeElement* internalResolveElement() const; + +public: + /** + * An enum describing the status of the URI resolution process. + * This is pretty much entirely useless now. Just use the various accessors + * to query the state of the uri. + */ + enum ResolveState{ + /** No URI specified */ + uri_empty, + /** URI specified but unresolved */ + uri_loaded, + /** Resolution pending */ + uri_pending, + /** Resolution successful */ + uri_success, + /** Failure due to unsupported URI scheme */ + uri_failed_unsupported_protocol, + /** Failure because the file was not found */ + uri_failed_file_not_found, + /** Failure because the fragment was not found */ + uri_failed_id_not_found, + /** Failure due to an invalid fragment */ + uri_failed_invalid_id, + /** A flag specifying that the URI should be resolved locally to its own document */ + uri_resolve_local, + /** A flag specifying that the URI should be resolved using this relative URI */ + uri_resolve_relative, + /** A flag specifying that the URI should be resolved using this absolute URI */ + uri_resolve_absolute, + /** Failure due to an invalid reference */ + uri_failed_invalid_reference, + /** Failure due to an external error */ + uri_failed_externalization, + /** Failure due to missing document */ + uri_failed_missing_container, + /** Failure because automatic loading of a document is turned off */ + uri_failed_external_document + }; + +private: + // All daeURIs have a pointer to a master DAE that they use to access global information. + mutable DAE* dae; + + /** Resolved version of the URI */ + std::string uriString; + + /** Original URI before resolution */ + std::string originalURIString; + + /** scheme component */ + std::string _scheme; + /** authority component */ + std::string _authority; + /** path component */ + std::string _path; + /** query component */ + std::string _query; + /** fragment component */ + std::string _fragment; + /** Pointer to the element that owns this URI */ + daeElement* container; + +public: + /** + * Constructs a daeURI object that contains no URI reference. + * @param dae The DAE associated with this daeURI. + * current working directory. + */ + daeURI(DAE& dae); + /** + * Destructor + */ + ~daeURI(); + + /** + * Constructs a daeURI object from a URI passed in as a string. + * @param dae The DAE associated with this daeURI. + * @param URIString Passed to set() automatically. + * @param nofrag If true, the fragment part of the URI is stripped off before construction. + */ + daeURI(DAE& dae, const std::string& URIString, daeBool nofrag = false); + + /** + * Constructs a daeURI object using a baseURI and a uriString. + * Calls set(URIString), and @c validate(baseURI). + * @param baseURI Base URI to resolve against. + * @param URIString String designating this URI. + */ + daeURI(const daeURI& baseURI, const std::string& URIString); + + /** + * Constructs a daeURI object based on a simple copy from an existing @c daeURI. + * @param constructFromURI URI to copy into this one. + */ + daeURI(const daeURI& constructFromURI); + + /** + * Constructs a daeURI given a container element and a URI string. + * @param container The container element. + * @param uriString the URI string. + */ + daeURI(daeElement& container, const std::string& uriString = ""); + + // This constructor is for internal DOM purposes only. For client code, use the constructor + // that takes only a daeElement instead of this one. + daeURI(DAE& dae, daeElement& container, const std::string& uriString = ""); + + /** + * Gets the DAE objects associated with this daeURI. + * @return Returns a pointer to the associated DAE. This will never return null. + */ + DAE* getDAE() const; + + // Returns the fully resolved URI as a string + const std::string& str() const; + // Returns the URI as originally set (i.e. not resolved against the base URI) + const std::string& originalStr() const; + + // Old C string versions of the previous functions + daeString getURI() const; // Alias for str() + daeString getOriginalURI() const; // Alias for originalStr(); + + // Setter function for setting the full uri. + void set(const std::string& uriStr, const daeURI* baseURI = NULL); + // Setter function for setting the individual uri components. + void set(const std::string& scheme, + const std::string& authority, + const std::string& path, + const std::string& query, + const std::string& fragment, + const daeURI* baseURI = NULL); + + // Old C string function. Alias for set(). + void setURI(daeString uriStr, const daeURI* baseURI = NULL); + + // std::string based component accessors. + const std::string& scheme() const; + const std::string& authority() const; + const std::string& path() const; + const std::string& query() const; + const std::string& fragment() const; + const std::string& id() const; // Alias for fragment() + + // Component setter functions. If you're going to be calling multiple setters, as in + // uri.path(path); + // uri.fragment(frag); + // it'd be more efficient to call uri.set once instead. + void scheme(const std::string& scheme); + void authority(const std::string& authority); + void path(const std::string& path); + void query(const std::string& query); + void fragment(const std::string& fragment); + void id(const std::string& id); // Alias for uri.fragment(frag) + + // Retrieves the individual path components. For example, in a uri of the form + // file:/folder/file.dae, dir = /folder/, baseName = file, ext = .dae + void pathComponents(std::string& dir, std::string& baseName, std::string& ext) const; + + // Individual path component accessors. If you need access to multiple path + // components, calling pathComponents() will be faster. + std::string pathDir() const; // daeURI("/folder/file.dae").pathDir() == "/folder/" + std::string pathFileBase() const; // daeURI("/folder/file.dae").pathFileBase() == "file" + std::string pathExt() const; // daeURI("/folder/file.dae").pathExt() == ".dae" + std::string pathFile() const; // daeURI("/folder/file.dae").pathFile() == "file.dae" + + // Path component setter. + void path(const std::string& dir, const std::string& baseName, const std::string& ext); + + // Individual path component setters. If you're going to be calling multiple setters, + // it'd be more efficient to call set() instead. + void pathDir(const std::string& dir); + void pathFileBase(const std::string& baseName); + void pathExt(const std::string& ext); + void pathFile(const std::string& file); + + // The older C string accessors. Aliases for the std::string based component accessors. + daeString getScheme() const; + daeString getProtocol() const; // Alias for getScheme() + daeString getAuthority() const; + daeString getPath() const; + daeString getQuery() const; + daeString getFragment() const; + daeString getID() const; // Alias for getFragment() + // Same as getPath(), but puts the result in the destination buffer. This is only here + // for backward compatibility. Use getPath() instead. + daeBool getPath(daeChar* dest, daeInt size) const; + + /** + * Gets the element that this URI resolves to in memory. + * @return Returns a ref to the element. + */ + daeElementRef getElement() const; + + // Returns the document that this URI references, or null if the document + // hasn't been loaded yet. + daeDocument* getReferencedDocument() const; + + /** + * Gets a pointer to the @c daeElement that contains this URI. + * @return Returns the pointer to the containing daeElmement. + */ + inline daeElement* getContainer() const {return(container);}; + + /** + * Sets the pointer to the @c daeElement that contains this URI. + * @param cont Pointer to the containing @c daeElmement. + */ + void setContainer(daeElement* container); + + /** + * Gets if this URI resolves to an element that is not contained in the same document as the URI. + * @return Returns true if the URI references an external element. False otherwise. + */ + daeBool isExternalReference() const; + + /** + * Copies the URI specified in from into @c this. + * Performs a simple copy without validating the URI. + * @param from URI to copy from. + */ + void copyFrom(const daeURI& from); + + /** + * Outputs all components of this URI to stderr. + * Useful for debugging URIs, this outputs each part of the URI separately. + */ + void print(); + + /** + * Makes the "originalURI" in this URI relative to some other uri + * @param uri the URI to make "this" relative to. + * @note this is experimental and not fully tested, please don't use in critical code yet. + */ + int makeRelativeTo(const daeURI* uri); + + /** + * Comparison operator. + * @return Returns true if URI's are equal. + */ + inline bool operator==(const daeURI& other) const { + return uriString == other.uriString; + } + + daeURI& operator=(const daeURI& other); + daeURI& operator=(const std::string& uri); + + // These methods are deprecated. + void resolveElement(); // Call getElement directly. + void validate(const daeURI* baseURI = NULL); // Shouldn't ever need to call this. + ResolveState getState() const; // Call getElement to see if resolving succeeded. + void setState(ResolveState newState); // Don't call this. + +private: + /** + * Resets this URI; frees all string references + * and returns state to @c empty. + */ + void reset(); + + /** + * Provides a shared initialization for all constructors + */ + void initialize(); +public: + /** + * Performs RFC2396 path normalization. + * @param path Path to be normalized. + */ + static void normalizeURIPath(char* path); +}; + +class daeURIResolver; +typedef daeTArray daeURIResolverPtrArray; + +/** + * The @c daeURIResolver class is the plugin point for URI resolution. + * This class is an abstract base class that defines an interface for + * resolving URIs. + * Every URI is passed through this list of @c daeURIResolvers for resolution. + * The list is ordered on a first come, first serve basis, and resolution + * terminates after any resolver instance resolves the URI. + */ +class DLLSPEC daeURIResolver +{ +public: + /** + * Constructor + * @param dae The associated dae object. + */ + daeURIResolver(DAE& dae); + + /** + * Destructor + */ + virtual ~daeURIResolver(); + + /** + * Sets a flag that tells the URI resolver whether or not to load a separate document if a URI + * being resolved points to one. + * @param load Set to true if you want the URI Resolver to automatically load other documents to + * resolve URIs. + */ + static void setAutoLoadExternalDocuments( daeBool load ); + + /** + * Gets a flag that tells if the URI resolver is set to load an external document if a URI + * being resolved points to one. + * @return Returns true if the resolver will automatically load documents to resolve a URI. + * False otherwise. + */ + static daeBool getAutoLoadExternalDocuments(); + + /** + * Provides an abstract interface for converting a @c daeURI into a @c daeElement + * @param uri @c daeURI to resolve. + * @return Returns the resolved element, or null if resolving failed. + * returns false otherwise. + */ + virtual daeElement* resolveElement(const daeURI& uri) = 0; + + /** + * Gets the name of this resolver. + * @return Returns the resolver name as a string. + */ + virtual daeString getName() = 0; + +protected: + static daeBool _loadExternalDocuments; + DAE* dae; +}; + + +// This is a container class for storing a modifiable list of daeURIResolver objects. +class DLLSPEC daeURIResolverList { +public: + daeURIResolverList(); + ~daeURIResolverList(); + + daeTArray& list(); + daeElement* resolveElement(const daeURI& uri); + +private: + // Disabled copy constructor/assignment operator + daeURIResolverList(const daeURIResolverList& resolverList) { }; + daeURIResolverList& operator=(const daeURIResolverList& resolverList) { return *this; }; + + daeTArray resolvers; +}; + + +// Helper functions for file path <--> URI conversion +namespace cdom { + // Takes a uri reference and parses it into its components. + DLLSPEC bool parseUriRef(const std::string& uriRef, + std::string& scheme, + std::string& authority, + std::string& path, + std::string& query, + std::string& fragment); + + // Takes the uri components of a uri ref and combines them. + // + // The 'forceLibxmlCompatible' param is meant to work around bugs in the file + // scheme uri handling of libxml. It causes the function to output a uri + // that's fully compatible with libxml. It only modifies file scheme uris, + // since uris with other schemes seem to work fine. + // + // The known libxml uri bugs are as follows: + // 1) libxml won't write files when given file scheme URIs with an empty + // authority, as in "file:/home". + // 2) libxml won't read or write Windows UNC paths represented with the + // machine name in the authority, as in "file://otherMachine/folder/file.dae" + // 3) On Windows, libxml won't read or write paths that don't have a drive + // letter, as in "/folder/file.dae". + DLLSPEC std::string assembleUri(const std::string& scheme, + const std::string& authority, + const std::string& path, + const std::string& query, + const std::string& fragment, + bool forceLibxmlCompatible = false); + + // A wrapper function for calling assembleUri to create a URI that's compatible + // with libxml. + DLLSPEC std::string fixUriForLibxml(const std::string& uriRef); + + // This function takes a file path in the OS's native format and converts it to + // a URI reference. If a relative path is given, a relative URI reference is + // returned. If an absolute path is given, a relative URI reference containing + // a fully specified path is returned. Spaces are encoded as %20. The 'type' + // parameter indicates the format of the nativePath. + // + // Examples - Windows + // nativePathToUri("C:\myFolder\myFile.dae") --> "/C:/myFolder/myFile.dae" + // nativePathToUri("\myFolder\myFile.dae") --> "/myFolder/myFile.dae" + // nativePathToUri("..\myFolder\myFile.dae") --> "../myFolder/myFile.dae" + // nativePathToUri("\\otherComputer\myFile.dae") --> "//otherComputer/myFile.dae" + // + // Examples - Linux/Mac + // nativePathToUri("/myFolder/myFile.dae") --> "/myFolder/myFile.dae" + // nativePathToUri("../myFolder/myFile.dae") --> "../myFolder/myFile.dae" + // nativePathToUri("/my folder/my file.dae") --> "/my%20folder/my%20file.dae" + DLLSPEC std::string nativePathToUri(const std::string& nativePath, + systemType type = getSystemType()); + + // This function takes a URI reference and converts it to an OS file path. Conversion + // can fail if the URI reference is ill-formed, or if the URI contains a scheme other + // than "file", in which case an empty string is returned. The 'type' parameter + // indicates the format of the returned native path. + // + // Examples - Windows + // uriToNativePath("../folder/file.dae") --> "..\folder\file.dae" + // uriToNativePath("/folder/file.dae") --> "\folder\file.dae" + // uriToNativePath("file:/C:/folder/file.dae") --> "C:\folder\file.dae" + // uriToNativePath("file://otherComputer/file.dae") --> "\\otherComputer\file.dae" + // uriToNativePath("http://www.slashdot.org") --> "" (it's not a file scheme URI!) + // + // Examples - Linux/Mac + // uriToNativePath("../folder/file.dae") --> "../folder/file.dae" + // uriToNativePath("file:/folder/file.dae") --> "/folder/file.dae" + // uriToNativePath("http://www.slashdot.org") --> "" (it's not a file scheme URI!) + DLLSPEC std::string uriToNativePath(const std::string& uriRef, + systemType type = getSystemType()); + + DLLSPEC std::string filePathToUri(const std::string& filePath); // Alias for nativePathToUri + DLLSPEC std::string uriToFilePath(const std::string& uriRef); // Alias for uriToNativePath +} + +#endif //__DAE_URI_H__ diff --git a/include/dae/daeUtils.h b/include/dae/daeUtils.h new file mode 100644 index 0000000..635f8e6 --- /dev/null +++ b/include/dae/daeUtils.h @@ -0,0 +1,67 @@ +// A home for commonly used utility functions. These are mostly for internal DOM +// use, but the automated tests use some of these functions, so we'll export +// them. +#ifndef daeUtils_h +#define daeUtils_h + +#include +#include +#include +#include +#include + +namespace cdom { + // System type info. We only need to distinguish between Posix and Winodws for now. + enum systemType { + Posix, + Windows + }; + + // Get the system type at runtime. + DLLSPEC systemType getSystemType(); + + // String replace function. Usage: replace("abcdef", "cd", "12") --> "ab12ef". + DLLSPEC std::string replace(const std::string& s, + const std::string& replace, + const std::string& replaceWith); + + // Usage: + // tokenize("this/is some#text", "/#", true) --> ("this" "/" "is some" "#" "text") + // tokenize("this is some text", " ", false) --> ("this" "is" "some" "text") + DLLSPEC std::list tokenize(const std::string& s, + const std::string& separators, + bool separatorsInResult = false); + // Same as the previous function, but returns the result via a parameter to avoid an object copy. + DLLSPEC void tokenize(const std::string& s, + const std::string& separators, + /* out */ std::list& tokens, + bool separatorsInResult = false); + + typedef std::list::iterator tokenIter; + + DLLSPEC std::vector makeStringArray(const char* s, ...); + DLLSPEC std::list makeStringList(const char* s, ...); + + DLLSPEC std::string getCurrentDir(); + DLLSPEC std::string getCurrentDirAsUri(); + + DLLSPEC int strcasecmp(const char* str1, const char* str2); + DLLSPEC std::string tolower(const std::string& s); + + // Disable VS warning +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4267) +#endif + template + std::string toString(const T& val) { + std::ostringstream stream; + stream << val; + return stream.str(); + } +#ifdef _MSC_VER +#pragma warning(pop) +#endif +} + +#endif diff --git a/include/dae/daeWin32Platform.h b/include/dae/daeWin32Platform.h new file mode 100644 index 0000000..6d6dc92 --- /dev/null +++ b/include/dae/daeWin32Platform.h @@ -0,0 +1,58 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_WIN32_PLATFORM_H__ +#define __DAE_WIN32_PLATFORM_H__ + +#define PLATFORM_INT8 __int8 +#define PLATFORM_INT16 __int16 +#define PLATFORM_INT32 __int32 +#define PLATFORM_INT64 __int64 +#define PLATFORM_UINT8 unsigned __int8 +#define PLATFORM_UINT16 unsigned __int16 +#define PLATFORM_UINT32 unsigned __int32 +#define PLATFORM_UINT64 unsigned __int64 +#define PLATFORM_FLOAT32 float +#define PLATFORM_FLOAT64 double + +#if _MSC_VER <= 1200 +typedef int intptr_t; +#endif + +#ifdef DOM_DYNAMIC + +#ifdef DOM_EXPORT +#define DLLSPEC __declspec( dllexport ) +#else +#define DLLSPEC __declspec( dllimport ) +#endif + +#else +#define DLLSPEC +#endif + +// GCC doesn't understand "#pragma warning" +#ifdef _MSC_VER +// class 'std::auto_ptr<_Ty>' needs to have dll-interface to be used by clients of class 'daeErrorHandler' +#pragma warning(disable: 4251) +// warning C4100: 'profile' : unreferenced formal parameter +#pragma warning(disable: 4100) +// warning C4355: 'this' : used in base member initializer list +#pragma warning(disable: 4355) +// warning C4512: 'daeDatabase' : assignment operator could not be generated +#pragma warning(disable: 4512) +// warning LNK4099: Missing pdb file for PCRE +#pragma warning(disable: 4099) +#endif + +#endif diff --git a/include/dae/domAny.h b/include/dae/domAny.h new file mode 100644 index 0000000..fe734b6 --- /dev/null +++ b/include/dae/domAny.h @@ -0,0 +1,146 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ +#ifndef __domAny_h__ +#define __domAny_h__ + +#include +#include +#include +#include +#include +#include + +/** + * The domAny class allows for weakly typed xml elements. This class is used anywhere in the + * COLLADA schema where an xs:any element appears. The content and type information for a domAny + * object is generated at runtime. + */ +class domAny : public daeElement +{ + friend class domAnyAttribute; +protected: // Attribute + /** + * The array of daeStrings to hold attribute data for this element. + */ + daeTArray attrs; + /** + * The domString value of the text data of this element. + */ + daeString _value; + /** + * Used to preserve order in elements that do not specify strict sequencing of sub-elements. + */ + daeElementRefArray _contents; + /** + * Used to preserve order in elements that have a complex content model. + */ + daeUIntArray _contentsOrder; + +public: + /** + * Gets the _contents array. + * @return Returns a reference to the _contents element array. + */ + daeElementRefArray &getContents() { return _contents; } + /** + * Gets the _contents array. + * @return Returns a constant reference to the _contents element array. + */ + const daeElementRefArray &getContents() const { return _contents; } + + /** + * Gets the number of attributes this element has. + * @return Returns the number of attributes on this element. + */ + daeUInt getAttributeCount() const { return (daeUInt)_meta->getMetaAttributes().getCount(); } + /** + * Gets an attribute's name. + * @param index The index into the attribute list. + * @return Returns the attribute's name. + */ + daeString getAttributeName( daeUInt index ) const { return _meta->getMetaAttributes()[index]->getName(); } + /** + * Gets an attribute's value. + * @param index The index into the attribute list. + * @return Returns the attribute's value as a string. + */ + daeString getAttributeValue( daeUInt index ) const { return attrs[ index ]; } + /** + * Gets the value of this element. + * @return Returns a daeString of the value. + */ + daeString getValue() const { return _value; } + /** + * Sets the _value of this element. + * @param val The new value for this element. + */ + void setValue( daeString val ) { *(daeStringRef*)&_value = val; } + + /** + * Gets the element type. + * @return Returns the COLLADA_TYPE::TypeEnum value corresponding to this element's type. + */ + virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANY; } + + static daeInt ID() { return colladaTypeCount()-1; } + virtual daeInt typeID() const { return colladaTypeCount()-1; } + +protected: + /** + * Constructor + */ + domAny() : _value() {} + /** + * Destructor + */ + virtual ~domAny(); + /** + * Copy Constructor + */ + domAny( const domAny &cpy ) : daeElement() { (void)cpy; } + /** + * Overloaded assignment operator + */ + virtual domAny &operator=( const domAny &cpy ) { (void)cpy; return *this; } + +public: //METHODS + /** + * Override of the Base class method. Creates and registers an attribute field with its meta + * and assigns its value as the attrValue String. + * @param attrName Attribute to set. + * @param attrValue String-based value to apply to the attribute. + * @return Returns true if the attribute was created and the value was set, false otherwise. + */ + virtual DLLSPEC daeBool setAttribute(daeString attrName, daeString attrValue); + +public: // STATIC METHODS + /** + * Creates an instance of this class and returns a daeElementRef referencing it. + * @return a daeElementRef referencing an instance of this object. + */ + static DLLSPEC daeElementRef create(DAE& dae); + /** + * Creates a daeMetaElement object that describes this element in the meta object reflection framework. + * @return A daeMetaElement describing this COLLADA element. + * @remarks Unlike other dom* elements, domAny will always create a new daeMetaElement when this + * function is called. + */ + static DLLSPEC daeMetaElement* registerElement(DAE& dae); + +}; + +typedef daeSmartRef domAnyRef; +typedef daeTArray domAny_Array; + +#endif + diff --git a/include/dom.h b/include/dom.h new file mode 100644 index 0000000..a687c13 --- /dev/null +++ b/include/dom.h @@ -0,0 +1,29 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ +#ifndef __DOM__ +#define __DOM__ + +class DAE; +class daeMetaElement; + +extern daeString COLLADA_VERSION; +extern daeString COLLADA_NAMESPACE; + +// Register all types +void registerDomTypes(DAE& dae); + +// Register all elements +daeMetaElement* registerDomElements(DAE& dae); + + +#endif // __DOM_INTERFACE__ diff --git a/include/modules/daeLIBXMLPlugin.h b/include/modules/daeLIBXMLPlugin.h new file mode 100644 index 0000000..34a8a42 --- /dev/null +++ b/include/modules/daeLIBXMLPlugin.h @@ -0,0 +1,92 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_LIBXMLPLUGIN__ +#define __DAE_LIBXMLPLUGIN__ + +#include +#include +#include +#include + +struct _xmlTextReader; +struct _xmlTextWriter; +class DAE; + +/** + * The @c daeLIBXMLPlugin class derives from @c daeIOPluginCommon and implements an XML + * input/output backend using libxml2 as a parser. When using this plugin, DAE::load() expects + * an rfc 2396 compliant URI, any URI supported by libxml2 should be properly + * handled including ones with network schemes and authority. If the URI contains a fragment it will be ignored + * and the entire referenced document will be loaded. DAE::saveAs will only + * handle a filename path at present (ie: no scheme or authority). + */ +class DLLSPEC daeLIBXMLPlugin : public daeIOPluginCommon +{ +public: + // Constructor / destructor + /** + * Constructor. + */ + daeLIBXMLPlugin(DAE& dae); + /** + * Destructor. + */ + virtual ~daeLIBXMLPlugin(); + + // Operations + virtual daeInt write(const daeURI& name, daeDocument *document, daeBool replace); + + /** + * setOption allows you to set options for this IOPlugin. Which options a plugin supports is + * dependent on the plugin itself. There is currently no list of options that plugins are + * suggested to implement. daeLibXML2Plugin supports only one option, "saveRawBinary". Set to + * "true" to save float_array data as a .raw binary file. The daeRawResolver will convert the + * data back into COLLADA domFloat_array elements upon load. + * @param option The option to set. + * @param value The value to set the option. + * @return Returns DAE_OK upon success. + */ + virtual daeInt setOption( daeString option, daeString value ); + + /** + * getOption retrieves the value of an option from this IOPlugin. Which options a plugin supports is + * dependent on the plugin itself. + * @param option The option to get. + * @return Returns the string value of the option or NULL if option is not valid. + */ + virtual daeString getOption( daeString option ); + +private: + DAE& dae; + + _xmlTextWriter *writer; + + FILE *rawFile; + unsigned long rawByteCount; + daeURI rawRelPath; + bool saveRawFile; + + virtual daeElementRef readFromFile(const daeURI& uri); + virtual daeElementRef readFromMemory(daeString buffer, const daeURI& baseUri); + daeElementRef read(_xmlTextReader* reader); + daeElementRef readElement(_xmlTextReader* reader, daeElement* parentElement); + + void writeElement( daeElement* element ); + void writeAttribute( daeMetaAttribute* attr, daeElement* element); + void writeValue(daeElement* element); + + void writeRawSource( daeElement* src ); +}; + +#endif //__DAE_LIBXMLPLUGIN__ diff --git a/include/modules/daeSTLDatabase.h b/include/modules/daeSTLDatabase.h new file mode 100644 index 0000000..28e38c7 --- /dev/null +++ b/include/modules/daeSTLDatabase.h @@ -0,0 +1,119 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef __DAE_STLDATABASE__ +#define __DAE_STLDATABASE__ + +#include + +#include +#include +#include +#include +#include + +#include +#include + +/** + * The @c daeSTLDatabase class derives from @c daeDatabase and implements + * the default database. + */ +class DLLSPEC daeSTLDatabase : public daeDatabase +{ +public: + /** + * Constructor + */ + daeSTLDatabase(DAE& dae); + /** + * Destructor + */ + virtual ~daeSTLDatabase(); + +public: + // Element Types of all Elements + virtual daeUInt getTypeCount(); + virtual daeString getTypeName(daeUInt index); + virtual daeInt setMeta(daeMetaElement *_topMeta); + + // Documents + virtual daeInt insertDocument(daeString name, daeElement* dom, daeDocument** document = NULL); + virtual daeInt insertDocument(daeString name, daeDocument** document = NULL); + virtual daeInt createDocument(daeString name, daeElement* dom, daeDocument** document = NULL); + virtual daeInt createDocument(daeString name, daeDocument** document = NULL); + virtual daeInt insertDocument( daeDocument *c ); + + virtual daeInt removeDocument(daeDocument* document); + virtual daeUInt getDocumentCount(); + virtual daeDocument* getDocument(daeUInt index); + virtual daeDocument* getDocument(daeString name, bool skipUriNormalization = false); + virtual daeString getDocumentName(daeUInt index); + virtual daeBool isDocumentLoaded(daeString name); + + // Elements + virtual daeInt insertElement(daeDocument* document, daeElement* element); + virtual daeInt removeElement(daeDocument* document, daeElement* element); + virtual daeInt changeElementID(daeElement* element, daeString newID); + virtual daeInt changeElementSID(daeElement* element, daeString newSID); // Not implemented + virtual daeInt clear(); + + virtual std::vector idLookup(const std::string& id); + + virtual void typeLookup(daeInt typeID, + std::vector& matchingElements, + daeDocument* doc = NULL); + + // Currently not implemented, but you can uncomment some code in daeSTLDatabase.cpp to get + // it working. + virtual void sidLookup(const std::string& sid, + std::vector& matchingElements, + daeDocument* doc = NULL); + + // Deprecated. Don't use these. Use idLookup or typeLookup instead. + virtual daeUInt getElementCount(daeString name = NULL, + daeString type = NULL, + daeString file = NULL); + virtual daeInt getElement(daeElement** pElement, + daeInt index, + daeString name = NULL, + daeString type = NULL, + daeString file = NULL); + +private: + + std::map< std::string, std::vector< daeElement* > > elements; // type name --> element lookup table (deprecated) + + std::multimap typeMap; // type ID --> element lookup table + typedef std::multimap::iterator typeMapIter; + typedef std::pair typeMapPair; + typedef std::pair typeMapRange; + + std::multimap< std::string, daeElement* > elementsIDMap; //map for elements keyed on ID + typedef std::multimap::iterator idMapIter; + typedef std::pair idMapPair; + typedef std::pair idMapRange; + + std::multimap< std::string, daeElement* > sidMap; // sid --> element lookup table + typedef std::multimap::iterator sidMapIter; + typedef std::pair sidMapPair; + typedef std::pair sidMapRange; + + std::vector documents; + daeMetaElement* topMeta; + + daeInt insertChildren( daeDocument *c, daeElement *element ); + daeInt removeChildren( daeDocument *c, daeElement *element ); +}; + +#endif // __DAE_STLDATABASE__ diff --git a/include/modules/stdErrPlugin.h b/include/modules/stdErrPlugin.h new file mode 100644 index 0000000..a2dbec6 --- /dev/null +++ b/include/modules/stdErrPlugin.h @@ -0,0 +1,51 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#ifndef _STDERR_PLUGIN_ +#define _STDERR_PLUGIN_ + +#include +#include + +/** + * The @c stdErrPlugin class is the default implementation of daeErrorHandler. It routes the Error + * and Warning messaged to stdout. + */ +class DLLSPEC stdErrPlugin : public daeErrorHandler { +public: + stdErrPlugin(); + virtual ~stdErrPlugin(); + +public: + void handleError( daeString msg ); + void handleWarning( daeString msg ); +}; + +/** + * The @c quietErrorHandler class is an alternative implementation of daeErrorHandler. It suppresses + * error and warning messages. The easiest way to use it is like this: + * daeErrorHandler::setErrorHandler(&quietErrorHandler::getInstance()); + */ +class DLLSPEC quietErrorHandler : public daeErrorHandler { +public: + quietErrorHandler() { } + void handleError(daeString msg) { } + void handleWarning(daeString msg) { } + + static quietErrorHandler& getInstance() { return theInstance; } + +private: + static quietErrorHandler theInstance; +}; + +#endif diff --git a/license/boost-license.txt b/license/boost-license.txt new file mode 100644 index 0000000..36b7cd9 --- /dev/null +++ b/license/boost-license.txt @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/license/pcre-license.txt b/license/pcre-license.txt new file mode 100644 index 0000000..4baa7d8 --- /dev/null +++ b/license/pcre-license.txt @@ -0,0 +1,68 @@ +PCRE LICENCE +------------ + +PCRE is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + +Release 7 of PCRE is distributed under the terms of the "BSD" licence, as +specified below. The documentation for PCRE, supplied in the "doc" +directory, is distributed under the same terms as the software itself. + +The basic library functions are written in C and are freestanding. Also +included in the distribution is a set of C++ wrapper functions. + + +THE BASIC LIBRARY FUNCTIONS +--------------------------- + +Written by: Philip Hazel +Email local part: ph10 +Email domain: cam.ac.uk + +University of Cambridge Computing Service, +Cambridge, England. + +Copyright (c) 1997-2007 University of Cambridge +All rights reserved. + + +THE C++ WRAPPER FUNCTIONS +------------------------- + +Contributed by: Google Inc. + +Copyright (c) 2007, Google Inc. +All rights reserved. + + +THE "BSD" LICENCE +----------------- + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the name of Google + Inc. nor the names of their contributors may be used to endorse or + promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +End diff --git a/license/scea-shared-source-lic1.0.txt b/license/scea-shared-source-lic1.0.txt new file mode 100644 index 0000000..4ba12ea --- /dev/null +++ b/license/scea-shared-source-lic1.0.txt @@ -0,0 +1,64 @@ +SCEA Shared Source License 1.0 + + + +Terms and Conditions: + +1. Definitions: + +"Software" shall mean the software and related documentation, whether in Source or Object Form, made available under this SCEA Shared Source license ("License"), that is indicated by a copyright notice file included in the source files or attached or accompanying the source files. + +"Licensor" shall mean Sony Computer Entertainment America, Inc. (herein "SCEA") + +"Object Code" or "Object Form" shall mean any form that results from translation or transformation of Source Code, including but not limited to compiled object code or conversions to other forms intended for machine execution. + +"Source Code" or "Source Form" shall have the plain meaning generally accepted in the software industry, including but not limited to software source code, documentation source, header and configuration files. + +"You" or "Your" shall mean you as an individual or as a company, or whichever form under which you are exercising rights under this License. + + 2. License Grant. + +Licensor hereby grants to You, free of charge subject to the terms and conditions of this License, an irrevocable, non-exclusive, worldwide, perpetual, and royalty-free license to use, modify, reproduce, distribute, publicly perform or display the Software in Object or Source Form . + +3. No Right to File for Patent. + +In exchange for the rights that are granted to You free of charge under this License, You agree that You will not file for any patent application, seek copyright protection or take any other action that might otherwise impair the ownership rights in and to the Software that may belong to SCEA or any of the other contributors/authors of the Software. + +4. Contributions. + +SCEA welcomes contributions in form of modifications, optimizations, tools or documentation designed to improve or expand the performance and scope of the Software (collectively "Contributions"). Per the terms of this License You are free to modify the Software and those modifications would belong to You. You may however wish to donate Your Contributions to SCEA for consideration for inclusion into the Software. For the avoidance of doubt, if You elect to send Your Contributions to SCEA, You are doing so voluntarily and are giving the Contributions to SCEA and its parent company Sony Computer Entertainment, Inc., free of charge, to use, modify or distribute in any form or in any manner. SCEA acknowledges that if You make a donation of Your Contributions to SCEA, such Contributions shall not exclusively belong to SCEA or its parent company and such donation shall not be to Your exclusion. SCEA, in its sole discretion, shall determine whether or not to include Your donated Contributions into the Software, in whole, in part, or as modified by SCEA. Should SCEA elect to include any such Contributions into the Software, it shall do so at its own risk and may elect to give credit or special thanks to any such contributors in the attached copyright notice. However, if any of Your contributions are included into the Software, they will become part of the Software and will be distributed under the terms and conditions of this License. Further, if Your donated Contributions are integrated into the Software then Sony Computer Entertainment, Inc. shall become the copyright owner of the Software now containing Your contributions and SCEA would be the Licensor. + +5. Redistribution in Source Form + +You may redistribute copies of the Software, modifications or derivatives thereof in Source Code Form, provided that You: +a. Include a copy of this License and any copyright notices with source +b. Identify modifications if any were made to the Software +c. Include a copy of all documentation accompanying the Software and modifications made by You + +6. Redistribution in Object Form + +If You redistribute copies of the Software, modifications or derivatives thereof in Object Form only (as incorporated into finished goods, i.e. end user applications) then You will not have a duty to include any copies of the code, this License, copyright notices, other attributions or documentation. + +7. No Warranty + +THE SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT ANY REPRESENTATIONS OR WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING, MODIFYING OR REDISTRIBUTING THE SOFTWARE AND ASSUME ANY RISKS ASSOCIATED WITH YOUR EXERCISE OF PERMISSIONS UNDER THIS LICENSE. + +8. Limitation of Liability + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY WILL EITHER PARTY BE LIABLE TO THE OTHER PARTY OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, SPECIAL, INCIDENTAL, OR EXEMPLARY DAMAGES WITH RESPECT TO ANY INJURY, LOSS, OR DAMAGE, ARISING UNDER OR IN CONNECTION WITH THIS LETTER AGREEMENT, WHETHER FORESEEABLE OR UNFORESEEABLE, EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH INJURY, LOSS, OR DAMAGE. THE LIMITATIONS OF LIABILITY SET FORTH IN THIS SECTION SHALL APPLY TO THE FULLEST EXTENT PERMISSIBLE AT LAW OR ANY GOVERMENTAL REGULATIONS. + +9. Governing Law and Consent to Jurisdiction + +This Agreement shall be governed by and interpreted in accordance with the laws of the State of California, excluding that body of law related to choice of laws, and of the United States of America. Any action or proceeding brought to enforce the terms of this Agreement or to adjudicate any dispute arising hereunder shall be brought in the Superior Court of the County of San Mateo, State of California or the United States District Court for the Northern District of California. Each of the parties hereby submits itself to the exclusive jurisdiction and venue of such courts for purposes of any such action. In addition, each party hereby waives the right to a jury trial in any action or proceeding related to this Agreement. + +10. Copyright Notice for Redistribution of Source Code + +Copyright 2005 Sony Computer Entertainment Inc. + +Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: + +http://research.scea.com/scea_shared_source_license.html + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + diff --git a/license/scea-shared-source-license1.0.pdf b/license/scea-shared-source-license1.0.pdf new file mode 100644 index 0000000..6ef1008 Binary files /dev/null and b/license/scea-shared-source-license1.0.pdf differ diff --git a/make/common.mk b/make/common.mk new file mode 100644 index 0000000..2ecc68b --- /dev/null +++ b/make/common.mk @@ -0,0 +1,50 @@ +ifeq ($(os),ps3) +cc := ppu-lv2-g++ +ar := ppu-lv2-ar rcs +exeSuffix := .elf +else +cc := g++ +ar := ar rcs +exeSuffix := +endif + +ccFlags := -Wall +ifeq ($(conf),debug) +ccFlags += -g -D_DEBUG +debugSuffix := -d +else +ccFlags += -O2 -DNDEBUG +debugSuffix := +endif + +ifeq ($(os),mac) +# Add the -arch flags to specify what architectures we're building for. +ccFlags += $(addprefix -arch ,$(subst x86,i386,$(archs))) +endif + +libOpts := +ifeq ($(os),windows) +# In case we're using the Cygwin compiler/linker, instruct cygwin to use the +# MinGW compiler to get a native Windows build. If you actually want a +# Cygwin-ized build you should comment this out. +ccFlags += -mno-cygwin +libOpts += -mno-cygwin +endif + +# Clear out a bunch of variables that may have previously been set +src := +targets := +includeOpts := +sharedLibSearchPaths := +dependentLibs := +postCreateExeCommand := + +buildID := $(os) +ifeq ($(os),windows) +buildID := mingw +endif + +outPath := build/$(buildID)-$(colladaVersion)$(if $(findstring debug,$(conf)),$(debugSuffix))/ +objPath := $(outPath)obj/ +colladaVersionNoDots := $(subst .,,$(colladaVersion)) +xmlparsers := $(if $(findstring ps3,$(os)),tinyxml,$(parsers)) \ No newline at end of file diff --git a/make/dom.mk b/make/dom.mk new file mode 100644 index 0000000..8190ce1 --- /dev/null +++ b/make/dom.mk @@ -0,0 +1,83 @@ +include make/common.mk + +src := $(wildcard src/dae/*.cpp) + +src += src/modules/stdErrPlugin/stdErrPlugin.cpp \ + src/modules/STLDatabase/daeSTLDatabase.cpp \ + src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp \ + +src += $(wildcard src/$(colladaVersion)/dom/*.cpp) + +includeOpts := -Iinclude -Iinclude/$(colladaVersion) + +ifneq ($(findstring $(os),linux mac),) +ccFlags += -fPIC +else ifeq ($(os),windows) +ccFlags += -DDOM_DYNAMIC -DDOM_EXPORT +endif + +ifneq ($(findstring libxml,$(xmlparsers)),) +ccFlags += -DDOM_INCLUDE_LIBXML +ifeq ($(os),windows) +includeOpts += -Iexternal-libs/libxml2/include +libOpts += -Lexternal-libs/libxml2/$(buildID)/lib -lxml2 -lws2_32 -lz +else +includeOpts += -I/usr/include/libxml2 +libOpts += -lxml2 +endif +endif + +ifneq ($(findstring tinyxml,$(xmlparsers)),) +ccFlags += -DDOM_INCLUDE_TINYXML +includeOpts += -Iexternal-libs/tinyxml/ +libOpts += external-libs/tinyxml/lib/$(buildID)/libtinyxml.a +endif + +ifeq ($(os),linux) +libOpts += -lpcre -lpcrecpp +else +# On Mac, Windows and PS3 we need to be told where to find pcre +ifeq ($(os),windows) +ccFlags += -DPCRE_STATIC +endif +includeOpts += -Iexternal-libs/pcre +libOpts += $(addprefix external-libs/pcre/lib/$(buildID)/,libpcrecpp.a libpcre.a ) +endif + +libName := libcollada$(colladaVersionNoDots)dom$(debugSuffix) +libVersion := $(domVersion) +libVersionNoDots := $(subst .,,$(libVersion)) + +targets := +ifeq ($(os),linux) +# On Linux we build a static lib and a shared lib +targets += $(addprefix $(outPath),$(libName).a) +targets += $(addprefix $(outPath),$(libName).so) + +else ifeq ($(os),windows) +# On Windows we build a static lib and a DLL +windowsLibName := libcollada$(colladaVersionNoDots)dom +targets += $(addprefix $(outPath),$(windowsLibName)$(debugSuffix).a) +targets += $(addprefix $(outPath),$(windowsLibName)$(libVersionNoDots)$(debugSuffix).dll) + +else ifeq ($(os),mac) +# On Mac we build a framework +targets += $(addprefix $(outPath),Collada$(colladaVersionNoDots)Dom$(debugSuffix).framework) +frameworkHeadersPath = $(framework)/Versions/$(libVersion)/Headers +copyFrameworkHeadersCommand = cp -R include/* $(frameworkHeadersPath) && \ + mv $(frameworkHeadersPath)/$(colladaVersion)/dom $(frameworkHeadersPath)/dom && \ + find -E $(frameworkHeadersPath) -maxdepth 1 -type d -regex '.*[0-9]+\.[0-9]+' | xargs rm -r +frameworkResourcesPath = $(framework)/Versions/$(libVersion)/Resources +sedReplaceExpression := -e 's/(colladaVersionNoDots)/$(colladaVersionNoDots)/g' \ + -e 's/(domVersion)/$(domVersion)/g' \ + -e 's/(debugSuffix)/$(debugSuffix)/g' +copyFrameworkResourcesCommand = cp -R make/macFrameworkResources/* $(frameworkResourcesPath) && \ + sed $(sedReplaceExpression) make/macFrameworkResources/Info.plist > $(frameworkResourcesPath)/Info.plist && \ + sed $(sedReplaceExpression) make/macFrameworkResources/English.lproj/InfoPlist.strings > $(frameworkResourcesPath)/English.lproj/InfoPlist.strings + +else ifeq ($(os),ps3) +# On PS3 we build a static lib, since PS3 doesn't support shared libs +targets += $(addprefix $(outPath),$(libName).a) +endif + +include make/rules.mk diff --git a/make/domTest.mk b/make/domTest.mk new file mode 100644 index 0000000..c778bff --- /dev/null +++ b/make/domTest.mk @@ -0,0 +1,75 @@ +include make/common.mk + +src := $(wildcard test/*.cpp) +targets := $(outPath)domTest$(exeSuffix) + +# DOM defs. This is extra complicated because of the installTest make target. The extra +# complexity is justified since installTest is very useful. +ifneq ($(os),mac) +libSuffix := $(if $(findstring windows,$(os)),.lib,$(if $(findstring ps3,$(os)),.a,.so)) +domPath := $(if $(installTest),$(installPrefix)/lib/,$(outPath)) +domVersionTag := $(if $(findstring windows,$(os)),$(domVersionNoDots),) +domName := $(domPath)libcollada$(colladaVersionNoDots)dom$(domVersionTag)$(debugSuffix)$(libSuffix) +ifeq ($(os),linux) +# Note: Linking in this way on Linux is necessary for the shared lib loader to +# find the DOM .so when you're not running from the top-level DOM path +# (accomplished via the -Wl,-rpath linker option. +libOpts += -L$(domPath) -lcollada$(colladaVersionNoDots)dom$(debugSuffix) +sharedLibSearchPaths += $(abspath $(outPath)) +else +libOpts += $(domName) +endif +else ifeq ($(os),mac) +domPath := $(if $(installTest),$(installPrefix)/,$(outPath)) +domFramework := Collada$(colladaVersionNoDots)Dom$(debugSuffix).framework +domName := $(domPath)$(domFramework) +# On Mac we use the framework for linking. If we're doing an install test then +# use the installed framework, which we'll assume is a system framework path. +ifeq ($(installTest),) +libOpts += -F$(outPath) +endif +libOpts += -framework $(notdir $(basename $(domName))) +endif + +ifeq ($(installTest),) +includeOpts += -Iinclude -Iinclude/$(colladaVersion) +else ifeq ($(os),linux) +includeOpts += -I$(installPrefix)/include/colladadom -I$(installPrefix)/include/colladadom/$(colladaVersion) +else ifeq ($(os),mac) +includeOpts += -I$(installPrefix)/$(domFramework)/Headers +endif +dependentLibs += $(domName) + +# PCRE defs +ifeq ($(os),ps3) +libOpts += $(addprefix external-libs/pcre/lib/$(os)/,libpcrecpp.a libpcre.a) +endif + +# TinyXml defs +ifneq ($(findstring tinyxml,$(xmlparsers)),) +# Notify domTest.cpp if we're supposed to do TinyXml tests +ccFlags += -DTINYXML +ifeq ($(os),ps3) +libOpts += external-libs/tinyxml/lib/$(os)/libtinyxml.a +endif +endif + +# Boost defs +ifeq ($(os),linux) +libOpts += -lboost_filesystem +else +includeOpts += -Iexternal-libs/boost +libOpts += external-libs/boost/lib/$(buildID)/libboost_system.a +libOpts += external-libs/boost/lib/$(buildID)/libboost_filesystem.a +endif +ifeq ($(os),ps3) +# PS3 doesn't support C++ locales, so tell boost not to use them +ccFlags += -DBOOST_NO_STD_LOCALE +endif + +ifeq ($(os),ps3) +# On PS3 we need to make a .self from the .elf +postCreateExeCommand := make_fself $(targets) $(targets:.elf=.self) +endif + +include make/rules.mk diff --git a/make/macFrameworkResources/English.lproj/InfoPlist.strings b/make/macFrameworkResources/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..893a687 --- /dev/null +++ b/make/macFrameworkResources/English.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +/* Localized versions of Info.plist keys */ + +CFBundleName = "Collada(colladaVersionNoDots)Dom(debugSuffix)"; diff --git a/make/macFrameworkResources/Info.plist b/make/macFrameworkResources/Info.plist new file mode 100644 index 0000000..7372beb --- /dev/null +++ b/make/macFrameworkResources/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + CFBundleExecutable + Collada(colladaVersionNoDots)Dom(debugSuffix) + CFBundleIdentifier + org.collada.dom + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + (domVersion) + CFBundleSignature + ???? + CFBundleVersion + (domVersion) + CSResourcesFileMapped + + + diff --git a/make/readme b/make/readme new file mode 100644 index 0000000..91c41c9 --- /dev/null +++ b/make/readme @@ -0,0 +1,122 @@ +The makefiles are used when building the DOM for Linux, Mac, or PS3. The +makefiles can also be used to build on Windows via the MinGW compiler. + +Typical usage would simply be to call "make" from the DOM directory, which would +build a release version of the DOM for the native architecture of your +machine. The build output goes to a folder named 'build'. + + +Build params +------------ + +os: Specifies the OS you're building for, which isn't necessarily the same as +the OS you're building on. Usually you would just accept the default value +generated by make (via the uname command), but if you're building for PS3 you +need to set os=ps3. Acceptable values are linux, mac, windows, and ps3. + +arch: The processor architecture you're building for. Some OS's (Mac in +particular) support building for multiple architectures. By default this is set +to your machine's processor architecture, so if you're on an Intel Mac it'll be +set to x86, and if you're on a PowerPC Mac it'll be set to ppc. To build a Mac +universal binary supporting both Intel and PowerPC 32-bit Macs, you would set +arch='x86 ppc'. Acceptable values are x86 and ppc. i386 is supported as a +synonym for x86. + +project: Valid values are dom, domTest, and all. You can specify to build only a +particular project by setting this value. By default, project=all, which will +build all projects. + +conf: Valid values are release, debug, and all. Default is release. + +colladaVersion: The only valid value is currently 1.4, but other versions will +be supported in the future. + +parser: Valid values are libxml, tinyxml, or all. Default is libxml on Linux, +Mac, or Windows, and tinyxml on PS3. + + +Build targets +------------- + +all: The default target, used for building libs/exes. + +clean: Removes build files. You could also 'rm -r build' to clean manually. + +test: Run the automated test suite. If any of the tests fail, make will fail. + +install: Install the DOM on the host machine. Set prefix=/my/path to specify an +install prefix other than the default. On Linux, the default is /usr/local (libs +go to /usr/local/lib, headers go to /usr/local/include), and on Mac the default +install location is /Library/Frameworks. + +uninstall: Self explanatory. + + +Usage scenarios +--------------- + +Standard release build: + make +Build both debug and release versions of the DOM: + make conf=all +Build _only_ the DOM (don't build domTest): + make project=dom +Build a Mac universal binary: + make arch='x86 ppc' +Build _only_ dae.cpp: + make file=dae.cpp +Build with output messages (perhaps for debugging the makefiles): + make verbose=yes +Install to the default location: + make install +Clean all configs + make clean conf=all + + +Overriding the defaults +----------------------- + +The defaults can easily be overriden by setting param=value when calling +make. If a particular param has a default that you always want to override, it +might be easier to put the overrides in make/customSettings.mk, which gets +included by the DOM makefile. For example, I tend to always build Mac universal +binaries, but the default is to build for the native architecture only. Instead +of always passing arch='x86 ppc' on the command line, I create a file +make/customSettings.mk that has 'arch := x86 ppc'. Also, the file +~/.collada-dom/customSettings.mk serves the same purpose as +make/customSettings.mk, except that it's more useful when you're working with +multiple branches of the DOM and you want your customized settings to apply to +all branches. + + +Mac Notes +--------- + +The only officially supported Mac version is OS X Leopard, but it's been +reported that the DOM works fine on other versions of OS X, as long as you're +using make 3.81. + + +Linux Notes +----------- + +The Linux build has been tested with Ubuntu Gutsy. You need to have libxml, +PCRE, and boost filesystem development files installed on your machine to build +the DOM. The Ubuntu packages are named libxml2-dev, libpcre3-dev, and +libboost-filesystem-dev. + +It should be easy to get the DOM building on other versions of Linux, but you'll +need to figure out what packages to install for libxml, PCRE, and boost filesystem. + + +Windows Notes +------------- + +Building on Windows via the makefiles only works when using MinGW as the +compiler. Visual Studio project files are provided for building with Visual +Studio. + +You'll need to have MinGW set up on your machine as well as a Unix environment +with GNU make 3.81. MinGW provides MSYS which can be used as the Unix +environment for building the DOM. You could also use the MinGW compiler with +Cygwin instead of MSYS. diff --git a/make/rules.mk b/make/rules.mk new file mode 100644 index 0000000..a61e351 --- /dev/null +++ b/make/rules.mk @@ -0,0 +1,170 @@ +# Copyright 2006 Sony Computer Entertainment Inc. +# +# Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this +# file except in compliance with the License. You may obtain a copy of the License at: +# http://research.scea.com/scea_shared_source_license.html +# +# Unless required by applicable law or agreed to in writing, software distributed under the License +# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing permissions and limitations under the +# License. +# + +# If we're building a lib of any sort libVersion will be set to a version number +# of the form major.minor, e.g. 2.0. Parse out the major and minor version numbers. +libMajorVersion := $(word 1,$(subst ., ,$(libVersion))) +libMinorVersion := $(word 2,$(subst ., ,$(libVersion))) + +obj := $(addprefix $(objPath),$(notdir $(src:.cpp=.o))) +dependencyFiles := $(obj:.o=.d) +outputFiles := $(obj) $(dependencyFiles) $(targets) +outputFiles += $(foreach so,$(filter %.so,$(targets)),$(so).$(libMajorVersion) $(so).$(libVersion)) + +# Parse the targets, which can contain any of the following: +# static lib (.a) +# shared lib (.so) +# Windows dynamic lib (.dll) +# Mac dynamic lib (.dylib) +# framework (.framework) +# exe (no extension, or .elf on PS3) +staticLib := $(filter %.a,$(targets)) +sharedLib := $(filter %.so,$(targets)) +dll := $(filter %.dll,$(targets)) +dylib := $(filter %.dylib,$(targets)) +framework := $(filter %.framework,$(targets)) +# For each framework we need a corresponding .dylib +dylib += $(framework:.framework=.dylib) +# Any target other than a .a, .so, .dll, .dylib, or .framework is considered an exe +exe := $(filter-out $(staticLib) $(sharedLib) $(dll) $(dylib) $(framework),$(targets)) + +ifneq ($(obj),) +# Pull in dependency info for *existing* .o files +-include $(dependencyFiles) + +# Make has weird evaluation semantics, so we have to be careful to capture the state of +# any values we use in rule commands. This is the reason for all the target-specific variables. +$(obj): cc := $(cc) +$(obj): ccFlags := $(ccFlags) +$(obj): ccFlagsNoArch := $(filter-out -arch ppc ppc64 i386 x86_64,$(ccFlags)) +$(obj): includeOpts := $(includeOpts) + +# Call createObjRule with a source file path +define createObjRule +srcPath := $(1) + +# Pick off the matching obj files +objFiles := $$(addprefix $$(objPath),$$(notdir $$(filter $$(srcPath)%,$$(src:.cpp=.o)))) + +# We're going to automatically generate make rules for our header dependencies. +# See this for more info: http://www.cs.berkeley.edu/~smcpeak/autodepend/autodepend.html +# When using the -M option to generate dependency info, we can't have any -arch flags or +# gcc complains. +$$(objFiles): $$(objPath)%.o: $$(srcPath)%.cpp | $$(sort $$(dir $$(objFiles))) + @echo Compiling $$< to $$@ + $$(cc) -c $$< $$(ccFlags) $$(includeOpts) -o $$@ + @$$(cc) -MM $$< $$(ccFlagsNoArch) $$(includeOpts) > $$(@:.o=.d) + @mv -f $$(@:.o=.d) $$(@:.o=.d.tmp) + @sed -e 's|.*:|$$@:|' < $$(@:.o=.d.tmp) > $$(@:.o=.d) + @sed -e 's/.*://' -e 's/\\$$$$//' < $$(@:.o=.d.tmp) | fmt -1 | \ + sed -e 's/^ *//' -e 's/$$$$/:/' >> $$(@:.o=.d) + @rm -f $$(@:.o=.d.tmp) +endef + +srcPaths := $(sort $(dir $(src))) +$(foreach path,$(srcPaths),$(eval $(call createObjRule,$(path)))) +endif + +# Rule for static libs +ifneq ($(staticLib),) +$(staticLib): ar := $(ar) +$(staticLib): $(obj) | $(dir $(staticLib)) + @echo Creating $@ + $(ar) $@ $^ +endif + +# Rules for shared libs +ifneq ($(sharedLib),) +sharedLibMajor := $(sharedLib).$(libMajorVersion) +sharedLibMajorMinor := $(sharedLib).$(libVersion) +$(sharedLibMajorMinor): cc := $(cc) +$(sharedLibMajorMinor): ccFlags := $(ccFlags) +$(sharedLibMajorMinor): libOpts := $(libOpts) +$(sharedLibMajorMinor): $(dependentLibs) $(obj) | $(dir $(sharedLibMajorMinor)) + @echo Linking $@ + $(cc) $(ccFlags) -shared -o $@ $^ $(libOpts) + +$(sharedLibMajor): $(sharedLibMajorMinor) | $(dir $(sharedLibMajor)) + cd $(dir $@) && ln -sf $(notdir $^) $(notdir $@) + +$(sharedLib): $(sharedLibMajor) | $(dir $(sharedLib)) + cd $(dir $@) && ln -sf $(notdir $^) $(notdir $@) +endif + +# Rules for dlls +ifneq ($(dll),) +$(dll): cc := $(cc) +$(dll): ccFlags := $(ccFlags) +$(dll): libOpts := $(libOpts) +$(dll): $(dependentLibs) $(obj) | $(dir $(dll)) + @echo Linking $@ + $(cc) $(ccFlags) -Wl,--out-implib,$(@:.dll=.lib) -shared -o $@ $^ $(libOpts) +endif + +# Rule for Mac-style dynamic libs +ifneq ($(dylib),) +$(dylib): cc := $(cc) +$(dylib): ccFlags := $(ccFlags) +$(dylib): libOpts := $(libOpts) +$(dylib): libVersion := $(libVersion) +$(dylib): $(dependentLibs) $(obj) | $(dir $(dylib)) + @echo Linking $@ + $(cc) $(ccFlags) -dynamiclib -install_name $(notdir $@) -current_version $(libVersion).0 \ + -compatibility_version $(libVersion).0 -o $@ $^ $(libOpts) +endif + +# Rule for Mac frameworks +ifneq ($(framework),) +$(framework): framework := $(framework) +$(framework): dylib := $(dylib) +$(framework): dylibNoExt := $(notdir $(basename $(dylib))) +$(framework): libVersion := $(libVersion) +$(framework): frameworkCurVersionPath := $(framework)/Versions/$(libVersion) +$(framework): copyFrameworkHeadersCommand := $(copyFrameworkHeadersCommand) +$(framework): copyFrameworkResourcesCommand := $(copyFrameworkResourcesCommand) +$(framework): $(dylib) + @echo Creating framework $@ +# First remove the framework folder if it's already there. Otherwise we get errors about +# files already existing and such. + rm -rf $(framework) +# Set up the headers + mkdir -p $(frameworkCurVersionPath)/Headers + $(copyFrameworkHeadersCommand) +# Set up the resources + mkdir -p $(frameworkCurVersionPath)/Resources + $(copyFrameworkResourcesCommand) +# Set up the dylib. It's conventional in Mac frameworks to drop the .dylib extension. + cp $(dylib) $(frameworkCurVersionPath)/$(dylibNoExt) +# Use install_name_tool to fix the lib name of the dylib + install_name_tool -id $(abspath $(frameworkCurVersionPath)/$(dylibNoExt)) $(frameworkCurVersionPath)/$(dylibNoExt) +# Set up the "current version" links + ln -s $(libVersion) $(framework)/Versions/Current + ln -s Versions/Current/Headers $(framework)/Headers + ln -s Versions/Current/Resources $(framework)/Resources + ln -s Versions/Current/$(dylibNoExt) $(framework)/$(dylibNoExt) +# Remove any .svn folders we may have inadvertently copied to the framework + find $@ -name '.svn' | xargs rm -r +endif + +# Rules for exes +ifneq ($(exe),) +$(exe): cc := $(cc) +$(exe): ccFlags := $(ccFlags) +$(exe): obj := $(obj) +$(exe): libOpts := $(libOpts) +$(exe): sharedLibSearchPathCommand := $(addprefix -Wl$(comma)-rpath$(comma),$(sharedLibSearchPaths)) +$(exe): postCreateExeCommand := $(postCreateExeCommand) +$(exe): $(dependentLibs) $(obj) | $(dir $(exe)) + @echo Linking $@ + $(cc) $(ccFlags) -o $@ $(obj) $(libOpts) $(sharedLibSearchPathCommand) + $(postCreateExeCommand) +endif diff --git a/projects/vc8/build.bat b/projects/vc8/build.bat new file mode 100644 index 0000000..31f73ae --- /dev/null +++ b/projects/vc8/build.bat @@ -0,0 +1,22 @@ +@echo off +setlocal +set devenv="C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv" + +if /i "%1" == "" goto all +if /i "%1" == "release" goto release +if /i "%1" == "debug" goto debug + +:release +%devenv% %~dp0dom.sln /build "Release 1.4" +goto end + +:debug +%devenv% %~dp0dom.sln /build "Debug 1.4" +goto end + +:all +%devenv% %~dp0dom.sln /build "Release 1.4" +%devenv% %~dp0dom.sln /build "Debug 1.4" +goto end + +:end diff --git a/projects/vc8/dom-static.vcproj b/projects/vc8/dom-static.vcproj new file mode 100644 index 0000000..db59962 --- /dev/null +++ b/projects/vc8/dom-static.vcproj @@ -0,0 +1,1854 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/vc8/dom.sln b/projects/vc8/dom.sln new file mode 100644 index 0000000..0694980 --- /dev/null +++ b/projects/vc8/dom.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom", "dom.vcproj", "{E554598B-B565-4B3C-8E25-F60296AFB943}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "domTest", "domTest.vcproj", "{32FA559B-77AB-4344-B102-BB671A299561}" + ProjectSection(ProjectDependencies) = postProject + {E554598B-B565-4B3C-8E25-F60296AFB943} = {E554598B-B565-4B3C-8E25-F60296AFB943} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-static", "dom-static.vcproj", "{2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug 1.4|Win32 = Debug 1.4|Win32 + Release 1.4|Win32 = Release 1.4|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E554598B-B565-4B3C-8E25-F60296AFB943}.Debug 1.4|Win32.ActiveCfg = Debug 1.4|Win32 + {E554598B-B565-4B3C-8E25-F60296AFB943}.Debug 1.4|Win32.Build.0 = Debug 1.4|Win32 + {E554598B-B565-4B3C-8E25-F60296AFB943}.Release 1.4|Win32.ActiveCfg = Release 1.4|Win32 + {E554598B-B565-4B3C-8E25-F60296AFB943}.Release 1.4|Win32.Build.0 = Release 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Debug 1.4|Win32.ActiveCfg = Debug 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Debug 1.4|Win32.Build.0 = Debug 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Release 1.4|Win32.ActiveCfg = Release 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Release 1.4|Win32.Build.0 = Release 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Debug 1.4|Win32.ActiveCfg = Debug 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Debug 1.4|Win32.Build.0 = Debug 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Release 1.4|Win32.ActiveCfg = Release 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Release 1.4|Win32.Build.0 = Release 1.4|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/projects/vc8/dom.vcproj b/projects/vc8/dom.vcproj new file mode 100644 index 0000000..1606160 --- /dev/null +++ b/projects/vc8/dom.vcproj @@ -0,0 +1,1894 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/vc8/domTest.vcproj b/projects/vc8/domTest.vcproj new file mode 100644 index 0000000..f48610a --- /dev/null +++ b/projects/vc8/domTest.vcproj @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/vc8to9.py b/projects/vc8to9.py new file mode 100644 index 0000000..0286e84 --- /dev/null +++ b/projects/vc8to9.py @@ -0,0 +1,92 @@ +import sys, os, xml, string, getopt, StringIO +from os import path +from os.path import join +from xml.dom import minidom, Node + +def slnToVC9(vc8Sln, vc9Sln): + vc8File = open(vc8Sln, 'r') + vc9File = open(vc9Sln, 'w') + if not vc8File or not vc9File: + return False + for line in vc8File: + if line.find('Microsoft Visual Studio Solution File, Format Version 9.00') != -1: + vc9File.write('Microsoft Visual Studio Solution File, Format Version 10.00\r\n') + elif line.find('# Visual Studio 2005') != -1: + vc9File.write('# Visual Studio 2008\r\n') + else: + vc9File.write(line) + return True + +def vcprojToVC9Recursive(node): + if node.nodeType == Node.ELEMENT_NODE and node.tagName == 'VisualStudioProject': + attr = node.getAttributeNode('Version') + if attr: + attr.nodeValue = '9.00' + else: + return False + node.setAttribute('TargetFrameworkVersion', '131072') + if node.nodeType == Node.ELEMENT_NODE and node.tagName == 'Tool': + if node.getAttribute('Name') == 'VCLinkerTool': + node.setAttribute('RandomizedBaseAddress', '1') + node.setAttribute('DataExecutionPrevention', '0') + if node.nodeType == Node.ELEMENT_NODE and node.tagName == 'Tool': + if node.getAttribute('Name') == 'VCWebDeploymentTool': + node.parentNode.removeChild(node) + if node.nodeType == Node.ELEMENT_NODE and node.tagName == 'Tool': + if node.getAttribute('Name') == 'VCCLCompilerTool': + if node.getAttributeNode('Detect64BitPortabilityProblems'): + node.setAttribute('Detect64BitPortabilityProblems', 'false') + map(vcprojToVC9Recursive, node.childNodes) + +def vcprojToVC9(vc8Proj, vc9Proj): + root = minidom.parse(vc8Proj) + if not root: + return False + vcprojToVC9Recursive(root) + root.writexml(open(vc9Proj, 'w')) + return True + +def toVC9(vc8Path): + vc9Path = join(vc8Path, '..', 'vc9') + if not path.exists(vc9Path): + os.mkdir(vc9Path) + for path_ in os.listdir(vc8Path): + if path.splitext(path_)[1] == '.sln': + if not slnToVC9(join(vc8Path, path_), join(vc9Path, path_)): + return False + elif path.splitext(path_)[1] == '.vcproj': + if not vcprojToVC9(join(vc8Path, path_), join(vc9Path, path_)): + return False + return True + +def vcprojConvertVC8Tags(vc9Proj): + vc9File = open(vc9Proj, 'r') + vc9Out = StringIO.StringIO() + if not vc9File or not vc9Out: + return False + for line in vc9File: + line = line.replace('vc8', 'vc9') + line = line.replace('VC8', 'VC9') + vc9Out.write(line) + vc9File.close() + vc9File = open(vc9Proj, 'w') + vc9File.write(vc9Out.getvalue()) + return True + +def convertVC8Tags(dir): + if not path.exists(dir): + return False + for path_ in os.listdir(dir): + if path.splitext(path_)[1] == '.vcproj': + if not vcprojConvertVC8Tags(join(dir, path_)): + return False + return True + + +if len(sys.argv) < 2 or not path.exists(sys.argv[1]): + print 'failed' +if not toVC9(sys.argv[1]): + print 'failed' +if len(sys.argv) >= 3 and sys.argv[2] == 'convertVC8Tags': + if not convertVC8Tags(join(sys.argv[1], '..', 'vc9')): + print 'failed' diff --git a/projects/vc9/dom-static.vcproj b/projects/vc9/dom-static.vcproj new file mode 100644 index 0000000..e5155db --- /dev/null +++ b/projects/vc9/dom-static.vcproj @@ -0,0 +1,897 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/vc9/dom.sln b/projects/vc9/dom.sln new file mode 100644 index 0000000..ba5d541 --- /dev/null +++ b/projects/vc9/dom.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom", "dom.vcproj", "{E554598B-B565-4B3C-8E25-F60296AFB943}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "domTest", "domTest.vcproj", "{32FA559B-77AB-4344-B102-BB671A299561}" + ProjectSection(ProjectDependencies) = postProject + {E554598B-B565-4B3C-8E25-F60296AFB943} = {E554598B-B565-4B3C-8E25-F60296AFB943} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-static", "dom-static.vcproj", "{2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug 1.4|Win32 = Debug 1.4|Win32 + Release 1.4|Win32 = Release 1.4|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E554598B-B565-4B3C-8E25-F60296AFB943}.Debug 1.4|Win32.ActiveCfg = Debug 1.4|Win32 + {E554598B-B565-4B3C-8E25-F60296AFB943}.Debug 1.4|Win32.Build.0 = Debug 1.4|Win32 + {E554598B-B565-4B3C-8E25-F60296AFB943}.Release 1.4|Win32.ActiveCfg = Release 1.4|Win32 + {E554598B-B565-4B3C-8E25-F60296AFB943}.Release 1.4|Win32.Build.0 = Release 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Debug 1.4|Win32.ActiveCfg = Debug 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Debug 1.4|Win32.Build.0 = Debug 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Release 1.4|Win32.ActiveCfg = Release 1.4|Win32 + {32FA559B-77AB-4344-B102-BB671A299561}.Release 1.4|Win32.Build.0 = Release 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Debug 1.4|Win32.ActiveCfg = Debug 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Debug 1.4|Win32.Build.0 = Debug 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Release 1.4|Win32.ActiveCfg = Release 1.4|Win32 + {2BAD5C91-F2B8-4E96-94DA-F6D6822DF29F}.Release 1.4|Win32.Build.0 = Release 1.4|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/projects/vc9/dom.vcproj b/projects/vc9/dom.vcproj new file mode 100644 index 0000000..cef2115 --- /dev/null +++ b/projects/vc9/dom.vcproj @@ -0,0 +1,905 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/vc9/domTest.vcproj b/projects/vc9/domTest.vcproj new file mode 100644 index 0000000..28530c8 --- /dev/null +++ b/projects/vc9/domTest.vcproj @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/projects/vc9/readme.txt b/projects/vc9/readme.txt new file mode 100644 index 0000000..046ed7d --- /dev/null +++ b/projects/vc9/readme.txt @@ -0,0 +1,6 @@ +When you're going to be committing modifications to Subversion, you shouldn't +edit the VC9 files directly. Instead edit the VC8 files and run the vc8to9 +Python script provided in the 'projects' folder like this: + +cd /projects +python vc8to9.py projects/vc8 convertVC8Tags diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..878903b --- /dev/null +++ b/readme.txt @@ -0,0 +1,31 @@ +Collada DOM 2.1.1 + +Documentation is available online at +http://collada.org/mediawiki/index.php/Portal:COLLADA_DOM + +Questions, bug reports and feature requests should go to our Sourceforge project +site: http://sourceforge.net/projects/collada-dom/ + +If you're upgrading your software from a previous release of the DOM you may be +interested in the backward compatibility page we maintain on the wiki: +http://collada.org/mediawiki/index.php/DOM_backward_compatibility + +The binary packages only contain release builds. If you need to debug the DOM +you should download the source and build it on your machine. The Visual Studio +packages include debug builds because you can't link a release DOM into a debug +app with that compiler. The debug info has been stripped though to keep the +download size down. + +Special thanks to the following people for their contributions: +Heinrich Fink (Mac support) +JT Anderson (Tinyxml support) +Michel Briand (Linux shared library support) +Kai Klesatschke (bug reporting, Windows character encoding fixes) +Guy Rabiller (bug reporting) +Rodrigo Hernandez (MinGW support) +Alex De Pereyra (bug reporting) + +Apologies if I missed anyone (please let me know!). + +steven_thomas@playstation.sony.com +2008 Sony Computer Entertainment, Inc diff --git a/release/release.py b/release/release.py new file mode 100644 index 0000000..b03f522 --- /dev/null +++ b/release/release.py @@ -0,0 +1,345 @@ +import sys, os, xml, zipfile, string, tarfile, getopt, shutil, popen2 +from os import path +from os.path import join +from xml.dom import minidom, Node +from zipfile import ZipFile +from tarfile import TarFile, TarFileCompat + +windows = sys.platform == 'win32' +linux = sys.platform == 'linux2' +mac = sys.platform == 'darwin' +colladaVersion = '1.4' +domVersion = '2.0' +colladaVersionNoDots = colladaVersion.replace('.', '') +domVersionNoDots = domVersion.replace('.', '') +sfdom = 'https://collada-dom.svn.sourceforge.net/svnroot/collada-dom' +archivePrefix = 'colladadom' + +def disableDebugInfoRecursive(node): + if node.nodeType == Node.ELEMENT_NODE and node.tagName == 'Tool': + attr = node.getAttributeNode('DebugInformationFormat') + if attr: + attr.nodeValue = '0' + attr = node.getAttributeNode('GenerateDebugInformation') + if attr: + attr.nodeValue = 'false' + map(disableDebugInfoRecursive, node.childNodes) + +def disableProjectDebugInfo(projectPath): + root = minidom.parse(projectPath) + disableDebugInfoRecursive(root.childNodes[0]) + root.writexml(open(projectPath, 'w')) + +def disableDebugInfo(codePath): + projs = [join(codePath, 'dom', 'projects', 'vc8', name + '.vcproj') \ + for name in ['dom', 'dom-static', 'domTest']] + for proj in projs: + disableProjectDebugInfo(proj) + +def setupReleaseCheckout(opts): + outdir = getOutdir(opts) + path0 = join(outdir, 'dom-vc8' if windows else 'dom-bin') + if not path.exists(path0): + # We're going to create several checkouts of the code. We only actually do + # an svn checkout for the first one. For the others we just do a folder copy. + print 'Checking out DOM version ' + domVersion + ' to ' + path0 + os.system('svn co -q ' + sfdom + '/tags/' + domVersion + ' ' + path0) + if not path.exists(path0): + print 'svn checkout failed' + sys.exit(2) + # Create the plain source checkout + shutil.copytree(path0, join(outdir, 'dom-source')) + if windows: + # Disable debug info and create the vc9 checkout + disableDebugInfo(path0) + shutil.copytree(path0, join(outdir, 'dom-vc9')) + +def checkFilesExist(dir, files): + for file in files: + if not path.exists(join(dir, file)): + return False + return True + +def createArchive(path, archiveType): + if archiveType == 'zip': + return ZipFile(path + '.zip', 'w', zipfile.ZIP_DEFLATED) + else: + return TarFileCompat(path + '.tar.gz', 'w', tarfile.TAR_GZIPPED) + +def packageRecursive(zip, packagePath, fileExt, archivePrefix): + def addToArchive(zip, p, packagePath, archivePrefix): + archivePath = p + commonIndex = len(path.commonprefix([archivePath, packagePath])) + archivePath = archivePath[commonIndex:] + if archivePath[0] == os.sep: + archivePath = archivePath[1:] + archivePath = join(archivePrefix, archivePath) + zip.write(p, archivePath) + for root, dirs, files in os.walk(packagePath): + if '.svn' in dirs: + dirs.remove('.svn') + for file in files: + if fileExt == None or path.splitext(file)[1] == fileExt: + addToArchive(zip, join(root, file), packagePath, archivePrefix) + # Copy the links to directories, which show up in dirs instead of files + for dir in dirs: + if path.islink(join(root, dir)): + addToArchive(zip, join(root, dir), packagePath, archivePrefix) + +def packageDomFilesCommon(zip, codePath): + if not mac: + packageRecursive(zip, join(codePath, 'dom', 'include'), '.h', join(archivePrefix, 'include')) + packageRecursive(zip, join(codePath, 'dom', 'test', 'data'), None, \ + join(archivePrefix, 'bin', 'domTestData')) + zip.write(join(codePath, 'dom', 'readme.txt'), join(archivePrefix, 'readme.txt')) + +def packageDomFilesVC(zip, codePath): + domLibPrefix = 'libcollada' + colladaVersionNoDots + 'dom' + domVersionNoDots + debugBuildPath = join(codePath, 'dom', 'build', 'vc8-' + colladaVersion + '-d') + releaseBuildPath = join(codePath, 'dom', 'build', 'vc8-' + colladaVersion) + debugFiles = [domLibPrefix + ext for ext in ['-d.dll', '-d.lib', '-sd.lib']] + releaseFiles = [domLibPrefix + ext for ext in ['.dll', '.lib', '-s.lib']] + ['domTest.exe'] + if not checkFilesExist(debugBuildPath, debugFiles) \ + or not checkFilesExist(releaseBuildPath, releaseFiles): + print 'VC build seems to have failed. Some files are missing from ' + \ + join(codePath, 'dom', 'build') + files = [join(debugBuildPath, file) for file in debugFiles] + \ + [join(releaseBuildPath, file) for file in releaseFiles] + [zip.write(file, join(archivePrefix, 'bin', path.basename(file))) for file in files] + packageDomFilesCommon(zip, codePath) + +def packageRTFilesVC(zip, codePath): + rtBinPath = join(codePath, 'rt', 'bin', 'vc8_' + colladaVersion) + rt = join(rtBinPath, 'COLLADA_RT_VIEWER.exe') + devil = join(rtBinPath, 'DevIL.dll') + if not path.exists(rt): + print 'RT build seems to have failed' + sys.exit(2) + zip.write(rt, join(archivePrefix, 'bin', 'COLLADA_RT_VIEWER.exe')) + zip.write(devil, join(archivePrefix, 'bin', 'DevIL.dll')) + +def packageDomFilesLinux(zip, codePath): + buildPath = join(codePath, 'dom', 'build', 'linux-' + colladaVersion) + domLibPrefix = 'libcollada' + colladaVersionNoDots + 'dom' + files = [domLibPrefix + ext for ext in ['.a', '.so', '.so.2', '.so.2.0']] + files += ['domTest'] + if not checkFilesExist(buildPath, files): + print 'Build seems to have failed' + sys.exit(2) + files = [join(buildPath, file) for file in files] + [zip.write(file, join(archivePrefix, 'bin', path.basename(file))) for file in files] + zip.write(join(codePath, 'dom', 'release', 'runDomTest'), + join(archivePrefix, 'bin', 'runDomTest')) + packageDomFilesCommon(zip, codePath) + +def packageDomFilesPS3(zip, codePath): + buildPath = join(codePath, 'dom', 'build', 'ps3-' + colladaVersion) + files = [join(buildPath, file) for file in \ + ['libcollada' + colladaVersionNoDots + 'dom.a', 'domTest.self']] + [zip.write(file, join(archivePrefix, 'bin', path.basename(file))) for file in files] + packageDomFilesCommon(zip, codePath) + +def packageDomFilesMac(zip, codePath): + buildPath = join(codePath, 'dom', 'build', 'mac-' + colladaVersion) + # Need to change the Mac framework link name in domTest + frameworkName = 'Collada' + colladaVersionNoDots + 'Dom.framework' + dylibName = 'Collada' + colladaVersionNoDots + 'Dom' + + domTest = join(buildPath, 'domTest') + domDylib = join(buildPath, frameworkName, dylibName) + oldInstallName = popen2.popen2('otool -L ' + domTest + ' | grep ' + frameworkName)[0].read().split(' ')[0] + newInstallName = join('/Library/Frameworks', frameworkName, 'Versions', domVersion, dylibName) + if (os.system('install_name_tool -change ' + oldInstallName + ' ' + newInstallName + ' ' + domTest) != 0): + print "Updating the DOM install name in domTest failed." + sys.exit(2) + if (os.system('install_name_tool -id ' + newInstallName + ' ' + domDylib) != 0): + print "Updating the DOM install name in the DOM framework failed." + sys.exit(2) + + packageRecursive(zip, join(buildPath, frameworkName), None, join(archivePrefix, frameworkName)) + +# tmpDir = join(codePath, '..', 'release-tmp') +# if not path.exists(tmpDir): +# os.mkdir(tmpDir) +# oldDomTest = join(buildPath, 'domTest') +# newDomTest = join(tmpDir, 'domTest') +# shutil.copyfile(oldDomTest, newDomTest) +# oldLinkName = popen2.popen2('otool -L ' + newDomTest + ' | grep ' + frameworkName)[0].read().split(' ')[0] +# newLinkName = '../' + oldLinkName[oldLinkName.index(frameworkName):] +# if (os.system('install_name_tool -change ' + oldLinkName + ' ' + newLinkName + ' ' + newDomTest) != 0): +# print "Updating the DOM link name in domTest failed." +# sys.exit(2) + +# zip.write(newDomTest, join(archivePrefix, 'bin', 'domTest')) +# zip.write(join(buildPath, 'domTest'), join(archivePrefix, 'bin', 'domTest')) + zip.write(domTest, join(archivePrefix, 'bin', 'domTest')) + zip.write(join(codePath, 'dom', 'release', 'runDomTest'), + join(archivePrefix, 'bin', 'runDomTest')) + packageDomFilesCommon(zip, codePath) + +# basename: path.splitext(path.basename(archivePath))[0] + +def packageSource(opts): + outdir = getOutdir(opts) + zip = createArchive(join(outdir, 'colladadom-source'), getArchive(opts)) + packageRecursive(zip, join(outdir, 'dom-source'), None, archivePrefix) + +def packageWindows(opts): + outdir = getOutdir(opts) + vc8Path = join(outdir, 'dom-vc8') + vc9Path = join(outdir, 'dom-vc9') + + if getCompiler(opts) in ['vc8', 'all']: + print 'Doing VC8 build' + os.spawnl(os.P_WAIT, join(vc8Path, 'dom', 'projects', 'vc8', 'build.bat')) + zip = createArchive(join(outdir, 'colladadom-vc8'), getArchive(opts)) + packageDomFilesVC(zip, vc8Path) + + # Build RT and add it to the VC8 zip file + print 'Building RT' + os.spawnl(os.P_WAIT, join(vc8Path, 'rt', 'projects', 'VC++8', 'build.bat')) + packageRTFilesVC(zip, vc8Path) + + if getCompiler(opts) in ['vc9', 'all']: + # This could be automated but I don't have a copy of VC9. Argh! + print '\n\nTime for the VC9 build. Make sure the project files in the VC9 path are converted,\n' \ + + 'then open the solution and do both a debug and release build. Press enter when\n' \ + + 'the build is finished.' + raw_input('\nWaiting for user response...') + print 'ok' + + zip = createArchive(join(outdir, 'colladadom-vc9'), getArchive(opts)) + packageDomFilesVC(zip, vc9Path) + +def packageLinux(opts): + outdir = getOutdir(opts) + codePath = join(outdir, 'dom-bin') + + print 'Building the DOM' + makeCmd = 'make' + ' -C ' + join(codePath, 'dom') + ' -k' + \ + ' -j ' + getBuildJobs(opts) + ' conf=release' + if getPlatform(opts) == 'ps3': + makeCmd += ' os=ps3' + os.system(makeCmd) + + ext = '-ps3' if getPlatform(opts) == 'ps3' else '-linux' + zip = createArchive(join(outdir, 'colladadom' + ext), getArchive(opts)) + if getPlatform(opts) == 'host': + packageDomFilesLinux(zip, codePath) + else: + packageDomFilesPS3(zip, codePath) + +def packageMac(opts): + outdir = getOutdir(opts) + codePath = join(outdir, 'dom-bin') + + print 'Building the DOM' + makeCmd = 'make' + ' -C ' + join(codePath, 'dom') + ' -k' + \ + ' -j ' + getBuildJobs(opts) + ' conf=release' + " arch='x86 ppc'" + os.system(makeCmd) + + zip = createArchive(join(outdir, 'colladadom-mac'), getArchive(opts)) + packageDomFilesMac(zip, codePath) + +def buildPackage(opts): + outdir = getOutdir(opts) + if not path.exists(outdir): + os.makedirs(outdir) + if not path.exists(outdir): + print "Couldn't create the output directory" + sys.exit(2) + + setupReleaseCheckout(opts) + + if getPackage(opts) == 'source': + packageSource(opts) + elif linux: + packageLinux(opts) + elif mac: + packageMac(opts) + elif windows: + packageWindows(opts) + +def createOptions(): + return ['binary', 'host', 'zip' if windows else 'tgz', path.abspath('.'), 'all', '1'] + +def setPackage(opts, package): + opts[0] = package +def setPlatform(opts, platform): + opts[1] = platform +def setArchive(opts, archive): + opts[2] = archive +def setOutdir(opts, outdir): + opts[3] = outdir +def setCompiler(opts, compiler): + opts[4] = compiler +def setBuildJobs(opts, jobs): + opts[5] = jobs + +def getPackage(opts): + return opts[0] +def getPlatform(opts): + return opts[1] +def getArchive(opts): + return opts[2] +def getOutdir(opts): + return opts[3] +def getCompiler(opts): + return opts[4] +def getBuildJobs(opts): + return opts[5] + +def printUsage(): + print "Options:" + print " --package=(source | binary). Build a source package or a package containing binaries." + print " Default is binary." + print " --platform=(host | ps3). Only applies when package is set to binary. host (the default)" + print " is the platform you're running on. ps3 binaries can only be" + print " built on Linux." + print " --archive=(tgz | zip). Default is tgz on Linux or Mac and zip on Windows." + print " --outdir. Set this to a directory to output the files to. Default is the current dir." + print " --compiler. Only valid on Windows. Can be set to vc8, vc9, or all (the default)." + print " --build-jobs. The number of parallel build jobs make should run. Only valid on Mac" + print " and Linux. Default is 1." + print " -h, --help. Print this help message." + +def main(): + try: + validShortOpts = 'h' + validLongOpts = ['package=', 'platform=', 'archive=', 'outdir=', 'compiler=', 'build-jobs=', 'help'] + opts, args = getopt.getopt(sys.argv[1:], validShortOpts, validLongOpts) + except getopt.GetoptError, err: + print 'Invalid usage.\n' + printUsage() + sys.exit(2) + + options = createOptions() + for o, a in opts: + if o in ('-h', '--help'): + printUsage() + sys.exit() + elif o == '--package': + setPackage(options, a) + elif o == '--platform': + setPlatform(options, a) + elif o == '--archive': + setArchive(options, a) + elif o == '--outdir': + setOutdir(options, a) + elif o == '--compiler': + setCompiler(options, a) + elif o == '--build-jobs': + setBuildJobs(options, a) + + if not getPackage(options) in ('source', 'binary') or \ + not getPlatform(options) in ('host', 'ps3') or \ + not getArchive(options) in ('zip', 'tgz') or \ + not getCompiler(options) in ('vc8', 'vc9', 'all'): + print 'Invalid usage.\n' + printUsage() + sys.exit(2) + + buildPackage(options) + print 'Packaging successful!' + +main() diff --git a/release/runDomTest b/release/runDomTest new file mode 100644 index 0000000..bb4f1c8 --- /dev/null +++ b/release/runDomTest @@ -0,0 +1,11 @@ +#!/bin/bash + +# Script to run the domTest binary from a DOM Mac or Linux release package +dir=$(dirname $0) +if [ $(uname) = "Darwin" ]; then + DYLD_FRAMEWORK_PATH=$dir/..:$DYLD_FRAMEWORK_PATH $dir/domTest $@ +elif [ $(uname) = "Linux" ]; then + LD_LIBRARY_PATH=$dir:$LD_LIBRARY_PATH $dir/domTest $@ +else + echo Unknown system type +fi diff --git a/src/1.4/dom/domAccessor.cpp b/src/1.4/dom/domAccessor.cpp new file mode 100644 index 0000000..5a9cabd --- /dev/null +++ b/src/1.4/dom/domAccessor.cpp @@ -0,0 +1,108 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domAccessor::create(DAE& dae) +{ + domAccessorRef ref = new domAccessor(dae); + return ref; +} + + +daeMetaElement * +domAccessor::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "accessor" ); + meta->registerClass(domAccessor::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domAccessor,elemParam_array) ); + mea->setElementType( domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domAccessor , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: offset + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "offset" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domAccessor , attrOffset )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domAccessor , attrSource )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: stride + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "stride" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domAccessor , attrStride )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAccessor)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domAnimation.cpp b/src/1.4/dom/domAnimation.cpp new file mode 100644 index 0000000..b713986 --- /dev/null +++ b/src/1.4/dom/domAnimation.cpp @@ -0,0 +1,177 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domAnimation::create(DAE& dae) +{ + domAnimationRef ref = new domAnimation(dae); + return ref; +} + + +daeMetaElement * +domAnimation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "animation" ); + meta->registerClass(domAnimation::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domAnimation,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domAnimation,elemSource_array) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 1, 1, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "sampler" ); + mea->setOffset( daeOffsetOf(domAnimation,elemSampler_array) ); + mea->setElementType( domSampler::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "channel" ); + mea->setOffset( daeOffsetOf(domAnimation,elemChannel_array) ); + mea->setElementType( domChannel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "animation" ); + mea->setOffset( daeOffsetOf(domAnimation,elemAnimation_array) ); + mea->setElementType( domAnimation::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 1, -1 ); + mea->setName( "animation" ); + mea->setOffset( daeOffsetOf(domAnimation,elemAnimation_array) ); + mea->setElementType( domAnimation::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaSequence( meta, cm, 2, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "sampler" ); + mea->setOffset( daeOffsetOf(domAnimation,elemSampler_array) ); + mea->setElementType( domSampler::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "channel" ); + mea->setOffset( daeOffsetOf(domAnimation,elemChannel_array) ); + mea->setElementType( domChannel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "animation" ); + mea->setOffset( daeOffsetOf(domAnimation,elemAnimation_array) ); + mea->setElementType( domAnimation::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 1, -1 ); + mea->setName( "animation" ); + mea->setOffset( daeOffsetOf(domAnimation,elemAnimation_array) ); + mea->setElementType( domAnimation::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domAnimation,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domAnimation,_contents)); + meta->addContentsOrder(daeOffsetOf(domAnimation,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domAnimation,_CMData), 2); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domAnimation , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domAnimation , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAnimation)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domAnimation_clip.cpp b/src/1.4/dom/domAnimation_clip.cpp new file mode 100644 index 0000000..430f2b6 --- /dev/null +++ b/src/1.4/dom/domAnimation_clip.cpp @@ -0,0 +1,118 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domAnimation_clip::create(DAE& dae) +{ + domAnimation_clipRef ref = new domAnimation_clip(dae); + return ref; +} + + +daeMetaElement * +domAnimation_clip::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "animation_clip" ); + meta->registerClass(domAnimation_clip::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domAnimation_clip,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "instance_animation" ); + mea->setOffset( daeOffsetOf(domAnimation_clip,elemInstance_animation_array) ); + mea->setElementType( domInstanceWithExtra::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domAnimation_clip,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domAnimation_clip , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domAnimation_clip , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: start + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "start" ); + ma->setType( dae.getAtomicTypes().get("xsDouble")); + ma->setOffset( daeOffsetOf( domAnimation_clip , attrStart )); + ma->setContainer( meta ); + ma->setDefaultString( "0.0"); + + meta->appendAttribute(ma); + } + + // Add attribute: end + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "end" ); + ma->setType( dae.getAtomicTypes().get("xsDouble")); + ma->setOffset( daeOffsetOf( domAnimation_clip , attrEnd )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAnimation_clip)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domAsset.cpp b/src/1.4/dom/domAsset.cpp new file mode 100644 index 0000000..aa82c04 --- /dev/null +++ b/src/1.4/dom/domAsset.cpp @@ -0,0 +1,655 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domAsset::create(DAE& dae) +{ + domAssetRef ref = new domAsset(dae); + return ref; +} + + +daeMetaElement * +domAsset::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "asset" ); + meta->registerClass(domAsset::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "contributor" ); + mea->setOffset( daeOffsetOf(domAsset,elemContributor_array) ); + mea->setElementType( domAsset::domContributor::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "created" ); + mea->setOffset( daeOffsetOf(domAsset,elemCreated) ); + mea->setElementType( domAsset::domCreated::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "keywords" ); + mea->setOffset( daeOffsetOf(domAsset,elemKeywords) ); + mea->setElementType( domAsset::domKeywords::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "modified" ); + mea->setOffset( daeOffsetOf(domAsset,elemModified) ); + mea->setElementType( domAsset::domModified::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "revision" ); + mea->setOffset( daeOffsetOf(domAsset,elemRevision) ); + mea->setElementType( domAsset::domRevision::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "subject" ); + mea->setOffset( daeOffsetOf(domAsset,elemSubject) ); + mea->setElementType( domAsset::domSubject::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "title" ); + mea->setOffset( daeOffsetOf(domAsset,elemTitle) ); + mea->setElementType( domAsset::domTitle::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "unit" ); + mea->setOffset( daeOffsetOf(domAsset,elemUnit) ); + mea->setElementType( domAsset::domUnit::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "up_axis" ); + mea->setOffset( daeOffsetOf(domAsset,elemUp_axis) ); + mea->setElementType( domAsset::domUp_axis::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 8 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domAsset)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domContributor::create(DAE& dae) +{ + domAsset::domContributorRef ref = new domAsset::domContributor(dae); + return ref; +} + + +daeMetaElement * +domAsset::domContributor::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "contributor" ); + meta->registerClass(domAsset::domContributor::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "author" ); + mea->setOffset( daeOffsetOf(domAsset::domContributor,elemAuthor) ); + mea->setElementType( domAsset::domContributor::domAuthor::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "authoring_tool" ); + mea->setOffset( daeOffsetOf(domAsset::domContributor,elemAuthoring_tool) ); + mea->setElementType( domAsset::domContributor::domAuthoring_tool::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "comments" ); + mea->setOffset( daeOffsetOf(domAsset::domContributor,elemComments) ); + mea->setElementType( domAsset::domContributor::domComments::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "copyright" ); + mea->setOffset( daeOffsetOf(domAsset::domContributor,elemCopyright) ); + mea->setElementType( domAsset::domContributor::domCopyright::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "source_data" ); + mea->setOffset( daeOffsetOf(domAsset::domContributor,elemSource_data) ); + mea->setElementType( domAsset::domContributor::domSource_data::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domAsset::domContributor)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domContributor::domAuthor::create(DAE& dae) +{ + domAsset::domContributor::domAuthorRef ref = new domAsset::domContributor::domAuthor(dae); + return ref; +} + + +daeMetaElement * +domAsset::domContributor::domAuthor::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "author" ); + meta->registerClass(domAsset::domContributor::domAuthor::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domContributor::domAuthor , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domContributor::domAuthor)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domContributor::domAuthoring_tool::create(DAE& dae) +{ + domAsset::domContributor::domAuthoring_toolRef ref = new domAsset::domContributor::domAuthoring_tool(dae); + return ref; +} + + +daeMetaElement * +domAsset::domContributor::domAuthoring_tool::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "authoring_tool" ); + meta->registerClass(domAsset::domContributor::domAuthoring_tool::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domContributor::domAuthoring_tool , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domContributor::domAuthoring_tool)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domContributor::domComments::create(DAE& dae) +{ + domAsset::domContributor::domCommentsRef ref = new domAsset::domContributor::domComments(dae); + return ref; +} + + +daeMetaElement * +domAsset::domContributor::domComments::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "comments" ); + meta->registerClass(domAsset::domContributor::domComments::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domContributor::domComments , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domContributor::domComments)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domContributor::domCopyright::create(DAE& dae) +{ + domAsset::domContributor::domCopyrightRef ref = new domAsset::domContributor::domCopyright(dae); + return ref; +} + + +daeMetaElement * +domAsset::domContributor::domCopyright::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "copyright" ); + meta->registerClass(domAsset::domContributor::domCopyright::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domContributor::domCopyright , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domContributor::domCopyright)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domContributor::domSource_data::create(DAE& dae) +{ + domAsset::domContributor::domSource_dataRef ref = new domAsset::domContributor::domSource_data(dae); + return ref; +} + + +daeMetaElement * +domAsset::domContributor::domSource_data::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source_data" ); + meta->registerClass(domAsset::domContributor::domSource_data::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domAsset::domContributor::domSource_data , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domContributor::domSource_data)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domCreated::create(DAE& dae) +{ + domAsset::domCreatedRef ref = new domAsset::domCreated(dae); + return ref; +} + + +daeMetaElement * +domAsset::domCreated::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "created" ); + meta->registerClass(domAsset::domCreated::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsDateTime")); + ma->setOffset( daeOffsetOf( domAsset::domCreated , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domCreated)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domKeywords::create(DAE& dae) +{ + domAsset::domKeywordsRef ref = new domAsset::domKeywords(dae); + return ref; +} + + +daeMetaElement * +domAsset::domKeywords::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "keywords" ); + meta->registerClass(domAsset::domKeywords::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domKeywords , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domKeywords)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domModified::create(DAE& dae) +{ + domAsset::domModifiedRef ref = new domAsset::domModified(dae); + return ref; +} + + +daeMetaElement * +domAsset::domModified::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "modified" ); + meta->registerClass(domAsset::domModified::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsDateTime")); + ma->setOffset( daeOffsetOf( domAsset::domModified , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domModified)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domRevision::create(DAE& dae) +{ + domAsset::domRevisionRef ref = new domAsset::domRevision(dae); + return ref; +} + + +daeMetaElement * +domAsset::domRevision::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "revision" ); + meta->registerClass(domAsset::domRevision::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domRevision , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domRevision)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domSubject::create(DAE& dae) +{ + domAsset::domSubjectRef ref = new domAsset::domSubject(dae); + return ref; +} + + +daeMetaElement * +domAsset::domSubject::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "subject" ); + meta->registerClass(domAsset::domSubject::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domSubject , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domSubject)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domTitle::create(DAE& dae) +{ + domAsset::domTitleRef ref = new domAsset::domTitle(dae); + return ref; +} + + +daeMetaElement * +domAsset::domTitle::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "title" ); + meta->registerClass(domAsset::domTitle::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAsset::domTitle , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domTitle)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domUnit::create(DAE& dae) +{ + domAsset::domUnitRef ref = new domAsset::domUnit(dae); + return ref; +} + + +daeMetaElement * +domAsset::domUnit::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "unit" ); + meta->registerClass(domAsset::domUnit::create); + + meta->setIsInnerClass( true ); + + // Add attribute: meter + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "meter" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domAsset::domUnit , attrMeter )); + ma->setContainer( meta ); + ma->setDefaultString( "1.0"); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domAsset::domUnit , attrName )); + ma->setContainer( meta ); + ma->setDefaultString( "meter"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domUnit)); + meta->validate(); + + return meta; +} + +daeElementRef +domAsset::domUp_axis::create(DAE& dae) +{ + domAsset::domUp_axisRef ref = new domAsset::domUp_axis(dae); + return ref; +} + + +daeMetaElement * +domAsset::domUp_axis::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "up_axis" ); + meta->registerClass(domAsset::domUp_axis::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("UpAxisType")); + ma->setOffset( daeOffsetOf( domAsset::domUp_axis , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domAsset::domUp_axis)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domBind_material.cpp b/src/1.4/dom/domBind_material.cpp new file mode 100644 index 0000000..09a1722 --- /dev/null +++ b/src/1.4/dom/domBind_material.cpp @@ -0,0 +1,118 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domBind_material::create(DAE& dae) +{ + domBind_materialRef ref = new domBind_material(dae); + return ref; +} + + +daeMetaElement * +domBind_material::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bind_material" ); + meta->registerClass(domBind_material::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domBind_material,elemParam_array) ); + mea->setElementType( domParam::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domBind_material,elemTechnique_common) ); + mea->setElementType( domBind_material::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domBind_material,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domBind_material,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domBind_material)); + meta->validate(); + + return meta; +} + +daeElementRef +domBind_material::domTechnique_common::create(DAE& dae) +{ + domBind_material::domTechnique_commonRef ref = new domBind_material::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domBind_material::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domBind_material::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "instance_material" ); + mea->setOffset( daeOffsetOf(domBind_material::domTechnique_common,elemInstance_material_array) ); + mea->setElementType( domInstance_material::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domBind_material::domTechnique_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domBool_array.cpp b/src/1.4/dom/domBool_array.cpp new file mode 100644 index 0000000..053f610 --- /dev/null +++ b/src/1.4/dom/domBool_array.cpp @@ -0,0 +1,92 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domBool_array::create(DAE& dae) +{ + domBool_arrayRef ref = new domBool_array(dae); + return ref; +} + + +daeMetaElement * +domBool_array::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool_array" ); + meta->registerClass(domBool_array::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfBools")); + ma->setOffset( daeOffsetOf( domBool_array , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domBool_array , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domBool_array , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domBool_array , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domBool_array)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domBox.cpp b/src/1.4/dom/domBox.cpp new file mode 100644 index 0000000..d258ad6 --- /dev/null +++ b/src/1.4/dom/domBox.cpp @@ -0,0 +1,103 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domBox::create(DAE& dae) +{ + domBoxRef ref = new domBox(dae); + return ref; +} + + +daeMetaElement * +domBox::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "box" ); + meta->registerClass(domBox::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half_extents" ); + mea->setOffset( daeOffsetOf(domBox,elemHalf_extents) ); + mea->setElementType( domBox::domHalf_extents::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domBox,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domBox)); + meta->validate(); + + return meta; +} + +daeElementRef +domBox::domHalf_extents::create(DAE& dae) +{ + domBox::domHalf_extentsRef ref = new domBox::domHalf_extents(dae); + return ref; +} + + +daeMetaElement * +domBox::domHalf_extents::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half_extents" ); + meta->registerClass(domBox::domHalf_extents::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domBox::domHalf_extents , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domBox::domHalf_extents)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCOLLADA.cpp b/src/1.4/dom/domCOLLADA.cpp new file mode 100644 index 0000000..d498c0e --- /dev/null +++ b/src/1.4/dom/domCOLLADA.cpp @@ -0,0 +1,264 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern daeString COLLADA_VERSION; +extern daeString COLLADA_NAMESPACE; + +daeElementRef +domCOLLADA::create(DAE& dae) +{ + domCOLLADARef ref = new domCOLLADA(dae); + ref->_meta = dae.getMeta(domCOLLADA::ID()); + ref->setAttribute("version", COLLADA_VERSION ); + ref->setAttribute("xmlns", COLLADA_NAMESPACE ); + ref->_meta = NULL; + return ref; +} + + +daeMetaElement * +domCOLLADA::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "COLLADA" ); + meta->registerClass(domCOLLADA::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_animations" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_animations_array) ); + mea->setElementType( domLibrary_animations::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_animation_clips" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_animation_clips_array) ); + mea->setElementType( domLibrary_animation_clips::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_cameras" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_cameras_array) ); + mea->setElementType( domLibrary_cameras::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_controllers" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_controllers_array) ); + mea->setElementType( domLibrary_controllers::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_geometries" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_geometries_array) ); + mea->setElementType( domLibrary_geometries::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_effects" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_effects_array) ); + mea->setElementType( domLibrary_effects::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_force_fields" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_force_fields_array) ); + mea->setElementType( domLibrary_force_fields::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_images" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_images_array) ); + mea->setElementType( domLibrary_images::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_lights" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_lights_array) ); + mea->setElementType( domLibrary_lights::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_materials" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_materials_array) ); + mea->setElementType( domLibrary_materials::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_nodes" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_nodes_array) ); + mea->setElementType( domLibrary_nodes::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_physics_materials" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_physics_materials_array) ); + mea->setElementType( domLibrary_physics_materials::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_physics_models" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_physics_models_array) ); + mea->setElementType( domLibrary_physics_models::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_physics_scenes" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_physics_scenes_array) ); + mea->setElementType( domLibrary_physics_scenes::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "library_visual_scenes" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemLibrary_visual_scenes_array) ); + mea->setElementType( domLibrary_visual_scenes::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 3002, 0, 1 ); + mea->setName( "scene" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemScene) ); + mea->setElementType( domCOLLADA::domScene::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCOLLADA,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCOLLADA,_contents)); + meta->addContentsOrder(daeOffsetOf(domCOLLADA,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCOLLADA,_CMData), 1); // Add attribute: xmlns + { + daeMetaAttribute* ma = new daeMetaAttribute; + ma->setName( "xmlns" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domCOLLADA , attrXmlns )); + ma->setContainer( meta ); + //ma->setIsRequired( true ); + meta->appendAttribute(ma); + } + + // Add attribute: version + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "version" ); + ma->setType( dae.getAtomicTypes().get("VersionType")); + ma->setOffset( daeOffsetOf( domCOLLADA , attrVersion )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: xml_base + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "xml_base" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domCOLLADA , attrXml_base )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCOLLADA)); + meta->validate(); + + return meta; +} + +daeElementRef +domCOLLADA::domScene::create(DAE& dae) +{ + domCOLLADA::domSceneRef ref = new domCOLLADA::domScene(dae); + return ref; +} + + +daeMetaElement * +domCOLLADA::domScene::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "scene" ); + meta->registerClass(domCOLLADA::domScene::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "instance_physics_scene" ); + mea->setOffset( daeOffsetOf(domCOLLADA::domScene,elemInstance_physics_scene_array) ); + mea->setElementType( domInstanceWithExtra::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "instance_visual_scene" ); + mea->setOffset( daeOffsetOf(domCOLLADA::domScene,elemInstance_visual_scene) ); + mea->setElementType( domInstanceWithExtra::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCOLLADA::domScene,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCOLLADA::domScene)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCamera.cpp b/src/1.4/dom/domCamera.cpp new file mode 100644 index 0000000..c54888d --- /dev/null +++ b/src/1.4/dom/domCamera.cpp @@ -0,0 +1,452 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCamera::create(DAE& dae) +{ + domCameraRef ref = new domCamera(dae); + return ref; +} + + +daeMetaElement * +domCamera::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "camera" ); + meta->registerClass(domCamera::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domCamera,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "optics" ); + mea->setOffset( daeOffsetOf(domCamera,elemOptics) ); + mea->setElementType( domCamera::domOptics::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "imager" ); + mea->setOffset( daeOffsetOf(domCamera,elemImager) ); + mea->setElementType( domCamera::domImager::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCamera,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domCamera , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCamera , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCamera)); + meta->validate(); + + return meta; +} + +daeElementRef +domCamera::domOptics::create(DAE& dae) +{ + domCamera::domOpticsRef ref = new domCamera::domOptics(dae); + return ref; +} + + +daeMetaElement * +domCamera::domOptics::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "optics" ); + meta->registerClass(domCamera::domOptics::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics,elemTechnique_common) ); + mea->setElementType( domCamera::domOptics::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCamera::domOptics)); + meta->validate(); + + return meta; +} + +daeElementRef +domCamera::domOptics::domTechnique_common::create(DAE& dae) +{ + domCamera::domOptics::domTechnique_commonRef ref = new domCamera::domOptics::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domCamera::domOptics::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domCamera::domOptics::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "orthographic" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common,elemOrthographic) ); + mea->setElementType( domCamera::domOptics::domTechnique_common::domOrthographic::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "perspective" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common,elemPerspective) ); + mea->setElementType( domCamera::domOptics::domTechnique_common::domPerspective::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCamera::domOptics::domTechnique_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domCamera::domOptics::domTechnique_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCamera::domOptics::domTechnique_common,_CMData), 1); + meta->setElementSize(sizeof(domCamera::domOptics::domTechnique_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domCamera::domOptics::domTechnique_common::domOrthographic::create(DAE& dae) +{ + domCamera::domOptics::domTechnique_common::domOrthographicRef ref = new domCamera::domOptics::domTechnique_common::domOrthographic(dae); + return ref; +} + + +daeMetaElement * +domCamera::domOptics::domTechnique_common::domOrthographic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "orthographic" ); + meta->registerClass(domCamera::domOptics::domTechnique_common::domOrthographic::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "xmag" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemXmag) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 1, 1, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "ymag" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemYmag) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "aspect_ratio" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemAspect_ratio) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaSequence( meta, cm, 2, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "ymag" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemYmag) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "aspect_ratio" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemAspect_ratio) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 3 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "znear" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemZnear) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "zfar" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,elemZfar) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,_contents)); + meta->addContentsOrder(daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCamera::domOptics::domTechnique_common::domOrthographic,_CMData), 2); + meta->setElementSize(sizeof(domCamera::domOptics::domTechnique_common::domOrthographic)); + meta->validate(); + + return meta; +} + +daeElementRef +domCamera::domOptics::domTechnique_common::domPerspective::create(DAE& dae) +{ + domCamera::domOptics::domTechnique_common::domPerspectiveRef ref = new domCamera::domOptics::domTechnique_common::domPerspective(dae); + return ref; +} + + +daeMetaElement * +domCamera::domOptics::domTechnique_common::domPerspective::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "perspective" ); + meta->registerClass(domCamera::domOptics::domTechnique_common::domPerspective::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "xfov" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemXfov) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 1, 1, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "yfov" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemYfov) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "aspect_ratio" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemAspect_ratio) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "yfov" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemYfov) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "aspect_ratio" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemAspect_ratio) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 3 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "znear" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemZnear) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "zfar" ); + mea->setOffset( daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,elemZfar) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,_contents)); + meta->addContentsOrder(daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCamera::domOptics::domTechnique_common::domPerspective,_CMData), 2); + meta->setElementSize(sizeof(domCamera::domOptics::domTechnique_common::domPerspective)); + meta->validate(); + + return meta; +} + +daeElementRef +domCamera::domImager::create(DAE& dae) +{ + domCamera::domImagerRef ref = new domCamera::domImager(dae); + return ref; +} + + +daeMetaElement * +domCamera::domImager::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "imager" ); + meta->registerClass(domCamera::domImager::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domCamera::domImager,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCamera::domImager,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCamera::domImager)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCapsule.cpp b/src/1.4/dom/domCapsule.cpp new file mode 100644 index 0000000..c5523cf --- /dev/null +++ b/src/1.4/dom/domCapsule.cpp @@ -0,0 +1,145 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCapsule::create(DAE& dae) +{ + domCapsuleRef ref = new domCapsule(dae); + return ref; +} + + +daeMetaElement * +domCapsule::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "capsule" ); + meta->registerClass(domCapsule::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "height" ); + mea->setOffset( daeOffsetOf(domCapsule,elemHeight) ); + mea->setElementType( domCapsule::domHeight::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "radius" ); + mea->setOffset( daeOffsetOf(domCapsule,elemRadius) ); + mea->setElementType( domCapsule::domRadius::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCapsule,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCapsule)); + meta->validate(); + + return meta; +} + +daeElementRef +domCapsule::domHeight::create(DAE& dae) +{ + domCapsule::domHeightRef ref = new domCapsule::domHeight(dae); + return ref; +} + + +daeMetaElement * +domCapsule::domHeight::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "height" ); + meta->registerClass(domCapsule::domHeight::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domCapsule::domHeight , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCapsule::domHeight)); + meta->validate(); + + return meta; +} + +daeElementRef +domCapsule::domRadius::create(DAE& dae) +{ + domCapsule::domRadiusRef ref = new domCapsule::domRadius(dae); + return ref; +} + + +daeMetaElement * +domCapsule::domRadius::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius" ); + meta->registerClass(domCapsule::domRadius::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domCapsule::domRadius , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCapsule::domRadius)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_connect_param.cpp b/src/1.4/dom/domCg_connect_param.cpp new file mode 100644 index 0000000..467a41a --- /dev/null +++ b/src/1.4/dom/domCg_connect_param.cpp @@ -0,0 +1,61 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_connect_param::create(DAE& dae) +{ + domCg_connect_paramRef ref = new domCg_connect_param(dae); + return ref; +} + + +daeMetaElement * +domCg_connect_param::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_connect_param" ); + meta->registerClass(domCg_connect_param::create); + + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("Cg_identifier")); + ma->setOffset( daeOffsetOf( domCg_connect_param , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_connect_param)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_newarray_type.cpp b/src/1.4/dom/domCg_newarray_type.cpp new file mode 100644 index 0000000..b9cc878 --- /dev/null +++ b/src/1.4/dom/domCg_newarray_type.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_newarray_type::create(DAE& dae) +{ + domCg_newarray_typeRef ref = new domCg_newarray_type(dae); + return ref; +} + + +daeMetaElement * +domCg_newarray_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_newarray_type" ); + meta->registerClass(domCg_newarray_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cg_param_type" ); + mea->setOffset( daeOffsetOf(domCg_newarray_type,elemCg_param_type_array) ); + mea->setElementType( domCg_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domCg_newarray_type,elemArray_array) ); + mea->setElementType( domCg_newarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "usertype" ); + mea->setOffset( daeOffsetOf(domCg_newarray_type,elemUsertype_array) ); + mea->setElementType( domCg_setuser_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "connect_param" ); + mea->setOffset( daeOffsetOf(domCg_newarray_type,elemConnect_param_array) ); + mea->setElementType( domCg_connect_param::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_newarray_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_newarray_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_newarray_type,_CMData), 1); + // Add attribute: length + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "length" ); + ma->setType( dae.getAtomicTypes().get("xsPositiveInteger")); + ma->setOffset( daeOffsetOf( domCg_newarray_type , attrLength )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_newarray_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_newparam.cpp b/src/1.4/dom/domCg_newparam.cpp new file mode 100644 index 0000000..f2412b7 --- /dev/null +++ b/src/1.4/dom/domCg_newparam.cpp @@ -0,0 +1,185 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_newparam::create(DAE& dae) +{ + domCg_newparamRef ref = new domCg_newparam(dae); + return ref; +} + + +daeMetaElement * +domCg_newparam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_newparam" ); + meta->registerClass(domCg_newparam::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domCg_newparam,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "semantic" ); + mea->setOffset( daeOffsetOf(domCg_newparam,elemSemantic) ); + mea->setElementType( domCg_newparam::domSemantic::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "modifier" ); + mea->setOffset( daeOffsetOf(domCg_newparam,elemModifier) ); + mea->setElementType( domCg_newparam::domModifier::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 3, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cg_param_type" ); + mea->setOffset( daeOffsetOf(domCg_newparam,elemCg_param_type) ); + mea->setElementType( domCg_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "usertype" ); + mea->setOffset( daeOffsetOf(domCg_newparam,elemUsertype) ); + mea->setElementType( domCg_setuser_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domCg_newparam,elemArray) ); + mea->setElementType( domCg_newarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_newparam,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_newparam,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_newparam,_CMData), 1); + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("Cg_identifier")); + ma->setOffset( daeOffsetOf( domCg_newparam , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_newparam)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_newparam::domSemantic::create(DAE& dae) +{ + domCg_newparam::domSemanticRef ref = new domCg_newparam::domSemantic(dae); + return ref; +} + + +daeMetaElement * +domCg_newparam::domSemantic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "semantic" ); + meta->registerClass(domCg_newparam::domSemantic::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCg_newparam::domSemantic , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_newparam::domSemantic)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_newparam::domModifier::create(DAE& dae) +{ + domCg_newparam::domModifierRef ref = new domCg_newparam::domModifier(dae); + return ref; +} + + +daeMetaElement * +domCg_newparam::domModifier::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "modifier" ); + meta->registerClass(domCg_newparam::domModifier::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_modifier_enum_common")); + ma->setOffset( daeOffsetOf( domCg_newparam::domModifier , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_newparam::domModifier)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_param_type.cpp b/src/1.4/dom/domCg_param_type.cpp new file mode 100644 index 0000000..eb9b5a3 --- /dev/null +++ b/src/1.4/dom/domCg_param_type.cpp @@ -0,0 +1,4596 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_param_type::create(DAE& dae) +{ + domCg_param_typeRef ref = new domCg_param_type(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_param_type" ); + meta->registerClass(domCg_param_type::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool) ); + mea->setElementType( domCg_param_type::domBool::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool1) ); + mea->setElementType( domCg_param_type::domBool1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool2) ); + mea->setElementType( domCg_param_type::domBool2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool3) ); + mea->setElementType( domCg_param_type::domBool3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool4) ); + mea->setElementType( domCg_param_type::domBool4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool1x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool1x1) ); + mea->setElementType( domCg_param_type::domBool1x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool1x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool1x2) ); + mea->setElementType( domCg_param_type::domBool1x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool1x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool1x3) ); + mea->setElementType( domCg_param_type::domBool1x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool1x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool1x4) ); + mea->setElementType( domCg_param_type::domBool1x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool2x1) ); + mea->setElementType( domCg_param_type::domBool2x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool2x2) ); + mea->setElementType( domCg_param_type::domBool2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool2x3) ); + mea->setElementType( domCg_param_type::domBool2x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool2x4) ); + mea->setElementType( domCg_param_type::domBool2x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool3x1) ); + mea->setElementType( domCg_param_type::domBool3x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool3x2) ); + mea->setElementType( domCg_param_type::domBool3x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool3x3) ); + mea->setElementType( domCg_param_type::domBool3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool3x4) ); + mea->setElementType( domCg_param_type::domBool3x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool4x1) ); + mea->setElementType( domCg_param_type::domBool4x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool4x2) ); + mea->setElementType( domCg_param_type::domBool4x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool4x3) ); + mea->setElementType( domCg_param_type::domBool4x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemBool4x4) ); + mea->setElementType( domCg_param_type::domBool4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat) ); + mea->setElementType( domCg_param_type::domFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat1) ); + mea->setElementType( domCg_param_type::domFloat1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat2) ); + mea->setElementType( domCg_param_type::domFloat2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat3) ); + mea->setElementType( domCg_param_type::domFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat4) ); + mea->setElementType( domCg_param_type::domFloat4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat1x1) ); + mea->setElementType( domCg_param_type::domFloat1x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat1x2) ); + mea->setElementType( domCg_param_type::domFloat1x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat1x3) ); + mea->setElementType( domCg_param_type::domFloat1x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat1x4) ); + mea->setElementType( domCg_param_type::domFloat1x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat2x1) ); + mea->setElementType( domCg_param_type::domFloat2x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat2x2) ); + mea->setElementType( domCg_param_type::domFloat2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat2x3) ); + mea->setElementType( domCg_param_type::domFloat2x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat2x4) ); + mea->setElementType( domCg_param_type::domFloat2x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat3x1) ); + mea->setElementType( domCg_param_type::domFloat3x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat3x2) ); + mea->setElementType( domCg_param_type::domFloat3x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat3x3) ); + mea->setElementType( domCg_param_type::domFloat3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat3x4) ); + mea->setElementType( domCg_param_type::domFloat3x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat4x1) ); + mea->setElementType( domCg_param_type::domFloat4x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat4x2) ); + mea->setElementType( domCg_param_type::domFloat4x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat4x3) ); + mea->setElementType( domCg_param_type::domFloat4x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFloat4x4) ); + mea->setElementType( domCg_param_type::domFloat4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt) ); + mea->setElementType( domCg_param_type::domInt::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt1) ); + mea->setElementType( domCg_param_type::domInt1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt2) ); + mea->setElementType( domCg_param_type::domInt2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt3) ); + mea->setElementType( domCg_param_type::domInt3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt4) ); + mea->setElementType( domCg_param_type::domInt4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int1x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt1x1) ); + mea->setElementType( domCg_param_type::domInt1x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int1x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt1x2) ); + mea->setElementType( domCg_param_type::domInt1x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int1x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt1x3) ); + mea->setElementType( domCg_param_type::domInt1x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int1x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt1x4) ); + mea->setElementType( domCg_param_type::domInt1x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt2x1) ); + mea->setElementType( domCg_param_type::domInt2x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt2x2) ); + mea->setElementType( domCg_param_type::domInt2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt2x3) ); + mea->setElementType( domCg_param_type::domInt2x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt2x4) ); + mea->setElementType( domCg_param_type::domInt2x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt3x1) ); + mea->setElementType( domCg_param_type::domInt3x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt3x2) ); + mea->setElementType( domCg_param_type::domInt3x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt3x3) ); + mea->setElementType( domCg_param_type::domInt3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt3x4) ); + mea->setElementType( domCg_param_type::domInt3x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt4x1) ); + mea->setElementType( domCg_param_type::domInt4x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt4x2) ); + mea->setElementType( domCg_param_type::domInt4x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt4x3) ); + mea->setElementType( domCg_param_type::domInt4x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemInt4x4) ); + mea->setElementType( domCg_param_type::domInt4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf) ); + mea->setElementType( domCg_param_type::domHalf::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf1) ); + mea->setElementType( domCg_param_type::domHalf1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf2) ); + mea->setElementType( domCg_param_type::domHalf2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf3) ); + mea->setElementType( domCg_param_type::domHalf3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf4) ); + mea->setElementType( domCg_param_type::domHalf4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half1x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf1x1) ); + mea->setElementType( domCg_param_type::domHalf1x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half1x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf1x2) ); + mea->setElementType( domCg_param_type::domHalf1x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half1x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf1x3) ); + mea->setElementType( domCg_param_type::domHalf1x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half1x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf1x4) ); + mea->setElementType( domCg_param_type::domHalf1x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half2x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf2x1) ); + mea->setElementType( domCg_param_type::domHalf2x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half2x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf2x2) ); + mea->setElementType( domCg_param_type::domHalf2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half2x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf2x3) ); + mea->setElementType( domCg_param_type::domHalf2x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half2x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf2x4) ); + mea->setElementType( domCg_param_type::domHalf2x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half3x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf3x1) ); + mea->setElementType( domCg_param_type::domHalf3x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half3x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf3x2) ); + mea->setElementType( domCg_param_type::domHalf3x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half3x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf3x3) ); + mea->setElementType( domCg_param_type::domHalf3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half3x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf3x4) ); + mea->setElementType( domCg_param_type::domHalf3x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half4x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf4x1) ); + mea->setElementType( domCg_param_type::domHalf4x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half4x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf4x2) ); + mea->setElementType( domCg_param_type::domHalf4x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half4x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf4x3) ); + mea->setElementType( domCg_param_type::domHalf4x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "half4x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemHalf4x4) ); + mea->setElementType( domCg_param_type::domHalf4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed) ); + mea->setElementType( domCg_param_type::domFixed::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed1) ); + mea->setElementType( domCg_param_type::domFixed1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed2) ); + mea->setElementType( domCg_param_type::domFixed2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed3) ); + mea->setElementType( domCg_param_type::domFixed3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed4) ); + mea->setElementType( domCg_param_type::domFixed4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed1x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed1x1) ); + mea->setElementType( domCg_param_type::domFixed1x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed1x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed1x2) ); + mea->setElementType( domCg_param_type::domFixed1x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed1x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed1x3) ); + mea->setElementType( domCg_param_type::domFixed1x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed1x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed1x4) ); + mea->setElementType( domCg_param_type::domFixed1x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed2x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed2x1) ); + mea->setElementType( domCg_param_type::domFixed2x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed2x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed2x2) ); + mea->setElementType( domCg_param_type::domFixed2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed2x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed2x3) ); + mea->setElementType( domCg_param_type::domFixed2x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed2x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed2x4) ); + mea->setElementType( domCg_param_type::domFixed2x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed3x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed3x1) ); + mea->setElementType( domCg_param_type::domFixed3x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed3x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed3x2) ); + mea->setElementType( domCg_param_type::domFixed3x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed3x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed3x3) ); + mea->setElementType( domCg_param_type::domFixed3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed3x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed3x4) ); + mea->setElementType( domCg_param_type::domFixed3x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed4x1" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed4x1) ); + mea->setElementType( domCg_param_type::domFixed4x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed4x2" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed4x2) ); + mea->setElementType( domCg_param_type::domFixed4x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed4x3" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed4x3) ); + mea->setElementType( domCg_param_type::domFixed4x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fixed4x4" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemFixed4x4) ); + mea->setElementType( domCg_param_type::domFixed4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "surface" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemSurface) ); + mea->setElementType( domCg_surface_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler1D" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemSampler1D) ); + mea->setElementType( domCg_sampler1D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler2D" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemSampler2D) ); + mea->setElementType( domCg_sampler2D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler3D" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemSampler3D) ); + mea->setElementType( domCg_sampler3D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerRECT" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemSamplerRECT) ); + mea->setElementType( domCg_samplerRECT::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerCUBE" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemSamplerCUBE) ); + mea->setElementType( domCg_samplerCUBE::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerDEPTH" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemSamplerDEPTH) ); + mea->setElementType( domCg_samplerDEPTH::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "string" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemString) ); + mea->setElementType( domCg_param_type::domString::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "enum" ); + mea->setOffset( daeOffsetOf(domCg_param_type,elemEnum) ); + mea->setElementType( domCg_param_type::domEnum::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_param_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_param_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_param_type,_CMData), 1); + meta->setElementSize(sizeof(domCg_param_type)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool::create(DAE& dae) +{ + domCg_param_type::domBoolRef ref = new domCg_param_type::domBool(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool" ); + meta->registerClass(domCg_param_type::domBool::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool1::create(DAE& dae) +{ + domCg_param_type::domBool1Ref ref = new domCg_param_type::domBool1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool1" ); + meta->registerClass(domCg_param_type::domBool1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool2::create(DAE& dae) +{ + domCg_param_type::domBool2Ref ref = new domCg_param_type::domBool2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2" ); + meta->registerClass(domCg_param_type::domBool2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool3::create(DAE& dae) +{ + domCg_param_type::domBool3Ref ref = new domCg_param_type::domBool3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3" ); + meta->registerClass(domCg_param_type::domBool3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool4::create(DAE& dae) +{ + domCg_param_type::domBool4Ref ref = new domCg_param_type::domBool4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4" ); + meta->registerClass(domCg_param_type::domBool4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool1x1::create(DAE& dae) +{ + domCg_param_type::domBool1x1Ref ref = new domCg_param_type::domBool1x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool1x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool1x1" ); + meta->registerClass(domCg_param_type::domBool1x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool1x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool1x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool1x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool1x2::create(DAE& dae) +{ + domCg_param_type::domBool1x2Ref ref = new domCg_param_type::domBool1x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool1x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool1x2" ); + meta->registerClass(domCg_param_type::domBool1x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool1x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool1x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool1x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool1x3::create(DAE& dae) +{ + domCg_param_type::domBool1x3Ref ref = new domCg_param_type::domBool1x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool1x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool1x3" ); + meta->registerClass(domCg_param_type::domBool1x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool1x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool1x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool1x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool1x4::create(DAE& dae) +{ + domCg_param_type::domBool1x4Ref ref = new domCg_param_type::domBool1x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool1x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool1x4" ); + meta->registerClass(domCg_param_type::domBool1x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool1x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool1x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool1x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool2x1::create(DAE& dae) +{ + domCg_param_type::domBool2x1Ref ref = new domCg_param_type::domBool2x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool2x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2x1" ); + meta->registerClass(domCg_param_type::domBool2x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool2x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool2x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool2x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool2x2::create(DAE& dae) +{ + domCg_param_type::domBool2x2Ref ref = new domCg_param_type::domBool2x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2x2" ); + meta->registerClass(domCg_param_type::domBool2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool2x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool2x3::create(DAE& dae) +{ + domCg_param_type::domBool2x3Ref ref = new domCg_param_type::domBool2x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool2x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2x3" ); + meta->registerClass(domCg_param_type::domBool2x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool2x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool2x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool2x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool2x4::create(DAE& dae) +{ + domCg_param_type::domBool2x4Ref ref = new domCg_param_type::domBool2x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool2x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2x4" ); + meta->registerClass(domCg_param_type::domBool2x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool2x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool2x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool2x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool3x1::create(DAE& dae) +{ + domCg_param_type::domBool3x1Ref ref = new domCg_param_type::domBool3x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool3x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3x1" ); + meta->registerClass(domCg_param_type::domBool3x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool3x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool3x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool3x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool3x2::create(DAE& dae) +{ + domCg_param_type::domBool3x2Ref ref = new domCg_param_type::domBool3x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool3x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3x2" ); + meta->registerClass(domCg_param_type::domBool3x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool3x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool3x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool3x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool3x3::create(DAE& dae) +{ + domCg_param_type::domBool3x3Ref ref = new domCg_param_type::domBool3x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3x3" ); + meta->registerClass(domCg_param_type::domBool3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool3x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool3x4::create(DAE& dae) +{ + domCg_param_type::domBool3x4Ref ref = new domCg_param_type::domBool3x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool3x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3x4" ); + meta->registerClass(domCg_param_type::domBool3x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool3x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool3x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool3x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool4x1::create(DAE& dae) +{ + domCg_param_type::domBool4x1Ref ref = new domCg_param_type::domBool4x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool4x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4x1" ); + meta->registerClass(domCg_param_type::domBool4x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool4x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool4x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool4x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool4x2::create(DAE& dae) +{ + domCg_param_type::domBool4x2Ref ref = new domCg_param_type::domBool4x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool4x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4x2" ); + meta->registerClass(domCg_param_type::domBool4x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool4x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool4x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool4x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool4x3::create(DAE& dae) +{ + domCg_param_type::domBool4x3Ref ref = new domCg_param_type::domBool4x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool4x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4x3" ); + meta->registerClass(domCg_param_type::domBool4x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool4x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool4x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool4x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domBool4x4::create(DAE& dae) +{ + domCg_param_type::domBool4x4Ref ref = new domCg_param_type::domBool4x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domBool4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4x4" ); + meta->registerClass(domCg_param_type::domBool4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_bool4x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domBool4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domBool4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat::create(DAE& dae) +{ + domCg_param_type::domFloatRef ref = new domCg_param_type::domFloat(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float" ); + meta->registerClass(domCg_param_type::domFloat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat1::create(DAE& dae) +{ + domCg_param_type::domFloat1Ref ref = new domCg_param_type::domFloat1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1" ); + meta->registerClass(domCg_param_type::domFloat1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat2::create(DAE& dae) +{ + domCg_param_type::domFloat2Ref ref = new domCg_param_type::domFloat2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2" ); + meta->registerClass(domCg_param_type::domFloat2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat3::create(DAE& dae) +{ + domCg_param_type::domFloat3Ref ref = new domCg_param_type::domFloat3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3" ); + meta->registerClass(domCg_param_type::domFloat3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat4::create(DAE& dae) +{ + domCg_param_type::domFloat4Ref ref = new domCg_param_type::domFloat4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4" ); + meta->registerClass(domCg_param_type::domFloat4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat1x1::create(DAE& dae) +{ + domCg_param_type::domFloat1x1Ref ref = new domCg_param_type::domFloat1x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat1x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x1" ); + meta->registerClass(domCg_param_type::domFloat1x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float1x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat1x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat1x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat1x2::create(DAE& dae) +{ + domCg_param_type::domFloat1x2Ref ref = new domCg_param_type::domFloat1x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat1x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x2" ); + meta->registerClass(domCg_param_type::domFloat1x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float1x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat1x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat1x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat1x3::create(DAE& dae) +{ + domCg_param_type::domFloat1x3Ref ref = new domCg_param_type::domFloat1x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat1x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x3" ); + meta->registerClass(domCg_param_type::domFloat1x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float1x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat1x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat1x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat1x4::create(DAE& dae) +{ + domCg_param_type::domFloat1x4Ref ref = new domCg_param_type::domFloat1x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat1x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x4" ); + meta->registerClass(domCg_param_type::domFloat1x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float1x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat1x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat1x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat2x1::create(DAE& dae) +{ + domCg_param_type::domFloat2x1Ref ref = new domCg_param_type::domFloat2x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat2x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x1" ); + meta->registerClass(domCg_param_type::domFloat2x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float2x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat2x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat2x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat2x2::create(DAE& dae) +{ + domCg_param_type::domFloat2x2Ref ref = new domCg_param_type::domFloat2x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x2" ); + meta->registerClass(domCg_param_type::domFloat2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float2x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat2x3::create(DAE& dae) +{ + domCg_param_type::domFloat2x3Ref ref = new domCg_param_type::domFloat2x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat2x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x3" ); + meta->registerClass(domCg_param_type::domFloat2x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float2x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat2x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat2x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat2x4::create(DAE& dae) +{ + domCg_param_type::domFloat2x4Ref ref = new domCg_param_type::domFloat2x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat2x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x4" ); + meta->registerClass(domCg_param_type::domFloat2x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float2x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat2x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat2x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat3x1::create(DAE& dae) +{ + domCg_param_type::domFloat3x1Ref ref = new domCg_param_type::domFloat3x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat3x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x1" ); + meta->registerClass(domCg_param_type::domFloat3x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float3x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat3x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat3x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat3x2::create(DAE& dae) +{ + domCg_param_type::domFloat3x2Ref ref = new domCg_param_type::domFloat3x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat3x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x2" ); + meta->registerClass(domCg_param_type::domFloat3x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float3x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat3x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat3x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat3x3::create(DAE& dae) +{ + domCg_param_type::domFloat3x3Ref ref = new domCg_param_type::domFloat3x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x3" ); + meta->registerClass(domCg_param_type::domFloat3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float3x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat3x4::create(DAE& dae) +{ + domCg_param_type::domFloat3x4Ref ref = new domCg_param_type::domFloat3x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat3x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x4" ); + meta->registerClass(domCg_param_type::domFloat3x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float3x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat3x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat3x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat4x1::create(DAE& dae) +{ + domCg_param_type::domFloat4x1Ref ref = new domCg_param_type::domFloat4x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat4x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x1" ); + meta->registerClass(domCg_param_type::domFloat4x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float4x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat4x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat4x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat4x2::create(DAE& dae) +{ + domCg_param_type::domFloat4x2Ref ref = new domCg_param_type::domFloat4x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat4x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x2" ); + meta->registerClass(domCg_param_type::domFloat4x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float4x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat4x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat4x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat4x3::create(DAE& dae) +{ + domCg_param_type::domFloat4x3Ref ref = new domCg_param_type::domFloat4x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat4x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x3" ); + meta->registerClass(domCg_param_type::domFloat4x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float4x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat4x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat4x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFloat4x4::create(DAE& dae) +{ + domCg_param_type::domFloat4x4Ref ref = new domCg_param_type::domFloat4x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFloat4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x4" ); + meta->registerClass(domCg_param_type::domFloat4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_float4x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFloat4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFloat4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt::create(DAE& dae) +{ + domCg_param_type::domIntRef ref = new domCg_param_type::domInt(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int" ); + meta->registerClass(domCg_param_type::domInt::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt1::create(DAE& dae) +{ + domCg_param_type::domInt1Ref ref = new domCg_param_type::domInt1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int1" ); + meta->registerClass(domCg_param_type::domInt1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt2::create(DAE& dae) +{ + domCg_param_type::domInt2Ref ref = new domCg_param_type::domInt2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2" ); + meta->registerClass(domCg_param_type::domInt2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt3::create(DAE& dae) +{ + domCg_param_type::domInt3Ref ref = new domCg_param_type::domInt3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3" ); + meta->registerClass(domCg_param_type::domInt3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt4::create(DAE& dae) +{ + domCg_param_type::domInt4Ref ref = new domCg_param_type::domInt4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4" ); + meta->registerClass(domCg_param_type::domInt4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt1x1::create(DAE& dae) +{ + domCg_param_type::domInt1x1Ref ref = new domCg_param_type::domInt1x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt1x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int1x1" ); + meta->registerClass(domCg_param_type::domInt1x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int1x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt1x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt1x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt1x2::create(DAE& dae) +{ + domCg_param_type::domInt1x2Ref ref = new domCg_param_type::domInt1x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt1x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int1x2" ); + meta->registerClass(domCg_param_type::domInt1x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int1x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt1x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt1x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt1x3::create(DAE& dae) +{ + domCg_param_type::domInt1x3Ref ref = new domCg_param_type::domInt1x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt1x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int1x3" ); + meta->registerClass(domCg_param_type::domInt1x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int1x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt1x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt1x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt1x4::create(DAE& dae) +{ + domCg_param_type::domInt1x4Ref ref = new domCg_param_type::domInt1x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt1x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int1x4" ); + meta->registerClass(domCg_param_type::domInt1x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int1x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt1x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt1x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt2x1::create(DAE& dae) +{ + domCg_param_type::domInt2x1Ref ref = new domCg_param_type::domInt2x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt2x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2x1" ); + meta->registerClass(domCg_param_type::domInt2x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int2x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt2x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt2x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt2x2::create(DAE& dae) +{ + domCg_param_type::domInt2x2Ref ref = new domCg_param_type::domInt2x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2x2" ); + meta->registerClass(domCg_param_type::domInt2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int2x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt2x3::create(DAE& dae) +{ + domCg_param_type::domInt2x3Ref ref = new domCg_param_type::domInt2x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt2x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2x3" ); + meta->registerClass(domCg_param_type::domInt2x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int2x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt2x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt2x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt2x4::create(DAE& dae) +{ + domCg_param_type::domInt2x4Ref ref = new domCg_param_type::domInt2x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt2x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2x4" ); + meta->registerClass(domCg_param_type::domInt2x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int2x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt2x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt2x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt3x1::create(DAE& dae) +{ + domCg_param_type::domInt3x1Ref ref = new domCg_param_type::domInt3x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt3x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3x1" ); + meta->registerClass(domCg_param_type::domInt3x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int3x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt3x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt3x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt3x2::create(DAE& dae) +{ + domCg_param_type::domInt3x2Ref ref = new domCg_param_type::domInt3x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt3x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3x2" ); + meta->registerClass(domCg_param_type::domInt3x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int3x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt3x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt3x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt3x3::create(DAE& dae) +{ + domCg_param_type::domInt3x3Ref ref = new domCg_param_type::domInt3x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3x3" ); + meta->registerClass(domCg_param_type::domInt3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int3x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt3x4::create(DAE& dae) +{ + domCg_param_type::domInt3x4Ref ref = new domCg_param_type::domInt3x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt3x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3x4" ); + meta->registerClass(domCg_param_type::domInt3x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int3x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt3x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt3x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt4x1::create(DAE& dae) +{ + domCg_param_type::domInt4x1Ref ref = new domCg_param_type::domInt4x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt4x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4x1" ); + meta->registerClass(domCg_param_type::domInt4x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int4x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt4x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt4x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt4x2::create(DAE& dae) +{ + domCg_param_type::domInt4x2Ref ref = new domCg_param_type::domInt4x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt4x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4x2" ); + meta->registerClass(domCg_param_type::domInt4x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int4x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt4x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt4x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt4x3::create(DAE& dae) +{ + domCg_param_type::domInt4x3Ref ref = new domCg_param_type::domInt4x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt4x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4x3" ); + meta->registerClass(domCg_param_type::domInt4x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int4x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt4x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt4x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domInt4x4::create(DAE& dae) +{ + domCg_param_type::domInt4x4Ref ref = new domCg_param_type::domInt4x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domInt4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4x4" ); + meta->registerClass(domCg_param_type::domInt4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_int4x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domInt4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domInt4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf::create(DAE& dae) +{ + domCg_param_type::domHalfRef ref = new domCg_param_type::domHalf(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half" ); + meta->registerClass(domCg_param_type::domHalf::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf1::create(DAE& dae) +{ + domCg_param_type::domHalf1Ref ref = new domCg_param_type::domHalf1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half1" ); + meta->registerClass(domCg_param_type::domHalf1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf2::create(DAE& dae) +{ + domCg_param_type::domHalf2Ref ref = new domCg_param_type::domHalf2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half2" ); + meta->registerClass(domCg_param_type::domHalf2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf3::create(DAE& dae) +{ + domCg_param_type::domHalf3Ref ref = new domCg_param_type::domHalf3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half3" ); + meta->registerClass(domCg_param_type::domHalf3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf4::create(DAE& dae) +{ + domCg_param_type::domHalf4Ref ref = new domCg_param_type::domHalf4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half4" ); + meta->registerClass(domCg_param_type::domHalf4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf1x1::create(DAE& dae) +{ + domCg_param_type::domHalf1x1Ref ref = new domCg_param_type::domHalf1x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf1x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half1x1" ); + meta->registerClass(domCg_param_type::domHalf1x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half1x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf1x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf1x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf1x2::create(DAE& dae) +{ + domCg_param_type::domHalf1x2Ref ref = new domCg_param_type::domHalf1x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf1x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half1x2" ); + meta->registerClass(domCg_param_type::domHalf1x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half1x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf1x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf1x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf1x3::create(DAE& dae) +{ + domCg_param_type::domHalf1x3Ref ref = new domCg_param_type::domHalf1x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf1x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half1x3" ); + meta->registerClass(domCg_param_type::domHalf1x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half1x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf1x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf1x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf1x4::create(DAE& dae) +{ + domCg_param_type::domHalf1x4Ref ref = new domCg_param_type::domHalf1x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf1x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half1x4" ); + meta->registerClass(domCg_param_type::domHalf1x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half1x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf1x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf1x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf2x1::create(DAE& dae) +{ + domCg_param_type::domHalf2x1Ref ref = new domCg_param_type::domHalf2x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf2x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half2x1" ); + meta->registerClass(domCg_param_type::domHalf2x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half2x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf2x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf2x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf2x2::create(DAE& dae) +{ + domCg_param_type::domHalf2x2Ref ref = new domCg_param_type::domHalf2x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half2x2" ); + meta->registerClass(domCg_param_type::domHalf2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half2x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf2x3::create(DAE& dae) +{ + domCg_param_type::domHalf2x3Ref ref = new domCg_param_type::domHalf2x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf2x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half2x3" ); + meta->registerClass(domCg_param_type::domHalf2x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half2x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf2x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf2x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf2x4::create(DAE& dae) +{ + domCg_param_type::domHalf2x4Ref ref = new domCg_param_type::domHalf2x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf2x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half2x4" ); + meta->registerClass(domCg_param_type::domHalf2x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half2x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf2x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf2x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf3x1::create(DAE& dae) +{ + domCg_param_type::domHalf3x1Ref ref = new domCg_param_type::domHalf3x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf3x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half3x1" ); + meta->registerClass(domCg_param_type::domHalf3x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half3x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf3x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf3x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf3x2::create(DAE& dae) +{ + domCg_param_type::domHalf3x2Ref ref = new domCg_param_type::domHalf3x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf3x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half3x2" ); + meta->registerClass(domCg_param_type::domHalf3x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half3x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf3x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf3x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf3x3::create(DAE& dae) +{ + domCg_param_type::domHalf3x3Ref ref = new domCg_param_type::domHalf3x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half3x3" ); + meta->registerClass(domCg_param_type::domHalf3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half3x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf3x4::create(DAE& dae) +{ + domCg_param_type::domHalf3x4Ref ref = new domCg_param_type::domHalf3x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf3x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half3x4" ); + meta->registerClass(domCg_param_type::domHalf3x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half3x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf3x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf3x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf4x1::create(DAE& dae) +{ + domCg_param_type::domHalf4x1Ref ref = new domCg_param_type::domHalf4x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf4x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half4x1" ); + meta->registerClass(domCg_param_type::domHalf4x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half4x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf4x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf4x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf4x2::create(DAE& dae) +{ + domCg_param_type::domHalf4x2Ref ref = new domCg_param_type::domHalf4x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf4x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half4x2" ); + meta->registerClass(domCg_param_type::domHalf4x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half4x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf4x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf4x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf4x3::create(DAE& dae) +{ + domCg_param_type::domHalf4x3Ref ref = new domCg_param_type::domHalf4x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf4x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half4x3" ); + meta->registerClass(domCg_param_type::domHalf4x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half4x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf4x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf4x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domHalf4x4::create(DAE& dae) +{ + domCg_param_type::domHalf4x4Ref ref = new domCg_param_type::domHalf4x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domHalf4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "half4x4" ); + meta->registerClass(domCg_param_type::domHalf4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_half4x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domHalf4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domHalf4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed::create(DAE& dae) +{ + domCg_param_type::domFixedRef ref = new domCg_param_type::domFixed(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed" ); + meta->registerClass(domCg_param_type::domFixed::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed1::create(DAE& dae) +{ + domCg_param_type::domFixed1Ref ref = new domCg_param_type::domFixed1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed1" ); + meta->registerClass(domCg_param_type::domFixed1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed2::create(DAE& dae) +{ + domCg_param_type::domFixed2Ref ref = new domCg_param_type::domFixed2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed2" ); + meta->registerClass(domCg_param_type::domFixed2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed3::create(DAE& dae) +{ + domCg_param_type::domFixed3Ref ref = new domCg_param_type::domFixed3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed3" ); + meta->registerClass(domCg_param_type::domFixed3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed4::create(DAE& dae) +{ + domCg_param_type::domFixed4Ref ref = new domCg_param_type::domFixed4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed4" ); + meta->registerClass(domCg_param_type::domFixed4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed1x1::create(DAE& dae) +{ + domCg_param_type::domFixed1x1Ref ref = new domCg_param_type::domFixed1x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed1x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed1x1" ); + meta->registerClass(domCg_param_type::domFixed1x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed1x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed1x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed1x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed1x2::create(DAE& dae) +{ + domCg_param_type::domFixed1x2Ref ref = new domCg_param_type::domFixed1x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed1x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed1x2" ); + meta->registerClass(domCg_param_type::domFixed1x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed1x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed1x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed1x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed1x3::create(DAE& dae) +{ + domCg_param_type::domFixed1x3Ref ref = new domCg_param_type::domFixed1x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed1x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed1x3" ); + meta->registerClass(domCg_param_type::domFixed1x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed1x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed1x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed1x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed1x4::create(DAE& dae) +{ + domCg_param_type::domFixed1x4Ref ref = new domCg_param_type::domFixed1x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed1x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed1x4" ); + meta->registerClass(domCg_param_type::domFixed1x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed1x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed1x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed1x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed2x1::create(DAE& dae) +{ + domCg_param_type::domFixed2x1Ref ref = new domCg_param_type::domFixed2x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed2x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed2x1" ); + meta->registerClass(domCg_param_type::domFixed2x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed2x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed2x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed2x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed2x2::create(DAE& dae) +{ + domCg_param_type::domFixed2x2Ref ref = new domCg_param_type::domFixed2x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed2x2" ); + meta->registerClass(domCg_param_type::domFixed2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed2x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed2x3::create(DAE& dae) +{ + domCg_param_type::domFixed2x3Ref ref = new domCg_param_type::domFixed2x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed2x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed2x3" ); + meta->registerClass(domCg_param_type::domFixed2x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed2x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed2x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed2x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed2x4::create(DAE& dae) +{ + domCg_param_type::domFixed2x4Ref ref = new domCg_param_type::domFixed2x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed2x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed2x4" ); + meta->registerClass(domCg_param_type::domFixed2x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed2x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed2x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed2x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed3x1::create(DAE& dae) +{ + domCg_param_type::domFixed3x1Ref ref = new domCg_param_type::domFixed3x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed3x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed3x1" ); + meta->registerClass(domCg_param_type::domFixed3x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed3x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed3x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed3x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed3x2::create(DAE& dae) +{ + domCg_param_type::domFixed3x2Ref ref = new domCg_param_type::domFixed3x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed3x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed3x2" ); + meta->registerClass(domCg_param_type::domFixed3x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed3x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed3x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed3x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed3x3::create(DAE& dae) +{ + domCg_param_type::domFixed3x3Ref ref = new domCg_param_type::domFixed3x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed3x3" ); + meta->registerClass(domCg_param_type::domFixed3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed3x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed3x4::create(DAE& dae) +{ + domCg_param_type::domFixed3x4Ref ref = new domCg_param_type::domFixed3x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed3x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed3x4" ); + meta->registerClass(domCg_param_type::domFixed3x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed3x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed3x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed3x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed4x1::create(DAE& dae) +{ + domCg_param_type::domFixed4x1Ref ref = new domCg_param_type::domFixed4x1(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed4x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed4x1" ); + meta->registerClass(domCg_param_type::domFixed4x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed4x1")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed4x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed4x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed4x2::create(DAE& dae) +{ + domCg_param_type::domFixed4x2Ref ref = new domCg_param_type::domFixed4x2(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed4x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed4x2" ); + meta->registerClass(domCg_param_type::domFixed4x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed4x2")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed4x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed4x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed4x3::create(DAE& dae) +{ + domCg_param_type::domFixed4x3Ref ref = new domCg_param_type::domFixed4x3(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed4x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed4x3" ); + meta->registerClass(domCg_param_type::domFixed4x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed4x3")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed4x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed4x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domFixed4x4::create(DAE& dae) +{ + domCg_param_type::domFixed4x4Ref ref = new domCg_param_type::domFixed4x4(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domFixed4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fixed4x4" ); + meta->registerClass(domCg_param_type::domFixed4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Cg_fixed4x4")); + ma->setOffset( daeOffsetOf( domCg_param_type::domFixed4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domFixed4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domString::create(DAE& dae) +{ + domCg_param_type::domStringRef ref = new domCg_param_type::domString(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domString::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "string" ); + meta->registerClass(domCg_param_type::domString::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domCg_param_type::domString , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domString)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_param_type::domEnum::create(DAE& dae) +{ + domCg_param_type::domEnumRef ref = new domCg_param_type::domEnum(dae); + return ref; +} + + +daeMetaElement * +domCg_param_type::domEnum::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "enum" ); + meta->registerClass(domCg_param_type::domEnum::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gl_enumeration")); + ma->setOffset( daeOffsetOf( domCg_param_type::domEnum , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_param_type::domEnum)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_sampler1D.cpp b/src/1.4/dom/domCg_sampler1D.cpp new file mode 100644 index 0000000..4917ea1 --- /dev/null +++ b/src/1.4/dom/domCg_sampler1D.cpp @@ -0,0 +1,115 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_sampler1D::create(DAE& dae) +{ + domCg_sampler1DRef ref = new domCg_sampler1D(dae); + return ref; +} + + +daeMetaElement * +domCg_sampler1D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_sampler1D" ); + meta->registerClass(domCg_sampler1D::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 8, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCg_sampler1D,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 8 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 8 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCg_sampler1D)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_sampler2D.cpp b/src/1.4/dom/domCg_sampler2D.cpp new file mode 100644 index 0000000..4e3a3e2 --- /dev/null +++ b/src/1.4/dom/domCg_sampler2D.cpp @@ -0,0 +1,121 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_sampler2D::create(DAE& dae) +{ + domCg_sampler2DRef ref = new domCg_sampler2D(dae); + return ref; +} + + +daeMetaElement * +domCg_sampler2D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_sampler2D" ); + meta->registerClass(domCg_sampler2D::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 9, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCg_sampler2D,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCg_sampler2D)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_sampler3D.cpp b/src/1.4/dom/domCg_sampler3D.cpp new file mode 100644 index 0000000..1f53a95 --- /dev/null +++ b/src/1.4/dom/domCg_sampler3D.cpp @@ -0,0 +1,127 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_sampler3D::create(DAE& dae) +{ + domCg_sampler3DRef ref = new domCg_sampler3D(dae); + return ref; +} + + +daeMetaElement * +domCg_sampler3D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_sampler3D" ); + meta->registerClass(domCg_sampler3D::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "wrap_p" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemWrap_p) ); + mea->setElementType( domWrap_p::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 10, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCg_sampler3D,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 10 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 10 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCg_sampler3D)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_samplerCUBE.cpp b/src/1.4/dom/domCg_samplerCUBE.cpp new file mode 100644 index 0000000..6a3ab40 --- /dev/null +++ b/src/1.4/dom/domCg_samplerCUBE.cpp @@ -0,0 +1,127 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_samplerCUBE::create(DAE& dae) +{ + domCg_samplerCUBERef ref = new domCg_samplerCUBE(dae); + return ref; +} + + +daeMetaElement * +domCg_samplerCUBE::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_samplerCUBE" ); + meta->registerClass(domCg_samplerCUBE::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "wrap_p" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemWrap_p) ); + mea->setElementType( domWrap_p::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 10, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCg_samplerCUBE,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 10 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 10 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCg_samplerCUBE)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_samplerDEPTH.cpp b/src/1.4/dom/domCg_samplerDEPTH.cpp new file mode 100644 index 0000000..3db2cbb --- /dev/null +++ b/src/1.4/dom/domCg_samplerDEPTH.cpp @@ -0,0 +1,97 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_samplerDEPTH::create(DAE& dae) +{ + domCg_samplerDEPTHRef ref = new domCg_samplerDEPTH(dae); + return ref; +} + + +daeMetaElement * +domCg_samplerDEPTH::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_samplerDEPTH" ); + meta->registerClass(domCg_samplerDEPTH::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domCg_samplerDEPTH,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domCg_samplerDEPTH,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domCg_samplerDEPTH,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerDEPTH,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerDEPTH,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCg_samplerDEPTH,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCg_samplerDEPTH)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_samplerRECT.cpp b/src/1.4/dom/domCg_samplerRECT.cpp new file mode 100644 index 0000000..11f54fa --- /dev/null +++ b/src/1.4/dom/domCg_samplerRECT.cpp @@ -0,0 +1,121 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_samplerRECT::create(DAE& dae) +{ + domCg_samplerRECTRef ref = new domCg_samplerRECT(dae); + return ref; +} + + +daeMetaElement * +domCg_samplerRECT::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_samplerRECT" ); + meta->registerClass(domCg_samplerRECT::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 9, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCg_samplerRECT,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCg_samplerRECT)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_setarray_type.cpp b/src/1.4/dom/domCg_setarray_type.cpp new file mode 100644 index 0000000..9e86280 --- /dev/null +++ b/src/1.4/dom/domCg_setarray_type.cpp @@ -0,0 +1,89 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_setarray_type::create(DAE& dae) +{ + domCg_setarray_typeRef ref = new domCg_setarray_type(dae); + return ref; +} + + +daeMetaElement * +domCg_setarray_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_setarray_type" ); + meta->registerClass(domCg_setarray_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cg_param_type" ); + mea->setOffset( daeOffsetOf(domCg_setarray_type,elemCg_param_type_array) ); + mea->setElementType( domCg_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domCg_setarray_type,elemArray_array) ); + mea->setElementType( domCg_setarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "usertype" ); + mea->setOffset( daeOffsetOf(domCg_setarray_type,elemUsertype_array) ); + mea->setElementType( domCg_setuser_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_setarray_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_setarray_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_setarray_type,_CMData), 1); + // Add attribute: length + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "length" ); + ma->setType( dae.getAtomicTypes().get("xsPositiveInteger")); + ma->setOffset( daeOffsetOf( domCg_setarray_type , attrLength )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_setarray_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_setparam.cpp b/src/1.4/dom/domCg_setparam.cpp new file mode 100644 index 0000000..932f349 --- /dev/null +++ b/src/1.4/dom/domCg_setparam.cpp @@ -0,0 +1,106 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_setparam::create(DAE& dae) +{ + domCg_setparamRef ref = new domCg_setparam(dae); + return ref; +} + + +daeMetaElement * +domCg_setparam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_setparam" ); + meta->registerClass(domCg_setparam::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cg_param_type" ); + mea->setOffset( daeOffsetOf(domCg_setparam,elemCg_param_type) ); + mea->setElementType( domCg_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "usertype" ); + mea->setOffset( daeOffsetOf(domCg_setparam,elemUsertype) ); + mea->setElementType( domCg_setuser_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domCg_setparam,elemArray) ); + mea->setElementType( domCg_setarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "connect_param" ); + mea->setOffset( daeOffsetOf(domCg_setparam,elemConnect_param) ); + mea->setElementType( domCg_connect_param::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_setparam,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_setparam,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_setparam,_CMData), 1); + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("Cg_identifier")); + ma->setOffset( daeOffsetOf( domCg_setparam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: program + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "program" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCg_setparam , attrProgram )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_setparam)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_setparam_simple.cpp b/src/1.4/dom/domCg_setparam_simple.cpp new file mode 100644 index 0000000..6fd4852 --- /dev/null +++ b/src/1.4/dom/domCg_setparam_simple.cpp @@ -0,0 +1,79 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_setparam_simple::create(DAE& dae) +{ + domCg_setparam_simpleRef ref = new domCg_setparam_simple(dae); + return ref; +} + + +daeMetaElement * +domCg_setparam_simple::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_setparam_simple" ); + meta->registerClass(domCg_setparam_simple::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domCg_setparam_simple,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "cg_param_type" ); + mea->setOffset( daeOffsetOf(domCg_setparam_simple,elemCg_param_type) ); + mea->setElementType( domCg_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 1, 1, 1 ) ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("Cg_identifier")); + ma->setOffset( daeOffsetOf( domCg_setparam_simple , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_setparam_simple)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_setuser_type.cpp b/src/1.4/dom/domCg_setuser_type.cpp new file mode 100644 index 0000000..c716d0b --- /dev/null +++ b/src/1.4/dom/domCg_setuser_type.cpp @@ -0,0 +1,119 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_setuser_type::create(DAE& dae) +{ + domCg_setuser_typeRef ref = new domCg_setuser_type(dae); + return ref; +} + + +daeMetaElement * +domCg_setuser_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_setuser_type" ); + meta->registerClass(domCg_setuser_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 0, 1 ); + + cm = new daeMetaChoice( meta, cm, 1, 0, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cg_param_type" ); + mea->setOffset( daeOffsetOf(domCg_setuser_type,elemCg_param_type_array) ); + mea->setElementType( domCg_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domCg_setuser_type,elemArray_array) ); + mea->setElementType( domCg_setarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "usertype" ); + mea->setOffset( daeOffsetOf(domCg_setuser_type,elemUsertype_array) ); + mea->setElementType( domCg_setuser_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "connect_param" ); + mea->setOffset( daeOffsetOf(domCg_setuser_type,elemConnect_param_array) ); + mea->setElementType( domCg_connect_param::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3001, 1, -1 ); + mea->setName( "setparam" ); + mea->setOffset( daeOffsetOf(domCg_setuser_type,elemSetparam_array) ); + mea->setElementType( domCg_setparam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_setuser_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_setuser_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_setuser_type,_CMData), 2); + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("Cg_identifier")); + ma->setOffset( daeOffsetOf( domCg_setuser_type , attrName )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCg_setuser_type , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_setuser_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCg_surface_type.cpp b/src/1.4/dom/domCg_surface_type.cpp new file mode 100644 index 0000000..e20b824 --- /dev/null +++ b/src/1.4/dom/domCg_surface_type.cpp @@ -0,0 +1,264 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCg_surface_type::create(DAE& dae) +{ + domCg_surface_typeRef ref = new domCg_surface_type(dae); + return ref; +} + + +daeMetaElement * +domCg_surface_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cg_surface_type" ); + meta->registerClass(domCg_surface_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "fx_surface_init_common" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemFx_surface_init_common) ); + mea->setElementType( domFx_surface_init_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 0, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "format" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemFormat) ); + mea->setElementType( domFormat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "format_hint" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemFormat_hint) ); + mea->setElementType( domFx_surface_format_hint_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 3, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "size" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemSize) ); + mea->setElementType( domSize::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "viewport_ratio" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemViewport_ratio) ); + mea->setElementType( domViewport_ratio::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mip_levels" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemMip_levels) ); + mea->setElementType( domMip_levels::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipmap_generate" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemMipmap_generate) ); + mea->setElementType( domMipmap_generate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 6 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaSequence( meta, cm, 7, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "generator" ); + mea->setOffset( daeOffsetOf(domCg_surface_type,elemGenerator) ); + mea->setElementType( domGenerator::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 7 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_surface_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_surface_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_surface_type,_CMData), 1); + // Add attribute: type + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "type" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_type_enum")); + ma->setOffset( daeOffsetOf( domCg_surface_type , attrType )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_surface_type)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_surface_type::domGenerator::create(DAE& dae) +{ + domCg_surface_type::domGeneratorRef ref = new domCg_surface_type::domGenerator(dae); + return ref; +} + + +daeMetaElement * +domCg_surface_type::domGenerator::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "generator" ); + meta->registerClass(domCg_surface_type::domGenerator::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domCg_surface_type::domGenerator,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "code" ); + mea->setOffset( daeOffsetOf(domCg_surface_type::domGenerator,elemCode_array) ); + mea->setElementType( domFx_code_profile::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "include" ); + mea->setOffset( daeOffsetOf(domCg_surface_type::domGenerator,elemInclude_array) ); + mea->setElementType( domFx_include_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 3002, 1, 1 ); + mea->setName( "name" ); + mea->setOffset( daeOffsetOf(domCg_surface_type::domGenerator,elemName) ); + mea->setElementType( domCg_surface_type::domGenerator::domName::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "setparam" ); + mea->setOffset( daeOffsetOf(domCg_surface_type::domGenerator,elemSetparam_array) ); + mea->setElementType( domCg_setparam_simple::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCg_surface_type::domGenerator,_contents)); + meta->addContentsOrder(daeOffsetOf(domCg_surface_type::domGenerator,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCg_surface_type::domGenerator,_CMData), 1); + meta->setElementSize(sizeof(domCg_surface_type::domGenerator)); + meta->validate(); + + return meta; +} + +daeElementRef +domCg_surface_type::domGenerator::domName::create(DAE& dae) +{ + domCg_surface_type::domGenerator::domNameRef ref = new domCg_surface_type::domGenerator::domName(dae); + return ref; +} + + +daeMetaElement * +domCg_surface_type::domGenerator::domName::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "name" ); + meta->registerClass(domCg_surface_type::domGenerator::domName::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCg_surface_type::domGenerator::domName , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCg_surface_type::domGenerator::domName , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCg_surface_type::domGenerator::domName)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domChannel.cpp b/src/1.4/dom/domChannel.cpp new file mode 100644 index 0000000..c13704c --- /dev/null +++ b/src/1.4/dom/domChannel.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domChannel::create(DAE& dae) +{ + domChannelRef ref = new domChannel(dae); + return ref; +} + + +daeMetaElement * +domChannel::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "channel" ); + meta->registerClass(domChannel::create); + + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("URIFragmentType")); + ma->setOffset( daeOffsetOf( domChannel , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: target + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "target" ); + ma->setType( dae.getAtomicTypes().get("xsToken")); + ma->setOffset( daeOffsetOf( domChannel , attrTarget )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domChannel)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCommon_color_or_texture_type.cpp b/src/1.4/dom/domCommon_color_or_texture_type.cpp new file mode 100644 index 0000000..98dfd50 --- /dev/null +++ b/src/1.4/dom/domCommon_color_or_texture_type.cpp @@ -0,0 +1,226 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCommon_color_or_texture_type::create(DAE& dae) +{ + domCommon_color_or_texture_typeRef ref = new domCommon_color_or_texture_type(dae); + return ref; +} + + +daeMetaElement * +domCommon_color_or_texture_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "common_color_or_texture_type" ); + meta->registerClass(domCommon_color_or_texture_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color" ); + mea->setOffset( daeOffsetOf(domCommon_color_or_texture_type,elemColor) ); + mea->setElementType( domCommon_color_or_texture_type::domColor::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domCommon_color_or_texture_type,elemParam) ); + mea->setElementType( domCommon_color_or_texture_type::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture" ); + mea->setOffset( daeOffsetOf(domCommon_color_or_texture_type,elemTexture) ); + mea->setElementType( domCommon_color_or_texture_type::domTexture::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCommon_color_or_texture_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCommon_color_or_texture_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCommon_color_or_texture_type,_CMData), 1); + meta->setElementSize(sizeof(domCommon_color_or_texture_type)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_color_or_texture_type::domColor::create(DAE& dae) +{ + domCommon_color_or_texture_type::domColorRef ref = new domCommon_color_or_texture_type::domColor(dae); + return ref; +} + + +daeMetaElement * +domCommon_color_or_texture_type::domColor::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color" ); + meta->registerClass(domCommon_color_or_texture_type::domColor::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domCommon_color_or_texture_type::domColor , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_color_or_texture_type::domColor , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_color_or_texture_type::domColor)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_color_or_texture_type::domParam::create(DAE& dae) +{ + domCommon_color_or_texture_type::domParamRef ref = new domCommon_color_or_texture_type::domParam(dae); + return ref; +} + + +daeMetaElement * +domCommon_color_or_texture_type::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domCommon_color_or_texture_type::domParam::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_color_or_texture_type::domParam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_color_or_texture_type::domParam)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_color_or_texture_type::domTexture::create(DAE& dae) +{ + domCommon_color_or_texture_type::domTextureRef ref = new domCommon_color_or_texture_type::domTexture(dae); + return ref; +} + + +daeMetaElement * +domCommon_color_or_texture_type::domTexture::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture" ); + meta->registerClass(domCommon_color_or_texture_type::domTexture::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCommon_color_or_texture_type::domTexture,elemExtra) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: texture + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "texture" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_color_or_texture_type::domTexture , attrTexture )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: texcoord + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "texcoord" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_color_or_texture_type::domTexture , attrTexcoord )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_color_or_texture_type::domTexture)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCommon_float_or_param_type.cpp b/src/1.4/dom/domCommon_float_or_param_type.cpp new file mode 100644 index 0000000..1aa28e0 --- /dev/null +++ b/src/1.4/dom/domCommon_float_or_param_type.cpp @@ -0,0 +1,157 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCommon_float_or_param_type::create(DAE& dae) +{ + domCommon_float_or_param_typeRef ref = new domCommon_float_or_param_type(dae); + return ref; +} + + +daeMetaElement * +domCommon_float_or_param_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "common_float_or_param_type" ); + meta->registerClass(domCommon_float_or_param_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float" ); + mea->setOffset( daeOffsetOf(domCommon_float_or_param_type,elemFloat) ); + mea->setElementType( domCommon_float_or_param_type::domFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domCommon_float_or_param_type,elemParam) ); + mea->setElementType( domCommon_float_or_param_type::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCommon_float_or_param_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCommon_float_or_param_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCommon_float_or_param_type,_CMData), 1); + meta->setElementSize(sizeof(domCommon_float_or_param_type)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_float_or_param_type::domFloat::create(DAE& dae) +{ + domCommon_float_or_param_type::domFloatRef ref = new domCommon_float_or_param_type::domFloat(dae); + return ref; +} + + +daeMetaElement * +domCommon_float_or_param_type::domFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float" ); + meta->registerClass(domCommon_float_or_param_type::domFloat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domCommon_float_or_param_type::domFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_float_or_param_type::domFloat , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_float_or_param_type::domFloat)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_float_or_param_type::domParam::create(DAE& dae) +{ + domCommon_float_or_param_type::domParamRef ref = new domCommon_float_or_param_type::domParam(dae); + return ref; +} + + +daeMetaElement * +domCommon_float_or_param_type::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domCommon_float_or_param_type::domParam::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_float_or_param_type::domParam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_float_or_param_type::domParam)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCommon_newparam_type.cpp b/src/1.4/dom/domCommon_newparam_type.cpp new file mode 100644 index 0000000..7ae313f --- /dev/null +++ b/src/1.4/dom/domCommon_newparam_type.cpp @@ -0,0 +1,299 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCommon_newparam_type::create(DAE& dae) +{ + domCommon_newparam_typeRef ref = new domCommon_newparam_type(dae); + return ref; +} + + +daeMetaElement * +domCommon_newparam_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "common_newparam_type" ); + meta->registerClass(domCommon_newparam_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "semantic" ); + mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemSemantic) ); + mea->setElementType( domCommon_newparam_type::domSemantic::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float" ); + mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat) ); + mea->setElementType( domCommon_newparam_type::domFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2" ); + mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat2) ); + mea->setElementType( domCommon_newparam_type::domFloat2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3" ); + mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat3) ); + mea->setElementType( domCommon_newparam_type::domFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4" ); + mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemFloat4) ); + mea->setElementType( domCommon_newparam_type::domFloat4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "surface" ); + mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemSurface) ); + mea->setElementType( domFx_surface_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler2D" ); + mea->setOffset( daeOffsetOf(domCommon_newparam_type,elemSampler2D) ); + mea->setElementType( domFx_sampler2D_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCommon_newparam_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCommon_newparam_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCommon_newparam_type,_CMData), 1); + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_newparam_type , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_newparam_type)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_newparam_type::domSemantic::create(DAE& dae) +{ + domCommon_newparam_type::domSemanticRef ref = new domCommon_newparam_type::domSemantic(dae); + return ref; +} + + +daeMetaElement * +domCommon_newparam_type::domSemantic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "semantic" ); + meta->registerClass(domCommon_newparam_type::domSemantic::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domCommon_newparam_type::domSemantic , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_newparam_type::domSemantic)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_newparam_type::domFloat::create(DAE& dae) +{ + domCommon_newparam_type::domFloatRef ref = new domCommon_newparam_type::domFloat(dae); + return ref; +} + + +daeMetaElement * +domCommon_newparam_type::domFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float" ); + meta->registerClass(domCommon_newparam_type::domFloat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_newparam_type::domFloat)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_newparam_type::domFloat2::create(DAE& dae) +{ + domCommon_newparam_type::domFloat2Ref ref = new domCommon_newparam_type::domFloat2(dae); + return ref; +} + + +daeMetaElement * +domCommon_newparam_type::domFloat2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2" ); + meta->registerClass(domCommon_newparam_type::domFloat2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_newparam_type::domFloat2)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_newparam_type::domFloat3::create(DAE& dae) +{ + domCommon_newparam_type::domFloat3Ref ref = new domCommon_newparam_type::domFloat3(dae); + return ref; +} + + +daeMetaElement * +domCommon_newparam_type::domFloat3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3" ); + meta->registerClass(domCommon_newparam_type::domFloat3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_newparam_type::domFloat3)); + meta->validate(); + + return meta; +} + +daeElementRef +domCommon_newparam_type::domFloat4::create(DAE& dae) +{ + domCommon_newparam_type::domFloat4Ref ref = new domCommon_newparam_type::domFloat4(dae); + return ref; +} + + +daeMetaElement * +domCommon_newparam_type::domFloat4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4" ); + meta->registerClass(domCommon_newparam_type::domFloat4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domCommon_newparam_type::domFloat4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_newparam_type::domFloat4)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCommon_transparent_type.cpp b/src/1.4/dom/domCommon_transparent_type.cpp new file mode 100644 index 0000000..74e0b06 --- /dev/null +++ b/src/1.4/dom/domCommon_transparent_type.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCommon_transparent_type::create(DAE& dae) +{ + domCommon_transparent_typeRef ref = new domCommon_transparent_type(dae); + return ref; +} + + +daeMetaElement * +domCommon_transparent_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "common_transparent_type" ); + meta->registerClass(domCommon_transparent_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color" ); + mea->setOffset( daeOffsetOf(domCommon_transparent_type,elemColor) ); + mea->setElementType( domColor::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domCommon_transparent_type,elemParam) ); + mea->setElementType( domParam::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture" ); + mea->setOffset( daeOffsetOf(domCommon_transparent_type,elemTexture) ); + mea->setElementType( domTexture::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domCommon_transparent_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domCommon_transparent_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domCommon_transparent_type,_CMData), 1); + // Add attribute: opaque + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "opaque" ); + ma->setType( dae.getAtomicTypes().get("Fx_opaque_enum")); + ma->setOffset( daeOffsetOf( domCommon_transparent_type , attrOpaque )); + ma->setContainer( meta ); + ma->setDefaultString( "A_ONE"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCommon_transparent_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domConstants.cpp b/src/1.4/dom/domConstants.cpp new file mode 100644 index 0000000..7c14446 --- /dev/null +++ b/src/1.4/dom/domConstants.cpp @@ -0,0 +1,1088 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include + +DLLSPEC daeString COLLADA_VERSION = "1.4.1"; +DLLSPEC daeString COLLADA_NAMESPACE = "http://www.collada.org/2005/11/COLLADASchema"; + +DLLSPEC daeString COMMON_PROFILE_INPUT_BINORMAL = "BINORMAL"; +DLLSPEC daeString COMMON_PROFILE_INPUT_COLOR = "COLOR"; +DLLSPEC daeString COMMON_PROFILE_INPUT_CONTINUITY = "CONTINUITY"; +DLLSPEC daeString COMMON_PROFILE_INPUT_IMAGE = "IMAGE"; +DLLSPEC daeString COMMON_PROFILE_INPUT_IN_TANGENT = "IN_TANGENT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_INPUT = "INPUT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_INTERPOLATION = "INTERPOLATION"; +DLLSPEC daeString COMMON_PROFILE_INPUT_INV_BIND_MATRIX = "INV_BIND_MATRIX"; +DLLSPEC daeString COMMON_PROFILE_INPUT_JOINT = "JOINT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_LINEAR_STEPS = "LINEAR_STEPS"; +DLLSPEC daeString COMMON_PROFILE_INPUT_MORPH_TARGET = "MORPH_TARGET"; +DLLSPEC daeString COMMON_PROFILE_INPUT_MORPH_WEIGHT = "MORPH_WEIGHT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_NORMAL = "NORMAL"; +DLLSPEC daeString COMMON_PROFILE_INPUT_OUTPUT = "OUTPUT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_OUT_TANGENT = "OUT_TANGENT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_POSITION = "POSITION"; +DLLSPEC daeString COMMON_PROFILE_INPUT_TANGENT = "TANGENT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_TEXBINORMAL = "TEXBINORMAL"; +DLLSPEC daeString COMMON_PROFILE_INPUT_TEXCOORD = "TEXCOORD"; +DLLSPEC daeString COMMON_PROFILE_INPUT_TEXTANGENT = "TEXTANGENT"; +DLLSPEC daeString COMMON_PROFILE_INPUT_UV = "UV"; +DLLSPEC daeString COMMON_PROFILE_INPUT_VERTEX = "VERTEX"; +DLLSPEC daeString COMMON_PROFILE_INPUT_WEIGHT = "WEIGHT"; + +DLLSPEC daeString COMMON_PROFILE_PARAM_A = "A"; +DLLSPEC daeString COMMON_PROFILE_PARAM_ANGLE = "ANGLE"; +DLLSPEC daeString COMMON_PROFILE_PARAM_B = "B"; +DLLSPEC daeString COMMON_PROFILE_PARAM_DOUBLE_SIDED = "DOUBLE_SIDED"; +DLLSPEC daeString COMMON_PROFILE_PARAM_G = "G"; +DLLSPEC daeString COMMON_PROFILE_PARAM_P = "P"; +DLLSPEC daeString COMMON_PROFILE_PARAM_Q = "Q"; +DLLSPEC daeString COMMON_PROFILE_PARAM_R = "R"; +DLLSPEC daeString COMMON_PROFILE_PARAM_S = "S"; +DLLSPEC daeString COMMON_PROFILE_PARAM_T = "T"; +DLLSPEC daeString COMMON_PROFILE_PARAM_TIME = "TIME"; +DLLSPEC daeString COMMON_PROFILE_PARAM_U = "U"; +DLLSPEC daeString COMMON_PROFILE_PARAM_V = "V"; +DLLSPEC daeString COMMON_PROFILE_PARAM_W = "W"; +DLLSPEC daeString COMMON_PROFILE_PARAM_X = "X"; +DLLSPEC daeString COMMON_PROFILE_PARAM_Y = "Y"; +DLLSPEC daeString COMMON_PROFILE_PARAM_Z = "Z"; + + +DLLSPEC daeString COLLADA_TYPE_INPUTGLOBAL = "InputGlobal"; +DLLSPEC daeString COLLADA_TYPE_INPUTLOCAL = "InputLocal"; +DLLSPEC daeString COLLADA_TYPE_INPUTLOCALOFFSET = "InputLocalOffset"; +DLLSPEC daeString COLLADA_TYPE_INSTANCEWITHEXTRA = "InstanceWithExtra"; +DLLSPEC daeString COLLADA_TYPE_TARGETABLEFLOAT = "TargetableFloat"; +DLLSPEC daeString COLLADA_TYPE_TARGETABLEFLOAT3 = "TargetableFloat3"; +DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_FORMAT_HINT_COMMON = "fx_surface_format_hint_common"; +DLLSPEC daeString COLLADA_TYPE_CHANNELS = "channels"; +DLLSPEC daeString COLLADA_TYPE_RANGE = "range"; +DLLSPEC daeString COLLADA_TYPE_PRECISION = "precision"; +DLLSPEC daeString COLLADA_TYPE_OPTION = "option"; +DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_PLANAR_COMMON = "fx_surface_init_planar_common"; +DLLSPEC daeString COLLADA_TYPE_ALL = "all"; +DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_VOLUME_COMMON = "fx_surface_init_volume_common"; +DLLSPEC daeString COLLADA_TYPE_PRIMARY = "primary"; +DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_CUBE_COMMON = "fx_surface_init_cube_common"; +DLLSPEC daeString COLLADA_TYPE_ORDER = "order"; +DLLSPEC daeString COLLADA_TYPE_FACE = "face"; +DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_FROM_COMMON = "fx_surface_init_from_common"; +DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_COMMON = "fx_surface_common"; +DLLSPEC daeString COLLADA_TYPE_FORMAT = "format"; +DLLSPEC daeString COLLADA_TYPE_SIZE = "size"; +DLLSPEC daeString COLLADA_TYPE_VIEWPORT_RATIO = "viewport_ratio"; +DLLSPEC daeString COLLADA_TYPE_MIP_LEVELS = "mip_levels"; +DLLSPEC daeString COLLADA_TYPE_MIPMAP_GENERATE = "mipmap_generate"; +DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER1D_COMMON = "fx_sampler1D_common"; +DLLSPEC daeString COLLADA_TYPE_SOURCE = "source"; +DLLSPEC daeString COLLADA_TYPE_WRAP_S = "wrap_s"; +DLLSPEC daeString COLLADA_TYPE_MINFILTER = "minfilter"; +DLLSPEC daeString COLLADA_TYPE_MAGFILTER = "magfilter"; +DLLSPEC daeString COLLADA_TYPE_MIPFILTER = "mipfilter"; +DLLSPEC daeString COLLADA_TYPE_BORDER_COLOR = "border_color"; +DLLSPEC daeString COLLADA_TYPE_MIPMAP_MAXLEVEL = "mipmap_maxlevel"; +DLLSPEC daeString COLLADA_TYPE_MIPMAP_BIAS = "mipmap_bias"; +DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER2D_COMMON = "fx_sampler2D_common"; +DLLSPEC daeString COLLADA_TYPE_WRAP_T = "wrap_t"; +DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER3D_COMMON = "fx_sampler3D_common"; +DLLSPEC daeString COLLADA_TYPE_WRAP_P = "wrap_p"; +DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERCUBE_COMMON = "fx_samplerCUBE_common"; +DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERRECT_COMMON = "fx_samplerRECT_common"; +DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERDEPTH_COMMON = "fx_samplerDEPTH_common"; +DLLSPEC daeString COLLADA_TYPE_FX_COLORTARGET_COMMON = "fx_colortarget_common"; +DLLSPEC daeString COLLADA_TYPE_FX_DEPTHTARGET_COMMON = "fx_depthtarget_common"; +DLLSPEC daeString COLLADA_TYPE_FX_STENCILTARGET_COMMON = "fx_stenciltarget_common"; +DLLSPEC daeString COLLADA_TYPE_FX_CLEARCOLOR_COMMON = "fx_clearcolor_common"; +DLLSPEC daeString COLLADA_TYPE_FX_CLEARDEPTH_COMMON = "fx_cleardepth_common"; +DLLSPEC daeString COLLADA_TYPE_FX_CLEARSTENCIL_COMMON = "fx_clearstencil_common"; +DLLSPEC daeString COLLADA_TYPE_FX_ANNOTATE_COMMON = "fx_annotate_common"; +DLLSPEC daeString COLLADA_TYPE_FX_INCLUDE_COMMON = "fx_include_common"; +DLLSPEC daeString COLLADA_TYPE_FX_NEWPARAM_COMMON = "fx_newparam_common"; +DLLSPEC daeString COLLADA_TYPE_SEMANTIC = "semantic"; +DLLSPEC daeString COLLADA_TYPE_MODIFIER = "modifier"; +DLLSPEC daeString COLLADA_TYPE_FX_CODE_PROFILE = "fx_code_profile"; +DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER1D = "gl_sampler1D"; +DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER2D = "gl_sampler2D"; +DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER3D = "gl_sampler3D"; +DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERCUBE = "gl_samplerCUBE"; +DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERRECT = "gl_samplerRECT"; +DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERDEPTH = "gl_samplerDEPTH"; +DLLSPEC daeString COLLADA_TYPE_GLSL_NEWARRAY_TYPE = "glsl_newarray_type"; +DLLSPEC daeString COLLADA_TYPE_GLSL_SETARRAY_TYPE = "glsl_setarray_type"; +DLLSPEC daeString COLLADA_TYPE_GLSL_SURFACE_TYPE = "glsl_surface_type"; +DLLSPEC daeString COLLADA_TYPE_GENERATOR = "generator"; +DLLSPEC daeString COLLADA_TYPE_NAME = "name"; +DLLSPEC daeString COLLADA_TYPE_GLSL_NEWPARAM = "glsl_newparam"; +DLLSPEC daeString COLLADA_TYPE_GLSL_SETPARAM_SIMPLE = "glsl_setparam_simple"; +DLLSPEC daeString COLLADA_TYPE_GLSL_SETPARAM = "glsl_setparam"; +DLLSPEC daeString COLLADA_TYPE_COMMON_FLOAT_OR_PARAM_TYPE = "common_float_or_param_type"; +DLLSPEC daeString COLLADA_TYPE_FLOAT = "float"; +DLLSPEC daeString COLLADA_TYPE_PARAM = "param"; +DLLSPEC daeString COLLADA_TYPE_COMMON_COLOR_OR_TEXTURE_TYPE = "common_color_or_texture_type"; +DLLSPEC daeString COLLADA_TYPE_COLOR = "color"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE = "texture"; +DLLSPEC daeString COLLADA_TYPE_COMMON_TRANSPARENT_TYPE = "common_transparent_type"; +DLLSPEC daeString COLLADA_TYPE_COMMON_NEWPARAM_TYPE = "common_newparam_type"; +DLLSPEC daeString COLLADA_TYPE_FLOAT2 = "float2"; +DLLSPEC daeString COLLADA_TYPE_FLOAT3 = "float3"; +DLLSPEC daeString COLLADA_TYPE_FLOAT4 = "float4"; +DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER1D = "cg_sampler1D"; +DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER2D = "cg_sampler2D"; +DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER3D = "cg_sampler3D"; +DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERCUBE = "cg_samplerCUBE"; +DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERRECT = "cg_samplerRECT"; +DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERDEPTH = "cg_samplerDEPTH"; +DLLSPEC daeString COLLADA_TYPE_CG_CONNECT_PARAM = "cg_connect_param"; +DLLSPEC daeString COLLADA_TYPE_CG_NEWARRAY_TYPE = "cg_newarray_type"; +DLLSPEC daeString COLLADA_TYPE_CG_SETARRAY_TYPE = "cg_setarray_type"; +DLLSPEC daeString COLLADA_TYPE_CG_SETUSER_TYPE = "cg_setuser_type"; +DLLSPEC daeString COLLADA_TYPE_CG_SURFACE_TYPE = "cg_surface_type"; +DLLSPEC daeString COLLADA_TYPE_CG_NEWPARAM = "cg_newparam"; +DLLSPEC daeString COLLADA_TYPE_CG_SETPARAM_SIMPLE = "cg_setparam_simple"; +DLLSPEC daeString COLLADA_TYPE_CG_SETPARAM = "cg_setparam"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_CONSTANT_TYPE = "gles_texture_constant_type"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXENV_COMMAND_TYPE = "gles_texenv_command_type"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_ARGUMENTRGB_TYPE = "gles_texcombiner_argumentRGB_type"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_ARGUMENTALPHA_TYPE = "gles_texcombiner_argumentAlpha_type"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMANDRGB_TYPE = "gles_texcombiner_commandRGB_type"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMANDALPHA_TYPE = "gles_texcombiner_commandAlpha_type"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMAND_TYPE = "gles_texcombiner_command_type"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_PIPELINE = "gles_texture_pipeline"; +DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_UNIT = "gles_texture_unit"; +DLLSPEC daeString COLLADA_TYPE_SURFACE = "surface"; +DLLSPEC daeString COLLADA_TYPE_SAMPLER_STATE = "sampler_state"; +DLLSPEC daeString COLLADA_TYPE_TEXCOORD = "texcoord"; +DLLSPEC daeString COLLADA_TYPE_GLES_SAMPLER_STATE = "gles_sampler_state"; +DLLSPEC daeString COLLADA_TYPE_GLES_NEWPARAM = "gles_newparam"; +DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_COMMON = "fx_surface_init_common"; +DLLSPEC daeString COLLADA_TYPE_INIT_AS_NULL = "init_as_null"; +DLLSPEC daeString COLLADA_TYPE_INIT_AS_TARGET = "init_as_target"; +DLLSPEC daeString COLLADA_TYPE_FX_ANNOTATE_TYPE_COMMON = "fx_annotate_type_common"; +DLLSPEC daeString COLLADA_TYPE_BOOL = "bool"; +DLLSPEC daeString COLLADA_TYPE_BOOL2 = "bool2"; +DLLSPEC daeString COLLADA_TYPE_BOOL3 = "bool3"; +DLLSPEC daeString COLLADA_TYPE_BOOL4 = "bool4"; +DLLSPEC daeString COLLADA_TYPE_INT = "int"; +DLLSPEC daeString COLLADA_TYPE_INT2 = "int2"; +DLLSPEC daeString COLLADA_TYPE_INT3 = "int3"; +DLLSPEC daeString COLLADA_TYPE_INT4 = "int4"; +DLLSPEC daeString COLLADA_TYPE_FLOAT2X2 = "float2x2"; +DLLSPEC daeString COLLADA_TYPE_FLOAT3X3 = "float3x3"; +DLLSPEC daeString COLLADA_TYPE_FLOAT4X4 = "float4x4"; +DLLSPEC daeString COLLADA_TYPE_STRING = "string"; +DLLSPEC daeString COLLADA_TYPE_FX_BASIC_TYPE_COMMON = "fx_basic_type_common"; +DLLSPEC daeString COLLADA_TYPE_FLOAT1X1 = "float1x1"; +DLLSPEC daeString COLLADA_TYPE_FLOAT1X2 = "float1x2"; +DLLSPEC daeString COLLADA_TYPE_FLOAT1X3 = "float1x3"; +DLLSPEC daeString COLLADA_TYPE_FLOAT1X4 = "float1x4"; +DLLSPEC daeString COLLADA_TYPE_FLOAT2X1 = "float2x1"; +DLLSPEC daeString COLLADA_TYPE_FLOAT2X3 = "float2x3"; +DLLSPEC daeString COLLADA_TYPE_FLOAT2X4 = "float2x4"; +DLLSPEC daeString COLLADA_TYPE_FLOAT3X1 = "float3x1"; +DLLSPEC daeString COLLADA_TYPE_FLOAT3X2 = "float3x2"; +DLLSPEC daeString COLLADA_TYPE_FLOAT3X4 = "float3x4"; +DLLSPEC daeString COLLADA_TYPE_FLOAT4X1 = "float4x1"; +DLLSPEC daeString COLLADA_TYPE_FLOAT4X2 = "float4x2"; +DLLSPEC daeString COLLADA_TYPE_FLOAT4X3 = "float4x3"; +DLLSPEC daeString COLLADA_TYPE_ENUM = "enum"; +DLLSPEC daeString COLLADA_TYPE_GL_PIPELINE_SETTINGS = "gl_pipeline_settings"; +DLLSPEC daeString COLLADA_TYPE_ALPHA_FUNC = "alpha_func"; +DLLSPEC daeString COLLADA_TYPE_FUNC = "func"; +DLLSPEC daeString COLLADA_TYPE_VALUE = "value"; +DLLSPEC daeString COLLADA_TYPE_BLEND_FUNC = "blend_func"; +DLLSPEC daeString COLLADA_TYPE_SRC = "src"; +DLLSPEC daeString COLLADA_TYPE_DEST = "dest"; +DLLSPEC daeString COLLADA_TYPE_BLEND_FUNC_SEPARATE = "blend_func_separate"; +DLLSPEC daeString COLLADA_TYPE_SRC_RGB = "src_rgb"; +DLLSPEC daeString COLLADA_TYPE_DEST_RGB = "dest_rgb"; +DLLSPEC daeString COLLADA_TYPE_SRC_ALPHA = "src_alpha"; +DLLSPEC daeString COLLADA_TYPE_DEST_ALPHA = "dest_alpha"; +DLLSPEC daeString COLLADA_TYPE_BLEND_EQUATION = "blend_equation"; +DLLSPEC daeString COLLADA_TYPE_BLEND_EQUATION_SEPARATE = "blend_equation_separate"; +DLLSPEC daeString COLLADA_TYPE_RGB = "rgb"; +DLLSPEC daeString COLLADA_TYPE_ALPHA = "alpha"; +DLLSPEC daeString COLLADA_TYPE_COLOR_MATERIAL = "color_material"; +DLLSPEC daeString COLLADA_TYPE_MODE = "mode"; +DLLSPEC daeString COLLADA_TYPE_CULL_FACE = "cull_face"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_FUNC = "depth_func"; +DLLSPEC daeString COLLADA_TYPE_FOG_MODE = "fog_mode"; +DLLSPEC daeString COLLADA_TYPE_FOG_COORD_SRC = "fog_coord_src"; +DLLSPEC daeString COLLADA_TYPE_FRONT_FACE = "front_face"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_COLOR_CONTROL = "light_model_color_control"; +DLLSPEC daeString COLLADA_TYPE_LOGIC_OP = "logic_op"; +DLLSPEC daeString COLLADA_TYPE_POLYGON_MODE = "polygon_mode"; +DLLSPEC daeString COLLADA_TYPE_SHADE_MODEL = "shade_model"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_FUNC = "stencil_func"; +DLLSPEC daeString COLLADA_TYPE_REF = "ref"; +DLLSPEC daeString COLLADA_TYPE_MASK = "mask"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_OP = "stencil_op"; +DLLSPEC daeString COLLADA_TYPE_FAIL = "fail"; +DLLSPEC daeString COLLADA_TYPE_ZFAIL = "zfail"; +DLLSPEC daeString COLLADA_TYPE_ZPASS = "zpass"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_FUNC_SEPARATE = "stencil_func_separate"; +DLLSPEC daeString COLLADA_TYPE_FRONT = "front"; +DLLSPEC daeString COLLADA_TYPE_BACK = "back"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_OP_SEPARATE = "stencil_op_separate"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_MASK_SEPARATE = "stencil_mask_separate"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_ENABLE = "light_enable"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_AMBIENT = "light_ambient"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_DIFFUSE = "light_diffuse"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_SPECULAR = "light_specular"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_POSITION = "light_position"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_CONSTANT_ATTENUATION = "light_constant_attenuation"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_LINEAR_ATTENUATION = "light_linear_attenuation"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_QUADRATIC_ATTENUATION = "light_quadratic_attenuation"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_CUTOFF = "light_spot_cutoff"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_DIRECTION = "light_spot_direction"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_EXPONENT = "light_spot_exponent"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE1D = "texture1D"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE2D = "texture2D"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE3D = "texture3D"; +DLLSPEC daeString COLLADA_TYPE_TEXTURECUBE = "textureCUBE"; +DLLSPEC daeString COLLADA_TYPE_TEXTURERECT = "textureRECT"; +DLLSPEC daeString COLLADA_TYPE_TEXTUREDEPTH = "textureDEPTH"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE1D_ENABLE = "texture1D_enable"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE2D_ENABLE = "texture2D_enable"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE3D_ENABLE = "texture3D_enable"; +DLLSPEC daeString COLLADA_TYPE_TEXTURECUBE_ENABLE = "textureCUBE_enable"; +DLLSPEC daeString COLLADA_TYPE_TEXTURERECT_ENABLE = "textureRECT_enable"; +DLLSPEC daeString COLLADA_TYPE_TEXTUREDEPTH_ENABLE = "textureDEPTH_enable"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE_ENV_COLOR = "texture_env_color"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE_ENV_MODE = "texture_env_mode"; +DLLSPEC daeString COLLADA_TYPE_CLIP_PLANE = "clip_plane"; +DLLSPEC daeString COLLADA_TYPE_CLIP_PLANE_ENABLE = "clip_plane_enable"; +DLLSPEC daeString COLLADA_TYPE_BLEND_COLOR = "blend_color"; +DLLSPEC daeString COLLADA_TYPE_CLEAR_COLOR = "clear_color"; +DLLSPEC daeString COLLADA_TYPE_CLEAR_STENCIL = "clear_stencil"; +DLLSPEC daeString COLLADA_TYPE_CLEAR_DEPTH = "clear_depth"; +DLLSPEC daeString COLLADA_TYPE_COLOR_MASK = "color_mask"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_BOUNDS = "depth_bounds"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_MASK = "depth_mask"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_RANGE = "depth_range"; +DLLSPEC daeString COLLADA_TYPE_FOG_DENSITY = "fog_density"; +DLLSPEC daeString COLLADA_TYPE_FOG_START = "fog_start"; +DLLSPEC daeString COLLADA_TYPE_FOG_END = "fog_end"; +DLLSPEC daeString COLLADA_TYPE_FOG_COLOR = "fog_color"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_AMBIENT = "light_model_ambient"; +DLLSPEC daeString COLLADA_TYPE_LIGHTING_ENABLE = "lighting_enable"; +DLLSPEC daeString COLLADA_TYPE_LINE_STIPPLE = "line_stipple"; +DLLSPEC daeString COLLADA_TYPE_LINE_WIDTH = "line_width"; +DLLSPEC daeString COLLADA_TYPE_MATERIAL_AMBIENT = "material_ambient"; +DLLSPEC daeString COLLADA_TYPE_MATERIAL_DIFFUSE = "material_diffuse"; +DLLSPEC daeString COLLADA_TYPE_MATERIAL_EMISSION = "material_emission"; +DLLSPEC daeString COLLADA_TYPE_MATERIAL_SHININESS = "material_shininess"; +DLLSPEC daeString COLLADA_TYPE_MATERIAL_SPECULAR = "material_specular"; +DLLSPEC daeString COLLADA_TYPE_MODEL_VIEW_MATRIX = "model_view_matrix"; +DLLSPEC daeString COLLADA_TYPE_POINT_DISTANCE_ATTENUATION = "point_distance_attenuation"; +DLLSPEC daeString COLLADA_TYPE_POINT_FADE_THRESHOLD_SIZE = "point_fade_threshold_size"; +DLLSPEC daeString COLLADA_TYPE_POINT_SIZE = "point_size"; +DLLSPEC daeString COLLADA_TYPE_POINT_SIZE_MIN = "point_size_min"; +DLLSPEC daeString COLLADA_TYPE_POINT_SIZE_MAX = "point_size_max"; +DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET = "polygon_offset"; +DLLSPEC daeString COLLADA_TYPE_PROJECTION_MATRIX = "projection_matrix"; +DLLSPEC daeString COLLADA_TYPE_SCISSOR = "scissor"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_MASK = "stencil_mask"; +DLLSPEC daeString COLLADA_TYPE_ALPHA_TEST_ENABLE = "alpha_test_enable"; +DLLSPEC daeString COLLADA_TYPE_AUTO_NORMAL_ENABLE = "auto_normal_enable"; +DLLSPEC daeString COLLADA_TYPE_BLEND_ENABLE = "blend_enable"; +DLLSPEC daeString COLLADA_TYPE_COLOR_LOGIC_OP_ENABLE = "color_logic_op_enable"; +DLLSPEC daeString COLLADA_TYPE_COLOR_MATERIAL_ENABLE = "color_material_enable"; +DLLSPEC daeString COLLADA_TYPE_CULL_FACE_ENABLE = "cull_face_enable"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_BOUNDS_ENABLE = "depth_bounds_enable"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_CLAMP_ENABLE = "depth_clamp_enable"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_TEST_ENABLE = "depth_test_enable"; +DLLSPEC daeString COLLADA_TYPE_DITHER_ENABLE = "dither_enable"; +DLLSPEC daeString COLLADA_TYPE_FOG_ENABLE = "fog_enable"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_LOCAL_VIEWER_ENABLE = "light_model_local_viewer_enable"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_TWO_SIDE_ENABLE = "light_model_two_side_enable"; +DLLSPEC daeString COLLADA_TYPE_LINE_SMOOTH_ENABLE = "line_smooth_enable"; +DLLSPEC daeString COLLADA_TYPE_LINE_STIPPLE_ENABLE = "line_stipple_enable"; +DLLSPEC daeString COLLADA_TYPE_LOGIC_OP_ENABLE = "logic_op_enable"; +DLLSPEC daeString COLLADA_TYPE_MULTISAMPLE_ENABLE = "multisample_enable"; +DLLSPEC daeString COLLADA_TYPE_NORMALIZE_ENABLE = "normalize_enable"; +DLLSPEC daeString COLLADA_TYPE_POINT_SMOOTH_ENABLE = "point_smooth_enable"; +DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_FILL_ENABLE = "polygon_offset_fill_enable"; +DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_LINE_ENABLE = "polygon_offset_line_enable"; +DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_POINT_ENABLE = "polygon_offset_point_enable"; +DLLSPEC daeString COLLADA_TYPE_POLYGON_SMOOTH_ENABLE = "polygon_smooth_enable"; +DLLSPEC daeString COLLADA_TYPE_POLYGON_STIPPLE_ENABLE = "polygon_stipple_enable"; +DLLSPEC daeString COLLADA_TYPE_RESCALE_NORMAL_ENABLE = "rescale_normal_enable"; +DLLSPEC daeString COLLADA_TYPE_SAMPLE_ALPHA_TO_COVERAGE_ENABLE = "sample_alpha_to_coverage_enable"; +DLLSPEC daeString COLLADA_TYPE_SAMPLE_ALPHA_TO_ONE_ENABLE = "sample_alpha_to_one_enable"; +DLLSPEC daeString COLLADA_TYPE_SAMPLE_COVERAGE_ENABLE = "sample_coverage_enable"; +DLLSPEC daeString COLLADA_TYPE_SCISSOR_TEST_ENABLE = "scissor_test_enable"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_TEST_ENABLE = "stencil_test_enable"; +DLLSPEC daeString COLLADA_TYPE_GLSL_PARAM_TYPE = "glsl_param_type"; +DLLSPEC daeString COLLADA_TYPE_CG_PARAM_TYPE = "cg_param_type"; +DLLSPEC daeString COLLADA_TYPE_BOOL1 = "bool1"; +DLLSPEC daeString COLLADA_TYPE_BOOL1X1 = "bool1x1"; +DLLSPEC daeString COLLADA_TYPE_BOOL1X2 = "bool1x2"; +DLLSPEC daeString COLLADA_TYPE_BOOL1X3 = "bool1x3"; +DLLSPEC daeString COLLADA_TYPE_BOOL1X4 = "bool1x4"; +DLLSPEC daeString COLLADA_TYPE_BOOL2X1 = "bool2x1"; +DLLSPEC daeString COLLADA_TYPE_BOOL2X2 = "bool2x2"; +DLLSPEC daeString COLLADA_TYPE_BOOL2X3 = "bool2x3"; +DLLSPEC daeString COLLADA_TYPE_BOOL2X4 = "bool2x4"; +DLLSPEC daeString COLLADA_TYPE_BOOL3X1 = "bool3x1"; +DLLSPEC daeString COLLADA_TYPE_BOOL3X2 = "bool3x2"; +DLLSPEC daeString COLLADA_TYPE_BOOL3X3 = "bool3x3"; +DLLSPEC daeString COLLADA_TYPE_BOOL3X4 = "bool3x4"; +DLLSPEC daeString COLLADA_TYPE_BOOL4X1 = "bool4x1"; +DLLSPEC daeString COLLADA_TYPE_BOOL4X2 = "bool4x2"; +DLLSPEC daeString COLLADA_TYPE_BOOL4X3 = "bool4x3"; +DLLSPEC daeString COLLADA_TYPE_BOOL4X4 = "bool4x4"; +DLLSPEC daeString COLLADA_TYPE_FLOAT1 = "float1"; +DLLSPEC daeString COLLADA_TYPE_INT1 = "int1"; +DLLSPEC daeString COLLADA_TYPE_INT1X1 = "int1x1"; +DLLSPEC daeString COLLADA_TYPE_INT1X2 = "int1x2"; +DLLSPEC daeString COLLADA_TYPE_INT1X3 = "int1x3"; +DLLSPEC daeString COLLADA_TYPE_INT1X4 = "int1x4"; +DLLSPEC daeString COLLADA_TYPE_INT2X1 = "int2x1"; +DLLSPEC daeString COLLADA_TYPE_INT2X2 = "int2x2"; +DLLSPEC daeString COLLADA_TYPE_INT2X3 = "int2x3"; +DLLSPEC daeString COLLADA_TYPE_INT2X4 = "int2x4"; +DLLSPEC daeString COLLADA_TYPE_INT3X1 = "int3x1"; +DLLSPEC daeString COLLADA_TYPE_INT3X2 = "int3x2"; +DLLSPEC daeString COLLADA_TYPE_INT3X3 = "int3x3"; +DLLSPEC daeString COLLADA_TYPE_INT3X4 = "int3x4"; +DLLSPEC daeString COLLADA_TYPE_INT4X1 = "int4x1"; +DLLSPEC daeString COLLADA_TYPE_INT4X2 = "int4x2"; +DLLSPEC daeString COLLADA_TYPE_INT4X3 = "int4x3"; +DLLSPEC daeString COLLADA_TYPE_INT4X4 = "int4x4"; +DLLSPEC daeString COLLADA_TYPE_HALF = "half"; +DLLSPEC daeString COLLADA_TYPE_HALF1 = "half1"; +DLLSPEC daeString COLLADA_TYPE_HALF2 = "half2"; +DLLSPEC daeString COLLADA_TYPE_HALF3 = "half3"; +DLLSPEC daeString COLLADA_TYPE_HALF4 = "half4"; +DLLSPEC daeString COLLADA_TYPE_HALF1X1 = "half1x1"; +DLLSPEC daeString COLLADA_TYPE_HALF1X2 = "half1x2"; +DLLSPEC daeString COLLADA_TYPE_HALF1X3 = "half1x3"; +DLLSPEC daeString COLLADA_TYPE_HALF1X4 = "half1x4"; +DLLSPEC daeString COLLADA_TYPE_HALF2X1 = "half2x1"; +DLLSPEC daeString COLLADA_TYPE_HALF2X2 = "half2x2"; +DLLSPEC daeString COLLADA_TYPE_HALF2X3 = "half2x3"; +DLLSPEC daeString COLLADA_TYPE_HALF2X4 = "half2x4"; +DLLSPEC daeString COLLADA_TYPE_HALF3X1 = "half3x1"; +DLLSPEC daeString COLLADA_TYPE_HALF3X2 = "half3x2"; +DLLSPEC daeString COLLADA_TYPE_HALF3X3 = "half3x3"; +DLLSPEC daeString COLLADA_TYPE_HALF3X4 = "half3x4"; +DLLSPEC daeString COLLADA_TYPE_HALF4X1 = "half4x1"; +DLLSPEC daeString COLLADA_TYPE_HALF4X2 = "half4x2"; +DLLSPEC daeString COLLADA_TYPE_HALF4X3 = "half4x3"; +DLLSPEC daeString COLLADA_TYPE_HALF4X4 = "half4x4"; +DLLSPEC daeString COLLADA_TYPE_FIXED = "fixed"; +DLLSPEC daeString COLLADA_TYPE_FIXED1 = "fixed1"; +DLLSPEC daeString COLLADA_TYPE_FIXED2 = "fixed2"; +DLLSPEC daeString COLLADA_TYPE_FIXED3 = "fixed3"; +DLLSPEC daeString COLLADA_TYPE_FIXED4 = "fixed4"; +DLLSPEC daeString COLLADA_TYPE_FIXED1X1 = "fixed1x1"; +DLLSPEC daeString COLLADA_TYPE_FIXED1X2 = "fixed1x2"; +DLLSPEC daeString COLLADA_TYPE_FIXED1X3 = "fixed1x3"; +DLLSPEC daeString COLLADA_TYPE_FIXED1X4 = "fixed1x4"; +DLLSPEC daeString COLLADA_TYPE_FIXED2X1 = "fixed2x1"; +DLLSPEC daeString COLLADA_TYPE_FIXED2X2 = "fixed2x2"; +DLLSPEC daeString COLLADA_TYPE_FIXED2X3 = "fixed2x3"; +DLLSPEC daeString COLLADA_TYPE_FIXED2X4 = "fixed2x4"; +DLLSPEC daeString COLLADA_TYPE_FIXED3X1 = "fixed3x1"; +DLLSPEC daeString COLLADA_TYPE_FIXED3X2 = "fixed3x2"; +DLLSPEC daeString COLLADA_TYPE_FIXED3X3 = "fixed3x3"; +DLLSPEC daeString COLLADA_TYPE_FIXED3X4 = "fixed3x4"; +DLLSPEC daeString COLLADA_TYPE_FIXED4X1 = "fixed4x1"; +DLLSPEC daeString COLLADA_TYPE_FIXED4X2 = "fixed4x2"; +DLLSPEC daeString COLLADA_TYPE_FIXED4X3 = "fixed4x3"; +DLLSPEC daeString COLLADA_TYPE_FIXED4X4 = "fixed4x4"; +DLLSPEC daeString COLLADA_TYPE_GLES_PIPELINE_SETTINGS = "gles_pipeline_settings"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE_PIPELINE = "texture_pipeline"; +DLLSPEC daeString COLLADA_TYPE_LIGHT_LINEAR_ATTENUTATION = "light_linear_attenutation"; +DLLSPEC daeString COLLADA_TYPE_TEXTURE_PIPELINE_ENABLE = "texture_pipeline_enable"; +DLLSPEC daeString COLLADA_TYPE_GLES_BASIC_TYPE_COMMON = "gles_basic_type_common"; +DLLSPEC daeString COLLADA_TYPE_COLLADA = "COLLADA"; +DLLSPEC daeString COLLADA_TYPE_SCENE = "scene"; +DLLSPEC daeString COLLADA_TYPE_IDREF_ARRAY = "IDREF_array"; +DLLSPEC daeString COLLADA_TYPE_NAME_ARRAY = "Name_array"; +DLLSPEC daeString COLLADA_TYPE_BOOL_ARRAY = "bool_array"; +DLLSPEC daeString COLLADA_TYPE_FLOAT_ARRAY = "float_array"; +DLLSPEC daeString COLLADA_TYPE_INT_ARRAY = "int_array"; +DLLSPEC daeString COLLADA_TYPE_ACCESSOR = "accessor"; +DLLSPEC daeString COLLADA_TYPE_TECHNIQUE_COMMON = "technique_common"; +DLLSPEC daeString COLLADA_TYPE_GEOMETRY = "geometry"; +DLLSPEC daeString COLLADA_TYPE_MESH = "mesh"; +DLLSPEC daeString COLLADA_TYPE_SPLINE = "spline"; +DLLSPEC daeString COLLADA_TYPE_CONTROL_VERTICES = "control_vertices"; +DLLSPEC daeString COLLADA_TYPE_P = "p"; +DLLSPEC daeString COLLADA_TYPE_LINES = "lines"; +DLLSPEC daeString COLLADA_TYPE_LINESTRIPS = "linestrips"; +DLLSPEC daeString COLLADA_TYPE_POLYGONS = "polygons"; +DLLSPEC daeString COLLADA_TYPE_PH = "ph"; +DLLSPEC daeString COLLADA_TYPE_H = "h"; +DLLSPEC daeString COLLADA_TYPE_POLYLIST = "polylist"; +DLLSPEC daeString COLLADA_TYPE_VCOUNT = "vcount"; +DLLSPEC daeString COLLADA_TYPE_TRIANGLES = "triangles"; +DLLSPEC daeString COLLADA_TYPE_TRIFANS = "trifans"; +DLLSPEC daeString COLLADA_TYPE_TRISTRIPS = "tristrips"; +DLLSPEC daeString COLLADA_TYPE_VERTICES = "vertices"; +DLLSPEC daeString COLLADA_TYPE_LOOKAT = "lookat"; +DLLSPEC daeString COLLADA_TYPE_MATRIX = "matrix"; +DLLSPEC daeString COLLADA_TYPE_ROTATE = "rotate"; +DLLSPEC daeString COLLADA_TYPE_SCALE = "scale"; +DLLSPEC daeString COLLADA_TYPE_SKEW = "skew"; +DLLSPEC daeString COLLADA_TYPE_TRANSLATE = "translate"; +DLLSPEC daeString COLLADA_TYPE_IMAGE = "image"; +DLLSPEC daeString COLLADA_TYPE_DATA = "data"; +DLLSPEC daeString COLLADA_TYPE_INIT_FROM = "init_from"; +DLLSPEC daeString COLLADA_TYPE_LIGHT = "light"; +DLLSPEC daeString COLLADA_TYPE_AMBIENT = "ambient"; +DLLSPEC daeString COLLADA_TYPE_DIRECTIONAL = "directional"; +DLLSPEC daeString COLLADA_TYPE_POINT = "point"; +DLLSPEC daeString COLLADA_TYPE_SPOT = "spot"; +DLLSPEC daeString COLLADA_TYPE_MATERIAL = "material"; +DLLSPEC daeString COLLADA_TYPE_CAMERA = "camera"; +DLLSPEC daeString COLLADA_TYPE_OPTICS = "optics"; +DLLSPEC daeString COLLADA_TYPE_ORTHOGRAPHIC = "orthographic"; +DLLSPEC daeString COLLADA_TYPE_PERSPECTIVE = "perspective"; +DLLSPEC daeString COLLADA_TYPE_IMAGER = "imager"; +DLLSPEC daeString COLLADA_TYPE_ANIMATION = "animation"; +DLLSPEC daeString COLLADA_TYPE_ANIMATION_CLIP = "animation_clip"; +DLLSPEC daeString COLLADA_TYPE_CHANNEL = "channel"; +DLLSPEC daeString COLLADA_TYPE_SAMPLER = "sampler"; +DLLSPEC daeString COLLADA_TYPE_CONTROLLER = "controller"; +DLLSPEC daeString COLLADA_TYPE_SKIN = "skin"; +DLLSPEC daeString COLLADA_TYPE_BIND_SHAPE_MATRIX = "bind_shape_matrix"; +DLLSPEC daeString COLLADA_TYPE_JOINTS = "joints"; +DLLSPEC daeString COLLADA_TYPE_VERTEX_WEIGHTS = "vertex_weights"; +DLLSPEC daeString COLLADA_TYPE_V = "v"; +DLLSPEC daeString COLLADA_TYPE_MORPH = "morph"; +DLLSPEC daeString COLLADA_TYPE_TARGETS = "targets"; +DLLSPEC daeString COLLADA_TYPE_ASSET = "asset"; +DLLSPEC daeString COLLADA_TYPE_CONTRIBUTOR = "contributor"; +DLLSPEC daeString COLLADA_TYPE_AUTHOR = "author"; +DLLSPEC daeString COLLADA_TYPE_AUTHORING_TOOL = "authoring_tool"; +DLLSPEC daeString COLLADA_TYPE_COMMENTS = "comments"; +DLLSPEC daeString COLLADA_TYPE_COPYRIGHT = "copyright"; +DLLSPEC daeString COLLADA_TYPE_SOURCE_DATA = "source_data"; +DLLSPEC daeString COLLADA_TYPE_CREATED = "created"; +DLLSPEC daeString COLLADA_TYPE_KEYWORDS = "keywords"; +DLLSPEC daeString COLLADA_TYPE_MODIFIED = "modified"; +DLLSPEC daeString COLLADA_TYPE_REVISION = "revision"; +DLLSPEC daeString COLLADA_TYPE_SUBJECT = "subject"; +DLLSPEC daeString COLLADA_TYPE_TITLE = "title"; +DLLSPEC daeString COLLADA_TYPE_UNIT = "unit"; +DLLSPEC daeString COLLADA_TYPE_UP_AXIS = "up_axis"; +DLLSPEC daeString COLLADA_TYPE_EXTRA = "extra"; +DLLSPEC daeString COLLADA_TYPE_TECHNIQUE = "technique"; +DLLSPEC daeString COLLADA_TYPE_NODE = "node"; +DLLSPEC daeString COLLADA_TYPE_VISUAL_SCENE = "visual_scene"; +DLLSPEC daeString COLLADA_TYPE_EVALUATE_SCENE = "evaluate_scene"; +DLLSPEC daeString COLLADA_TYPE_RENDER = "render"; +DLLSPEC daeString COLLADA_TYPE_LAYER = "layer"; +DLLSPEC daeString COLLADA_TYPE_BIND_MATERIAL = "bind_material"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_CAMERA = "instance_camera"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_CONTROLLER = "instance_controller"; +DLLSPEC daeString COLLADA_TYPE_SKELETON = "skeleton"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_EFFECT = "instance_effect"; +DLLSPEC daeString COLLADA_TYPE_TECHNIQUE_HINT = "technique_hint"; +DLLSPEC daeString COLLADA_TYPE_SETPARAM = "setparam"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_FORCE_FIELD = "instance_force_field"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_GEOMETRY = "instance_geometry"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_LIGHT = "instance_light"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_MATERIAL = "instance_material"; +DLLSPEC daeString COLLADA_TYPE_BIND = "bind"; +DLLSPEC daeString COLLADA_TYPE_BIND_VERTEX_INPUT = "bind_vertex_input"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_NODE = "instance_node"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_PHYSICS_MATERIAL = "instance_physics_material"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_PHYSICS_MODEL = "instance_physics_model"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_RIGID_BODY = "instance_rigid_body"; +DLLSPEC daeString COLLADA_TYPE_ANGULAR_VELOCITY = "angular_velocity"; +DLLSPEC daeString COLLADA_TYPE_VELOCITY = "velocity"; +DLLSPEC daeString COLLADA_TYPE_DYNAMIC = "dynamic"; +DLLSPEC daeString COLLADA_TYPE_MASS_FRAME = "mass_frame"; +DLLSPEC daeString COLLADA_TYPE_SHAPE = "shape"; +DLLSPEC daeString COLLADA_TYPE_HOLLOW = "hollow"; +DLLSPEC daeString COLLADA_TYPE_INSTANCE_RIGID_CONSTRAINT = "instance_rigid_constraint"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_ANIMATIONS = "library_animations"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_ANIMATION_CLIPS = "library_animation_clips"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_CAMERAS = "library_cameras"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_CONTROLLERS = "library_controllers"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_GEOMETRIES = "library_geometries"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_EFFECTS = "library_effects"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_FORCE_FIELDS = "library_force_fields"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_IMAGES = "library_images"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_LIGHTS = "library_lights"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_MATERIALS = "library_materials"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_NODES = "library_nodes"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_MATERIALS = "library_physics_materials"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_MODELS = "library_physics_models"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_SCENES = "library_physics_scenes"; +DLLSPEC daeString COLLADA_TYPE_LIBRARY_VISUAL_SCENES = "library_visual_scenes"; +DLLSPEC daeString COLLADA_TYPE_FX_PROFILE_ABSTRACT = "fx_profile_abstract"; +DLLSPEC daeString COLLADA_TYPE_EFFECT = "effect"; +DLLSPEC daeString COLLADA_TYPE_GL_HOOK_ABSTRACT = "gl_hook_abstract"; +DLLSPEC daeString COLLADA_TYPE_PROFILE_GLSL = "profile_GLSL"; +DLLSPEC daeString COLLADA_TYPE_PASS = "pass"; +DLLSPEC daeString COLLADA_TYPE_DRAW = "draw"; +DLLSPEC daeString COLLADA_TYPE_SHADER = "shader"; +DLLSPEC daeString COLLADA_TYPE_COMPILER_TARGET = "compiler_target"; +DLLSPEC daeString COLLADA_TYPE_COMPILER_OPTIONS = "compiler_options"; +DLLSPEC daeString COLLADA_TYPE_PROFILE_COMMON = "profile_COMMON"; +DLLSPEC daeString COLLADA_TYPE_CONSTANT = "constant"; +DLLSPEC daeString COLLADA_TYPE_LAMBERT = "lambert"; +DLLSPEC daeString COLLADA_TYPE_PHONG = "phong"; +DLLSPEC daeString COLLADA_TYPE_BLINN = "blinn"; +DLLSPEC daeString COLLADA_TYPE_PROFILE_CG = "profile_CG"; +DLLSPEC daeString COLLADA_TYPE_PROFILE_GLES = "profile_GLES"; +DLLSPEC daeString COLLADA_TYPE_COLOR_TARGET = "color_target"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_TARGET = "depth_target"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_TARGET = "stencil_target"; +DLLSPEC daeString COLLADA_TYPE_COLOR_CLEAR = "color_clear"; +DLLSPEC daeString COLLADA_TYPE_DEPTH_CLEAR = "depth_clear"; +DLLSPEC daeString COLLADA_TYPE_STENCIL_CLEAR = "stencil_clear"; +DLLSPEC daeString COLLADA_TYPE_BOX = "box"; +DLLSPEC daeString COLLADA_TYPE_HALF_EXTENTS = "half_extents"; +DLLSPEC daeString COLLADA_TYPE_PLANE = "plane"; +DLLSPEC daeString COLLADA_TYPE_EQUATION = "equation"; +DLLSPEC daeString COLLADA_TYPE_SPHERE = "sphere"; +DLLSPEC daeString COLLADA_TYPE_RADIUS = "radius"; +DLLSPEC daeString COLLADA_TYPE_ELLIPSOID = "ellipsoid"; +DLLSPEC daeString COLLADA_TYPE_CYLINDER = "cylinder"; +DLLSPEC daeString COLLADA_TYPE_HEIGHT = "height"; +DLLSPEC daeString COLLADA_TYPE_TAPERED_CYLINDER = "tapered_cylinder"; +DLLSPEC daeString COLLADA_TYPE_RADIUS1 = "radius1"; +DLLSPEC daeString COLLADA_TYPE_RADIUS2 = "radius2"; +DLLSPEC daeString COLLADA_TYPE_CAPSULE = "capsule"; +DLLSPEC daeString COLLADA_TYPE_TAPERED_CAPSULE = "tapered_capsule"; +DLLSPEC daeString COLLADA_TYPE_CONVEX_MESH = "convex_mesh"; +DLLSPEC daeString COLLADA_TYPE_FORCE_FIELD = "force_field"; +DLLSPEC daeString COLLADA_TYPE_PHYSICS_MATERIAL = "physics_material"; +DLLSPEC daeString COLLADA_TYPE_PHYSICS_SCENE = "physics_scene"; +DLLSPEC daeString COLLADA_TYPE_RIGID_BODY = "rigid_body"; +DLLSPEC daeString COLLADA_TYPE_RIGID_CONSTRAINT = "rigid_constraint"; +DLLSPEC daeString COLLADA_TYPE_REF_ATTACHMENT = "ref_attachment"; +DLLSPEC daeString COLLADA_TYPE_ATTACHMENT = "attachment"; +DLLSPEC daeString COLLADA_TYPE_ENABLED = "enabled"; +DLLSPEC daeString COLLADA_TYPE_INTERPENETRATE = "interpenetrate"; +DLLSPEC daeString COLLADA_TYPE_LIMITS = "limits"; +DLLSPEC daeString COLLADA_TYPE_SWING_CONE_AND_TWIST = "swing_cone_and_twist"; +DLLSPEC daeString COLLADA_TYPE_LINEAR = "linear"; +DLLSPEC daeString COLLADA_TYPE_SPRING = "spring"; +DLLSPEC daeString COLLADA_TYPE_ANGULAR = "angular"; +DLLSPEC daeString COLLADA_TYPE_PHYSICS_MODEL = "physics_model"; + +DLLSPEC daeString COLLADA_ELEMENT_COLLADA = "COLLADA"; +DLLSPEC daeString COLLADA_ELEMENT_EXTRA = "extra"; +DLLSPEC daeString COLLADA_ELEMENT_CHANNELS = "channels"; +DLLSPEC daeString COLLADA_ELEMENT_RANGE = "range"; +DLLSPEC daeString COLLADA_ELEMENT_PRECISION = "precision"; +DLLSPEC daeString COLLADA_ELEMENT_OPTION = "option"; +DLLSPEC daeString COLLADA_ELEMENT_ALL = "all"; +DLLSPEC daeString COLLADA_ELEMENT_PRIMARY = "primary"; +DLLSPEC daeString COLLADA_ELEMENT_FACE = "face"; +DLLSPEC daeString COLLADA_ELEMENT_ORDER = "order"; +DLLSPEC daeString COLLADA_ELEMENT_FX_SURFACE_INIT_COMMON = "fx_surface_init_common"; +DLLSPEC daeString COLLADA_ELEMENT_FORMAT = "format"; +DLLSPEC daeString COLLADA_ELEMENT_FORMAT_HINT = "format_hint"; +DLLSPEC daeString COLLADA_ELEMENT_SIZE = "size"; +DLLSPEC daeString COLLADA_ELEMENT_VIEWPORT_RATIO = "viewport_ratio"; +DLLSPEC daeString COLLADA_ELEMENT_MIP_LEVELS = "mip_levels"; +DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_GENERATE = "mipmap_generate"; +DLLSPEC daeString COLLADA_ELEMENT_SOURCE = "source"; +DLLSPEC daeString COLLADA_ELEMENT_WRAP_S = "wrap_s"; +DLLSPEC daeString COLLADA_ELEMENT_MINFILTER = "minfilter"; +DLLSPEC daeString COLLADA_ELEMENT_MAGFILTER = "magfilter"; +DLLSPEC daeString COLLADA_ELEMENT_MIPFILTER = "mipfilter"; +DLLSPEC daeString COLLADA_ELEMENT_BORDER_COLOR = "border_color"; +DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_MAXLEVEL = "mipmap_maxlevel"; +DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_BIAS = "mipmap_bias"; +DLLSPEC daeString COLLADA_ELEMENT_WRAP_T = "wrap_t"; +DLLSPEC daeString COLLADA_ELEMENT_WRAP_P = "wrap_p"; +DLLSPEC daeString COLLADA_ELEMENT_FX_ANNOTATE_TYPE_COMMON = "fx_annotate_type_common"; +DLLSPEC daeString COLLADA_ELEMENT_ANNOTATE = "annotate"; +DLLSPEC daeString COLLADA_ELEMENT_SEMANTIC = "semantic"; +DLLSPEC daeString COLLADA_ELEMENT_MODIFIER = "modifier"; +DLLSPEC daeString COLLADA_ELEMENT_FX_BASIC_TYPE_COMMON = "fx_basic_type_common"; +DLLSPEC daeString COLLADA_ELEMENT_GLSL_PARAM_TYPE = "glsl_param_type"; +DLLSPEC daeString COLLADA_ELEMENT_ARRAY = "array"; +DLLSPEC daeString COLLADA_ELEMENT_GENERATOR = "generator"; +DLLSPEC daeString COLLADA_ELEMENT_CODE = "code"; +DLLSPEC daeString COLLADA_ELEMENT_INCLUDE = "include"; +DLLSPEC daeString COLLADA_ELEMENT_NAME = "name"; +DLLSPEC daeString COLLADA_ELEMENT_SETPARAM = "setparam"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT = "float"; +DLLSPEC daeString COLLADA_ELEMENT_PARAM = "param"; +DLLSPEC daeString COLLADA_ELEMENT_COLOR = "color"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE = "texture"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT2 = "float2"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT3 = "float3"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT4 = "float4"; +DLLSPEC daeString COLLADA_ELEMENT_SURFACE = "surface"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLER2D = "sampler2D"; +DLLSPEC daeString COLLADA_ELEMENT_CG_PARAM_TYPE = "cg_param_type"; +DLLSPEC daeString COLLADA_ELEMENT_USERTYPE = "usertype"; +DLLSPEC daeString COLLADA_ELEMENT_CONNECT_PARAM = "connect_param"; +DLLSPEC daeString COLLADA_ELEMENT_CONSTANT = "constant"; +DLLSPEC daeString COLLADA_ELEMENT_ARGUMENT = "argument"; +DLLSPEC daeString COLLADA_ELEMENT_RGB = "RGB"; +DLLSPEC daeString COLLADA_ELEMENT_ALPHA = "alpha"; +DLLSPEC daeString COLLADA_ELEMENT_TEXCOMBINER = "texcombiner"; +DLLSPEC daeString COLLADA_ELEMENT_TEXENV = "texenv"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLER_STATE = "sampler_state"; +DLLSPEC daeString COLLADA_ELEMENT_TEXCOORD = "texcoord"; +DLLSPEC daeString COLLADA_ELEMENT_GLES_BASIC_TYPE_COMMON = "gles_basic_type_common"; +DLLSPEC daeString COLLADA_ELEMENT_INIT_AS_NULL = "init_as_null"; +DLLSPEC daeString COLLADA_ELEMENT_INIT_AS_TARGET = "init_as_target"; +DLLSPEC daeString COLLADA_ELEMENT_INIT_CUBE = "init_cube"; +DLLSPEC daeString COLLADA_ELEMENT_INIT_VOLUME = "init_volume"; +DLLSPEC daeString COLLADA_ELEMENT_INIT_PLANAR = "init_planar"; +DLLSPEC daeString COLLADA_ELEMENT_INIT_FROM = "init_from"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL = "bool"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL2 = "bool2"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL3 = "bool3"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL4 = "bool4"; +DLLSPEC daeString COLLADA_ELEMENT_INT = "int"; +DLLSPEC daeString COLLADA_ELEMENT_INT2 = "int2"; +DLLSPEC daeString COLLADA_ELEMENT_INT3 = "int3"; +DLLSPEC daeString COLLADA_ELEMENT_INT4 = "int4"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X2 = "float2x2"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X3 = "float3x3"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X4 = "float4x4"; +DLLSPEC daeString COLLADA_ELEMENT_STRING = "string"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X1 = "float1x1"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X2 = "float1x2"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X3 = "float1x3"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X4 = "float1x4"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X1 = "float2x1"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X3 = "float2x3"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X4 = "float2x4"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X1 = "float3x1"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X2 = "float3x2"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X4 = "float3x4"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X1 = "float4x1"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X2 = "float4x2"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X3 = "float4x3"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLER1D = "sampler1D"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLER3D = "sampler3D"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLERCUBE = "samplerCUBE"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLERRECT = "samplerRECT"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLERDEPTH = "samplerDEPTH"; +DLLSPEC daeString COLLADA_ELEMENT_ENUM = "enum"; +DLLSPEC daeString COLLADA_ELEMENT_ALPHA_FUNC = "alpha_func"; +DLLSPEC daeString COLLADA_ELEMENT_BLEND_FUNC = "blend_func"; +DLLSPEC daeString COLLADA_ELEMENT_BLEND_FUNC_SEPARATE = "blend_func_separate"; +DLLSPEC daeString COLLADA_ELEMENT_BLEND_EQUATION = "blend_equation"; +DLLSPEC daeString COLLADA_ELEMENT_BLEND_EQUATION_SEPARATE = "blend_equation_separate"; +DLLSPEC daeString COLLADA_ELEMENT_COLOR_MATERIAL = "color_material"; +DLLSPEC daeString COLLADA_ELEMENT_CULL_FACE = "cull_face"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_FUNC = "depth_func"; +DLLSPEC daeString COLLADA_ELEMENT_FOG_MODE = "fog_mode"; +DLLSPEC daeString COLLADA_ELEMENT_FOG_COORD_SRC = "fog_coord_src"; +DLLSPEC daeString COLLADA_ELEMENT_FRONT_FACE = "front_face"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_COLOR_CONTROL = "light_model_color_control"; +DLLSPEC daeString COLLADA_ELEMENT_LOGIC_OP = "logic_op"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGON_MODE = "polygon_mode"; +DLLSPEC daeString COLLADA_ELEMENT_SHADE_MODEL = "shade_model"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_FUNC = "stencil_func"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_OP = "stencil_op"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_FUNC_SEPARATE = "stencil_func_separate"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_OP_SEPARATE = "stencil_op_separate"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_MASK_SEPARATE = "stencil_mask_separate"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_ENABLE = "light_enable"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_AMBIENT = "light_ambient"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_DIFFUSE = "light_diffuse"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPECULAR = "light_specular"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_POSITION = "light_position"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_CONSTANT_ATTENUATION = "light_constant_attenuation"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_LINEAR_ATTENUATION = "light_linear_attenuation"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_QUADRATIC_ATTENUATION = "light_quadratic_attenuation"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_CUTOFF = "light_spot_cutoff"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_DIRECTION = "light_spot_direction"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_EXPONENT = "light_spot_exponent"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE1D = "texture1D"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE2D = "texture2D"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE3D = "texture3D"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURECUBE = "textureCUBE"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURERECT = "textureRECT"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTUREDEPTH = "textureDEPTH"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE1D_ENABLE = "texture1D_enable"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE2D_ENABLE = "texture2D_enable"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE3D_ENABLE = "texture3D_enable"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURECUBE_ENABLE = "textureCUBE_enable"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURERECT_ENABLE = "textureRECT_enable"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTUREDEPTH_ENABLE = "textureDEPTH_enable"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_ENV_COLOR = "texture_env_color"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_ENV_MODE = "texture_env_mode"; +DLLSPEC daeString COLLADA_ELEMENT_CLIP_PLANE = "clip_plane"; +DLLSPEC daeString COLLADA_ELEMENT_CLIP_PLANE_ENABLE = "clip_plane_enable"; +DLLSPEC daeString COLLADA_ELEMENT_BLEND_COLOR = "blend_color"; +DLLSPEC daeString COLLADA_ELEMENT_CLEAR_COLOR = "clear_color"; +DLLSPEC daeString COLLADA_ELEMENT_CLEAR_STENCIL = "clear_stencil"; +DLLSPEC daeString COLLADA_ELEMENT_CLEAR_DEPTH = "clear_depth"; +DLLSPEC daeString COLLADA_ELEMENT_COLOR_MASK = "color_mask"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_BOUNDS = "depth_bounds"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_MASK = "depth_mask"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_RANGE = "depth_range"; +DLLSPEC daeString COLLADA_ELEMENT_FOG_DENSITY = "fog_density"; +DLLSPEC daeString COLLADA_ELEMENT_FOG_START = "fog_start"; +DLLSPEC daeString COLLADA_ELEMENT_FOG_END = "fog_end"; +DLLSPEC daeString COLLADA_ELEMENT_FOG_COLOR = "fog_color"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_AMBIENT = "light_model_ambient"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHTING_ENABLE = "lighting_enable"; +DLLSPEC daeString COLLADA_ELEMENT_LINE_STIPPLE = "line_stipple"; +DLLSPEC daeString COLLADA_ELEMENT_LINE_WIDTH = "line_width"; +DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_AMBIENT = "material_ambient"; +DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_DIFFUSE = "material_diffuse"; +DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_EMISSION = "material_emission"; +DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_SHININESS = "material_shininess"; +DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_SPECULAR = "material_specular"; +DLLSPEC daeString COLLADA_ELEMENT_MODEL_VIEW_MATRIX = "model_view_matrix"; +DLLSPEC daeString COLLADA_ELEMENT_POINT_DISTANCE_ATTENUATION = "point_distance_attenuation"; +DLLSPEC daeString COLLADA_ELEMENT_POINT_FADE_THRESHOLD_SIZE = "point_fade_threshold_size"; +DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE = "point_size"; +DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE_MIN = "point_size_min"; +DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE_MAX = "point_size_max"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET = "polygon_offset"; +DLLSPEC daeString COLLADA_ELEMENT_PROJECTION_MATRIX = "projection_matrix"; +DLLSPEC daeString COLLADA_ELEMENT_SCISSOR = "scissor"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_MASK = "stencil_mask"; +DLLSPEC daeString COLLADA_ELEMENT_ALPHA_TEST_ENABLE = "alpha_test_enable"; +DLLSPEC daeString COLLADA_ELEMENT_AUTO_NORMAL_ENABLE = "auto_normal_enable"; +DLLSPEC daeString COLLADA_ELEMENT_BLEND_ENABLE = "blend_enable"; +DLLSPEC daeString COLLADA_ELEMENT_COLOR_LOGIC_OP_ENABLE = "color_logic_op_enable"; +DLLSPEC daeString COLLADA_ELEMENT_COLOR_MATERIAL_ENABLE = "color_material_enable"; +DLLSPEC daeString COLLADA_ELEMENT_CULL_FACE_ENABLE = "cull_face_enable"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_BOUNDS_ENABLE = "depth_bounds_enable"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_CLAMP_ENABLE = "depth_clamp_enable"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_TEST_ENABLE = "depth_test_enable"; +DLLSPEC daeString COLLADA_ELEMENT_DITHER_ENABLE = "dither_enable"; +DLLSPEC daeString COLLADA_ELEMENT_FOG_ENABLE = "fog_enable"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_LOCAL_VIEWER_ENABLE = "light_model_local_viewer_enable"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_TWO_SIDE_ENABLE = "light_model_two_side_enable"; +DLLSPEC daeString COLLADA_ELEMENT_LINE_SMOOTH_ENABLE = "line_smooth_enable"; +DLLSPEC daeString COLLADA_ELEMENT_LINE_STIPPLE_ENABLE = "line_stipple_enable"; +DLLSPEC daeString COLLADA_ELEMENT_LOGIC_OP_ENABLE = "logic_op_enable"; +DLLSPEC daeString COLLADA_ELEMENT_MULTISAMPLE_ENABLE = "multisample_enable"; +DLLSPEC daeString COLLADA_ELEMENT_NORMALIZE_ENABLE = "normalize_enable"; +DLLSPEC daeString COLLADA_ELEMENT_POINT_SMOOTH_ENABLE = "point_smooth_enable"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_FILL_ENABLE = "polygon_offset_fill_enable"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_LINE_ENABLE = "polygon_offset_line_enable"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_POINT_ENABLE = "polygon_offset_point_enable"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGON_SMOOTH_ENABLE = "polygon_smooth_enable"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGON_STIPPLE_ENABLE = "polygon_stipple_enable"; +DLLSPEC daeString COLLADA_ELEMENT_RESCALE_NORMAL_ENABLE = "rescale_normal_enable"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_ALPHA_TO_COVERAGE_ENABLE = "sample_alpha_to_coverage_enable"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_ALPHA_TO_ONE_ENABLE = "sample_alpha_to_one_enable"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_COVERAGE_ENABLE = "sample_coverage_enable"; +DLLSPEC daeString COLLADA_ELEMENT_SCISSOR_TEST_ENABLE = "scissor_test_enable"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_TEST_ENABLE = "stencil_test_enable"; +DLLSPEC daeString COLLADA_ELEMENT_GL_HOOK_ABSTRACT = "gl_hook_abstract"; +DLLSPEC daeString COLLADA_ELEMENT_FUNC = "func"; +DLLSPEC daeString COLLADA_ELEMENT_VALUE = "value"; +DLLSPEC daeString COLLADA_ELEMENT_SRC = "src"; +DLLSPEC daeString COLLADA_ELEMENT_DEST = "dest"; +DLLSPEC daeString COLLADA_ELEMENT_SRC_RGB = "src_rgb"; +DLLSPEC daeString COLLADA_ELEMENT_DEST_RGB = "dest_rgb"; +DLLSPEC daeString COLLADA_ELEMENT_SRC_ALPHA = "src_alpha"; +DLLSPEC daeString COLLADA_ELEMENT_DEST_ALPHA = "dest_alpha"; +DLLSPEC daeString COLLADA_ELEMENT_rgb = "rgb"; +DLLSPEC daeString COLLADA_ELEMENT_MODE = "mode"; +DLLSPEC daeString COLLADA_ELEMENT_REF = "ref"; +DLLSPEC daeString COLLADA_ELEMENT_MASK = "mask"; +DLLSPEC daeString COLLADA_ELEMENT_FAIL = "fail"; +DLLSPEC daeString COLLADA_ELEMENT_ZFAIL = "zfail"; +DLLSPEC daeString COLLADA_ELEMENT_ZPASS = "zpass"; +DLLSPEC daeString COLLADA_ELEMENT_FRONT = "front"; +DLLSPEC daeString COLLADA_ELEMENT_BACK = "back"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL1 = "bool1"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL1X1 = "bool1x1"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL1X2 = "bool1x2"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL1X3 = "bool1x3"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL1X4 = "bool1x4"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL2X1 = "bool2x1"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL2X2 = "bool2x2"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL2X3 = "bool2x3"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL2X4 = "bool2x4"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL3X1 = "bool3x1"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL3X2 = "bool3x2"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL3X3 = "bool3x3"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL3X4 = "bool3x4"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL4X1 = "bool4x1"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL4X2 = "bool4x2"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL4X3 = "bool4x3"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL4X4 = "bool4x4"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT1 = "float1"; +DLLSPEC daeString COLLADA_ELEMENT_INT1 = "int1"; +DLLSPEC daeString COLLADA_ELEMENT_INT1X1 = "int1x1"; +DLLSPEC daeString COLLADA_ELEMENT_INT1X2 = "int1x2"; +DLLSPEC daeString COLLADA_ELEMENT_INT1X3 = "int1x3"; +DLLSPEC daeString COLLADA_ELEMENT_INT1X4 = "int1x4"; +DLLSPEC daeString COLLADA_ELEMENT_INT2X1 = "int2x1"; +DLLSPEC daeString COLLADA_ELEMENT_INT2X2 = "int2x2"; +DLLSPEC daeString COLLADA_ELEMENT_INT2X3 = "int2x3"; +DLLSPEC daeString COLLADA_ELEMENT_INT2X4 = "int2x4"; +DLLSPEC daeString COLLADA_ELEMENT_INT3X1 = "int3x1"; +DLLSPEC daeString COLLADA_ELEMENT_INT3X2 = "int3x2"; +DLLSPEC daeString COLLADA_ELEMENT_INT3X3 = "int3x3"; +DLLSPEC daeString COLLADA_ELEMENT_INT3X4 = "int3x4"; +DLLSPEC daeString COLLADA_ELEMENT_INT4X1 = "int4x1"; +DLLSPEC daeString COLLADA_ELEMENT_INT4X2 = "int4x2"; +DLLSPEC daeString COLLADA_ELEMENT_INT4X3 = "int4x3"; +DLLSPEC daeString COLLADA_ELEMENT_INT4X4 = "int4x4"; +DLLSPEC daeString COLLADA_ELEMENT_HALF = "half"; +DLLSPEC daeString COLLADA_ELEMENT_HALF1 = "half1"; +DLLSPEC daeString COLLADA_ELEMENT_HALF2 = "half2"; +DLLSPEC daeString COLLADA_ELEMENT_HALF3 = "half3"; +DLLSPEC daeString COLLADA_ELEMENT_HALF4 = "half4"; +DLLSPEC daeString COLLADA_ELEMENT_HALF1X1 = "half1x1"; +DLLSPEC daeString COLLADA_ELEMENT_HALF1X2 = "half1x2"; +DLLSPEC daeString COLLADA_ELEMENT_HALF1X3 = "half1x3"; +DLLSPEC daeString COLLADA_ELEMENT_HALF1X4 = "half1x4"; +DLLSPEC daeString COLLADA_ELEMENT_HALF2X1 = "half2x1"; +DLLSPEC daeString COLLADA_ELEMENT_HALF2X2 = "half2x2"; +DLLSPEC daeString COLLADA_ELEMENT_HALF2X3 = "half2x3"; +DLLSPEC daeString COLLADA_ELEMENT_HALF2X4 = "half2x4"; +DLLSPEC daeString COLLADA_ELEMENT_HALF3X1 = "half3x1"; +DLLSPEC daeString COLLADA_ELEMENT_HALF3X2 = "half3x2"; +DLLSPEC daeString COLLADA_ELEMENT_HALF3X3 = "half3x3"; +DLLSPEC daeString COLLADA_ELEMENT_HALF3X4 = "half3x4"; +DLLSPEC daeString COLLADA_ELEMENT_HALF4X1 = "half4x1"; +DLLSPEC daeString COLLADA_ELEMENT_HALF4X2 = "half4x2"; +DLLSPEC daeString COLLADA_ELEMENT_HALF4X3 = "half4x3"; +DLLSPEC daeString COLLADA_ELEMENT_HALF4X4 = "half4x4"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED = "fixed"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED1 = "fixed1"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED2 = "fixed2"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED3 = "fixed3"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED4 = "fixed4"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED1X1 = "fixed1x1"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED1X2 = "fixed1x2"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED1X3 = "fixed1x3"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED1X4 = "fixed1x4"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED2X1 = "fixed2x1"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED2X2 = "fixed2x2"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED2X3 = "fixed2x3"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED2X4 = "fixed2x4"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED3X1 = "fixed3x1"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED3X2 = "fixed3x2"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED3X3 = "fixed3x3"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED3X4 = "fixed3x4"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED4X1 = "fixed4x1"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED4X2 = "fixed4x2"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED4X3 = "fixed4x3"; +DLLSPEC daeString COLLADA_ELEMENT_FIXED4X4 = "fixed4x4"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_PIPELINE = "texture_pipeline"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT_LINEAR_ATTENUTATION = "light_linear_attenutation"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_PIPELINE_ENABLE = "texture_pipeline_enable"; +DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_UNIT = "texture_unit"; +DLLSPEC daeString COLLADA_ELEMENT_ASSET = "asset"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_ANIMATIONS = "library_animations"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_ANIMATION_CLIPS = "library_animation_clips"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_CAMERAS = "library_cameras"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_CONTROLLERS = "library_controllers"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_GEOMETRIES = "library_geometries"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_EFFECTS = "library_effects"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_FORCE_FIELDS = "library_force_fields"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_IMAGES = "library_images"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_LIGHTS = "library_lights"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_MATERIALS = "library_materials"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_NODES = "library_nodes"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_MATERIALS = "library_physics_materials"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_MODELS = "library_physics_models"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_SCENES = "library_physics_scenes"; +DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_VISUAL_SCENES = "library_visual_scenes"; +DLLSPEC daeString COLLADA_ELEMENT_SCENE = "scene"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_PHYSICS_SCENE = "instance_physics_scene"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_VISUAL_SCENE = "instance_visual_scene"; +DLLSPEC daeString COLLADA_ELEMENT_IDREF_ARRAY = "IDREF_array"; +DLLSPEC daeString COLLADA_ELEMENT_NAME_ARRAY = "Name_array"; +DLLSPEC daeString COLLADA_ELEMENT_BOOL_ARRAY = "bool_array"; +DLLSPEC daeString COLLADA_ELEMENT_FLOAT_ARRAY = "float_array"; +DLLSPEC daeString COLLADA_ELEMENT_INT_ARRAY = "int_array"; +DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE_COMMON = "technique_common"; +DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE = "technique"; +DLLSPEC daeString COLLADA_ELEMENT_ACCESSOR = "accessor"; +DLLSPEC daeString COLLADA_ELEMENT_CONVEX_MESH = "convex_mesh"; +DLLSPEC daeString COLLADA_ELEMENT_MESH = "mesh"; +DLLSPEC daeString COLLADA_ELEMENT_SPLINE = "spline"; +DLLSPEC daeString COLLADA_ELEMENT_VERTICES = "vertices"; +DLLSPEC daeString COLLADA_ELEMENT_LINES = "lines"; +DLLSPEC daeString COLLADA_ELEMENT_LINESTRIPS = "linestrips"; +DLLSPEC daeString COLLADA_ELEMENT_POLYGONS = "polygons"; +DLLSPEC daeString COLLADA_ELEMENT_POLYLIST = "polylist"; +DLLSPEC daeString COLLADA_ELEMENT_TRIANGLES = "triangles"; +DLLSPEC daeString COLLADA_ELEMENT_TRIFANS = "trifans"; +DLLSPEC daeString COLLADA_ELEMENT_TRISTRIPS = "tristrips"; +DLLSPEC daeString COLLADA_ELEMENT_CONTROL_VERTICES = "control_vertices"; +DLLSPEC daeString COLLADA_ELEMENT_INPUT = "input"; +DLLSPEC daeString COLLADA_ELEMENT_P = "p"; +DLLSPEC daeString COLLADA_ELEMENT_PH = "ph"; +DLLSPEC daeString COLLADA_ELEMENT_H = "h"; +DLLSPEC daeString COLLADA_ELEMENT_VCOUNT = "vcount"; +DLLSPEC daeString COLLADA_ELEMENT_DATA = "data"; +DLLSPEC daeString COLLADA_ELEMENT_AMBIENT = "ambient"; +DLLSPEC daeString COLLADA_ELEMENT_DIRECTIONAL = "directional"; +DLLSPEC daeString COLLADA_ELEMENT_POINT = "point"; +DLLSPEC daeString COLLADA_ELEMENT_SPOT = "spot"; +DLLSPEC daeString COLLADA_ELEMENT_CONSTANT_ATTENUATION = "constant_attenuation"; +DLLSPEC daeString COLLADA_ELEMENT_LINEAR_ATTENUATION = "linear_attenuation"; +DLLSPEC daeString COLLADA_ELEMENT_QUADRATIC_ATTENUATION = "quadratic_attenuation"; +DLLSPEC daeString COLLADA_ELEMENT_FALLOFF_ANGLE = "falloff_angle"; +DLLSPEC daeString COLLADA_ELEMENT_FALLOFF_EXPONENT = "falloff_exponent"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_EFFECT = "instance_effect"; +DLLSPEC daeString COLLADA_ELEMENT_OPTICS = "optics"; +DLLSPEC daeString COLLADA_ELEMENT_IMAGER = "imager"; +DLLSPEC daeString COLLADA_ELEMENT_ORTHOGRAPHIC = "orthographic"; +DLLSPEC daeString COLLADA_ELEMENT_PERSPECTIVE = "perspective"; +DLLSPEC daeString COLLADA_ELEMENT_XMAG = "xmag"; +DLLSPEC daeString COLLADA_ELEMENT_YMAG = "ymag"; +DLLSPEC daeString COLLADA_ELEMENT_ASPECT_RATIO = "aspect_ratio"; +DLLSPEC daeString COLLADA_ELEMENT_ZNEAR = "znear"; +DLLSPEC daeString COLLADA_ELEMENT_ZFAR = "zfar"; +DLLSPEC daeString COLLADA_ELEMENT_XFOV = "xfov"; +DLLSPEC daeString COLLADA_ELEMENT_YFOV = "yfov"; +DLLSPEC daeString COLLADA_ELEMENT_SAMPLER = "sampler"; +DLLSPEC daeString COLLADA_ELEMENT_CHANNEL = "channel"; +DLLSPEC daeString COLLADA_ELEMENT_ANIMATION = "animation"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_ANIMATION = "instance_animation"; +DLLSPEC daeString COLLADA_ELEMENT_SKIN = "skin"; +DLLSPEC daeString COLLADA_ELEMENT_MORPH = "morph"; +DLLSPEC daeString COLLADA_ELEMENT_BIND_SHAPE_MATRIX = "bind_shape_matrix"; +DLLSPEC daeString COLLADA_ELEMENT_JOINTS = "joints"; +DLLSPEC daeString COLLADA_ELEMENT_VERTEX_WEIGHTS = "vertex_weights"; +DLLSPEC daeString COLLADA_ELEMENT_V = "v"; +DLLSPEC daeString COLLADA_ELEMENT_TARGETS = "targets"; +DLLSPEC daeString COLLADA_ELEMENT_CONTRIBUTOR = "contributor"; +DLLSPEC daeString COLLADA_ELEMENT_CREATED = "created"; +DLLSPEC daeString COLLADA_ELEMENT_KEYWORDS = "keywords"; +DLLSPEC daeString COLLADA_ELEMENT_MODIFIED = "modified"; +DLLSPEC daeString COLLADA_ELEMENT_REVISION = "revision"; +DLLSPEC daeString COLLADA_ELEMENT_SUBJECT = "subject"; +DLLSPEC daeString COLLADA_ELEMENT_TITLE = "title"; +DLLSPEC daeString COLLADA_ELEMENT_UNIT = "unit"; +DLLSPEC daeString COLLADA_ELEMENT_UP_AXIS = "up_axis"; +DLLSPEC daeString COLLADA_ELEMENT_AUTHOR = "author"; +DLLSPEC daeString COLLADA_ELEMENT_AUTHORING_TOOL = "authoring_tool"; +DLLSPEC daeString COLLADA_ELEMENT_COMMENTS = "comments"; +DLLSPEC daeString COLLADA_ELEMENT_COPYRIGHT = "copyright"; +DLLSPEC daeString COLLADA_ELEMENT_SOURCE_DATA = "source_data"; +DLLSPEC daeString COLLADA_ELEMENT_LOOKAT = "lookat"; +DLLSPEC daeString COLLADA_ELEMENT_MATRIX = "matrix"; +DLLSPEC daeString COLLADA_ELEMENT_ROTATE = "rotate"; +DLLSPEC daeString COLLADA_ELEMENT_SCALE = "scale"; +DLLSPEC daeString COLLADA_ELEMENT_SKEW = "skew"; +DLLSPEC daeString COLLADA_ELEMENT_TRANSLATE = "translate"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_CAMERA = "instance_camera"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_CONTROLLER = "instance_controller"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_GEOMETRY = "instance_geometry"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_LIGHT = "instance_light"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_NODE = "instance_node"; +DLLSPEC daeString COLLADA_ELEMENT_NODE = "node"; +DLLSPEC daeString COLLADA_ELEMENT_EVALUATE_SCENE = "evaluate_scene"; +DLLSPEC daeString COLLADA_ELEMENT_RENDER = "render"; +DLLSPEC daeString COLLADA_ELEMENT_LAYER = "layer"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_MATERIAL = "instance_material"; +DLLSPEC daeString COLLADA_ELEMENT_SKELETON = "skeleton"; +DLLSPEC daeString COLLADA_ELEMENT_BIND_MATERIAL = "bind_material"; +DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE_HINT = "technique_hint"; +DLLSPEC daeString COLLADA_ELEMENT_BIND = "bind"; +DLLSPEC daeString COLLADA_ELEMENT_BIND_VERTEX_INPUT = "bind_vertex_input"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_FORCE_FIELD = "instance_force_field"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_RIGID_BODY = "instance_rigid_body"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_RIGID_CONSTRAINT = "instance_rigid_constraint"; +DLLSPEC daeString COLLADA_ELEMENT_ANGULAR_VELOCITY = "angular_velocity"; +DLLSPEC daeString COLLADA_ELEMENT_VELOCITY = "velocity"; +DLLSPEC daeString COLLADA_ELEMENT_DYNAMIC = "dynamic"; +DLLSPEC daeString COLLADA_ELEMENT_MASS = "mass"; +DLLSPEC daeString COLLADA_ELEMENT_MASS_FRAME = "mass_frame"; +DLLSPEC daeString COLLADA_ELEMENT_INERTIA = "inertia"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_PHYSICS_MATERIAL = "instance_physics_material"; +DLLSPEC daeString COLLADA_ELEMENT_PHYSICS_MATERIAL = "physics_material"; +DLLSPEC daeString COLLADA_ELEMENT_SHAPE = "shape"; +DLLSPEC daeString COLLADA_ELEMENT_HOLLOW = "hollow"; +DLLSPEC daeString COLLADA_ELEMENT_DENSITY = "density"; +DLLSPEC daeString COLLADA_ELEMENT_PLANE = "plane"; +DLLSPEC daeString COLLADA_ELEMENT_BOX = "box"; +DLLSPEC daeString COLLADA_ELEMENT_SPHERE = "sphere"; +DLLSPEC daeString COLLADA_ELEMENT_CYLINDER = "cylinder"; +DLLSPEC daeString COLLADA_ELEMENT_TAPERED_CYLINDER = "tapered_cylinder"; +DLLSPEC daeString COLLADA_ELEMENT_CAPSULE = "capsule"; +DLLSPEC daeString COLLADA_ELEMENT_TAPERED_CAPSULE = "tapered_capsule"; +DLLSPEC daeString COLLADA_ELEMENT_ANIMATION_CLIP = "animation_clip"; +DLLSPEC daeString COLLADA_ELEMENT_CAMERA = "camera"; +DLLSPEC daeString COLLADA_ELEMENT_CONTROLLER = "controller"; +DLLSPEC daeString COLLADA_ELEMENT_GEOMETRY = "geometry"; +DLLSPEC daeString COLLADA_ELEMENT_EFFECT = "effect"; +DLLSPEC daeString COLLADA_ELEMENT_FORCE_FIELD = "force_field"; +DLLSPEC daeString COLLADA_ELEMENT_IMAGE = "image"; +DLLSPEC daeString COLLADA_ELEMENT_LIGHT = "light"; +DLLSPEC daeString COLLADA_ELEMENT_MATERIAL = "material"; +DLLSPEC daeString COLLADA_ELEMENT_PHYSICS_MODEL = "physics_model"; +DLLSPEC daeString COLLADA_ELEMENT_PHYSICS_SCENE = "physics_scene"; +DLLSPEC daeString COLLADA_ELEMENT_VISUAL_SCENE = "visual_scene"; +DLLSPEC daeString COLLADA_ELEMENT_NEWPARAM = "newparam"; +DLLSPEC daeString COLLADA_ELEMENT_FX_PROFILE_ABSTRACT = "fx_profile_abstract"; +DLLSPEC daeString COLLADA_ELEMENT_PROFILE_GLSL = "profile_GLSL"; +DLLSPEC daeString COLLADA_ELEMENT_PASS = "pass"; +DLLSPEC daeString COLLADA_ELEMENT_COLOR_TARGET = "color_target"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_TARGET = "depth_target"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_TARGET = "stencil_target"; +DLLSPEC daeString COLLADA_ELEMENT_COLOR_CLEAR = "color_clear"; +DLLSPEC daeString COLLADA_ELEMENT_DEPTH_CLEAR = "depth_clear"; +DLLSPEC daeString COLLADA_ELEMENT_STENCIL_CLEAR = "stencil_clear"; +DLLSPEC daeString COLLADA_ELEMENT_DRAW = "draw"; +DLLSPEC daeString COLLADA_ELEMENT_GL_PIPELINE_SETTINGS = "gl_pipeline_settings"; +DLLSPEC daeString COLLADA_ELEMENT_SHADER = "shader"; +DLLSPEC daeString COLLADA_ELEMENT_COMPILER_TARGET = "compiler_target"; +DLLSPEC daeString COLLADA_ELEMENT_COMPILER_OPTIONS = "compiler_options"; +DLLSPEC daeString COLLADA_ELEMENT_PROFILE_COMMON = "profile_COMMON"; +DLLSPEC daeString COLLADA_ELEMENT_LAMBERT = "lambert"; +DLLSPEC daeString COLLADA_ELEMENT_PHONG = "phong"; +DLLSPEC daeString COLLADA_ELEMENT_BLINN = "blinn"; +DLLSPEC daeString COLLADA_ELEMENT_EMISSION = "emission"; +DLLSPEC daeString COLLADA_ELEMENT_REFLECTIVE = "reflective"; +DLLSPEC daeString COLLADA_ELEMENT_REFLECTIVITY = "reflectivity"; +DLLSPEC daeString COLLADA_ELEMENT_TRANSPARENT = "transparent"; +DLLSPEC daeString COLLADA_ELEMENT_TRANSPARENCY = "transparency"; +DLLSPEC daeString COLLADA_ELEMENT_INDEX_OF_REFRACTION = "index_of_refraction"; +DLLSPEC daeString COLLADA_ELEMENT_DIFFUSE = "diffuse"; +DLLSPEC daeString COLLADA_ELEMENT_SPECULAR = "specular"; +DLLSPEC daeString COLLADA_ELEMENT_SHININESS = "shininess"; +DLLSPEC daeString COLLADA_ELEMENT_PROFILE_CG = "profile_CG"; +DLLSPEC daeString COLLADA_ELEMENT_PROFILE_GLES = "profile_GLES"; +DLLSPEC daeString COLLADA_ELEMENT_GLES_PIPELINE_SETTINGS = "gles_pipeline_settings"; +DLLSPEC daeString COLLADA_ELEMENT_HALF_EXTENTS = "half_extents"; +DLLSPEC daeString COLLADA_ELEMENT_EQUATION = "equation"; +DLLSPEC daeString COLLADA_ELEMENT_RADIUS = "radius"; +DLLSPEC daeString COLLADA_ELEMENT_HEIGHT = "height"; +DLLSPEC daeString COLLADA_ELEMENT_RADIUS1 = "radius1"; +DLLSPEC daeString COLLADA_ELEMENT_RADIUS2 = "radius2"; +DLLSPEC daeString COLLADA_ELEMENT_DYNAMIC_FRICTION = "dynamic_friction"; +DLLSPEC daeString COLLADA_ELEMENT_RESTITUTION = "restitution"; +DLLSPEC daeString COLLADA_ELEMENT_STATIC_FRICTION = "static_friction"; +DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_PHYSICS_MODEL = "instance_physics_model"; +DLLSPEC daeString COLLADA_ELEMENT_GRAVITY = "gravity"; +DLLSPEC daeString COLLADA_ELEMENT_TIME_STEP = "time_step"; +DLLSPEC daeString COLLADA_ELEMENT_REF_ATTACHMENT = "ref_attachment"; +DLLSPEC daeString COLLADA_ELEMENT_ATTACHMENT = "attachment"; +DLLSPEC daeString COLLADA_ELEMENT_ENABLED = "enabled"; +DLLSPEC daeString COLLADA_ELEMENT_INTERPENETRATE = "interpenetrate"; +DLLSPEC daeString COLLADA_ELEMENT_LIMITS = "limits"; +DLLSPEC daeString COLLADA_ELEMENT_SPRING = "spring"; +DLLSPEC daeString COLLADA_ELEMENT_SWING_CONE_AND_TWIST = "swing_cone_and_twist"; +DLLSPEC daeString COLLADA_ELEMENT_LINEAR = "linear"; +DLLSPEC daeString COLLADA_ELEMENT_MIN = "min"; +DLLSPEC daeString COLLADA_ELEMENT_MAX = "max"; +DLLSPEC daeString COLLADA_ELEMENT_ANGULAR = "angular"; +DLLSPEC daeString COLLADA_ELEMENT_STIFFNESS = "stiffness"; +DLLSPEC daeString COLLADA_ELEMENT_DAMPING = "damping"; +DLLSPEC daeString COLLADA_ELEMENT_TARGET_VALUE = "target_value"; +DLLSPEC daeString COLLADA_ELEMENT_RIGID_BODY = "rigid_body"; +DLLSPEC daeString COLLADA_ELEMENT_RIGID_CONSTRAINT = "rigid_constraint"; diff --git a/src/1.4/dom/domController.cpp b/src/1.4/dom/domController.cpp new file mode 100644 index 0000000..40e03b3 --- /dev/null +++ b/src/1.4/dom/domController.cpp @@ -0,0 +1,111 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domController::create(DAE& dae) +{ + domControllerRef ref = new domController(dae); + return ref; +} + + +daeMetaElement * +domController::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "controller" ); + meta->registerClass(domController::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domController,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "skin" ); + mea->setOffset( daeOffsetOf(domController,elemSkin) ); + mea->setElementType( domSkin::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "morph" ); + mea->setOffset( daeOffsetOf(domController,elemMorph) ); + mea->setElementType( domMorph::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domController,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domController,_contents)); + meta->addContentsOrder(daeOffsetOf(domController,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domController,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domController , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domController , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domController)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domConvex_mesh.cpp b/src/1.4/dom/domConvex_mesh.cpp new file mode 100644 index 0000000..211470c --- /dev/null +++ b/src/1.4/dom/domConvex_mesh.cpp @@ -0,0 +1,136 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domConvex_mesh::create(DAE& dae) +{ + domConvex_meshRef ref = new domConvex_mesh(dae); + return ref; +} + + +daeMetaElement * +domConvex_mesh::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "convex_mesh" ); + meta->registerClass(domConvex_mesh::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 0, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemSource_array) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "vertices" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemVertices) ); + mea->setElementType( domVertices::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 2, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "lines" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemLines_array) ); + mea->setElementType( domLines::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "linestrips" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemLinestrips_array) ); + mea->setElementType( domLinestrips::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygons" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemPolygons_array) ); + mea->setElementType( domPolygons::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polylist" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemPolylist_array) ); + mea->setElementType( domPolylist::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "triangles" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemTriangles_array) ); + mea->setElementType( domTriangles::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "trifans" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemTrifans_array) ); + mea->setElementType( domTrifans::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "tristrips" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemTristrips_array) ); + mea->setElementType( domTristrips::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domConvex_mesh,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domConvex_mesh,_contents)); + meta->addContentsOrder(daeOffsetOf(domConvex_mesh,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domConvex_mesh,_CMData), 1); + // Add attribute: convex_hull_of + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "convex_hull_of" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domConvex_mesh , attrConvex_hull_of )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domConvex_mesh)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domCylinder.cpp b/src/1.4/dom/domCylinder.cpp new file mode 100644 index 0000000..7bbe895 --- /dev/null +++ b/src/1.4/dom/domCylinder.cpp @@ -0,0 +1,145 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domCylinder::create(DAE& dae) +{ + domCylinderRef ref = new domCylinder(dae); + return ref; +} + + +daeMetaElement * +domCylinder::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cylinder" ); + meta->registerClass(domCylinder::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "height" ); + mea->setOffset( daeOffsetOf(domCylinder,elemHeight) ); + mea->setElementType( domCylinder::domHeight::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "radius" ); + mea->setOffset( daeOffsetOf(domCylinder,elemRadius) ); + mea->setElementType( domCylinder::domRadius::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domCylinder,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domCylinder)); + meta->validate(); + + return meta; +} + +daeElementRef +domCylinder::domHeight::create(DAE& dae) +{ + domCylinder::domHeightRef ref = new domCylinder::domHeight(dae); + return ref; +} + + +daeMetaElement * +domCylinder::domHeight::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "height" ); + meta->registerClass(domCylinder::domHeight::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domCylinder::domHeight , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCylinder::domHeight)); + meta->validate(); + + return meta; +} + +daeElementRef +domCylinder::domRadius::create(DAE& dae) +{ + domCylinder::domRadiusRef ref = new domCylinder::domRadius(dae); + return ref; +} + + +daeMetaElement * +domCylinder::domRadius::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius" ); + meta->registerClass(domCylinder::domRadius::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domCylinder::domRadius , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domCylinder::domRadius)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domEffect.cpp b/src/1.4/dom/domEffect.cpp new file mode 100644 index 0000000..a30776b --- /dev/null +++ b/src/1.4/dom/domEffect.cpp @@ -0,0 +1,150 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domEffect::create(DAE& dae) +{ + domEffectRef ref = new domEffect(dae); + return ref; +} + +#include +#include +#include +#include + +daeMetaElement * +domEffect::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "effect" ); + meta->registerClass(domEffect::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domEffect,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domEffect,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domEffect,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domEffect,elemNewparam_array) ); + mea->setElementType( domFx_newparam_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 1, -1 ); + mea->setName( "fx_profile_abstract" ); + mea->setOffset( daeOffsetOf(domEffect,elemFx_profile_abstract_array) ); + mea->setElementType( domFx_profile_abstract::registerElement(dae) ); + cm->appendChild( mea ); + + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 1, -1 ); + mea->setName( "profile_GLSL" ); + mea->setOffset( daeOffsetOf(domEffect,elemFx_profile_abstract_array) ); + mea->setElementType( domProfile_GLSL::registerElement(dae) ); + cm->appendChild( mea ); + + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 1, -1 ); + mea->setName( "profile_COMMON" ); + mea->setOffset( daeOffsetOf(domEffect,elemFx_profile_abstract_array) ); + mea->setElementType( domProfile_COMMON::registerElement(dae) ); + cm->appendChild( mea ); + + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 1, -1 ); + mea->setName( "profile_CG" ); + mea->setOffset( daeOffsetOf(domEffect,elemFx_profile_abstract_array) ); + mea->setElementType( domProfile_CG::registerElement(dae) ); + cm->appendChild( mea ); + + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 1, -1 ); + mea->setName( "profile_GLES" ); + mea->setOffset( daeOffsetOf(domEffect,elemFx_profile_abstract_array) ); + mea->setElementType( domProfile_GLES::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domEffect,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domEffect,_contents)); + meta->addContentsOrder(daeOffsetOf(domEffect,_contentsOrder)); + + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domEffect , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domEffect , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domEffect)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domEllipsoid.cpp b/src/1.4/dom/domEllipsoid.cpp new file mode 100644 index 0000000..67a2550 --- /dev/null +++ b/src/1.4/dom/domEllipsoid.cpp @@ -0,0 +1,97 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domEllipsoid::create(DAE& dae) +{ + domEllipsoidRef ref = new domEllipsoid(dae); + return ref; +} + + +daeMetaElement * +domEllipsoid::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "ellipsoid" ); + meta->registerClass(domEllipsoid::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "size" ); + mea->setOffset( daeOffsetOf(domEllipsoid,elemSize) ); + mea->setElementType( domEllipsoid::domSize::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domEllipsoid)); + meta->validate(); + + return meta; +} + +daeElementRef +domEllipsoid::domSize::create(DAE& dae) +{ + domEllipsoid::domSizeRef ref = new domEllipsoid::domSize(dae); + return ref; +} + + +daeMetaElement * +domEllipsoid::domSize::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "size" ); + meta->registerClass(domEllipsoid::domSize::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domEllipsoid::domSize , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domEllipsoid::domSize)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domExtra.cpp b/src/1.4/dom/domExtra.cpp new file mode 100644 index 0000000..4fa1e81 --- /dev/null +++ b/src/1.4/dom/domExtra.cpp @@ -0,0 +1,100 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domExtra::create(DAE& dae) +{ + domExtraRef ref = new domExtra(dae); + return ref; +} + + +daeMetaElement * +domExtra::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "extra" ); + meta->registerClass(domExtra::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domExtra,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domExtra,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domExtra , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domExtra , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: type + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "type" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domExtra , attrType )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domExtra)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFloat_array.cpp b/src/1.4/dom/domFloat_array.cpp new file mode 100644 index 0000000..179de18 --- /dev/null +++ b/src/1.4/dom/domFloat_array.cpp @@ -0,0 +1,116 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFloat_array::create(DAE& dae) +{ + domFloat_arrayRef ref = new domFloat_array(dae); + return ref; +} + + +daeMetaElement * +domFloat_array::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float_array" ); + meta->registerClass(domFloat_array::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfFloats")); + ma->setOffset( daeOffsetOf( domFloat_array , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domFloat_array , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFloat_array , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domFloat_array , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: digits + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "digits" ); + ma->setType( dae.getAtomicTypes().get("xsShort")); + ma->setOffset( daeOffsetOf( domFloat_array , attrDigits )); + ma->setContainer( meta ); + ma->setDefaultString( "6"); + + meta->appendAttribute(ma); + } + + // Add attribute: magnitude + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "magnitude" ); + ma->setType( dae.getAtomicTypes().get("xsShort")); + ma->setOffset( daeOffsetOf( domFloat_array , attrMagnitude )); + ma->setContainer( meta ); + ma->setDefaultString( "38"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFloat_array)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domForce_field.cpp b/src/1.4/dom/domForce_field.cpp new file mode 100644 index 0000000..16efb91 --- /dev/null +++ b/src/1.4/dom/domForce_field.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domForce_field::create(DAE& dae) +{ + domForce_fieldRef ref = new domForce_field(dae); + return ref; +} + + +daeMetaElement * +domForce_field::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "force_field" ); + meta->registerClass(domForce_field::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domForce_field,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domForce_field,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domForce_field,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domForce_field , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domForce_field , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domForce_field)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_annotate_common.cpp b/src/1.4/dom/domFx_annotate_common.cpp new file mode 100644 index 0000000..1e8b224 --- /dev/null +++ b/src/1.4/dom/domFx_annotate_common.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_annotate_common::create(DAE& dae) +{ + domFx_annotate_commonRef ref = new domFx_annotate_common(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_annotate_common" ); + meta->registerClass(domFx_annotate_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fx_annotate_type_common" ); + mea->setOffset( daeOffsetOf(domFx_annotate_common,elemFx_annotate_type_common) ); + mea->setElementType( domFx_annotate_type_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_annotate_common , attrName )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_annotate_type_common.cpp b/src/1.4/dom/domFx_annotate_type_common.cpp new file mode 100644 index 0000000..992cb75 --- /dev/null +++ b/src/1.4/dom/domFx_annotate_type_common.cpp @@ -0,0 +1,732 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_annotate_type_common::create(DAE& dae) +{ + domFx_annotate_type_commonRef ref = new domFx_annotate_type_common(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_annotate_type_common" ); + meta->registerClass(domFx_annotate_type_common::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemBool) ); + mea->setElementType( domFx_annotate_type_common::domBool::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemBool2) ); + mea->setElementType( domFx_annotate_type_common::domBool2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemBool3) ); + mea->setElementType( domFx_annotate_type_common::domBool3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemBool4) ); + mea->setElementType( domFx_annotate_type_common::domBool4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemInt) ); + mea->setElementType( domFx_annotate_type_common::domInt::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemInt2) ); + mea->setElementType( domFx_annotate_type_common::domInt2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemInt3) ); + mea->setElementType( domFx_annotate_type_common::domInt3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemInt4) ); + mea->setElementType( domFx_annotate_type_common::domInt4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemFloat) ); + mea->setElementType( domFx_annotate_type_common::domFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemFloat2) ); + mea->setElementType( domFx_annotate_type_common::domFloat2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemFloat3) ); + mea->setElementType( domFx_annotate_type_common::domFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemFloat4) ); + mea->setElementType( domFx_annotate_type_common::domFloat4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x2" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemFloat2x2) ); + mea->setElementType( domFx_annotate_type_common::domFloat2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x3" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemFloat3x3) ); + mea->setElementType( domFx_annotate_type_common::domFloat3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x4" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemFloat4x4) ); + mea->setElementType( domFx_annotate_type_common::domFloat4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "string" ); + mea->setOffset( daeOffsetOf(domFx_annotate_type_common,elemString) ); + mea->setElementType( domFx_annotate_type_common::domString::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domFx_annotate_type_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domFx_annotate_type_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domFx_annotate_type_common,_CMData), 1); + meta->setElementSize(sizeof(domFx_annotate_type_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domBool::create(DAE& dae) +{ + domFx_annotate_type_common::domBoolRef ref = new domFx_annotate_type_common::domBool(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domBool::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool" ); + meta->registerClass(domFx_annotate_type_common::domBool::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domBool , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domBool)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domBool2::create(DAE& dae) +{ + domFx_annotate_type_common::domBool2Ref ref = new domFx_annotate_type_common::domBool2(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domBool2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2" ); + meta->registerClass(domFx_annotate_type_common::domBool2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool2")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domBool2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domBool2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domBool3::create(DAE& dae) +{ + domFx_annotate_type_common::domBool3Ref ref = new domFx_annotate_type_common::domBool3(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domBool3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3" ); + meta->registerClass(domFx_annotate_type_common::domBool3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool3")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domBool3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domBool3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domBool4::create(DAE& dae) +{ + domFx_annotate_type_common::domBool4Ref ref = new domFx_annotate_type_common::domBool4(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domBool4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4" ); + meta->registerClass(domFx_annotate_type_common::domBool4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool4")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domBool4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domBool4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domInt::create(DAE& dae) +{ + domFx_annotate_type_common::domIntRef ref = new domFx_annotate_type_common::domInt(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domInt::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int" ); + meta->registerClass(domFx_annotate_type_common::domInt::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domInt , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domInt)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domInt2::create(DAE& dae) +{ + domFx_annotate_type_common::domInt2Ref ref = new domFx_annotate_type_common::domInt2(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domInt2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2" ); + meta->registerClass(domFx_annotate_type_common::domInt2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int2")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domInt2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domInt2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domInt3::create(DAE& dae) +{ + domFx_annotate_type_common::domInt3Ref ref = new domFx_annotate_type_common::domInt3(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domInt3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3" ); + meta->registerClass(domFx_annotate_type_common::domInt3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int3")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domInt3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domInt3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domInt4::create(DAE& dae) +{ + domFx_annotate_type_common::domInt4Ref ref = new domFx_annotate_type_common::domInt4(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domInt4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4" ); + meta->registerClass(domFx_annotate_type_common::domInt4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int4")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domInt4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domInt4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domFloat::create(DAE& dae) +{ + domFx_annotate_type_common::domFloatRef ref = new domFx_annotate_type_common::domFloat(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float" ); + meta->registerClass(domFx_annotate_type_common::domFloat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domFloat)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domFloat2::create(DAE& dae) +{ + domFx_annotate_type_common::domFloat2Ref ref = new domFx_annotate_type_common::domFloat2(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domFloat2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2" ); + meta->registerClass(domFx_annotate_type_common::domFloat2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domFloat2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domFloat2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domFloat3::create(DAE& dae) +{ + domFx_annotate_type_common::domFloat3Ref ref = new domFx_annotate_type_common::domFloat3(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domFloat3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3" ); + meta->registerClass(domFx_annotate_type_common::domFloat3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domFloat3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domFloat3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domFloat4::create(DAE& dae) +{ + domFx_annotate_type_common::domFloat4Ref ref = new domFx_annotate_type_common::domFloat4(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domFloat4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4" ); + meta->registerClass(domFx_annotate_type_common::domFloat4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domFloat4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domFloat4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domFloat2x2::create(DAE& dae) +{ + domFx_annotate_type_common::domFloat2x2Ref ref = new domFx_annotate_type_common::domFloat2x2(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domFloat2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x2" ); + meta->registerClass(domFx_annotate_type_common::domFloat2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2x2")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domFloat2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domFloat2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domFloat3x3::create(DAE& dae) +{ + domFx_annotate_type_common::domFloat3x3Ref ref = new domFx_annotate_type_common::domFloat3x3(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domFloat3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x3" ); + meta->registerClass(domFx_annotate_type_common::domFloat3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x3")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domFloat3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domFloat3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domFloat4x4::create(DAE& dae) +{ + domFx_annotate_type_common::domFloat4x4Ref ref = new domFx_annotate_type_common::domFloat4x4(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domFloat4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x4" ); + meta->registerClass(domFx_annotate_type_common::domFloat4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domFloat4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domFloat4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_annotate_type_common::domString::create(DAE& dae) +{ + domFx_annotate_type_common::domStringRef ref = new domFx_annotate_type_common::domString(dae); + return ref; +} + + +daeMetaElement * +domFx_annotate_type_common::domString::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "string" ); + meta->registerClass(domFx_annotate_type_common::domString::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domFx_annotate_type_common::domString , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_annotate_type_common::domString)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_basic_type_common.cpp b/src/1.4/dom/domFx_basic_type_common.cpp new file mode 100644 index 0000000..5788c5d --- /dev/null +++ b/src/1.4/dom/domFx_basic_type_common.cpp @@ -0,0 +1,1320 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_basic_type_common::create(DAE& dae) +{ + domFx_basic_type_commonRef ref = new domFx_basic_type_common(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_basic_type_common" ); + meta->registerClass(domFx_basic_type_common::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemBool) ); + mea->setElementType( domFx_basic_type_common::domBool::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemBool2) ); + mea->setElementType( domFx_basic_type_common::domBool2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemBool3) ); + mea->setElementType( domFx_basic_type_common::domBool3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemBool4) ); + mea->setElementType( domFx_basic_type_common::domBool4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemInt) ); + mea->setElementType( domFx_basic_type_common::domInt::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemInt2) ); + mea->setElementType( domFx_basic_type_common::domInt2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemInt3) ); + mea->setElementType( domFx_basic_type_common::domInt3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemInt4) ); + mea->setElementType( domFx_basic_type_common::domInt4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat) ); + mea->setElementType( domFx_basic_type_common::domFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat2) ); + mea->setElementType( domFx_basic_type_common::domFloat2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat3) ); + mea->setElementType( domFx_basic_type_common::domFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat4) ); + mea->setElementType( domFx_basic_type_common::domFloat4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x1" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat1x1) ); + mea->setElementType( domFx_basic_type_common::domFloat1x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x2" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat1x2) ); + mea->setElementType( domFx_basic_type_common::domFloat1x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x3" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat1x3) ); + mea->setElementType( domFx_basic_type_common::domFloat1x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x4" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat1x4) ); + mea->setElementType( domFx_basic_type_common::domFloat1x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x1" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat2x1) ); + mea->setElementType( domFx_basic_type_common::domFloat2x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x2" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat2x2) ); + mea->setElementType( domFx_basic_type_common::domFloat2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x3" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat2x3) ); + mea->setElementType( domFx_basic_type_common::domFloat2x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x4" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat2x4) ); + mea->setElementType( domFx_basic_type_common::domFloat2x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x1" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat3x1) ); + mea->setElementType( domFx_basic_type_common::domFloat3x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x2" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat3x2) ); + mea->setElementType( domFx_basic_type_common::domFloat3x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x3" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat3x3) ); + mea->setElementType( domFx_basic_type_common::domFloat3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x4" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat3x4) ); + mea->setElementType( domFx_basic_type_common::domFloat3x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x1" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat4x1) ); + mea->setElementType( domFx_basic_type_common::domFloat4x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x2" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat4x2) ); + mea->setElementType( domFx_basic_type_common::domFloat4x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x3" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat4x3) ); + mea->setElementType( domFx_basic_type_common::domFloat4x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x4" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemFloat4x4) ); + mea->setElementType( domFx_basic_type_common::domFloat4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "surface" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemSurface) ); + mea->setElementType( domFx_surface_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler1D" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemSampler1D) ); + mea->setElementType( domFx_sampler1D_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler2D" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemSampler2D) ); + mea->setElementType( domFx_sampler2D_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler3D" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemSampler3D) ); + mea->setElementType( domFx_sampler3D_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerCUBE" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemSamplerCUBE) ); + mea->setElementType( domFx_samplerCUBE_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerRECT" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemSamplerRECT) ); + mea->setElementType( domFx_samplerRECT_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerDEPTH" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemSamplerDEPTH) ); + mea->setElementType( domFx_samplerDEPTH_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "enum" ); + mea->setOffset( daeOffsetOf(domFx_basic_type_common,elemEnum) ); + mea->setElementType( domFx_basic_type_common::domEnum::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domFx_basic_type_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domFx_basic_type_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domFx_basic_type_common,_CMData), 1); + meta->setElementSize(sizeof(domFx_basic_type_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domBool::create(DAE& dae) +{ + domFx_basic_type_common::domBoolRef ref = new domFx_basic_type_common::domBool(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domBool::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool" ); + meta->registerClass(domFx_basic_type_common::domBool::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domBool , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domBool)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domBool2::create(DAE& dae) +{ + domFx_basic_type_common::domBool2Ref ref = new domFx_basic_type_common::domBool2(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domBool2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2" ); + meta->registerClass(domFx_basic_type_common::domBool2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domBool2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domBool2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domBool3::create(DAE& dae) +{ + domFx_basic_type_common::domBool3Ref ref = new domFx_basic_type_common::domBool3(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domBool3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3" ); + meta->registerClass(domFx_basic_type_common::domBool3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domBool3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domBool3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domBool4::create(DAE& dae) +{ + domFx_basic_type_common::domBool4Ref ref = new domFx_basic_type_common::domBool4(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domBool4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4" ); + meta->registerClass(domFx_basic_type_common::domBool4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domBool4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domBool4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domInt::create(DAE& dae) +{ + domFx_basic_type_common::domIntRef ref = new domFx_basic_type_common::domInt(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domInt::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int" ); + meta->registerClass(domFx_basic_type_common::domInt::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domInt , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domInt)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domInt2::create(DAE& dae) +{ + domFx_basic_type_common::domInt2Ref ref = new domFx_basic_type_common::domInt2(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domInt2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2" ); + meta->registerClass(domFx_basic_type_common::domInt2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domInt2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domInt2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domInt3::create(DAE& dae) +{ + domFx_basic_type_common::domInt3Ref ref = new domFx_basic_type_common::domInt3(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domInt3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3" ); + meta->registerClass(domFx_basic_type_common::domInt3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domInt3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domInt3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domInt4::create(DAE& dae) +{ + domFx_basic_type_common::domInt4Ref ref = new domFx_basic_type_common::domInt4(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domInt4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4" ); + meta->registerClass(domFx_basic_type_common::domInt4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domInt4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domInt4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat::create(DAE& dae) +{ + domFx_basic_type_common::domFloatRef ref = new domFx_basic_type_common::domFloat(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float" ); + meta->registerClass(domFx_basic_type_common::domFloat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat2::create(DAE& dae) +{ + domFx_basic_type_common::domFloat2Ref ref = new domFx_basic_type_common::domFloat2(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2" ); + meta->registerClass(domFx_basic_type_common::domFloat2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat3::create(DAE& dae) +{ + domFx_basic_type_common::domFloat3Ref ref = new domFx_basic_type_common::domFloat3(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3" ); + meta->registerClass(domFx_basic_type_common::domFloat3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat4::create(DAE& dae) +{ + domFx_basic_type_common::domFloat4Ref ref = new domFx_basic_type_common::domFloat4(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4" ); + meta->registerClass(domFx_basic_type_common::domFloat4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat1x1::create(DAE& dae) +{ + domFx_basic_type_common::domFloat1x1Ref ref = new domFx_basic_type_common::domFloat1x1(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat1x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x1" ); + meta->registerClass(domFx_basic_type_common::domFloat1x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat1x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat1x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat1x2::create(DAE& dae) +{ + domFx_basic_type_common::domFloat1x2Ref ref = new domFx_basic_type_common::domFloat1x2(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat1x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x2" ); + meta->registerClass(domFx_basic_type_common::domFloat1x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat1x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat1x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat1x3::create(DAE& dae) +{ + domFx_basic_type_common::domFloat1x3Ref ref = new domFx_basic_type_common::domFloat1x3(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat1x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x3" ); + meta->registerClass(domFx_basic_type_common::domFloat1x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat1x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat1x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat1x4::create(DAE& dae) +{ + domFx_basic_type_common::domFloat1x4Ref ref = new domFx_basic_type_common::domFloat1x4(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat1x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x4" ); + meta->registerClass(domFx_basic_type_common::domFloat1x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat1x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat1x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat2x1::create(DAE& dae) +{ + domFx_basic_type_common::domFloat2x1Ref ref = new domFx_basic_type_common::domFloat2x1(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat2x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x1" ); + meta->registerClass(domFx_basic_type_common::domFloat2x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat2x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat2x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat2x2::create(DAE& dae) +{ + domFx_basic_type_common::domFloat2x2Ref ref = new domFx_basic_type_common::domFloat2x2(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x2" ); + meta->registerClass(domFx_basic_type_common::domFloat2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2x2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat2x3::create(DAE& dae) +{ + domFx_basic_type_common::domFloat2x3Ref ref = new domFx_basic_type_common::domFloat2x3(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat2x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x3" ); + meta->registerClass(domFx_basic_type_common::domFloat2x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2x3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat2x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat2x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat2x4::create(DAE& dae) +{ + domFx_basic_type_common::domFloat2x4Ref ref = new domFx_basic_type_common::domFloat2x4(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat2x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x4" ); + meta->registerClass(domFx_basic_type_common::domFloat2x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2x4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat2x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat2x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat3x1::create(DAE& dae) +{ + domFx_basic_type_common::domFloat3x1Ref ref = new domFx_basic_type_common::domFloat3x1(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat3x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x1" ); + meta->registerClass(domFx_basic_type_common::domFloat3x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat3x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat3x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat3x2::create(DAE& dae) +{ + domFx_basic_type_common::domFloat3x2Ref ref = new domFx_basic_type_common::domFloat3x2(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat3x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x2" ); + meta->registerClass(domFx_basic_type_common::domFloat3x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat3x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat3x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat3x3::create(DAE& dae) +{ + domFx_basic_type_common::domFloat3x3Ref ref = new domFx_basic_type_common::domFloat3x3(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x3" ); + meta->registerClass(domFx_basic_type_common::domFloat3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat3x4::create(DAE& dae) +{ + domFx_basic_type_common::domFloat3x4Ref ref = new domFx_basic_type_common::domFloat3x4(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat3x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x4" ); + meta->registerClass(domFx_basic_type_common::domFloat3x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat3x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat3x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat4x1::create(DAE& dae) +{ + domFx_basic_type_common::domFloat4x1Ref ref = new domFx_basic_type_common::domFloat4x1(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat4x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x1" ); + meta->registerClass(domFx_basic_type_common::domFloat4x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat4x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat4x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat4x2::create(DAE& dae) +{ + domFx_basic_type_common::domFloat4x2Ref ref = new domFx_basic_type_common::domFloat4x2(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat4x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x2" ); + meta->registerClass(domFx_basic_type_common::domFloat4x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x2")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat4x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat4x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat4x3::create(DAE& dae) +{ + domFx_basic_type_common::domFloat4x3Ref ref = new domFx_basic_type_common::domFloat4x3(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat4x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x3" ); + meta->registerClass(domFx_basic_type_common::domFloat4x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x3")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat4x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat4x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domFloat4x4::create(DAE& dae) +{ + domFx_basic_type_common::domFloat4x4Ref ref = new domFx_basic_type_common::domFloat4x4(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domFloat4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x4" ); + meta->registerClass(domFx_basic_type_common::domFloat4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domFloat4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domFloat4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_basic_type_common::domEnum::create(DAE& dae) +{ + domFx_basic_type_common::domEnumRef ref = new domFx_basic_type_common::domEnum(dae); + return ref; +} + + +daeMetaElement * +domFx_basic_type_common::domEnum::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "enum" ); + meta->registerClass(domFx_basic_type_common::domEnum::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domFx_basic_type_common::domEnum , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_basic_type_common::domEnum)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_clearcolor_common.cpp b/src/1.4/dom/domFx_clearcolor_common.cpp new file mode 100644 index 0000000..fdd94cd --- /dev/null +++ b/src/1.4/dom/domFx_clearcolor_common.cpp @@ -0,0 +1,71 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_clearcolor_common::create(DAE& dae) +{ + domFx_clearcolor_commonRef ref = new domFx_clearcolor_common(dae); + return ref; +} + + +daeMetaElement * +domFx_clearcolor_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_clearcolor_common" ); + meta->registerClass(domFx_clearcolor_common::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domFx_clearcolor_common , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_clearcolor_common , attrIndex )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_clearcolor_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_cleardepth_common.cpp b/src/1.4/dom/domFx_cleardepth_common.cpp new file mode 100644 index 0000000..521ba23 --- /dev/null +++ b/src/1.4/dom/domFx_cleardepth_common.cpp @@ -0,0 +1,71 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_cleardepth_common::create(DAE& dae) +{ + domFx_cleardepth_commonRef ref = new domFx_cleardepth_common(dae); + return ref; +} + + +daeMetaElement * +domFx_cleardepth_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_cleardepth_common" ); + meta->registerClass(domFx_cleardepth_common::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domFx_cleardepth_common , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_cleardepth_common , attrIndex )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_cleardepth_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_clearstencil_common.cpp b/src/1.4/dom/domFx_clearstencil_common.cpp new file mode 100644 index 0000000..19764a9 --- /dev/null +++ b/src/1.4/dom/domFx_clearstencil_common.cpp @@ -0,0 +1,71 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_clearstencil_common::create(DAE& dae) +{ + domFx_clearstencil_commonRef ref = new domFx_clearstencil_common(dae); + return ref; +} + + +daeMetaElement * +domFx_clearstencil_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_clearstencil_common" ); + meta->registerClass(domFx_clearstencil_common::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsByte")); + ma->setOffset( daeOffsetOf( domFx_clearstencil_common , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_clearstencil_common , attrIndex )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_clearstencil_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_code_profile.cpp b/src/1.4/dom/domFx_code_profile.cpp new file mode 100644 index 0000000..8b56874 --- /dev/null +++ b/src/1.4/dom/domFx_code_profile.cpp @@ -0,0 +1,70 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_code_profile::create(DAE& dae) +{ + domFx_code_profileRef ref = new domFx_code_profile(dae); + return ref; +} + + +daeMetaElement * +domFx_code_profile::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_code_profile" ); + meta->registerClass(domFx_code_profile::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domFx_code_profile , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_code_profile , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_code_profile)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_colortarget_common.cpp b/src/1.4/dom/domFx_colortarget_common.cpp new file mode 100644 index 0000000..4dc06cc --- /dev/null +++ b/src/1.4/dom/domFx_colortarget_common.cpp @@ -0,0 +1,110 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_colortarget_common::create(DAE& dae) +{ + domFx_colortarget_commonRef ref = new domFx_colortarget_common(dae); + return ref; +} + + +daeMetaElement * +domFx_colortarget_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_colortarget_common" ); + meta->registerClass(domFx_colortarget_common::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_colortarget_common , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_colortarget_common , attrIndex )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: face + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "face" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_face_enum")); + ma->setOffset( daeOffsetOf( domFx_colortarget_common , attrFace )); + ma->setContainer( meta ); + ma->setDefaultString( "POSITIVE_X"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: mip + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "mip" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_colortarget_common , attrMip )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: slice + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "slice" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_colortarget_common , attrSlice )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_colortarget_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_depthtarget_common.cpp b/src/1.4/dom/domFx_depthtarget_common.cpp new file mode 100644 index 0000000..2e5cea7 --- /dev/null +++ b/src/1.4/dom/domFx_depthtarget_common.cpp @@ -0,0 +1,110 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_depthtarget_common::create(DAE& dae) +{ + domFx_depthtarget_commonRef ref = new domFx_depthtarget_common(dae); + return ref; +} + + +daeMetaElement * +domFx_depthtarget_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_depthtarget_common" ); + meta->registerClass(domFx_depthtarget_common::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_depthtarget_common , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_depthtarget_common , attrIndex )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: face + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "face" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_face_enum")); + ma->setOffset( daeOffsetOf( domFx_depthtarget_common , attrFace )); + ma->setContainer( meta ); + ma->setDefaultString( "POSITIVE_X"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: mip + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "mip" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_depthtarget_common , attrMip )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: slice + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "slice" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_depthtarget_common , attrSlice )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_depthtarget_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_include_common.cpp b/src/1.4/dom/domFx_include_common.cpp new file mode 100644 index 0000000..621f9b0 --- /dev/null +++ b/src/1.4/dom/domFx_include_common.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_include_common::create(DAE& dae) +{ + domFx_include_commonRef ref = new domFx_include_common(dae); + return ref; +} + + +daeMetaElement * +domFx_include_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_include_common" ); + meta->registerClass(domFx_include_common::create); + + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_include_common , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domFx_include_common , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_include_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_newparam_common.cpp b/src/1.4/dom/domFx_newparam_common.cpp new file mode 100644 index 0000000..128c31c --- /dev/null +++ b/src/1.4/dom/domFx_newparam_common.cpp @@ -0,0 +1,163 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_newparam_common::create(DAE& dae) +{ + domFx_newparam_commonRef ref = new domFx_newparam_common(dae); + return ref; +} + + +daeMetaElement * +domFx_newparam_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_newparam_common" ); + meta->registerClass(domFx_newparam_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domFx_newparam_common,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "semantic" ); + mea->setOffset( daeOffsetOf(domFx_newparam_common,elemSemantic) ); + mea->setElementType( domFx_newparam_common::domSemantic::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "modifier" ); + mea->setOffset( daeOffsetOf(domFx_newparam_common,elemModifier) ); + mea->setElementType( domFx_newparam_common::domModifier::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "fx_basic_type_common" ); + mea->setOffset( daeOffsetOf(domFx_newparam_common,elemFx_basic_type_common) ); + mea->setElementType( domFx_basic_type_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 3, 1, 1 ) ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_newparam_common , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_newparam_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_newparam_common::domSemantic::create(DAE& dae) +{ + domFx_newparam_common::domSemanticRef ref = new domFx_newparam_common::domSemantic(dae); + return ref; +} + + +daeMetaElement * +domFx_newparam_common::domSemantic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "semantic" ); + meta->registerClass(domFx_newparam_common::domSemantic::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_newparam_common::domSemantic , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_newparam_common::domSemantic)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_newparam_common::domModifier::create(DAE& dae) +{ + domFx_newparam_common::domModifierRef ref = new domFx_newparam_common::domModifier(dae); + return ref; +} + + +daeMetaElement * +domFx_newparam_common::domModifier::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "modifier" ); + meta->registerClass(domFx_newparam_common::domModifier::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_modifier_enum_common")); + ma->setOffset( daeOffsetOf( domFx_newparam_common::domModifier , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_newparam_common::domModifier)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_profile_abstract.cpp b/src/1.4/dom/domFx_profile_abstract.cpp new file mode 100644 index 0000000..5c80402 --- /dev/null +++ b/src/1.4/dom/domFx_profile_abstract.cpp @@ -0,0 +1,50 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_profile_abstract::create(DAE& dae) +{ + domFx_profile_abstractRef ref = new domFx_profile_abstract(dae); + return ref; +} + + +daeMetaElement * +domFx_profile_abstract::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_profile_abstract" ); + meta->registerClass(domFx_profile_abstract::create); + + meta->setIsAbstract( true ); + + meta->setElementSize(sizeof(domFx_profile_abstract)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_sampler1D_common.cpp b/src/1.4/dom/domFx_sampler1D_common.cpp new file mode 100644 index 0000000..006b453 --- /dev/null +++ b/src/1.4/dom/domFx_sampler1D_common.cpp @@ -0,0 +1,397 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_sampler1D_common::create(DAE& dae) +{ + domFx_sampler1D_commonRef ref = new domFx_sampler1D_common(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_sampler1D_common" ); + meta->registerClass(domFx_sampler1D_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemSource) ); + mea->setElementType( domFx_sampler1D_common::domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemWrap_s) ); + mea->setElementType( domFx_sampler1D_common::domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemMinfilter) ); + mea->setElementType( domFx_sampler1D_common::domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemMagfilter) ); + mea->setElementType( domFx_sampler1D_common::domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemMipfilter) ); + mea->setElementType( domFx_sampler1D_common::domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemBorder_color) ); + mea->setElementType( domFx_sampler1D_common::domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemMipmap_maxlevel) ); + mea->setElementType( domFx_sampler1D_common::domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemMipmap_bias) ); + mea->setElementType( domFx_sampler1D_common::domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 8, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_sampler1D_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 8 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domFx_sampler1D_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domSource::create(DAE& dae) +{ + domFx_sampler1D_common::domSourceRef ref = new domFx_sampler1D_common::domSource(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domSource::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source" ); + meta->registerClass(domFx_sampler1D_common::domSource::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domSource , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domSource)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domWrap_s::create(DAE& dae) +{ + domFx_sampler1D_common::domWrap_sRef ref = new domFx_sampler1D_common::domWrap_s(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domWrap_s::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_s" ); + meta->registerClass(domFx_sampler1D_common::domWrap_s::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domWrap_s , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domWrap_s)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domMinfilter::create(DAE& dae) +{ + domFx_sampler1D_common::domMinfilterRef ref = new domFx_sampler1D_common::domMinfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domMinfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "minfilter" ); + meta->registerClass(domFx_sampler1D_common::domMinfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domMinfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domMinfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domMagfilter::create(DAE& dae) +{ + domFx_sampler1D_common::domMagfilterRef ref = new domFx_sampler1D_common::domMagfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domMagfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "magfilter" ); + meta->registerClass(domFx_sampler1D_common::domMagfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domMagfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domMagfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domMipfilter::create(DAE& dae) +{ + domFx_sampler1D_common::domMipfilterRef ref = new domFx_sampler1D_common::domMipfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domMipfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipfilter" ); + meta->registerClass(domFx_sampler1D_common::domMipfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domMipfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domMipfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domBorder_color::create(DAE& dae) +{ + domFx_sampler1D_common::domBorder_colorRef ref = new domFx_sampler1D_common::domBorder_color(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domBorder_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "border_color" ); + meta->registerClass(domFx_sampler1D_common::domBorder_color::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domBorder_color , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domBorder_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domMipmap_maxlevel::create(DAE& dae) +{ + domFx_sampler1D_common::domMipmap_maxlevelRef ref = new domFx_sampler1D_common::domMipmap_maxlevel(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domMipmap_maxlevel::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_maxlevel" ); + meta->registerClass(domFx_sampler1D_common::domMipmap_maxlevel::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domMipmap_maxlevel , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domMipmap_maxlevel)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler1D_common::domMipmap_bias::create(DAE& dae) +{ + domFx_sampler1D_common::domMipmap_biasRef ref = new domFx_sampler1D_common::domMipmap_bias(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler1D_common::domMipmap_bias::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_bias" ); + meta->registerClass(domFx_sampler1D_common::domMipmap_bias::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domFx_sampler1D_common::domMipmap_bias , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler1D_common::domMipmap_bias)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_sampler2D_common.cpp b/src/1.4/dom/domFx_sampler2D_common.cpp new file mode 100644 index 0000000..7435011 --- /dev/null +++ b/src/1.4/dom/domFx_sampler2D_common.cpp @@ -0,0 +1,439 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_sampler2D_common::create(DAE& dae) +{ + domFx_sampler2D_commonRef ref = new domFx_sampler2D_common(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_sampler2D_common" ); + meta->registerClass(domFx_sampler2D_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemSource) ); + mea->setElementType( domFx_sampler2D_common::domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemWrap_s) ); + mea->setElementType( domFx_sampler2D_common::domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemWrap_t) ); + mea->setElementType( domFx_sampler2D_common::domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemMinfilter) ); + mea->setElementType( domFx_sampler2D_common::domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemMagfilter) ); + mea->setElementType( domFx_sampler2D_common::domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemMipfilter) ); + mea->setElementType( domFx_sampler2D_common::domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemBorder_color) ); + mea->setElementType( domFx_sampler2D_common::domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemMipmap_maxlevel) ); + mea->setElementType( domFx_sampler2D_common::domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemMipmap_bias) ); + mea->setElementType( domFx_sampler2D_common::domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 9, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_sampler2D_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domFx_sampler2D_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domSource::create(DAE& dae) +{ + domFx_sampler2D_common::domSourceRef ref = new domFx_sampler2D_common::domSource(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domSource::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source" ); + meta->registerClass(domFx_sampler2D_common::domSource::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domSource , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domSource)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domWrap_s::create(DAE& dae) +{ + domFx_sampler2D_common::domWrap_sRef ref = new domFx_sampler2D_common::domWrap_s(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domWrap_s::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_s" ); + meta->registerClass(domFx_sampler2D_common::domWrap_s::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domWrap_s , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domWrap_s)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domWrap_t::create(DAE& dae) +{ + domFx_sampler2D_common::domWrap_tRef ref = new domFx_sampler2D_common::domWrap_t(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domWrap_t::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_t" ); + meta->registerClass(domFx_sampler2D_common::domWrap_t::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domWrap_t , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domWrap_t)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domMinfilter::create(DAE& dae) +{ + domFx_sampler2D_common::domMinfilterRef ref = new domFx_sampler2D_common::domMinfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domMinfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "minfilter" ); + meta->registerClass(domFx_sampler2D_common::domMinfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domMinfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domMinfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domMagfilter::create(DAE& dae) +{ + domFx_sampler2D_common::domMagfilterRef ref = new domFx_sampler2D_common::domMagfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domMagfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "magfilter" ); + meta->registerClass(domFx_sampler2D_common::domMagfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domMagfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domMagfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domMipfilter::create(DAE& dae) +{ + domFx_sampler2D_common::domMipfilterRef ref = new domFx_sampler2D_common::domMipfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domMipfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipfilter" ); + meta->registerClass(domFx_sampler2D_common::domMipfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domMipfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domMipfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domBorder_color::create(DAE& dae) +{ + domFx_sampler2D_common::domBorder_colorRef ref = new domFx_sampler2D_common::domBorder_color(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domBorder_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "border_color" ); + meta->registerClass(domFx_sampler2D_common::domBorder_color::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domBorder_color , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domBorder_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domMipmap_maxlevel::create(DAE& dae) +{ + domFx_sampler2D_common::domMipmap_maxlevelRef ref = new domFx_sampler2D_common::domMipmap_maxlevel(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domMipmap_maxlevel::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_maxlevel" ); + meta->registerClass(domFx_sampler2D_common::domMipmap_maxlevel::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domMipmap_maxlevel , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domMipmap_maxlevel)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler2D_common::domMipmap_bias::create(DAE& dae) +{ + domFx_sampler2D_common::domMipmap_biasRef ref = new domFx_sampler2D_common::domMipmap_bias(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler2D_common::domMipmap_bias::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_bias" ); + meta->registerClass(domFx_sampler2D_common::domMipmap_bias::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domFx_sampler2D_common::domMipmap_bias , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler2D_common::domMipmap_bias)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_sampler3D_common.cpp b/src/1.4/dom/domFx_sampler3D_common.cpp new file mode 100644 index 0000000..cc4e134 --- /dev/null +++ b/src/1.4/dom/domFx_sampler3D_common.cpp @@ -0,0 +1,481 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_sampler3D_common::create(DAE& dae) +{ + domFx_sampler3D_commonRef ref = new domFx_sampler3D_common(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_sampler3D_common" ); + meta->registerClass(domFx_sampler3D_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemSource) ); + mea->setElementType( domFx_sampler3D_common::domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemWrap_s) ); + mea->setElementType( domFx_sampler3D_common::domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemWrap_t) ); + mea->setElementType( domFx_sampler3D_common::domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "wrap_p" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemWrap_p) ); + mea->setElementType( domFx_sampler3D_common::domWrap_p::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemMinfilter) ); + mea->setElementType( domFx_sampler3D_common::domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemMagfilter) ); + mea->setElementType( domFx_sampler3D_common::domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemMipfilter) ); + mea->setElementType( domFx_sampler3D_common::domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemBorder_color) ); + mea->setElementType( domFx_sampler3D_common::domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemMipmap_maxlevel) ); + mea->setElementType( domFx_sampler3D_common::domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemMipmap_bias) ); + mea->setElementType( domFx_sampler3D_common::domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 10, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_sampler3D_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 10 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domFx_sampler3D_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domSource::create(DAE& dae) +{ + domFx_sampler3D_common::domSourceRef ref = new domFx_sampler3D_common::domSource(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domSource::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source" ); + meta->registerClass(domFx_sampler3D_common::domSource::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domSource , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domSource)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domWrap_s::create(DAE& dae) +{ + domFx_sampler3D_common::domWrap_sRef ref = new domFx_sampler3D_common::domWrap_s(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domWrap_s::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_s" ); + meta->registerClass(domFx_sampler3D_common::domWrap_s::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domWrap_s , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domWrap_s)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domWrap_t::create(DAE& dae) +{ + domFx_sampler3D_common::domWrap_tRef ref = new domFx_sampler3D_common::domWrap_t(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domWrap_t::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_t" ); + meta->registerClass(domFx_sampler3D_common::domWrap_t::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domWrap_t , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domWrap_t)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domWrap_p::create(DAE& dae) +{ + domFx_sampler3D_common::domWrap_pRef ref = new domFx_sampler3D_common::domWrap_p(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domWrap_p::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_p" ); + meta->registerClass(domFx_sampler3D_common::domWrap_p::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domWrap_p , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domWrap_p)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domMinfilter::create(DAE& dae) +{ + domFx_sampler3D_common::domMinfilterRef ref = new domFx_sampler3D_common::domMinfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domMinfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "minfilter" ); + meta->registerClass(domFx_sampler3D_common::domMinfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domMinfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domMinfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domMagfilter::create(DAE& dae) +{ + domFx_sampler3D_common::domMagfilterRef ref = new domFx_sampler3D_common::domMagfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domMagfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "magfilter" ); + meta->registerClass(domFx_sampler3D_common::domMagfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domMagfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domMagfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domMipfilter::create(DAE& dae) +{ + domFx_sampler3D_common::domMipfilterRef ref = new domFx_sampler3D_common::domMipfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domMipfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipfilter" ); + meta->registerClass(domFx_sampler3D_common::domMipfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domMipfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domMipfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domBorder_color::create(DAE& dae) +{ + domFx_sampler3D_common::domBorder_colorRef ref = new domFx_sampler3D_common::domBorder_color(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domBorder_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "border_color" ); + meta->registerClass(domFx_sampler3D_common::domBorder_color::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domBorder_color , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domBorder_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domMipmap_maxlevel::create(DAE& dae) +{ + domFx_sampler3D_common::domMipmap_maxlevelRef ref = new domFx_sampler3D_common::domMipmap_maxlevel(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domMipmap_maxlevel::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_maxlevel" ); + meta->registerClass(domFx_sampler3D_common::domMipmap_maxlevel::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domMipmap_maxlevel , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domMipmap_maxlevel)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_sampler3D_common::domMipmap_bias::create(DAE& dae) +{ + domFx_sampler3D_common::domMipmap_biasRef ref = new domFx_sampler3D_common::domMipmap_bias(dae); + return ref; +} + + +daeMetaElement * +domFx_sampler3D_common::domMipmap_bias::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_bias" ); + meta->registerClass(domFx_sampler3D_common::domMipmap_bias::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domFx_sampler3D_common::domMipmap_bias , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_sampler3D_common::domMipmap_bias)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_samplerCUBE_common.cpp b/src/1.4/dom/domFx_samplerCUBE_common.cpp new file mode 100644 index 0000000..916c607 --- /dev/null +++ b/src/1.4/dom/domFx_samplerCUBE_common.cpp @@ -0,0 +1,481 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_samplerCUBE_common::create(DAE& dae) +{ + domFx_samplerCUBE_commonRef ref = new domFx_samplerCUBE_common(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_samplerCUBE_common" ); + meta->registerClass(domFx_samplerCUBE_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemSource) ); + mea->setElementType( domFx_samplerCUBE_common::domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemWrap_s) ); + mea->setElementType( domFx_samplerCUBE_common::domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemWrap_t) ); + mea->setElementType( domFx_samplerCUBE_common::domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "wrap_p" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemWrap_p) ); + mea->setElementType( domFx_samplerCUBE_common::domWrap_p::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemMinfilter) ); + mea->setElementType( domFx_samplerCUBE_common::domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemMagfilter) ); + mea->setElementType( domFx_samplerCUBE_common::domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemMipfilter) ); + mea->setElementType( domFx_samplerCUBE_common::domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemBorder_color) ); + mea->setElementType( domFx_samplerCUBE_common::domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemMipmap_maxlevel) ); + mea->setElementType( domFx_samplerCUBE_common::domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemMipmap_bias) ); + mea->setElementType( domFx_samplerCUBE_common::domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 10, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_samplerCUBE_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 10 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domFx_samplerCUBE_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domSource::create(DAE& dae) +{ + domFx_samplerCUBE_common::domSourceRef ref = new domFx_samplerCUBE_common::domSource(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domSource::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source" ); + meta->registerClass(domFx_samplerCUBE_common::domSource::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domSource , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domSource)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domWrap_s::create(DAE& dae) +{ + domFx_samplerCUBE_common::domWrap_sRef ref = new domFx_samplerCUBE_common::domWrap_s(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domWrap_s::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_s" ); + meta->registerClass(domFx_samplerCUBE_common::domWrap_s::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domWrap_s , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domWrap_s)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domWrap_t::create(DAE& dae) +{ + domFx_samplerCUBE_common::domWrap_tRef ref = new domFx_samplerCUBE_common::domWrap_t(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domWrap_t::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_t" ); + meta->registerClass(domFx_samplerCUBE_common::domWrap_t::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domWrap_t , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domWrap_t)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domWrap_p::create(DAE& dae) +{ + domFx_samplerCUBE_common::domWrap_pRef ref = new domFx_samplerCUBE_common::domWrap_p(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domWrap_p::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_p" ); + meta->registerClass(domFx_samplerCUBE_common::domWrap_p::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domWrap_p , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domWrap_p)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domMinfilter::create(DAE& dae) +{ + domFx_samplerCUBE_common::domMinfilterRef ref = new domFx_samplerCUBE_common::domMinfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domMinfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "minfilter" ); + meta->registerClass(domFx_samplerCUBE_common::domMinfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domMinfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domMinfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domMagfilter::create(DAE& dae) +{ + domFx_samplerCUBE_common::domMagfilterRef ref = new domFx_samplerCUBE_common::domMagfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domMagfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "magfilter" ); + meta->registerClass(domFx_samplerCUBE_common::domMagfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domMagfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domMagfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domMipfilter::create(DAE& dae) +{ + domFx_samplerCUBE_common::domMipfilterRef ref = new domFx_samplerCUBE_common::domMipfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domMipfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipfilter" ); + meta->registerClass(domFx_samplerCUBE_common::domMipfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domMipfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domMipfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domBorder_color::create(DAE& dae) +{ + domFx_samplerCUBE_common::domBorder_colorRef ref = new domFx_samplerCUBE_common::domBorder_color(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domBorder_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "border_color" ); + meta->registerClass(domFx_samplerCUBE_common::domBorder_color::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domBorder_color , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domBorder_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domMipmap_maxlevel::create(DAE& dae) +{ + domFx_samplerCUBE_common::domMipmap_maxlevelRef ref = new domFx_samplerCUBE_common::domMipmap_maxlevel(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domMipmap_maxlevel::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_maxlevel" ); + meta->registerClass(domFx_samplerCUBE_common::domMipmap_maxlevel::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domMipmap_maxlevel , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domMipmap_maxlevel)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerCUBE_common::domMipmap_bias::create(DAE& dae) +{ + domFx_samplerCUBE_common::domMipmap_biasRef ref = new domFx_samplerCUBE_common::domMipmap_bias(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerCUBE_common::domMipmap_bias::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_bias" ); + meta->registerClass(domFx_samplerCUBE_common::domMipmap_bias::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domFx_samplerCUBE_common::domMipmap_bias , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerCUBE_common::domMipmap_bias)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_samplerDEPTH_common.cpp b/src/1.4/dom/domFx_samplerDEPTH_common.cpp new file mode 100644 index 0000000..3ceb2e5 --- /dev/null +++ b/src/1.4/dom/domFx_samplerDEPTH_common.cpp @@ -0,0 +1,271 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_samplerDEPTH_common::create(DAE& dae) +{ + domFx_samplerDEPTH_commonRef ref = new domFx_samplerDEPTH_common(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerDEPTH_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_samplerDEPTH_common" ); + meta->registerClass(domFx_samplerDEPTH_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domFx_samplerDEPTH_common,elemSource) ); + mea->setElementType( domFx_samplerDEPTH_common::domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domFx_samplerDEPTH_common,elemWrap_s) ); + mea->setElementType( domFx_samplerDEPTH_common::domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domFx_samplerDEPTH_common,elemWrap_t) ); + mea->setElementType( domFx_samplerDEPTH_common::domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerDEPTH_common,elemMinfilter) ); + mea->setElementType( domFx_samplerDEPTH_common::domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerDEPTH_common,elemMagfilter) ); + mea->setElementType( domFx_samplerDEPTH_common::domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_samplerDEPTH_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domFx_samplerDEPTH_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerDEPTH_common::domSource::create(DAE& dae) +{ + domFx_samplerDEPTH_common::domSourceRef ref = new domFx_samplerDEPTH_common::domSource(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerDEPTH_common::domSource::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source" ); + meta->registerClass(domFx_samplerDEPTH_common::domSource::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_samplerDEPTH_common::domSource , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerDEPTH_common::domSource)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerDEPTH_common::domWrap_s::create(DAE& dae) +{ + domFx_samplerDEPTH_common::domWrap_sRef ref = new domFx_samplerDEPTH_common::domWrap_s(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerDEPTH_common::domWrap_s::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_s" ); + meta->registerClass(domFx_samplerDEPTH_common::domWrap_s::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_samplerDEPTH_common::domWrap_s , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerDEPTH_common::domWrap_s)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerDEPTH_common::domWrap_t::create(DAE& dae) +{ + domFx_samplerDEPTH_common::domWrap_tRef ref = new domFx_samplerDEPTH_common::domWrap_t(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerDEPTH_common::domWrap_t::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_t" ); + meta->registerClass(domFx_samplerDEPTH_common::domWrap_t::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_samplerDEPTH_common::domWrap_t , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerDEPTH_common::domWrap_t)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerDEPTH_common::domMinfilter::create(DAE& dae) +{ + domFx_samplerDEPTH_common::domMinfilterRef ref = new domFx_samplerDEPTH_common::domMinfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerDEPTH_common::domMinfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "minfilter" ); + meta->registerClass(domFx_samplerDEPTH_common::domMinfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerDEPTH_common::domMinfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerDEPTH_common::domMinfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerDEPTH_common::domMagfilter::create(DAE& dae) +{ + domFx_samplerDEPTH_common::domMagfilterRef ref = new domFx_samplerDEPTH_common::domMagfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerDEPTH_common::domMagfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "magfilter" ); + meta->registerClass(domFx_samplerDEPTH_common::domMagfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerDEPTH_common::domMagfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerDEPTH_common::domMagfilter)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_samplerRECT_common.cpp b/src/1.4/dom/domFx_samplerRECT_common.cpp new file mode 100644 index 0000000..f55c74e --- /dev/null +++ b/src/1.4/dom/domFx_samplerRECT_common.cpp @@ -0,0 +1,439 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_samplerRECT_common::create(DAE& dae) +{ + domFx_samplerRECT_commonRef ref = new domFx_samplerRECT_common(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_samplerRECT_common" ); + meta->registerClass(domFx_samplerRECT_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemSource) ); + mea->setElementType( domFx_samplerRECT_common::domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemWrap_s) ); + mea->setElementType( domFx_samplerRECT_common::domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemWrap_t) ); + mea->setElementType( domFx_samplerRECT_common::domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemMinfilter) ); + mea->setElementType( domFx_samplerRECT_common::domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemMagfilter) ); + mea->setElementType( domFx_samplerRECT_common::domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemMipfilter) ); + mea->setElementType( domFx_samplerRECT_common::domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemBorder_color) ); + mea->setElementType( domFx_samplerRECT_common::domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemMipmap_maxlevel) ); + mea->setElementType( domFx_samplerRECT_common::domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemMipmap_bias) ); + mea->setElementType( domFx_samplerRECT_common::domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 9, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_samplerRECT_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domFx_samplerRECT_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domSource::create(DAE& dae) +{ + domFx_samplerRECT_common::domSourceRef ref = new domFx_samplerRECT_common::domSource(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domSource::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source" ); + meta->registerClass(domFx_samplerRECT_common::domSource::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domSource , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domSource)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domWrap_s::create(DAE& dae) +{ + domFx_samplerRECT_common::domWrap_sRef ref = new domFx_samplerRECT_common::domWrap_s(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domWrap_s::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_s" ); + meta->registerClass(domFx_samplerRECT_common::domWrap_s::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domWrap_s , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domWrap_s)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domWrap_t::create(DAE& dae) +{ + domFx_samplerRECT_common::domWrap_tRef ref = new domFx_samplerRECT_common::domWrap_t(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domWrap_t::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_t" ); + meta->registerClass(domFx_samplerRECT_common::domWrap_t::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_wrap_common")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domWrap_t , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domWrap_t)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domMinfilter::create(DAE& dae) +{ + domFx_samplerRECT_common::domMinfilterRef ref = new domFx_samplerRECT_common::domMinfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domMinfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "minfilter" ); + meta->registerClass(domFx_samplerRECT_common::domMinfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domMinfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domMinfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domMagfilter::create(DAE& dae) +{ + domFx_samplerRECT_common::domMagfilterRef ref = new domFx_samplerRECT_common::domMagfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domMagfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "magfilter" ); + meta->registerClass(domFx_samplerRECT_common::domMagfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domMagfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domMagfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domMipfilter::create(DAE& dae) +{ + domFx_samplerRECT_common::domMipfilterRef ref = new domFx_samplerRECT_common::domMipfilter(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domMipfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipfilter" ); + meta->registerClass(domFx_samplerRECT_common::domMipfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domMipfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domMipfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domBorder_color::create(DAE& dae) +{ + domFx_samplerRECT_common::domBorder_colorRef ref = new domFx_samplerRECT_common::domBorder_color(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domBorder_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "border_color" ); + meta->registerClass(domFx_samplerRECT_common::domBorder_color::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domBorder_color , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domBorder_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domMipmap_maxlevel::create(DAE& dae) +{ + domFx_samplerRECT_common::domMipmap_maxlevelRef ref = new domFx_samplerRECT_common::domMipmap_maxlevel(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domMipmap_maxlevel::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_maxlevel" ); + meta->registerClass(domFx_samplerRECT_common::domMipmap_maxlevel::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domMipmap_maxlevel , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domMipmap_maxlevel)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_samplerRECT_common::domMipmap_bias::create(DAE& dae) +{ + domFx_samplerRECT_common::domMipmap_biasRef ref = new domFx_samplerRECT_common::domMipmap_bias(dae); + return ref; +} + + +daeMetaElement * +domFx_samplerRECT_common::domMipmap_bias::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_bias" ); + meta->registerClass(domFx_samplerRECT_common::domMipmap_bias::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domFx_samplerRECT_common::domMipmap_bias , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_samplerRECT_common::domMipmap_bias)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_stenciltarget_common.cpp b/src/1.4/dom/domFx_stenciltarget_common.cpp new file mode 100644 index 0000000..92f6e64 --- /dev/null +++ b/src/1.4/dom/domFx_stenciltarget_common.cpp @@ -0,0 +1,110 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_stenciltarget_common::create(DAE& dae) +{ + domFx_stenciltarget_commonRef ref = new domFx_stenciltarget_common(dae); + return ref; +} + + +daeMetaElement * +domFx_stenciltarget_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_stenciltarget_common" ); + meta->registerClass(domFx_stenciltarget_common::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domFx_stenciltarget_common , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_stenciltarget_common , attrIndex )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: face + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "face" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_face_enum")); + ma->setOffset( daeOffsetOf( domFx_stenciltarget_common , attrFace )); + ma->setContainer( meta ); + ma->setDefaultString( "POSITIVE_X"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: mip + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "mip" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_stenciltarget_common , attrMip )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: slice + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "slice" ); + ma->setType( dae.getAtomicTypes().get("xsNonNegativeInteger")); + ma->setOffset( daeOffsetOf( domFx_stenciltarget_common , attrSlice )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_stenciltarget_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_surface_common.cpp b/src/1.4/dom/domFx_surface_common.cpp new file mode 100644 index 0000000..bd6e44c --- /dev/null +++ b/src/1.4/dom/domFx_surface_common.cpp @@ -0,0 +1,305 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_surface_common::create(DAE& dae) +{ + domFx_surface_commonRef ref = new domFx_surface_common(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_surface_common" ); + meta->registerClass(domFx_surface_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "fx_surface_init_common" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemFx_surface_init_common) ); + mea->setElementType( domFx_surface_init_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 0, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "format" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemFormat) ); + mea->setElementType( domFx_surface_common::domFormat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "format_hint" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemFormat_hint) ); + mea->setElementType( domFx_surface_format_hint_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 3, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "size" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemSize) ); + mea->setElementType( domFx_surface_common::domSize::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "viewport_ratio" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemViewport_ratio) ); + mea->setElementType( domFx_surface_common::domViewport_ratio::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mip_levels" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemMip_levels) ); + mea->setElementType( domFx_surface_common::domMip_levels::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipmap_generate" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemMipmap_generate) ); + mea->setElementType( domFx_surface_common::domMipmap_generate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_surface_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 6 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domFx_surface_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domFx_surface_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domFx_surface_common,_CMData), 1); + // Add attribute: type + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "type" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_type_enum")); + ma->setOffset( daeOffsetOf( domFx_surface_common , attrType )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_common::domFormat::create(DAE& dae) +{ + domFx_surface_common::domFormatRef ref = new domFx_surface_common::domFormat(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_common::domFormat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "format" ); + meta->registerClass(domFx_surface_common::domFormat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsToken")); + ma->setOffset( daeOffsetOf( domFx_surface_common::domFormat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_common::domFormat)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_common::domSize::create(DAE& dae) +{ + domFx_surface_common::domSizeRef ref = new domFx_surface_common::domSize(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_common::domSize::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "size" ); + meta->registerClass(domFx_surface_common::domSize::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int3")); + ma->setOffset( daeOffsetOf( domFx_surface_common::domSize , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_common::domSize)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_common::domViewport_ratio::create(DAE& dae) +{ + domFx_surface_common::domViewport_ratioRef ref = new domFx_surface_common::domViewport_ratio(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_common::domViewport_ratio::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "viewport_ratio" ); + meta->registerClass(domFx_surface_common::domViewport_ratio::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domFx_surface_common::domViewport_ratio , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_common::domViewport_ratio)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_common::domMip_levels::create(DAE& dae) +{ + domFx_surface_common::domMip_levelsRef ref = new domFx_surface_common::domMip_levels(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_common::domMip_levels::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mip_levels" ); + meta->registerClass(domFx_surface_common::domMip_levels::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedInt")); + ma->setOffset( daeOffsetOf( domFx_surface_common::domMip_levels , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_common::domMip_levels)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_common::domMipmap_generate::create(DAE& dae) +{ + domFx_surface_common::domMipmap_generateRef ref = new domFx_surface_common::domMipmap_generate(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_common::domMipmap_generate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_generate" ); + meta->registerClass(domFx_surface_common::domMipmap_generate::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsBoolean")); + ma->setOffset( daeOffsetOf( domFx_surface_common::domMipmap_generate , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_common::domMipmap_generate)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_surface_format_hint_common.cpp b/src/1.4/dom/domFx_surface_format_hint_common.cpp new file mode 100644 index 0000000..85b5b0c --- /dev/null +++ b/src/1.4/dom/domFx_surface_format_hint_common.cpp @@ -0,0 +1,229 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_surface_format_hint_common::create(DAE& dae) +{ + domFx_surface_format_hint_commonRef ref = new domFx_surface_format_hint_common(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_format_hint_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_surface_format_hint_common" ); + meta->registerClass(domFx_surface_format_hint_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "channels" ); + mea->setOffset( daeOffsetOf(domFx_surface_format_hint_common,elemChannels) ); + mea->setElementType( domFx_surface_format_hint_common::domChannels::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "range" ); + mea->setOffset( daeOffsetOf(domFx_surface_format_hint_common,elemRange) ); + mea->setElementType( domFx_surface_format_hint_common::domRange::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "precision" ); + mea->setOffset( daeOffsetOf(domFx_surface_format_hint_common,elemPrecision) ); + mea->setElementType( domFx_surface_format_hint_common::domPrecision::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "option" ); + mea->setOffset( daeOffsetOf(domFx_surface_format_hint_common,elemOption_array) ); + mea->setElementType( domFx_surface_format_hint_common::domOption::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domFx_surface_format_hint_common,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domFx_surface_format_hint_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_format_hint_common::domChannels::create(DAE& dae) +{ + domFx_surface_format_hint_common::domChannelsRef ref = new domFx_surface_format_hint_common::domChannels(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_format_hint_common::domChannels::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "channels" ); + meta->registerClass(domFx_surface_format_hint_common::domChannels::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_format_hint_channels_enum")); + ma->setOffset( daeOffsetOf( domFx_surface_format_hint_common::domChannels , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_format_hint_common::domChannels)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_format_hint_common::domRange::create(DAE& dae) +{ + domFx_surface_format_hint_common::domRangeRef ref = new domFx_surface_format_hint_common::domRange(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_format_hint_common::domRange::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "range" ); + meta->registerClass(domFx_surface_format_hint_common::domRange::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_format_hint_range_enum")); + ma->setOffset( daeOffsetOf( domFx_surface_format_hint_common::domRange , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_format_hint_common::domRange)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_format_hint_common::domPrecision::create(DAE& dae) +{ + domFx_surface_format_hint_common::domPrecisionRef ref = new domFx_surface_format_hint_common::domPrecision(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_format_hint_common::domPrecision::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "precision" ); + meta->registerClass(domFx_surface_format_hint_common::domPrecision::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_format_hint_precision_enum")); + ma->setOffset( daeOffsetOf( domFx_surface_format_hint_common::domPrecision , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_format_hint_common::domPrecision)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_format_hint_common::domOption::create(DAE& dae) +{ + domFx_surface_format_hint_common::domOptionRef ref = new domFx_surface_format_hint_common::domOption(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_format_hint_common::domOption::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "option" ); + meta->registerClass(domFx_surface_format_hint_common::domOption::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_format_hint_option_enum")); + ma->setOffset( daeOffsetOf( domFx_surface_format_hint_common::domOption , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_format_hint_common::domOption)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_surface_init_common.cpp b/src/1.4/dom/domFx_surface_init_common.cpp new file mode 100644 index 0000000..df56fe9 --- /dev/null +++ b/src/1.4/dom/domFx_surface_init_common.cpp @@ -0,0 +1,150 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_surface_init_common::create(DAE& dae) +{ + domFx_surface_init_commonRef ref = new domFx_surface_init_common(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_surface_init_common" ); + meta->registerClass(domFx_surface_init_common::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "init_as_null" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_common,elemInit_as_null) ); + mea->setElementType( domFx_surface_init_common::domInit_as_null::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "init_as_target" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_common,elemInit_as_target) ); + mea->setElementType( domFx_surface_init_common::domInit_as_target::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "init_cube" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_common,elemInit_cube) ); + mea->setElementType( domFx_surface_init_cube_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "init_volume" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_common,elemInit_volume) ); + mea->setElementType( domFx_surface_init_volume_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "init_planar" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_common,elemInit_planar) ); + mea->setElementType( domFx_surface_init_planar_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "init_from" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_common,elemInit_from_array) ); + mea->setElementType( domFx_surface_init_from_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domFx_surface_init_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domFx_surface_init_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domFx_surface_init_common,_CMData), 1); + meta->setElementSize(sizeof(domFx_surface_init_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_common::domInit_as_null::create(DAE& dae) +{ + domFx_surface_init_common::domInit_as_nullRef ref = new domFx_surface_init_common::domInit_as_null(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_common::domInit_as_null::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "init_as_null" ); + meta->registerClass(domFx_surface_init_common::domInit_as_null::create); + + meta->setIsInnerClass( true ); + + meta->setElementSize(sizeof(domFx_surface_init_common::domInit_as_null)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_common::domInit_as_target::create(DAE& dae) +{ + domFx_surface_init_common::domInit_as_targetRef ref = new domFx_surface_init_common::domInit_as_target(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_common::domInit_as_target::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "init_as_target" ); + meta->registerClass(domFx_surface_init_common::domInit_as_target::create); + + meta->setIsInnerClass( true ); + + meta->setElementSize(sizeof(domFx_surface_init_common::domInit_as_target)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_surface_init_cube_common.cpp b/src/1.4/dom/domFx_surface_init_cube_common.cpp new file mode 100644 index 0000000..a59eec3 --- /dev/null +++ b/src/1.4/dom/domFx_surface_init_cube_common.cpp @@ -0,0 +1,242 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_surface_init_cube_common::create(DAE& dae) +{ + domFx_surface_init_cube_commonRef ref = new domFx_surface_init_cube_common(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_cube_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_surface_init_cube_common" ); + meta->registerClass(domFx_surface_init_cube_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "all" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_cube_common,elemAll) ); + mea->setElementType( domFx_surface_init_cube_common::domAll::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "primary" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_cube_common,elemPrimary) ); + mea->setElementType( domFx_surface_init_cube_common::domPrimary::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 6, 6 ); + mea->setName( "face" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_cube_common,elemFace_array) ); + mea->setElementType( domFx_surface_init_cube_common::domFace::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domFx_surface_init_cube_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domFx_surface_init_cube_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domFx_surface_init_cube_common,_CMData), 1); + meta->setElementSize(sizeof(domFx_surface_init_cube_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_cube_common::domAll::create(DAE& dae) +{ + domFx_surface_init_cube_common::domAllRef ref = new domFx_surface_init_cube_common::domAll(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_cube_common::domAll::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "all" ); + meta->registerClass(domFx_surface_init_cube_common::domAll::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsIDREF")); + ma->setOffset( daeOffsetOf( domFx_surface_init_cube_common::domAll , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_cube_common::domAll)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_cube_common::domPrimary::create(DAE& dae) +{ + domFx_surface_init_cube_common::domPrimaryRef ref = new domFx_surface_init_cube_common::domPrimary(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_cube_common::domPrimary::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "primary" ); + meta->registerClass(domFx_surface_init_cube_common::domPrimary::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 0, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 6, 6 ); + mea->setName( "order" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_cube_common::domPrimary,elemOrder_array) ); + mea->setElementType( domFx_surface_init_cube_common::domPrimary::domOrder::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsIDREF")); + ma->setOffset( daeOffsetOf( domFx_surface_init_cube_common::domPrimary , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_cube_common::domPrimary)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_cube_common::domPrimary::domOrder::create(DAE& dae) +{ + domFx_surface_init_cube_common::domPrimary::domOrderRef ref = new domFx_surface_init_cube_common::domPrimary::domOrder(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_cube_common::domPrimary::domOrder::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "order" ); + meta->registerClass(domFx_surface_init_cube_common::domPrimary::domOrder::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_face_enum")); + ma->setOffset( daeOffsetOf( domFx_surface_init_cube_common::domPrimary::domOrder , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_cube_common::domPrimary::domOrder)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_cube_common::domFace::create(DAE& dae) +{ + domFx_surface_init_cube_common::domFaceRef ref = new domFx_surface_init_cube_common::domFace(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_cube_common::domFace::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "face" ); + meta->registerClass(domFx_surface_init_cube_common::domFace::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsIDREF")); + ma->setOffset( daeOffsetOf( domFx_surface_init_cube_common::domFace , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_cube_common::domFace)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_surface_init_from_common.cpp b/src/1.4/dom/domFx_surface_init_from_common.cpp new file mode 100644 index 0000000..7b15c3d --- /dev/null +++ b/src/1.4/dom/domFx_surface_init_from_common.cpp @@ -0,0 +1,94 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_surface_init_from_common::create(DAE& dae) +{ + domFx_surface_init_from_commonRef ref = new domFx_surface_init_from_common(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_from_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_surface_init_from_common" ); + meta->registerClass(domFx_surface_init_from_common::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsIDREF")); + ma->setOffset( daeOffsetOf( domFx_surface_init_from_common , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: mip + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "mip" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedInt")); + ma->setOffset( daeOffsetOf( domFx_surface_init_from_common , attrMip )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + + meta->appendAttribute(ma); + } + + // Add attribute: slice + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "slice" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedInt")); + ma->setOffset( daeOffsetOf( domFx_surface_init_from_common , attrSlice )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + + meta->appendAttribute(ma); + } + + // Add attribute: face + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "face" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_face_enum")); + ma->setOffset( daeOffsetOf( domFx_surface_init_from_common , attrFace )); + ma->setContainer( meta ); + ma->setDefaultString( "POSITIVE_X"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_from_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_surface_init_planar_common.cpp b/src/1.4/dom/domFx_surface_init_planar_common.cpp new file mode 100644 index 0000000..f1a9e10 --- /dev/null +++ b/src/1.4/dom/domFx_surface_init_planar_common.cpp @@ -0,0 +1,104 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_surface_init_planar_common::create(DAE& dae) +{ + domFx_surface_init_planar_commonRef ref = new domFx_surface_init_planar_common(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_planar_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_surface_init_planar_common" ); + meta->registerClass(domFx_surface_init_planar_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "all" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_planar_common,elemAll) ); + mea->setElementType( domFx_surface_init_planar_common::domAll::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domFx_surface_init_planar_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domFx_surface_init_planar_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domFx_surface_init_planar_common,_CMData), 1); + meta->setElementSize(sizeof(domFx_surface_init_planar_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_planar_common::domAll::create(DAE& dae) +{ + domFx_surface_init_planar_common::domAllRef ref = new domFx_surface_init_planar_common::domAll(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_planar_common::domAll::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "all" ); + meta->registerClass(domFx_surface_init_planar_common::domAll::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsIDREF")); + ma->setOffset( daeOffsetOf( domFx_surface_init_planar_common::domAll , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_planar_common::domAll)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domFx_surface_init_volume_common.cpp b/src/1.4/dom/domFx_surface_init_volume_common.cpp new file mode 100644 index 0000000..cfdd466 --- /dev/null +++ b/src/1.4/dom/domFx_surface_init_volume_common.cpp @@ -0,0 +1,149 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domFx_surface_init_volume_common::create(DAE& dae) +{ + domFx_surface_init_volume_commonRef ref = new domFx_surface_init_volume_common(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_volume_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fx_surface_init_volume_common" ); + meta->registerClass(domFx_surface_init_volume_common::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "all" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_volume_common,elemAll) ); + mea->setElementType( domFx_surface_init_volume_common::domAll::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "primary" ); + mea->setOffset( daeOffsetOf(domFx_surface_init_volume_common,elemPrimary) ); + mea->setElementType( domFx_surface_init_volume_common::domPrimary::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domFx_surface_init_volume_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domFx_surface_init_volume_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domFx_surface_init_volume_common,_CMData), 1); + meta->setElementSize(sizeof(domFx_surface_init_volume_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_volume_common::domAll::create(DAE& dae) +{ + domFx_surface_init_volume_common::domAllRef ref = new domFx_surface_init_volume_common::domAll(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_volume_common::domAll::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "all" ); + meta->registerClass(domFx_surface_init_volume_common::domAll::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsIDREF")); + ma->setOffset( daeOffsetOf( domFx_surface_init_volume_common::domAll , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_volume_common::domAll)); + meta->validate(); + + return meta; +} + +daeElementRef +domFx_surface_init_volume_common::domPrimary::create(DAE& dae) +{ + domFx_surface_init_volume_common::domPrimaryRef ref = new domFx_surface_init_volume_common::domPrimary(dae); + return ref; +} + + +daeMetaElement * +domFx_surface_init_volume_common::domPrimary::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "primary" ); + meta->registerClass(domFx_surface_init_volume_common::domPrimary::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsIDREF")); + ma->setOffset( daeOffsetOf( domFx_surface_init_volume_common::domPrimary , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domFx_surface_init_volume_common::domPrimary)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGeometry.cpp b/src/1.4/dom/domGeometry.cpp new file mode 100644 index 0000000..54a928b --- /dev/null +++ b/src/1.4/dom/domGeometry.cpp @@ -0,0 +1,117 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGeometry::create(DAE& dae) +{ + domGeometryRef ref = new domGeometry(dae); + return ref; +} + + +daeMetaElement * +domGeometry::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "geometry" ); + meta->registerClass(domGeometry::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domGeometry,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "convex_mesh" ); + mea->setOffset( daeOffsetOf(domGeometry,elemConvex_mesh) ); + mea->setElementType( domConvex_mesh::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "mesh" ); + mea->setOffset( daeOffsetOf(domGeometry,elemMesh) ); + mea->setElementType( domMesh::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "spline" ); + mea->setOffset( daeOffsetOf(domGeometry,elemSpline) ); + mea->setElementType( domSpline::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGeometry,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGeometry,_contents)); + meta->addContentsOrder(daeOffsetOf(domGeometry,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGeometry,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domGeometry , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGeometry , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGeometry)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_hook_abstract.cpp b/src/1.4/dom/domGl_hook_abstract.cpp new file mode 100644 index 0000000..904c11c --- /dev/null +++ b/src/1.4/dom/domGl_hook_abstract.cpp @@ -0,0 +1,50 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_hook_abstract::create(DAE& dae) +{ + domGl_hook_abstractRef ref = new domGl_hook_abstract(dae); + return ref; +} + + +daeMetaElement * +domGl_hook_abstract::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_hook_abstract" ); + meta->registerClass(domGl_hook_abstract::create); + + meta->setIsAbstract( true ); + + meta->setElementSize(sizeof(domGl_hook_abstract)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_pipeline_settings.cpp b/src/1.4/dom/domGl_pipeline_settings.cpp new file mode 100644 index 0000000..9630f6d --- /dev/null +++ b/src/1.4/dom/domGl_pipeline_settings.cpp @@ -0,0 +1,8369 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_pipeline_settings::create(DAE& dae) +{ + domGl_pipeline_settingsRef ref = new domGl_pipeline_settings(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_pipeline_settings" ); + meta->registerClass(domGl_pipeline_settings::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "alpha_func" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemAlpha_func) ); + mea->setElementType( domGl_pipeline_settings::domAlpha_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_func" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemBlend_func) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_func_separate" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemBlend_func_separate) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func_separate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_equation" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemBlend_equation) ); + mea->setElementType( domGl_pipeline_settings::domBlend_equation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_equation_separate" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemBlend_equation_separate) ); + mea->setElementType( domGl_pipeline_settings::domBlend_equation_separate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color_material" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemColor_material) ); + mea->setElementType( domGl_pipeline_settings::domColor_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cull_face" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemCull_face) ); + mea->setElementType( domGl_pipeline_settings::domCull_face::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_func" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDepth_func) ); + mea->setElementType( domGl_pipeline_settings::domDepth_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_mode" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFog_mode) ); + mea->setElementType( domGl_pipeline_settings::domFog_mode::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_coord_src" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFog_coord_src) ); + mea->setElementType( domGl_pipeline_settings::domFog_coord_src::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "front_face" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFront_face) ); + mea->setElementType( domGl_pipeline_settings::domFront_face::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_model_color_control" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_model_color_control) ); + mea->setElementType( domGl_pipeline_settings::domLight_model_color_control::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "logic_op" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLogic_op) ); + mea->setElementType( domGl_pipeline_settings::domLogic_op::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_mode" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPolygon_mode) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_mode::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "shade_model" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemShade_model) ); + mea->setElementType( domGl_pipeline_settings::domShade_model::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_func" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemStencil_func) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_op" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemStencil_op) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_func_separate" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemStencil_func_separate) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func_separate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_op_separate" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemStencil_op_separate) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op_separate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_mask_separate" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemStencil_mask_separate) ); + mea->setElementType( domGl_pipeline_settings::domStencil_mask_separate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_enable) ); + mea->setElementType( domGl_pipeline_settings::domLight_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_ambient" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_ambient) ); + mea->setElementType( domGl_pipeline_settings::domLight_ambient::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_diffuse" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_diffuse) ); + mea->setElementType( domGl_pipeline_settings::domLight_diffuse::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_specular" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_specular) ); + mea->setElementType( domGl_pipeline_settings::domLight_specular::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_position" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_position) ); + mea->setElementType( domGl_pipeline_settings::domLight_position::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_constant_attenuation" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_constant_attenuation) ); + mea->setElementType( domGl_pipeline_settings::domLight_constant_attenuation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_linear_attenuation" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_linear_attenuation) ); + mea->setElementType( domGl_pipeline_settings::domLight_linear_attenuation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_quadratic_attenuation" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_quadratic_attenuation) ); + mea->setElementType( domGl_pipeline_settings::domLight_quadratic_attenuation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_spot_cutoff" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_spot_cutoff) ); + mea->setElementType( domGl_pipeline_settings::domLight_spot_cutoff::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_spot_direction" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_spot_direction) ); + mea->setElementType( domGl_pipeline_settings::domLight_spot_direction::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_spot_exponent" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_spot_exponent) ); + mea->setElementType( domGl_pipeline_settings::domLight_spot_exponent::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture1D" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture1D) ); + mea->setElementType( domGl_pipeline_settings::domTexture1D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture2D" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture2D) ); + mea->setElementType( domGl_pipeline_settings::domTexture2D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture3D" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture3D) ); + mea->setElementType( domGl_pipeline_settings::domTexture3D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "textureCUBE" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTextureCUBE) ); + mea->setElementType( domGl_pipeline_settings::domTextureCUBE::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "textureRECT" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTextureRECT) ); + mea->setElementType( domGl_pipeline_settings::domTextureRECT::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "textureDEPTH" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTextureDEPTH) ); + mea->setElementType( domGl_pipeline_settings::domTextureDEPTH::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture1D_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture1D_enable) ); + mea->setElementType( domGl_pipeline_settings::domTexture1D_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture2D_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture2D_enable) ); + mea->setElementType( domGl_pipeline_settings::domTexture2D_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture3D_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture3D_enable) ); + mea->setElementType( domGl_pipeline_settings::domTexture3D_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "textureCUBE_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTextureCUBE_enable) ); + mea->setElementType( domGl_pipeline_settings::domTextureCUBE_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "textureRECT_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTextureRECT_enable) ); + mea->setElementType( domGl_pipeline_settings::domTextureRECT_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "textureDEPTH_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTextureDEPTH_enable) ); + mea->setElementType( domGl_pipeline_settings::domTextureDEPTH_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture_env_color" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture_env_color) ); + mea->setElementType( domGl_pipeline_settings::domTexture_env_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture_env_mode" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemTexture_env_mode) ); + mea->setElementType( domGl_pipeline_settings::domTexture_env_mode::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clip_plane" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemClip_plane) ); + mea->setElementType( domGl_pipeline_settings::domClip_plane::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clip_plane_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemClip_plane_enable) ); + mea->setElementType( domGl_pipeline_settings::domClip_plane_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_color" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemBlend_color) ); + mea->setElementType( domGl_pipeline_settings::domBlend_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clear_color" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemClear_color) ); + mea->setElementType( domGl_pipeline_settings::domClear_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clear_stencil" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemClear_stencil) ); + mea->setElementType( domGl_pipeline_settings::domClear_stencil::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clear_depth" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemClear_depth) ); + mea->setElementType( domGl_pipeline_settings::domClear_depth::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color_mask" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemColor_mask) ); + mea->setElementType( domGl_pipeline_settings::domColor_mask::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_bounds" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDepth_bounds) ); + mea->setElementType( domGl_pipeline_settings::domDepth_bounds::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_mask" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDepth_mask) ); + mea->setElementType( domGl_pipeline_settings::domDepth_mask::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_range" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDepth_range) ); + mea->setElementType( domGl_pipeline_settings::domDepth_range::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_density" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFog_density) ); + mea->setElementType( domGl_pipeline_settings::domFog_density::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_start" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFog_start) ); + mea->setElementType( domGl_pipeline_settings::domFog_start::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_end" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFog_end) ); + mea->setElementType( domGl_pipeline_settings::domFog_end::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_color" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFog_color) ); + mea->setElementType( domGl_pipeline_settings::domFog_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_model_ambient" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_model_ambient) ); + mea->setElementType( domGl_pipeline_settings::domLight_model_ambient::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "lighting_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLighting_enable) ); + mea->setElementType( domGl_pipeline_settings::domLighting_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "line_stipple" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLine_stipple) ); + mea->setElementType( domGl_pipeline_settings::domLine_stipple::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "line_width" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLine_width) ); + mea->setElementType( domGl_pipeline_settings::domLine_width::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_ambient" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemMaterial_ambient) ); + mea->setElementType( domGl_pipeline_settings::domMaterial_ambient::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_diffuse" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemMaterial_diffuse) ); + mea->setElementType( domGl_pipeline_settings::domMaterial_diffuse::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_emission" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemMaterial_emission) ); + mea->setElementType( domGl_pipeline_settings::domMaterial_emission::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_shininess" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemMaterial_shininess) ); + mea->setElementType( domGl_pipeline_settings::domMaterial_shininess::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_specular" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemMaterial_specular) ); + mea->setElementType( domGl_pipeline_settings::domMaterial_specular::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "model_view_matrix" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemModel_view_matrix) ); + mea->setElementType( domGl_pipeline_settings::domModel_view_matrix::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_distance_attenuation" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPoint_distance_attenuation) ); + mea->setElementType( domGl_pipeline_settings::domPoint_distance_attenuation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_fade_threshold_size" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPoint_fade_threshold_size) ); + mea->setElementType( domGl_pipeline_settings::domPoint_fade_threshold_size::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_size" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPoint_size) ); + mea->setElementType( domGl_pipeline_settings::domPoint_size::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_size_min" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPoint_size_min) ); + mea->setElementType( domGl_pipeline_settings::domPoint_size_min::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_size_max" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPoint_size_max) ); + mea->setElementType( domGl_pipeline_settings::domPoint_size_max::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_offset" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPolygon_offset) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_offset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "projection_matrix" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemProjection_matrix) ); + mea->setElementType( domGl_pipeline_settings::domProjection_matrix::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "scissor" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemScissor) ); + mea->setElementType( domGl_pipeline_settings::domScissor::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_mask" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemStencil_mask) ); + mea->setElementType( domGl_pipeline_settings::domStencil_mask::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "alpha_test_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemAlpha_test_enable) ); + mea->setElementType( domGl_pipeline_settings::domAlpha_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "auto_normal_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemAuto_normal_enable) ); + mea->setElementType( domGl_pipeline_settings::domAuto_normal_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemBlend_enable) ); + mea->setElementType( domGl_pipeline_settings::domBlend_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color_logic_op_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemColor_logic_op_enable) ); + mea->setElementType( domGl_pipeline_settings::domColor_logic_op_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color_material_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemColor_material_enable) ); + mea->setElementType( domGl_pipeline_settings::domColor_material_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cull_face_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemCull_face_enable) ); + mea->setElementType( domGl_pipeline_settings::domCull_face_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_bounds_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDepth_bounds_enable) ); + mea->setElementType( domGl_pipeline_settings::domDepth_bounds_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_clamp_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDepth_clamp_enable) ); + mea->setElementType( domGl_pipeline_settings::domDepth_clamp_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_test_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDepth_test_enable) ); + mea->setElementType( domGl_pipeline_settings::domDepth_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "dither_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemDither_enable) ); + mea->setElementType( domGl_pipeline_settings::domDither_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemFog_enable) ); + mea->setElementType( domGl_pipeline_settings::domFog_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_model_local_viewer_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_model_local_viewer_enable) ); + mea->setElementType( domGl_pipeline_settings::domLight_model_local_viewer_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_model_two_side_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLight_model_two_side_enable) ); + mea->setElementType( domGl_pipeline_settings::domLight_model_two_side_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "line_smooth_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLine_smooth_enable) ); + mea->setElementType( domGl_pipeline_settings::domLine_smooth_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "line_stipple_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLine_stipple_enable) ); + mea->setElementType( domGl_pipeline_settings::domLine_stipple_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "logic_op_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemLogic_op_enable) ); + mea->setElementType( domGl_pipeline_settings::domLogic_op_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "multisample_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemMultisample_enable) ); + mea->setElementType( domGl_pipeline_settings::domMultisample_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "normalize_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemNormalize_enable) ); + mea->setElementType( domGl_pipeline_settings::domNormalize_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_smooth_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPoint_smooth_enable) ); + mea->setElementType( domGl_pipeline_settings::domPoint_smooth_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_offset_fill_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPolygon_offset_fill_enable) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_offset_fill_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_offset_line_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPolygon_offset_line_enable) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_offset_line_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_offset_point_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPolygon_offset_point_enable) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_offset_point_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_smooth_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPolygon_smooth_enable) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_smooth_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_stipple_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemPolygon_stipple_enable) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_stipple_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rescale_normal_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemRescale_normal_enable) ); + mea->setElementType( domGl_pipeline_settings::domRescale_normal_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sample_alpha_to_coverage_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemSample_alpha_to_coverage_enable) ); + mea->setElementType( domGl_pipeline_settings::domSample_alpha_to_coverage_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sample_alpha_to_one_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemSample_alpha_to_one_enable) ); + mea->setElementType( domGl_pipeline_settings::domSample_alpha_to_one_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sample_coverage_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemSample_coverage_enable) ); + mea->setElementType( domGl_pipeline_settings::domSample_coverage_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "scissor_test_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemScissor_test_enable) ); + mea->setElementType( domGl_pipeline_settings::domScissor_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_test_enable" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemStencil_test_enable) ); + mea->setElementType( domGl_pipeline_settings::domStencil_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "gl_hook_abstract" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings,elemGl_hook_abstract) ); + mea->setElementType( domGl_hook_abstract::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGl_pipeline_settings,_contents)); + meta->addContentsOrder(daeOffsetOf(domGl_pipeline_settings,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGl_pipeline_settings,_CMData), 1); + meta->setElementSize(sizeof(domGl_pipeline_settings)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domAlpha_func::create(DAE& dae) +{ + domGl_pipeline_settings::domAlpha_funcRef ref = new domGl_pipeline_settings::domAlpha_func(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domAlpha_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "alpha_func" ); + meta->registerClass(domGl_pipeline_settings::domAlpha_func::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "func" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domAlpha_func,elemFunc) ); + mea->setElementType( domGl_pipeline_settings::domAlpha_func::domFunc::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domAlpha_func,elemValue) ); + mea->setElementType( domGl_pipeline_settings::domAlpha_func::domValue::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domAlpha_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domAlpha_func::domFunc::create(DAE& dae) +{ + domGl_pipeline_settings::domAlpha_func::domFuncRef ref = new domGl_pipeline_settings::domAlpha_func::domFunc(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domAlpha_func::domFunc::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "func" ); + meta->registerClass(domGl_pipeline_settings::domAlpha_func::domFunc::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAlpha_func::domFunc , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAlpha_func::domFunc , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domAlpha_func::domFunc)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domAlpha_func::domValue::create(DAE& dae) +{ + domGl_pipeline_settings::domAlpha_func::domValueRef ref = new domGl_pipeline_settings::domAlpha_func::domValue(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domAlpha_func::domValue::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "value" ); + meta->registerClass(domGl_pipeline_settings::domAlpha_func::domValue::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_alpha_value_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAlpha_func::domValue , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAlpha_func::domValue , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domAlpha_func::domValue)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_funcRef ref = new domGl_pipeline_settings::domBlend_func(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_func" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "src" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_func,elemSrc) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func::domSrc::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "dest" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_func,elemDest) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func::domDest::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func::domSrc::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_func::domSrcRef ref = new domGl_pipeline_settings::domBlend_func::domSrc(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func::domSrc::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "src" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func::domSrc::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func::domSrc , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ONE"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func::domSrc , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func::domSrc)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func::domDest::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_func::domDestRef ref = new domGl_pipeline_settings::domBlend_func::domDest(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func::domDest::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dest" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func::domDest::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func::domDest , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ZERO"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func::domDest , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func::domDest)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func_separate::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_func_separateRef ref = new domGl_pipeline_settings::domBlend_func_separate(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func_separate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_func_separate" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func_separate::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "src_rgb" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_func_separate,elemSrc_rgb) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "dest_rgb" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_func_separate,elemDest_rgb) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func_separate::domDest_rgb::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "src_alpha" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_func_separate,elemSrc_alpha) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "dest_alpha" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_func_separate,elemDest_alpha) ); + mea->setElementType( domGl_pipeline_settings::domBlend_func_separate::domDest_alpha::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func_separate)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_func_separate::domSrc_rgbRef ref = new domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "src_rgb" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ONE"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func_separate::domSrc_rgb)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func_separate::domDest_rgb::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_func_separate::domDest_rgbRef ref = new domGl_pipeline_settings::domBlend_func_separate::domDest_rgb(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func_separate::domDest_rgb::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dest_rgb" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func_separate::domDest_rgb::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domDest_rgb , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ZERO"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domDest_rgb , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func_separate::domDest_rgb)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_func_separate::domSrc_alphaRef ref = new domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "src_alpha" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ONE"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func_separate::domSrc_alpha)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_func_separate::domDest_alpha::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_func_separate::domDest_alphaRef ref = new domGl_pipeline_settings::domBlend_func_separate::domDest_alpha(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_func_separate::domDest_alpha::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dest_alpha" ); + meta->registerClass(domGl_pipeline_settings::domBlend_func_separate::domDest_alpha::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domDest_alpha , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ZERO"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_func_separate::domDest_alpha , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_func_separate::domDest_alpha)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_equation::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_equationRef ref = new domGl_pipeline_settings::domBlend_equation(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_equation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_equation" ); + meta->registerClass(domGl_pipeline_settings::domBlend_equation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_equation_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_equation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FUNC_ADD"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_equation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_equation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_equation_separate::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_equation_separateRef ref = new domGl_pipeline_settings::domBlend_equation_separate(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_equation_separate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_equation_separate" ); + meta->registerClass(domGl_pipeline_settings::domBlend_equation_separate::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rgb" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_equation_separate,elemRgb) ); + mea->setElementType( domGl_pipeline_settings::domBlend_equation_separate::domRgb::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "alpha" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domBlend_equation_separate,elemAlpha) ); + mea->setElementType( domGl_pipeline_settings::domBlend_equation_separate::domAlpha::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_equation_separate)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_equation_separate::domRgb::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_equation_separate::domRgbRef ref = new domGl_pipeline_settings::domBlend_equation_separate::domRgb(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_equation_separate::domRgb::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "rgb" ); + meta->registerClass(domGl_pipeline_settings::domBlend_equation_separate::domRgb::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_equation_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_equation_separate::domRgb , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FUNC_ADD"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_equation_separate::domRgb , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_equation_separate::domRgb)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_equation_separate::domAlpha::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_equation_separate::domAlphaRef ref = new domGl_pipeline_settings::domBlend_equation_separate::domAlpha(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_equation_separate::domAlpha::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "alpha" ); + meta->registerClass(domGl_pipeline_settings::domBlend_equation_separate::domAlpha::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_equation_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_equation_separate::domAlpha , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FUNC_ADD"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_equation_separate::domAlpha , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_equation_separate::domAlpha)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domColor_material::create(DAE& dae) +{ + domGl_pipeline_settings::domColor_materialRef ref = new domGl_pipeline_settings::domColor_material(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domColor_material::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_material" ); + meta->registerClass(domGl_pipeline_settings::domColor_material::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "face" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domColor_material,elemFace) ); + mea->setElementType( domGl_pipeline_settings::domColor_material::domFace::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "mode" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domColor_material,elemMode) ); + mea->setElementType( domGl_pipeline_settings::domColor_material::domMode::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domColor_material)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domColor_material::domFace::create(DAE& dae) +{ + domGl_pipeline_settings::domColor_material::domFaceRef ref = new domGl_pipeline_settings::domColor_material::domFace(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domColor_material::domFace::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "face" ); + meta->registerClass(domGl_pipeline_settings::domColor_material::domFace::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_face_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_material::domFace , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FRONT_AND_BACK"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_material::domFace , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domColor_material::domFace)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domColor_material::domMode::create(DAE& dae) +{ + domGl_pipeline_settings::domColor_material::domModeRef ref = new domGl_pipeline_settings::domColor_material::domMode(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domColor_material::domMode::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mode" ); + meta->registerClass(domGl_pipeline_settings::domColor_material::domMode::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_material_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_material::domMode , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "AMBIENT_AND_DIFFUSE"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_material::domMode , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domColor_material::domMode)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domCull_face::create(DAE& dae) +{ + domGl_pipeline_settings::domCull_faceRef ref = new domGl_pipeline_settings::domCull_face(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domCull_face::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cull_face" ); + meta->registerClass(domGl_pipeline_settings::domCull_face::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_face_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domCull_face , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "BACK"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domCull_face , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domCull_face)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDepth_func::create(DAE& dae) +{ + domGl_pipeline_settings::domDepth_funcRef ref = new domGl_pipeline_settings::domDepth_func(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDepth_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_func" ); + meta->registerClass(domGl_pipeline_settings::domDepth_func::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_func , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_func , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDepth_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFog_mode::create(DAE& dae) +{ + domGl_pipeline_settings::domFog_modeRef ref = new domGl_pipeline_settings::domFog_mode(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFog_mode::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_mode" ); + meta->registerClass(domGl_pipeline_settings::domFog_mode::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_fog_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_mode , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "EXP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_mode , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFog_mode)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFog_coord_src::create(DAE& dae) +{ + domGl_pipeline_settings::domFog_coord_srcRef ref = new domGl_pipeline_settings::domFog_coord_src(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFog_coord_src::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_coord_src" ); + meta->registerClass(domGl_pipeline_settings::domFog_coord_src::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_fog_coord_src_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_coord_src , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FOG_COORDINATE"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_coord_src , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFog_coord_src)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFront_face::create(DAE& dae) +{ + domGl_pipeline_settings::domFront_faceRef ref = new domGl_pipeline_settings::domFront_face(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFront_face::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "front_face" ); + meta->registerClass(domGl_pipeline_settings::domFront_face::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_front_face_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFront_face , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "CCW"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFront_face , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFront_face)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_model_color_control::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_model_color_controlRef ref = new domGl_pipeline_settings::domLight_model_color_control(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_model_color_control::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_model_color_control" ); + meta->registerClass(domGl_pipeline_settings::domLight_model_color_control::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_light_model_color_control_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_color_control , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "SINGLE_COLOR"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_color_control , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_model_color_control)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLogic_op::create(DAE& dae) +{ + domGl_pipeline_settings::domLogic_opRef ref = new domGl_pipeline_settings::domLogic_op(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLogic_op::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "logic_op" ); + meta->registerClass(domGl_pipeline_settings::domLogic_op::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_logic_op_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLogic_op , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "COPY"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLogic_op , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLogic_op)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_mode::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_modeRef ref = new domGl_pipeline_settings::domPolygon_mode(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_mode::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_mode" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_mode::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "face" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domPolygon_mode,elemFace) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_mode::domFace::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "mode" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domPolygon_mode,elemMode) ); + mea->setElementType( domGl_pipeline_settings::domPolygon_mode::domMode::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_mode)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_mode::domFace::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_mode::domFaceRef ref = new domGl_pipeline_settings::domPolygon_mode::domFace(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_mode::domFace::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "face" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_mode::domFace::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_face_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_mode::domFace , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FRONT_AND_BACK"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_mode::domFace , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_mode::domFace)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_mode::domMode::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_mode::domModeRef ref = new domGl_pipeline_settings::domPolygon_mode::domMode(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_mode::domMode::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mode" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_mode::domMode::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_polygon_mode_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_mode::domMode , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FILL"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_mode::domMode , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_mode::domMode)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domShade_model::create(DAE& dae) +{ + domGl_pipeline_settings::domShade_modelRef ref = new domGl_pipeline_settings::domShade_model(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domShade_model::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "shade_model" ); + meta->registerClass(domGl_pipeline_settings::domShade_model::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_shade_model_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domShade_model , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "SMOOTH"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domShade_model , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domShade_model)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_funcRef ref = new domGl_pipeline_settings::domStencil_func(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_func" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "func" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_func,elemFunc) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func::domFunc::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "ref" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_func,elemRef) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func::domRef::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "mask" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_func,elemMask) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func::domMask::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func::domFunc::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func::domFuncRef ref = new domGl_pipeline_settings::domStencil_func::domFunc(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func::domFunc::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "func" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func::domFunc::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func::domFunc , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func::domFunc , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func::domFunc)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func::domRef::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func::domRefRef ref = new domGl_pipeline_settings::domStencil_func::domRef(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func::domRef::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "ref" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func::domRef::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func::domRef , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func::domRef , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func::domRef)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func::domMask::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func::domMaskRef ref = new domGl_pipeline_settings::domStencil_func::domMask(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func::domMask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mask" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func::domMask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func::domMask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "255"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func::domMask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func::domMask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_opRef ref = new domGl_pipeline_settings::domStencil_op(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_op" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fail" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_op,elemFail) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op::domFail::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "zfail" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_op,elemZfail) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op::domZfail::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "zpass" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_op,elemZpass) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op::domZpass::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op::domFail::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op::domFailRef ref = new domGl_pipeline_settings::domStencil_op::domFail(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op::domFail::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fail" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op::domFail::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op::domFail , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op::domFail , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op::domFail)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op::domZfail::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op::domZfailRef ref = new domGl_pipeline_settings::domStencil_op::domZfail(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op::domZfail::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "zfail" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op::domZfail::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op::domZfail , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op::domZfail , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op::domZfail)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op::domZpass::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op::domZpassRef ref = new domGl_pipeline_settings::domStencil_op::domZpass(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op::domZpass::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "zpass" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op::domZpass::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op::domZpass , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op::domZpass , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op::domZpass)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func_separate::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func_separateRef ref = new domGl_pipeline_settings::domStencil_func_separate(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func_separate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_func_separate" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func_separate::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "front" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_func_separate,elemFront) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func_separate::domFront::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "back" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_func_separate,elemBack) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func_separate::domBack::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "ref" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_func_separate,elemRef) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func_separate::domRef::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "mask" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_func_separate,elemMask) ); + mea->setElementType( domGl_pipeline_settings::domStencil_func_separate::domMask::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func_separate)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func_separate::domFront::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func_separate::domFrontRef ref = new domGl_pipeline_settings::domStencil_func_separate::domFront(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func_separate::domFront::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "front" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func_separate::domFront::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domFront , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domFront , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func_separate::domFront)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func_separate::domBack::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func_separate::domBackRef ref = new domGl_pipeline_settings::domStencil_func_separate::domBack(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func_separate::domBack::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "back" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func_separate::domBack::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domBack , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domBack , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func_separate::domBack)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func_separate::domRef::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func_separate::domRefRef ref = new domGl_pipeline_settings::domStencil_func_separate::domRef(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func_separate::domRef::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "ref" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func_separate::domRef::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domRef , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domRef , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func_separate::domRef)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_func_separate::domMask::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_func_separate::domMaskRef ref = new domGl_pipeline_settings::domStencil_func_separate::domMask(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_func_separate::domMask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mask" ); + meta->registerClass(domGl_pipeline_settings::domStencil_func_separate::domMask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domMask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "255"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_func_separate::domMask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_func_separate::domMask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op_separate::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op_separateRef ref = new domGl_pipeline_settings::domStencil_op_separate(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op_separate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_op_separate" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op_separate::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "face" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_op_separate,elemFace) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op_separate::domFace::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "fail" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_op_separate,elemFail) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op_separate::domFail::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "zfail" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_op_separate,elemZfail) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op_separate::domZfail::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "zpass" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_op_separate,elemZpass) ); + mea->setElementType( domGl_pipeline_settings::domStencil_op_separate::domZpass::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op_separate)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op_separate::domFace::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op_separate::domFaceRef ref = new domGl_pipeline_settings::domStencil_op_separate::domFace(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op_separate::domFace::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "face" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op_separate::domFace::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_face_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domFace , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FRONT_AND_BACK"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domFace , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op_separate::domFace)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op_separate::domFail::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op_separate::domFailRef ref = new domGl_pipeline_settings::domStencil_op_separate::domFail(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op_separate::domFail::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fail" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op_separate::domFail::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domFail , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domFail , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op_separate::domFail)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op_separate::domZfail::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op_separate::domZfailRef ref = new domGl_pipeline_settings::domStencil_op_separate::domZfail(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op_separate::domZfail::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "zfail" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op_separate::domZfail::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domZfail , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domZfail , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op_separate::domZfail)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_op_separate::domZpass::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_op_separate::domZpassRef ref = new domGl_pipeline_settings::domStencil_op_separate::domZpass(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_op_separate::domZpass::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "zpass" ); + meta->registerClass(domGl_pipeline_settings::domStencil_op_separate::domZpass::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domZpass , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_op_separate::domZpass , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_op_separate::domZpass)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_mask_separate::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_mask_separateRef ref = new domGl_pipeline_settings::domStencil_mask_separate(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_mask_separate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_mask_separate" ); + meta->registerClass(domGl_pipeline_settings::domStencil_mask_separate::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "face" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_mask_separate,elemFace) ); + mea->setElementType( domGl_pipeline_settings::domStencil_mask_separate::domFace::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "mask" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domStencil_mask_separate,elemMask) ); + mea->setElementType( domGl_pipeline_settings::domStencil_mask_separate::domMask::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_mask_separate)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_mask_separate::domFace::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_mask_separate::domFaceRef ref = new domGl_pipeline_settings::domStencil_mask_separate::domFace(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_mask_separate::domFace::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "face" ); + meta->registerClass(domGl_pipeline_settings::domStencil_mask_separate::domFace::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_face_type")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_mask_separate::domFace , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "FRONT_AND_BACK"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_mask_separate::domFace , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_mask_separate::domFace)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_mask_separate::domMask::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_mask_separate::domMaskRef ref = new domGl_pipeline_settings::domStencil_mask_separate::domMask(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_mask_separate::domMask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mask" ); + meta->registerClass(domGl_pipeline_settings::domStencil_mask_separate::domMask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_mask_separate::domMask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "255"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_mask_separate::domMask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_mask_separate::domMask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_enableRef ref = new domGl_pipeline_settings::domLight_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_enable" ); + meta->registerClass(domGl_pipeline_settings::domLight_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_enable , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_ambient::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_ambientRef ref = new domGl_pipeline_settings::domLight_ambient(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_ambient::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_ambient" ); + meta->registerClass(domGl_pipeline_settings::domLight_ambient::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_ambient , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_ambient , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_ambient , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_ambient)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_diffuse::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_diffuseRef ref = new domGl_pipeline_settings::domLight_diffuse(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_diffuse::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_diffuse" ); + meta->registerClass(domGl_pipeline_settings::domLight_diffuse::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_diffuse , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_diffuse , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_diffuse , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_diffuse)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_specular::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_specularRef ref = new domGl_pipeline_settings::domLight_specular(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_specular::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_specular" ); + meta->registerClass(domGl_pipeline_settings::domLight_specular::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_specular , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_specular , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_specular , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_specular)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_position::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_positionRef ref = new domGl_pipeline_settings::domLight_position(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_position::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_position" ); + meta->registerClass(domGl_pipeline_settings::domLight_position::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_position , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 1 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_position , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_position , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_position)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_constant_attenuation::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_constant_attenuationRef ref = new domGl_pipeline_settings::domLight_constant_attenuation(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_constant_attenuation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_constant_attenuation" ); + meta->registerClass(domGl_pipeline_settings::domLight_constant_attenuation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_constant_attenuation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_constant_attenuation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_constant_attenuation , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_constant_attenuation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_linear_attenuation::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_linear_attenuationRef ref = new domGl_pipeline_settings::domLight_linear_attenuation(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_linear_attenuation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_linear_attenuation" ); + meta->registerClass(domGl_pipeline_settings::domLight_linear_attenuation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_linear_attenuation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_linear_attenuation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_linear_attenuation , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_linear_attenuation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_quadratic_attenuation::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_quadratic_attenuationRef ref = new domGl_pipeline_settings::domLight_quadratic_attenuation(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_quadratic_attenuation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_quadratic_attenuation" ); + meta->registerClass(domGl_pipeline_settings::domLight_quadratic_attenuation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_quadratic_attenuation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_quadratic_attenuation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_quadratic_attenuation , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_quadratic_attenuation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_spot_cutoff::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_spot_cutoffRef ref = new domGl_pipeline_settings::domLight_spot_cutoff(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_spot_cutoff::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_spot_cutoff" ); + meta->registerClass(domGl_pipeline_settings::domLight_spot_cutoff::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_cutoff , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "180"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_cutoff , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_cutoff , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_spot_cutoff)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_spot_direction::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_spot_directionRef ref = new domGl_pipeline_settings::domLight_spot_direction(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_spot_direction::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_spot_direction" ); + meta->registerClass(domGl_pipeline_settings::domLight_spot_direction::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_direction , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 -1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_direction , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_direction , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_spot_direction)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_spot_exponent::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_spot_exponentRef ref = new domGl_pipeline_settings::domLight_spot_exponent(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_spot_exponent::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_spot_exponent" ); + meta->registerClass(domGl_pipeline_settings::domLight_spot_exponent::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_exponent , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_exponent , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_spot_exponent , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_spot_exponent)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture1D::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture1DRef ref = new domGl_pipeline_settings::domTexture1D(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture1D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture1D" ); + meta->registerClass(domGl_pipeline_settings::domTexture1D::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTexture1D,elemValue) ); + mea->setElementType( domGl_sampler1D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTexture1D,elemParam) ); + mea->setElementType( domGl_pipeline_settings::domTexture1D::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGl_pipeline_settings::domTexture1D,_contents)); + meta->addContentsOrder(daeOffsetOf(domGl_pipeline_settings::domTexture1D,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGl_pipeline_settings::domTexture1D,_CMData), 1); + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture1D , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture1D)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture1D::domParam::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture1D::domParamRef ref = new domGl_pipeline_settings::domTexture1D::domParam(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture1D::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domGl_pipeline_settings::domTexture1D::domParam::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture1D::domParam , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture1D::domParam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture2D::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture2DRef ref = new domGl_pipeline_settings::domTexture2D(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture2D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture2D" ); + meta->registerClass(domGl_pipeline_settings::domTexture2D::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTexture2D,elemValue) ); + mea->setElementType( domGl_sampler2D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTexture2D,elemParam) ); + mea->setElementType( domGl_pipeline_settings::domTexture2D::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGl_pipeline_settings::domTexture2D,_contents)); + meta->addContentsOrder(daeOffsetOf(domGl_pipeline_settings::domTexture2D,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGl_pipeline_settings::domTexture2D,_CMData), 1); + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture2D , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture2D)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture2D::domParam::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture2D::domParamRef ref = new domGl_pipeline_settings::domTexture2D::domParam(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture2D::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domGl_pipeline_settings::domTexture2D::domParam::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture2D::domParam , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture2D::domParam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture3D::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture3DRef ref = new domGl_pipeline_settings::domTexture3D(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture3D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture3D" ); + meta->registerClass(domGl_pipeline_settings::domTexture3D::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTexture3D,elemValue) ); + mea->setElementType( domGl_sampler3D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTexture3D,elemParam) ); + mea->setElementType( domGl_pipeline_settings::domTexture3D::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGl_pipeline_settings::domTexture3D,_contents)); + meta->addContentsOrder(daeOffsetOf(domGl_pipeline_settings::domTexture3D,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGl_pipeline_settings::domTexture3D,_CMData), 1); + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture3D , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture3D)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture3D::domParam::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture3D::domParamRef ref = new domGl_pipeline_settings::domTexture3D::domParam(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture3D::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domGl_pipeline_settings::domTexture3D::domParam::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture3D::domParam , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture3D::domParam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureCUBE::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureCUBERef ref = new domGl_pipeline_settings::domTextureCUBE(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureCUBE::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "textureCUBE" ); + meta->registerClass(domGl_pipeline_settings::domTextureCUBE::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTextureCUBE,elemValue) ); + mea->setElementType( domGl_samplerCUBE::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTextureCUBE,elemParam) ); + mea->setElementType( domGl_pipeline_settings::domTextureCUBE::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGl_pipeline_settings::domTextureCUBE,_contents)); + meta->addContentsOrder(daeOffsetOf(domGl_pipeline_settings::domTextureCUBE,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGl_pipeline_settings::domTextureCUBE,_CMData), 1); + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureCUBE , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureCUBE)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureCUBE::domParam::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureCUBE::domParamRef ref = new domGl_pipeline_settings::domTextureCUBE::domParam(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureCUBE::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domGl_pipeline_settings::domTextureCUBE::domParam::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureCUBE::domParam , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureCUBE::domParam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureRECT::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureRECTRef ref = new domGl_pipeline_settings::domTextureRECT(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureRECT::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "textureRECT" ); + meta->registerClass(domGl_pipeline_settings::domTextureRECT::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTextureRECT,elemValue) ); + mea->setElementType( domGl_samplerRECT::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTextureRECT,elemParam) ); + mea->setElementType( domGl_pipeline_settings::domTextureRECT::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGl_pipeline_settings::domTextureRECT,_contents)); + meta->addContentsOrder(daeOffsetOf(domGl_pipeline_settings::domTextureRECT,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGl_pipeline_settings::domTextureRECT,_CMData), 1); + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureRECT , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureRECT)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureRECT::domParam::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureRECT::domParamRef ref = new domGl_pipeline_settings::domTextureRECT::domParam(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureRECT::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domGl_pipeline_settings::domTextureRECT::domParam::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureRECT::domParam , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureRECT::domParam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureDEPTH::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureDEPTHRef ref = new domGl_pipeline_settings::domTextureDEPTH(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureDEPTH::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "textureDEPTH" ); + meta->registerClass(domGl_pipeline_settings::domTextureDEPTH::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTextureDEPTH,elemValue) ); + mea->setElementType( domGl_samplerDEPTH::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domGl_pipeline_settings::domTextureDEPTH,elemParam) ); + mea->setElementType( domGl_pipeline_settings::domTextureDEPTH::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGl_pipeline_settings::domTextureDEPTH,_contents)); + meta->addContentsOrder(daeOffsetOf(domGl_pipeline_settings::domTextureDEPTH,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGl_pipeline_settings::domTextureDEPTH,_CMData), 1); + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureDEPTH , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureDEPTH)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureDEPTH::domParam::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureDEPTH::domParamRef ref = new domGl_pipeline_settings::domTextureDEPTH::domParam(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureDEPTH::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domGl_pipeline_settings::domTextureDEPTH::domParam::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureDEPTH::domParam , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureDEPTH::domParam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture1D_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture1D_enableRef ref = new domGl_pipeline_settings::domTexture1D_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture1D_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture1D_enable" ); + meta->registerClass(domGl_pipeline_settings::domTexture1D_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture1D_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture1D_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture1D_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture1D_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture2D_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture2D_enableRef ref = new domGl_pipeline_settings::domTexture2D_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture2D_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture2D_enable" ); + meta->registerClass(domGl_pipeline_settings::domTexture2D_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture2D_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture2D_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture2D_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture2D_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture3D_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture3D_enableRef ref = new domGl_pipeline_settings::domTexture3D_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture3D_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture3D_enable" ); + meta->registerClass(domGl_pipeline_settings::domTexture3D_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture3D_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture3D_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture3D_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture3D_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureCUBE_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureCUBE_enableRef ref = new domGl_pipeline_settings::domTextureCUBE_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureCUBE_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "textureCUBE_enable" ); + meta->registerClass(domGl_pipeline_settings::domTextureCUBE_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureCUBE_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureCUBE_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureCUBE_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureCUBE_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureRECT_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureRECT_enableRef ref = new domGl_pipeline_settings::domTextureRECT_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureRECT_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "textureRECT_enable" ); + meta->registerClass(domGl_pipeline_settings::domTextureRECT_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureRECT_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureRECT_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureRECT_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureRECT_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTextureDEPTH_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domTextureDEPTH_enableRef ref = new domGl_pipeline_settings::domTextureDEPTH_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTextureDEPTH_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "textureDEPTH_enable" ); + meta->registerClass(domGl_pipeline_settings::domTextureDEPTH_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureDEPTH_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureDEPTH_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTextureDEPTH_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTextureDEPTH_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture_env_color::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture_env_colorRef ref = new domGl_pipeline_settings::domTexture_env_color(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture_env_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture_env_color" ); + meta->registerClass(domGl_pipeline_settings::domTexture_env_color::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture_env_color , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture_env_color , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture_env_color , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture_env_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domTexture_env_mode::create(DAE& dae) +{ + domGl_pipeline_settings::domTexture_env_modeRef ref = new domGl_pipeline_settings::domTexture_env_mode(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domTexture_env_mode::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture_env_mode" ); + meta->registerClass(domGl_pipeline_settings::domTexture_env_mode::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("String")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture_env_mode , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture_env_mode , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_TEXTURE_IMAGE_UNITS_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domTexture_env_mode , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domTexture_env_mode)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domClip_plane::create(DAE& dae) +{ + domGl_pipeline_settings::domClip_planeRef ref = new domGl_pipeline_settings::domClip_plane(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domClip_plane::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clip_plane" ); + meta->registerClass(domGl_pipeline_settings::domClip_plane::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClip_plane , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClip_plane , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_CLIP_PLANES_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClip_plane , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domClip_plane)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domClip_plane_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domClip_plane_enableRef ref = new domGl_pipeline_settings::domClip_plane_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domClip_plane_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clip_plane_enable" ); + meta->registerClass(domGl_pipeline_settings::domClip_plane_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClip_plane_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClip_plane_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GL_MAX_CLIP_PLANES_index")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClip_plane_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domClip_plane_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_color::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_colorRef ref = new domGl_pipeline_settings::domBlend_color(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_color" ); + meta->registerClass(domGl_pipeline_settings::domBlend_color::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_color , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_color , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domClear_color::create(DAE& dae) +{ + domGl_pipeline_settings::domClear_colorRef ref = new domGl_pipeline_settings::domClear_color(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domClear_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clear_color" ); + meta->registerClass(domGl_pipeline_settings::domClear_color::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClear_color , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClear_color , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domClear_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domClear_stencil::create(DAE& dae) +{ + domGl_pipeline_settings::domClear_stencilRef ref = new domGl_pipeline_settings::domClear_stencil(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domClear_stencil::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clear_stencil" ); + meta->registerClass(domGl_pipeline_settings::domClear_stencil::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Int")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClear_stencil , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClear_stencil , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domClear_stencil)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domClear_depth::create(DAE& dae) +{ + domGl_pipeline_settings::domClear_depthRef ref = new domGl_pipeline_settings::domClear_depth(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domClear_depth::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clear_depth" ); + meta->registerClass(domGl_pipeline_settings::domClear_depth::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClear_depth , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domClear_depth , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domClear_depth)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domColor_mask::create(DAE& dae) +{ + domGl_pipeline_settings::domColor_maskRef ref = new domGl_pipeline_settings::domColor_mask(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domColor_mask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_mask" ); + meta->registerClass(domGl_pipeline_settings::domColor_mask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_mask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "true true true true"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_mask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domColor_mask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDepth_bounds::create(DAE& dae) +{ + domGl_pipeline_settings::domDepth_boundsRef ref = new domGl_pipeline_settings::domDepth_bounds(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDepth_bounds::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_bounds" ); + meta->registerClass(domGl_pipeline_settings::domDepth_bounds::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_bounds , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_bounds , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDepth_bounds)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDepth_mask::create(DAE& dae) +{ + domGl_pipeline_settings::domDepth_maskRef ref = new domGl_pipeline_settings::domDepth_mask(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDepth_mask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_mask" ); + meta->registerClass(domGl_pipeline_settings::domDepth_mask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_mask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "true"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_mask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDepth_mask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDepth_range::create(DAE& dae) +{ + domGl_pipeline_settings::domDepth_rangeRef ref = new domGl_pipeline_settings::domDepth_range(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDepth_range::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_range" ); + meta->registerClass(domGl_pipeline_settings::domDepth_range::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_range , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_range , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDepth_range)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFog_density::create(DAE& dae) +{ + domGl_pipeline_settings::domFog_densityRef ref = new domGl_pipeline_settings::domFog_density(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFog_density::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_density" ); + meta->registerClass(domGl_pipeline_settings::domFog_density::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_density , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_density , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFog_density)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFog_start::create(DAE& dae) +{ + domGl_pipeline_settings::domFog_startRef ref = new domGl_pipeline_settings::domFog_start(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFog_start::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_start" ); + meta->registerClass(domGl_pipeline_settings::domFog_start::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_start , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_start , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFog_start)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFog_end::create(DAE& dae) +{ + domGl_pipeline_settings::domFog_endRef ref = new domGl_pipeline_settings::domFog_end(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFog_end::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_end" ); + meta->registerClass(domGl_pipeline_settings::domFog_end::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_end , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_end , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFog_end)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFog_color::create(DAE& dae) +{ + domGl_pipeline_settings::domFog_colorRef ref = new domGl_pipeline_settings::domFog_color(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFog_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_color" ); + meta->registerClass(domGl_pipeline_settings::domFog_color::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_color , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_color , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFog_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_model_ambient::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_model_ambientRef ref = new domGl_pipeline_settings::domLight_model_ambient(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_model_ambient::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_model_ambient" ); + meta->registerClass(domGl_pipeline_settings::domLight_model_ambient::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_ambient , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.2 0.2 0.2 1.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_ambient , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_model_ambient)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLighting_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domLighting_enableRef ref = new domGl_pipeline_settings::domLighting_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLighting_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "lighting_enable" ); + meta->registerClass(domGl_pipeline_settings::domLighting_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLighting_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLighting_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLighting_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLine_stipple::create(DAE& dae) +{ + domGl_pipeline_settings::domLine_stippleRef ref = new domGl_pipeline_settings::domLine_stipple(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLine_stipple::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "line_stipple" ); + meta->registerClass(domGl_pipeline_settings::domLine_stipple::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Int2")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_stipple , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1 65536"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_stipple , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLine_stipple)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLine_width::create(DAE& dae) +{ + domGl_pipeline_settings::domLine_widthRef ref = new domGl_pipeline_settings::domLine_width(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLine_width::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "line_width" ); + meta->registerClass(domGl_pipeline_settings::domLine_width::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_width , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_width , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLine_width)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domMaterial_ambient::create(DAE& dae) +{ + domGl_pipeline_settings::domMaterial_ambientRef ref = new domGl_pipeline_settings::domMaterial_ambient(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domMaterial_ambient::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_ambient" ); + meta->registerClass(domGl_pipeline_settings::domMaterial_ambient::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_ambient , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.2 0.2 0.2 1.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_ambient , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domMaterial_ambient)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domMaterial_diffuse::create(DAE& dae) +{ + domGl_pipeline_settings::domMaterial_diffuseRef ref = new domGl_pipeline_settings::domMaterial_diffuse(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domMaterial_diffuse::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_diffuse" ); + meta->registerClass(domGl_pipeline_settings::domMaterial_diffuse::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_diffuse , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.8 0.8 0.8 1.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_diffuse , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domMaterial_diffuse)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domMaterial_emission::create(DAE& dae) +{ + domGl_pipeline_settings::domMaterial_emissionRef ref = new domGl_pipeline_settings::domMaterial_emission(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domMaterial_emission::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_emission" ); + meta->registerClass(domGl_pipeline_settings::domMaterial_emission::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_emission , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_emission , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domMaterial_emission)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domMaterial_shininess::create(DAE& dae) +{ + domGl_pipeline_settings::domMaterial_shininessRef ref = new domGl_pipeline_settings::domMaterial_shininess(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domMaterial_shininess::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_shininess" ); + meta->registerClass(domGl_pipeline_settings::domMaterial_shininess::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_shininess , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_shininess , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domMaterial_shininess)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domMaterial_specular::create(DAE& dae) +{ + domGl_pipeline_settings::domMaterial_specularRef ref = new domGl_pipeline_settings::domMaterial_specular(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domMaterial_specular::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_specular" ); + meta->registerClass(domGl_pipeline_settings::domMaterial_specular::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_specular , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMaterial_specular , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domMaterial_specular)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domModel_view_matrix::create(DAE& dae) +{ + domGl_pipeline_settings::domModel_view_matrixRef ref = new domGl_pipeline_settings::domModel_view_matrix(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domModel_view_matrix::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "model_view_matrix" ); + meta->registerClass(domGl_pipeline_settings::domModel_view_matrix::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domModel_view_matrix , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domModel_view_matrix , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domModel_view_matrix)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPoint_distance_attenuation::create(DAE& dae) +{ + domGl_pipeline_settings::domPoint_distance_attenuationRef ref = new domGl_pipeline_settings::domPoint_distance_attenuation(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPoint_distance_attenuation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_distance_attenuation" ); + meta->registerClass(domGl_pipeline_settings::domPoint_distance_attenuation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_distance_attenuation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_distance_attenuation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPoint_distance_attenuation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPoint_fade_threshold_size::create(DAE& dae) +{ + domGl_pipeline_settings::domPoint_fade_threshold_sizeRef ref = new domGl_pipeline_settings::domPoint_fade_threshold_size(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPoint_fade_threshold_size::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_fade_threshold_size" ); + meta->registerClass(domGl_pipeline_settings::domPoint_fade_threshold_size::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_fade_threshold_size , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_fade_threshold_size , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPoint_fade_threshold_size)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPoint_size::create(DAE& dae) +{ + domGl_pipeline_settings::domPoint_sizeRef ref = new domGl_pipeline_settings::domPoint_size(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPoint_size::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_size" ); + meta->registerClass(domGl_pipeline_settings::domPoint_size::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_size , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_size , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPoint_size)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPoint_size_min::create(DAE& dae) +{ + domGl_pipeline_settings::domPoint_size_minRef ref = new domGl_pipeline_settings::domPoint_size_min(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPoint_size_min::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_size_min" ); + meta->registerClass(domGl_pipeline_settings::domPoint_size_min::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_size_min , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_size_min , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPoint_size_min)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPoint_size_max::create(DAE& dae) +{ + domGl_pipeline_settings::domPoint_size_maxRef ref = new domGl_pipeline_settings::domPoint_size_max(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPoint_size_max::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_size_max" ); + meta->registerClass(domGl_pipeline_settings::domPoint_size_max::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_size_max , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_size_max , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPoint_size_max)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_offset::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_offsetRef ref = new domGl_pipeline_settings::domPolygon_offset(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_offset::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_offset" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_offset::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_offset)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domProjection_matrix::create(DAE& dae) +{ + domGl_pipeline_settings::domProjection_matrixRef ref = new domGl_pipeline_settings::domProjection_matrix(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domProjection_matrix::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "projection_matrix" ); + meta->registerClass(domGl_pipeline_settings::domProjection_matrix::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domProjection_matrix , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domProjection_matrix , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domProjection_matrix)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domScissor::create(DAE& dae) +{ + domGl_pipeline_settings::domScissorRef ref = new domGl_pipeline_settings::domScissor(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domScissor::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "scissor" ); + meta->registerClass(domGl_pipeline_settings::domScissor::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Int4")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domScissor , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domScissor , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domScissor)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_mask::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_maskRef ref = new domGl_pipeline_settings::domStencil_mask(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_mask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_mask" ); + meta->registerClass(domGl_pipeline_settings::domStencil_mask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Int")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_mask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "4294967295"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_mask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_mask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domAlpha_test_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domAlpha_test_enableRef ref = new domGl_pipeline_settings::domAlpha_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domAlpha_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "alpha_test_enable" ); + meta->registerClass(domGl_pipeline_settings::domAlpha_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAlpha_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAlpha_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domAlpha_test_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domAuto_normal_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domAuto_normal_enableRef ref = new domGl_pipeline_settings::domAuto_normal_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domAuto_normal_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "auto_normal_enable" ); + meta->registerClass(domGl_pipeline_settings::domAuto_normal_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAuto_normal_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domAuto_normal_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domAuto_normal_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domBlend_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domBlend_enableRef ref = new domGl_pipeline_settings::domBlend_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domBlend_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_enable" ); + meta->registerClass(domGl_pipeline_settings::domBlend_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domBlend_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domBlend_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domColor_logic_op_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domColor_logic_op_enableRef ref = new domGl_pipeline_settings::domColor_logic_op_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domColor_logic_op_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_logic_op_enable" ); + meta->registerClass(domGl_pipeline_settings::domColor_logic_op_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_logic_op_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_logic_op_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domColor_logic_op_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domColor_material_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domColor_material_enableRef ref = new domGl_pipeline_settings::domColor_material_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domColor_material_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_material_enable" ); + meta->registerClass(domGl_pipeline_settings::domColor_material_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_material_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "true"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domColor_material_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domColor_material_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domCull_face_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domCull_face_enableRef ref = new domGl_pipeline_settings::domCull_face_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domCull_face_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cull_face_enable" ); + meta->registerClass(domGl_pipeline_settings::domCull_face_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domCull_face_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domCull_face_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domCull_face_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDepth_bounds_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domDepth_bounds_enableRef ref = new domGl_pipeline_settings::domDepth_bounds_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDepth_bounds_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_bounds_enable" ); + meta->registerClass(domGl_pipeline_settings::domDepth_bounds_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_bounds_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_bounds_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDepth_bounds_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDepth_clamp_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domDepth_clamp_enableRef ref = new domGl_pipeline_settings::domDepth_clamp_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDepth_clamp_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_clamp_enable" ); + meta->registerClass(domGl_pipeline_settings::domDepth_clamp_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_clamp_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_clamp_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDepth_clamp_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDepth_test_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domDepth_test_enableRef ref = new domGl_pipeline_settings::domDepth_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDepth_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_test_enable" ); + meta->registerClass(domGl_pipeline_settings::domDepth_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDepth_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDepth_test_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domDither_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domDither_enableRef ref = new domGl_pipeline_settings::domDither_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domDither_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dither_enable" ); + meta->registerClass(domGl_pipeline_settings::domDither_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDither_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "true"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domDither_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domDither_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domFog_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domFog_enableRef ref = new domGl_pipeline_settings::domFog_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domFog_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_enable" ); + meta->registerClass(domGl_pipeline_settings::domFog_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domFog_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domFog_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_model_local_viewer_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_model_local_viewer_enableRef ref = new domGl_pipeline_settings::domLight_model_local_viewer_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_model_local_viewer_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_model_local_viewer_enable" ); + meta->registerClass(domGl_pipeline_settings::domLight_model_local_viewer_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_local_viewer_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_local_viewer_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_model_local_viewer_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLight_model_two_side_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domLight_model_two_side_enableRef ref = new domGl_pipeline_settings::domLight_model_two_side_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLight_model_two_side_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_model_two_side_enable" ); + meta->registerClass(domGl_pipeline_settings::domLight_model_two_side_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_two_side_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLight_model_two_side_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLight_model_two_side_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLine_smooth_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domLine_smooth_enableRef ref = new domGl_pipeline_settings::domLine_smooth_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLine_smooth_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "line_smooth_enable" ); + meta->registerClass(domGl_pipeline_settings::domLine_smooth_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_smooth_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_smooth_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLine_smooth_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLine_stipple_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domLine_stipple_enableRef ref = new domGl_pipeline_settings::domLine_stipple_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLine_stipple_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "line_stipple_enable" ); + meta->registerClass(domGl_pipeline_settings::domLine_stipple_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_stipple_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLine_stipple_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLine_stipple_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domLogic_op_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domLogic_op_enableRef ref = new domGl_pipeline_settings::domLogic_op_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domLogic_op_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "logic_op_enable" ); + meta->registerClass(domGl_pipeline_settings::domLogic_op_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLogic_op_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domLogic_op_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domLogic_op_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domMultisample_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domMultisample_enableRef ref = new domGl_pipeline_settings::domMultisample_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domMultisample_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "multisample_enable" ); + meta->registerClass(domGl_pipeline_settings::domMultisample_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMultisample_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domMultisample_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domMultisample_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domNormalize_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domNormalize_enableRef ref = new domGl_pipeline_settings::domNormalize_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domNormalize_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "normalize_enable" ); + meta->registerClass(domGl_pipeline_settings::domNormalize_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domNormalize_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domNormalize_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domNormalize_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPoint_smooth_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domPoint_smooth_enableRef ref = new domGl_pipeline_settings::domPoint_smooth_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPoint_smooth_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_smooth_enable" ); + meta->registerClass(domGl_pipeline_settings::domPoint_smooth_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_smooth_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPoint_smooth_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPoint_smooth_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_offset_fill_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_offset_fill_enableRef ref = new domGl_pipeline_settings::domPolygon_offset_fill_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_offset_fill_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_offset_fill_enable" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_offset_fill_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset_fill_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset_fill_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_offset_fill_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_offset_line_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_offset_line_enableRef ref = new domGl_pipeline_settings::domPolygon_offset_line_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_offset_line_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_offset_line_enable" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_offset_line_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset_line_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset_line_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_offset_line_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_offset_point_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_offset_point_enableRef ref = new domGl_pipeline_settings::domPolygon_offset_point_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_offset_point_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_offset_point_enable" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_offset_point_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset_point_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_offset_point_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_offset_point_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_smooth_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_smooth_enableRef ref = new domGl_pipeline_settings::domPolygon_smooth_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_smooth_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_smooth_enable" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_smooth_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_smooth_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_smooth_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_smooth_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domPolygon_stipple_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domPolygon_stipple_enableRef ref = new domGl_pipeline_settings::domPolygon_stipple_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domPolygon_stipple_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_stipple_enable" ); + meta->registerClass(domGl_pipeline_settings::domPolygon_stipple_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_stipple_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domPolygon_stipple_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domPolygon_stipple_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domRescale_normal_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domRescale_normal_enableRef ref = new domGl_pipeline_settings::domRescale_normal_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domRescale_normal_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "rescale_normal_enable" ); + meta->registerClass(domGl_pipeline_settings::domRescale_normal_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domRescale_normal_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domRescale_normal_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domRescale_normal_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domSample_alpha_to_coverage_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domSample_alpha_to_coverage_enableRef ref = new domGl_pipeline_settings::domSample_alpha_to_coverage_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domSample_alpha_to_coverage_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sample_alpha_to_coverage_enable" ); + meta->registerClass(domGl_pipeline_settings::domSample_alpha_to_coverage_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domSample_alpha_to_coverage_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domSample_alpha_to_coverage_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domSample_alpha_to_coverage_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domSample_alpha_to_one_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domSample_alpha_to_one_enableRef ref = new domGl_pipeline_settings::domSample_alpha_to_one_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domSample_alpha_to_one_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sample_alpha_to_one_enable" ); + meta->registerClass(domGl_pipeline_settings::domSample_alpha_to_one_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domSample_alpha_to_one_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domSample_alpha_to_one_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domSample_alpha_to_one_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domSample_coverage_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domSample_coverage_enableRef ref = new domGl_pipeline_settings::domSample_coverage_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domSample_coverage_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sample_coverage_enable" ); + meta->registerClass(domGl_pipeline_settings::domSample_coverage_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domSample_coverage_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domSample_coverage_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domSample_coverage_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domScissor_test_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domScissor_test_enableRef ref = new domGl_pipeline_settings::domScissor_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domScissor_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "scissor_test_enable" ); + meta->registerClass(domGl_pipeline_settings::domScissor_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domScissor_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domScissor_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domScissor_test_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGl_pipeline_settings::domStencil_test_enable::create(DAE& dae) +{ + domGl_pipeline_settings::domStencil_test_enableRef ref = new domGl_pipeline_settings::domStencil_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGl_pipeline_settings::domStencil_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_test_enable" ); + meta->registerClass(domGl_pipeline_settings::domStencil_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGl_pipeline_settings::domStencil_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGl_pipeline_settings::domStencil_test_enable)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_sampler1D.cpp b/src/1.4/dom/domGl_sampler1D.cpp new file mode 100644 index 0000000..67c29e7 --- /dev/null +++ b/src/1.4/dom/domGl_sampler1D.cpp @@ -0,0 +1,115 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_sampler1D::create(DAE& dae) +{ + domGl_sampler1DRef ref = new domGl_sampler1D(dae); + return ref; +} + + +daeMetaElement * +domGl_sampler1D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_sampler1D" ); + meta->registerClass(domGl_sampler1D::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 8, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGl_sampler1D,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 8 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 8 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_sampler1D)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_sampler2D.cpp b/src/1.4/dom/domGl_sampler2D.cpp new file mode 100644 index 0000000..cca77ec --- /dev/null +++ b/src/1.4/dom/domGl_sampler2D.cpp @@ -0,0 +1,121 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_sampler2D::create(DAE& dae) +{ + domGl_sampler2DRef ref = new domGl_sampler2D(dae); + return ref; +} + + +daeMetaElement * +domGl_sampler2D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_sampler2D" ); + meta->registerClass(domGl_sampler2D::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 9, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGl_sampler2D,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_sampler2D)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_sampler3D.cpp b/src/1.4/dom/domGl_sampler3D.cpp new file mode 100644 index 0000000..9583c92 --- /dev/null +++ b/src/1.4/dom/domGl_sampler3D.cpp @@ -0,0 +1,127 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_sampler3D::create(DAE& dae) +{ + domGl_sampler3DRef ref = new domGl_sampler3D(dae); + return ref; +} + + +daeMetaElement * +domGl_sampler3D::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_sampler3D" ); + meta->registerClass(domGl_sampler3D::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "wrap_p" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemWrap_p) ); + mea->setElementType( domWrap_p::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 10, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGl_sampler3D,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 10 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 10 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_sampler3D)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_samplerCUBE.cpp b/src/1.4/dom/domGl_samplerCUBE.cpp new file mode 100644 index 0000000..6769946 --- /dev/null +++ b/src/1.4/dom/domGl_samplerCUBE.cpp @@ -0,0 +1,127 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_samplerCUBE::create(DAE& dae) +{ + domGl_samplerCUBERef ref = new domGl_samplerCUBE(dae); + return ref; +} + + +daeMetaElement * +domGl_samplerCUBE::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_samplerCUBE" ); + meta->registerClass(domGl_samplerCUBE::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "wrap_p" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemWrap_p) ); + mea->setElementType( domWrap_p::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 10, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGl_samplerCUBE,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 10 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 10 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_samplerCUBE)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_samplerDEPTH.cpp b/src/1.4/dom/domGl_samplerDEPTH.cpp new file mode 100644 index 0000000..23a879b --- /dev/null +++ b/src/1.4/dom/domGl_samplerDEPTH.cpp @@ -0,0 +1,97 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_samplerDEPTH::create(DAE& dae) +{ + domGl_samplerDEPTHRef ref = new domGl_samplerDEPTH(dae); + return ref; +} + + +daeMetaElement * +domGl_samplerDEPTH::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_samplerDEPTH" ); + meta->registerClass(domGl_samplerDEPTH::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domGl_samplerDEPTH,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domGl_samplerDEPTH,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domGl_samplerDEPTH,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerDEPTH,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerDEPTH,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGl_samplerDEPTH,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_samplerDEPTH)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGl_samplerRECT.cpp b/src/1.4/dom/domGl_samplerRECT.cpp new file mode 100644 index 0000000..fec3afb --- /dev/null +++ b/src/1.4/dom/domGl_samplerRECT.cpp @@ -0,0 +1,121 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGl_samplerRECT::create(DAE& dae) +{ + domGl_samplerRECTRef ref = new domGl_samplerRECT(dae); + return ref; +} + + +daeMetaElement * +domGl_samplerRECT::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gl_samplerRECT" ); + meta->registerClass(domGl_samplerRECT::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemSource) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemWrap_s) ); + mea->setElementType( domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemWrap_t) ); + mea->setElementType( domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemMinfilter) ); + mea->setElementType( domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemMagfilter) ); + mea->setElementType( domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemMipfilter) ); + mea->setElementType( domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "border_color" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemBorder_color) ); + mea->setElementType( domBorder_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemMipmap_maxlevel) ); + mea->setElementType( domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemMipmap_bias) ); + mea->setElementType( domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 9, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGl_samplerRECT,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGl_samplerRECT)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_basic_type_common.cpp b/src/1.4/dom/domGles_basic_type_common.cpp new file mode 100644 index 0000000..a5c7664 --- /dev/null +++ b/src/1.4/dom/domGles_basic_type_common.cpp @@ -0,0 +1,1302 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_basic_type_common::create(DAE& dae) +{ + domGles_basic_type_commonRef ref = new domGles_basic_type_common(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_basic_type_common" ); + meta->registerClass(domGles_basic_type_common::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemBool) ); + mea->setElementType( domGles_basic_type_common::domBool::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemBool2) ); + mea->setElementType( domGles_basic_type_common::domBool2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemBool3) ); + mea->setElementType( domGles_basic_type_common::domBool3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemBool4) ); + mea->setElementType( domGles_basic_type_common::domBool4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemInt) ); + mea->setElementType( domGles_basic_type_common::domInt::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemInt2) ); + mea->setElementType( domGles_basic_type_common::domInt2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemInt3) ); + mea->setElementType( domGles_basic_type_common::domInt3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemInt4) ); + mea->setElementType( domGles_basic_type_common::domInt4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat) ); + mea->setElementType( domGles_basic_type_common::domFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat2) ); + mea->setElementType( domGles_basic_type_common::domFloat2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat3) ); + mea->setElementType( domGles_basic_type_common::domFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat4) ); + mea->setElementType( domGles_basic_type_common::domFloat4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x1" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat1x1) ); + mea->setElementType( domGles_basic_type_common::domFloat1x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x2" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat1x2) ); + mea->setElementType( domGles_basic_type_common::domFloat1x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x3" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat1x3) ); + mea->setElementType( domGles_basic_type_common::domFloat1x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float1x4" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat1x4) ); + mea->setElementType( domGles_basic_type_common::domFloat1x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x1" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat2x1) ); + mea->setElementType( domGles_basic_type_common::domFloat2x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x2" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat2x2) ); + mea->setElementType( domGles_basic_type_common::domFloat2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x3" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat2x3) ); + mea->setElementType( domGles_basic_type_common::domFloat2x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x4" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat2x4) ); + mea->setElementType( domGles_basic_type_common::domFloat2x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x1" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat3x1) ); + mea->setElementType( domGles_basic_type_common::domFloat3x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x2" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat3x2) ); + mea->setElementType( domGles_basic_type_common::domFloat3x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x3" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat3x3) ); + mea->setElementType( domGles_basic_type_common::domFloat3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x4" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat3x4) ); + mea->setElementType( domGles_basic_type_common::domFloat3x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x1" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat4x1) ); + mea->setElementType( domGles_basic_type_common::domFloat4x1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x2" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat4x2) ); + mea->setElementType( domGles_basic_type_common::domFloat4x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x3" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat4x3) ); + mea->setElementType( domGles_basic_type_common::domFloat4x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x4" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemFloat4x4) ); + mea->setElementType( domGles_basic_type_common::domFloat4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "surface" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemSurface) ); + mea->setElementType( domFx_surface_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture_pipeline" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemTexture_pipeline) ); + mea->setElementType( domGles_texture_pipeline::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler_state" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemSampler_state) ); + mea->setElementType( domGles_sampler_state::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture_unit" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemTexture_unit) ); + mea->setElementType( domGles_texture_unit::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "enum" ); + mea->setOffset( daeOffsetOf(domGles_basic_type_common,elemEnum) ); + mea->setElementType( domGles_basic_type_common::domEnum::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGles_basic_type_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domGles_basic_type_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGles_basic_type_common,_CMData), 1); + meta->setElementSize(sizeof(domGles_basic_type_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domBool::create(DAE& dae) +{ + domGles_basic_type_common::domBoolRef ref = new domGles_basic_type_common::domBool(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domBool::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool" ); + meta->registerClass(domGles_basic_type_common::domBool::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domBool , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domBool)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domBool2::create(DAE& dae) +{ + domGles_basic_type_common::domBool2Ref ref = new domGles_basic_type_common::domBool2(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domBool2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2" ); + meta->registerClass(domGles_basic_type_common::domBool2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domBool2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domBool2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domBool3::create(DAE& dae) +{ + domGles_basic_type_common::domBool3Ref ref = new domGles_basic_type_common::domBool3(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domBool3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3" ); + meta->registerClass(domGles_basic_type_common::domBool3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domBool3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domBool3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domBool4::create(DAE& dae) +{ + domGles_basic_type_common::domBool4Ref ref = new domGles_basic_type_common::domBool4(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domBool4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4" ); + meta->registerClass(domGles_basic_type_common::domBool4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domBool4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domBool4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domInt::create(DAE& dae) +{ + domGles_basic_type_common::domIntRef ref = new domGles_basic_type_common::domInt(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domInt::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int" ); + meta->registerClass(domGles_basic_type_common::domInt::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domInt , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domInt)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domInt2::create(DAE& dae) +{ + domGles_basic_type_common::domInt2Ref ref = new domGles_basic_type_common::domInt2(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domInt2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2" ); + meta->registerClass(domGles_basic_type_common::domInt2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domInt2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domInt2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domInt3::create(DAE& dae) +{ + domGles_basic_type_common::domInt3Ref ref = new domGles_basic_type_common::domInt3(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domInt3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3" ); + meta->registerClass(domGles_basic_type_common::domInt3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domInt3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domInt3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domInt4::create(DAE& dae) +{ + domGles_basic_type_common::domInt4Ref ref = new domGles_basic_type_common::domInt4(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domInt4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4" ); + meta->registerClass(domGles_basic_type_common::domInt4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Int4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domInt4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domInt4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat::create(DAE& dae) +{ + domGles_basic_type_common::domFloatRef ref = new domGles_basic_type_common::domFloat(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float" ); + meta->registerClass(domGles_basic_type_common::domFloat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat2::create(DAE& dae) +{ + domGles_basic_type_common::domFloat2Ref ref = new domGles_basic_type_common::domFloat2(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2" ); + meta->registerClass(domGles_basic_type_common::domFloat2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat3::create(DAE& dae) +{ + domGles_basic_type_common::domFloat3Ref ref = new domGles_basic_type_common::domFloat3(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3" ); + meta->registerClass(domGles_basic_type_common::domFloat3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat4::create(DAE& dae) +{ + domGles_basic_type_common::domFloat4Ref ref = new domGles_basic_type_common::domFloat4(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4" ); + meta->registerClass(domGles_basic_type_common::domFloat4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat1x1::create(DAE& dae) +{ + domGles_basic_type_common::domFloat1x1Ref ref = new domGles_basic_type_common::domFloat1x1(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat1x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x1" ); + meta->registerClass(domGles_basic_type_common::domFloat1x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat1x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat1x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat1x2::create(DAE& dae) +{ + domGles_basic_type_common::domFloat1x2Ref ref = new domGles_basic_type_common::domFloat1x2(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat1x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x2" ); + meta->registerClass(domGles_basic_type_common::domFloat1x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat1x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat1x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat1x3::create(DAE& dae) +{ + domGles_basic_type_common::domFloat1x3Ref ref = new domGles_basic_type_common::domFloat1x3(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat1x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x3" ); + meta->registerClass(domGles_basic_type_common::domFloat1x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat1x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat1x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat1x4::create(DAE& dae) +{ + domGles_basic_type_common::domFloat1x4Ref ref = new domGles_basic_type_common::domFloat1x4(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat1x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float1x4" ); + meta->registerClass(domGles_basic_type_common::domFloat1x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat1x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat1x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat2x1::create(DAE& dae) +{ + domGles_basic_type_common::domFloat2x1Ref ref = new domGles_basic_type_common::domFloat2x1(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat2x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x1" ); + meta->registerClass(domGles_basic_type_common::domFloat2x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat2x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat2x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat2x2::create(DAE& dae) +{ + domGles_basic_type_common::domFloat2x2Ref ref = new domGles_basic_type_common::domFloat2x2(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x2" ); + meta->registerClass(domGles_basic_type_common::domFloat2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2x2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat2x3::create(DAE& dae) +{ + domGles_basic_type_common::domFloat2x3Ref ref = new domGles_basic_type_common::domFloat2x3(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat2x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x3" ); + meta->registerClass(domGles_basic_type_common::domFloat2x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2x3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat2x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat2x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat2x4::create(DAE& dae) +{ + domGles_basic_type_common::domFloat2x4Ref ref = new domGles_basic_type_common::domFloat2x4(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat2x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x4" ); + meta->registerClass(domGles_basic_type_common::domFloat2x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2x4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat2x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat2x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat3x1::create(DAE& dae) +{ + domGles_basic_type_common::domFloat3x1Ref ref = new domGles_basic_type_common::domFloat3x1(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat3x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x1" ); + meta->registerClass(domGles_basic_type_common::domFloat3x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat3x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat3x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat3x2::create(DAE& dae) +{ + domGles_basic_type_common::domFloat3x2Ref ref = new domGles_basic_type_common::domFloat3x2(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat3x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x2" ); + meta->registerClass(domGles_basic_type_common::domFloat3x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat3x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat3x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat3x3::create(DAE& dae) +{ + domGles_basic_type_common::domFloat3x3Ref ref = new domGles_basic_type_common::domFloat3x3(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x3" ); + meta->registerClass(domGles_basic_type_common::domFloat3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat3x4::create(DAE& dae) +{ + domGles_basic_type_common::domFloat3x4Ref ref = new domGles_basic_type_common::domFloat3x4(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat3x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x4" ); + meta->registerClass(domGles_basic_type_common::domFloat3x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat3x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat3x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat4x1::create(DAE& dae) +{ + domGles_basic_type_common::domFloat4x1Ref ref = new domGles_basic_type_common::domFloat4x1(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat4x1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x1" ); + meta->registerClass(domGles_basic_type_common::domFloat4x1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat4x1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat4x1)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat4x2::create(DAE& dae) +{ + domGles_basic_type_common::domFloat4x2Ref ref = new domGles_basic_type_common::domFloat4x2(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat4x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x2" ); + meta->registerClass(domGles_basic_type_common::domFloat4x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x2")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat4x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat4x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat4x3::create(DAE& dae) +{ + domGles_basic_type_common::domFloat4x3Ref ref = new domGles_basic_type_common::domFloat4x3(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat4x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x3" ); + meta->registerClass(domGles_basic_type_common::domFloat4x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x3")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat4x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat4x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domFloat4x4::create(DAE& dae) +{ + domGles_basic_type_common::domFloat4x4Ref ref = new domGles_basic_type_common::domFloat4x4(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domFloat4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x4" ); + meta->registerClass(domGles_basic_type_common::domFloat4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domFloat4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domFloat4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_basic_type_common::domEnum::create(DAE& dae) +{ + domGles_basic_type_common::domEnumRef ref = new domGles_basic_type_common::domEnum(dae); + return ref; +} + + +daeMetaElement * +domGles_basic_type_common::domEnum::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "enum" ); + meta->registerClass(domGles_basic_type_common::domEnum::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gles_enumeration")); + ma->setOffset( daeOffsetOf( domGles_basic_type_common::domEnum , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_basic_type_common::domEnum)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_newparam.cpp b/src/1.4/dom/domGles_newparam.cpp new file mode 100644 index 0000000..24a2f19 --- /dev/null +++ b/src/1.4/dom/domGles_newparam.cpp @@ -0,0 +1,163 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_newparam::create(DAE& dae) +{ + domGles_newparamRef ref = new domGles_newparam(dae); + return ref; +} + + +daeMetaElement * +domGles_newparam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_newparam" ); + meta->registerClass(domGles_newparam::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domGles_newparam,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "semantic" ); + mea->setOffset( daeOffsetOf(domGles_newparam,elemSemantic) ); + mea->setElementType( domGles_newparam::domSemantic::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "modifier" ); + mea->setOffset( daeOffsetOf(domGles_newparam,elemModifier) ); + mea->setElementType( domGles_newparam::domModifier::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "gles_basic_type_common" ); + mea->setOffset( daeOffsetOf(domGles_newparam,elemGles_basic_type_common) ); + mea->setElementType( domGles_basic_type_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 3, 1, 1 ) ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_newparam , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_newparam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_newparam::domSemantic::create(DAE& dae) +{ + domGles_newparam::domSemanticRef ref = new domGles_newparam::domSemantic(dae); + return ref; +} + + +daeMetaElement * +domGles_newparam::domSemantic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "semantic" ); + meta->registerClass(domGles_newparam::domSemantic::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_newparam::domSemantic , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_newparam::domSemantic)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_newparam::domModifier::create(DAE& dae) +{ + domGles_newparam::domModifierRef ref = new domGles_newparam::domModifier(dae); + return ref; +} + + +daeMetaElement * +domGles_newparam::domModifier::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "modifier" ); + meta->registerClass(domGles_newparam::domModifier::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_modifier_enum_common")); + ma->setOffset( daeOffsetOf( domGles_newparam::domModifier , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_newparam::domModifier)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_pipeline_settings.cpp b/src/1.4/dom/domGles_pipeline_settings.cpp new file mode 100644 index 0000000..79a2a60 --- /dev/null +++ b/src/1.4/dom/domGles_pipeline_settings.cpp @@ -0,0 +1,4946 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_pipeline_settings::create(DAE& dae) +{ + domGles_pipeline_settingsRef ref = new domGles_pipeline_settings(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_pipeline_settings" ); + meta->registerClass(domGles_pipeline_settings::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "alpha_func" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemAlpha_func) ); + mea->setElementType( domGles_pipeline_settings::domAlpha_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_func" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemBlend_func) ); + mea->setElementType( domGles_pipeline_settings::domBlend_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clear_color" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemClear_color) ); + mea->setElementType( domGles_pipeline_settings::domClear_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clear_stencil" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemClear_stencil) ); + mea->setElementType( domGles_pipeline_settings::domClear_stencil::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clear_depth" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemClear_depth) ); + mea->setElementType( domGles_pipeline_settings::domClear_depth::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clip_plane" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemClip_plane) ); + mea->setElementType( domGles_pipeline_settings::domClip_plane::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color_mask" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemColor_mask) ); + mea->setElementType( domGles_pipeline_settings::domColor_mask::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cull_face" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemCull_face) ); + mea->setElementType( domGles_pipeline_settings::domCull_face::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_func" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemDepth_func) ); + mea->setElementType( domGles_pipeline_settings::domDepth_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_mask" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemDepth_mask) ); + mea->setElementType( domGles_pipeline_settings::domDepth_mask::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_range" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemDepth_range) ); + mea->setElementType( domGles_pipeline_settings::domDepth_range::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_color" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemFog_color) ); + mea->setElementType( domGles_pipeline_settings::domFog_color::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_density" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemFog_density) ); + mea->setElementType( domGles_pipeline_settings::domFog_density::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_mode" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemFog_mode) ); + mea->setElementType( domGles_pipeline_settings::domFog_mode::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_start" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemFog_start) ); + mea->setElementType( domGles_pipeline_settings::domFog_start::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_end" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemFog_end) ); + mea->setElementType( domGles_pipeline_settings::domFog_end::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "front_face" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemFront_face) ); + mea->setElementType( domGles_pipeline_settings::domFront_face::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture_pipeline" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemTexture_pipeline) ); + mea->setElementType( domGles_pipeline_settings::domTexture_pipeline::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "logic_op" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLogic_op) ); + mea->setElementType( domGles_pipeline_settings::domLogic_op::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_ambient" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_ambient) ); + mea->setElementType( domGles_pipeline_settings::domLight_ambient::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_diffuse" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_diffuse) ); + mea->setElementType( domGles_pipeline_settings::domLight_diffuse::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_specular" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_specular) ); + mea->setElementType( domGles_pipeline_settings::domLight_specular::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_position" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_position) ); + mea->setElementType( domGles_pipeline_settings::domLight_position::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_constant_attenuation" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_constant_attenuation) ); + mea->setElementType( domGles_pipeline_settings::domLight_constant_attenuation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_linear_attenutation" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_linear_attenutation) ); + mea->setElementType( domGles_pipeline_settings::domLight_linear_attenutation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_quadratic_attenuation" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_quadratic_attenuation) ); + mea->setElementType( domGles_pipeline_settings::domLight_quadratic_attenuation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_spot_cutoff" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_spot_cutoff) ); + mea->setElementType( domGles_pipeline_settings::domLight_spot_cutoff::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_spot_direction" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_spot_direction) ); + mea->setElementType( domGles_pipeline_settings::domLight_spot_direction::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_spot_exponent" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_spot_exponent) ); + mea->setElementType( domGles_pipeline_settings::domLight_spot_exponent::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_model_ambient" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_model_ambient) ); + mea->setElementType( domGles_pipeline_settings::domLight_model_ambient::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "line_width" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLine_width) ); + mea->setElementType( domGles_pipeline_settings::domLine_width::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_ambient" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemMaterial_ambient) ); + mea->setElementType( domGles_pipeline_settings::domMaterial_ambient::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_diffuse" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemMaterial_diffuse) ); + mea->setElementType( domGles_pipeline_settings::domMaterial_diffuse::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_emission" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemMaterial_emission) ); + mea->setElementType( domGles_pipeline_settings::domMaterial_emission::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_shininess" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemMaterial_shininess) ); + mea->setElementType( domGles_pipeline_settings::domMaterial_shininess::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "material_specular" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemMaterial_specular) ); + mea->setElementType( domGles_pipeline_settings::domMaterial_specular::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "model_view_matrix" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemModel_view_matrix) ); + mea->setElementType( domGles_pipeline_settings::domModel_view_matrix::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_distance_attenuation" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPoint_distance_attenuation) ); + mea->setElementType( domGles_pipeline_settings::domPoint_distance_attenuation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_fade_threshold_size" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPoint_fade_threshold_size) ); + mea->setElementType( domGles_pipeline_settings::domPoint_fade_threshold_size::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_size" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPoint_size) ); + mea->setElementType( domGles_pipeline_settings::domPoint_size::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_size_min" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPoint_size_min) ); + mea->setElementType( domGles_pipeline_settings::domPoint_size_min::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_size_max" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPoint_size_max) ); + mea->setElementType( domGles_pipeline_settings::domPoint_size_max::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_offset" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPolygon_offset) ); + mea->setElementType( domGles_pipeline_settings::domPolygon_offset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "projection_matrix" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemProjection_matrix) ); + mea->setElementType( domGles_pipeline_settings::domProjection_matrix::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "scissor" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemScissor) ); + mea->setElementType( domGles_pipeline_settings::domScissor::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "shade_model" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemShade_model) ); + mea->setElementType( domGles_pipeline_settings::domShade_model::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_func" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemStencil_func) ); + mea->setElementType( domGles_pipeline_settings::domStencil_func::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_mask" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemStencil_mask) ); + mea->setElementType( domGles_pipeline_settings::domStencil_mask::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_op" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemStencil_op) ); + mea->setElementType( domGles_pipeline_settings::domStencil_op::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "alpha_test_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemAlpha_test_enable) ); + mea->setElementType( domGles_pipeline_settings::domAlpha_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blend_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemBlend_enable) ); + mea->setElementType( domGles_pipeline_settings::domBlend_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "clip_plane_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemClip_plane_enable) ); + mea->setElementType( domGles_pipeline_settings::domClip_plane_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color_logic_op_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemColor_logic_op_enable) ); + mea->setElementType( domGles_pipeline_settings::domColor_logic_op_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color_material_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemColor_material_enable) ); + mea->setElementType( domGles_pipeline_settings::domColor_material_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cull_face_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemCull_face_enable) ); + mea->setElementType( domGles_pipeline_settings::domCull_face_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "depth_test_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemDepth_test_enable) ); + mea->setElementType( domGles_pipeline_settings::domDepth_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "dither_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemDither_enable) ); + mea->setElementType( domGles_pipeline_settings::domDither_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fog_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemFog_enable) ); + mea->setElementType( domGles_pipeline_settings::domFog_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texture_pipeline_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemTexture_pipeline_enable) ); + mea->setElementType( domGles_pipeline_settings::domTexture_pipeline_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_enable) ); + mea->setElementType( domGles_pipeline_settings::domLight_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "lighting_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLighting_enable) ); + mea->setElementType( domGles_pipeline_settings::domLighting_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "light_model_two_side_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLight_model_two_side_enable) ); + mea->setElementType( domGles_pipeline_settings::domLight_model_two_side_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "line_smooth_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemLine_smooth_enable) ); + mea->setElementType( domGles_pipeline_settings::domLine_smooth_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "multisample_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemMultisample_enable) ); + mea->setElementType( domGles_pipeline_settings::domMultisample_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "normalize_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemNormalize_enable) ); + mea->setElementType( domGles_pipeline_settings::domNormalize_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point_smooth_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPoint_smooth_enable) ); + mea->setElementType( domGles_pipeline_settings::domPoint_smooth_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygon_offset_fill_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemPolygon_offset_fill_enable) ); + mea->setElementType( domGles_pipeline_settings::domPolygon_offset_fill_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rescale_normal_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemRescale_normal_enable) ); + mea->setElementType( domGles_pipeline_settings::domRescale_normal_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sample_alpha_to_coverage_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemSample_alpha_to_coverage_enable) ); + mea->setElementType( domGles_pipeline_settings::domSample_alpha_to_coverage_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sample_alpha_to_one_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemSample_alpha_to_one_enable) ); + mea->setElementType( domGles_pipeline_settings::domSample_alpha_to_one_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sample_coverage_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemSample_coverage_enable) ); + mea->setElementType( domGles_pipeline_settings::domSample_coverage_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "scissor_test_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemScissor_test_enable) ); + mea->setElementType( domGles_pipeline_settings::domScissor_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "stencil_test_enable" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings,elemStencil_test_enable) ); + mea->setElementType( domGles_pipeline_settings::domStencil_test_enable::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGles_pipeline_settings,_contents)); + meta->addContentsOrder(daeOffsetOf(domGles_pipeline_settings,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGles_pipeline_settings,_CMData), 1); + meta->setElementSize(sizeof(domGles_pipeline_settings)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domAlpha_func::create(DAE& dae) +{ + domGles_pipeline_settings::domAlpha_funcRef ref = new domGles_pipeline_settings::domAlpha_func(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domAlpha_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "alpha_func" ); + meta->registerClass(domGles_pipeline_settings::domAlpha_func::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "func" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domAlpha_func,elemFunc) ); + mea->setElementType( domGles_pipeline_settings::domAlpha_func::domFunc::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domAlpha_func,elemValue) ); + mea->setElementType( domGles_pipeline_settings::domAlpha_func::domValue::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGles_pipeline_settings::domAlpha_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domAlpha_func::domFunc::create(DAE& dae) +{ + domGles_pipeline_settings::domAlpha_func::domFuncRef ref = new domGles_pipeline_settings::domAlpha_func::domFunc(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domAlpha_func::domFunc::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "func" ); + meta->registerClass(domGles_pipeline_settings::domAlpha_func::domFunc::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domAlpha_func::domFunc , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domAlpha_func::domFunc , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domAlpha_func::domFunc)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domAlpha_func::domValue::create(DAE& dae) +{ + domGles_pipeline_settings::domAlpha_func::domValueRef ref = new domGles_pipeline_settings::domAlpha_func::domValue(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domAlpha_func::domValue::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "value" ); + meta->registerClass(domGles_pipeline_settings::domAlpha_func::domValue::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_alpha_value_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domAlpha_func::domValue , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domAlpha_func::domValue , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domAlpha_func::domValue)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domBlend_func::create(DAE& dae) +{ + domGles_pipeline_settings::domBlend_funcRef ref = new domGles_pipeline_settings::domBlend_func(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domBlend_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_func" ); + meta->registerClass(domGles_pipeline_settings::domBlend_func::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "src" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domBlend_func,elemSrc) ); + mea->setElementType( domGles_pipeline_settings::domBlend_func::domSrc::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "dest" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domBlend_func,elemDest) ); + mea->setElementType( domGles_pipeline_settings::domBlend_func::domDest::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGles_pipeline_settings::domBlend_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domBlend_func::domSrc::create(DAE& dae) +{ + domGles_pipeline_settings::domBlend_func::domSrcRef ref = new domGles_pipeline_settings::domBlend_func::domSrc(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domBlend_func::domSrc::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "src" ); + meta->registerClass(domGles_pipeline_settings::domBlend_func::domSrc::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domBlend_func::domSrc , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ONE"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domBlend_func::domSrc , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domBlend_func::domSrc)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domBlend_func::domDest::create(DAE& dae) +{ + domGles_pipeline_settings::domBlend_func::domDestRef ref = new domGles_pipeline_settings::domBlend_func::domDest(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domBlend_func::domDest::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dest" ); + meta->registerClass(domGles_pipeline_settings::domBlend_func::domDest::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_blend_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domBlend_func::domDest , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ZERO"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domBlend_func::domDest , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domBlend_func::domDest)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domClear_color::create(DAE& dae) +{ + domGles_pipeline_settings::domClear_colorRef ref = new domGles_pipeline_settings::domClear_color(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domClear_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clear_color" ); + meta->registerClass(domGles_pipeline_settings::domClear_color::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClear_color , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClear_color , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domClear_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domClear_stencil::create(DAE& dae) +{ + domGles_pipeline_settings::domClear_stencilRef ref = new domGles_pipeline_settings::domClear_stencil(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domClear_stencil::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clear_stencil" ); + meta->registerClass(domGles_pipeline_settings::domClear_stencil::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Int")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClear_stencil , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClear_stencil , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domClear_stencil)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domClear_depth::create(DAE& dae) +{ + domGles_pipeline_settings::domClear_depthRef ref = new domGles_pipeline_settings::domClear_depth(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domClear_depth::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clear_depth" ); + meta->registerClass(domGles_pipeline_settings::domClear_depth::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClear_depth , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClear_depth , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domClear_depth)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domClip_plane::create(DAE& dae) +{ + domGles_pipeline_settings::domClip_planeRef ref = new domGles_pipeline_settings::domClip_plane(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domClip_plane::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clip_plane" ); + meta->registerClass(domGles_pipeline_settings::domClip_plane::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClip_plane , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClip_plane , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_CLIP_PLANES_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClip_plane , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domClip_plane)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domColor_mask::create(DAE& dae) +{ + domGles_pipeline_settings::domColor_maskRef ref = new domGles_pipeline_settings::domColor_mask(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domColor_mask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_mask" ); + meta->registerClass(domGles_pipeline_settings::domColor_mask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domColor_mask , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domColor_mask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domColor_mask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domCull_face::create(DAE& dae) +{ + domGles_pipeline_settings::domCull_faceRef ref = new domGles_pipeline_settings::domCull_face(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domCull_face::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cull_face" ); + meta->registerClass(domGles_pipeline_settings::domCull_face::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_face_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domCull_face , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "BACK"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domCull_face , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domCull_face)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domDepth_func::create(DAE& dae) +{ + domGles_pipeline_settings::domDepth_funcRef ref = new domGles_pipeline_settings::domDepth_func(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domDepth_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_func" ); + meta->registerClass(domGles_pipeline_settings::domDepth_func::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_func , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_func , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domDepth_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domDepth_mask::create(DAE& dae) +{ + domGles_pipeline_settings::domDepth_maskRef ref = new domGles_pipeline_settings::domDepth_mask(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domDepth_mask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_mask" ); + meta->registerClass(domGles_pipeline_settings::domDepth_mask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_mask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_mask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domDepth_mask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domDepth_range::create(DAE& dae) +{ + domGles_pipeline_settings::domDepth_rangeRef ref = new domGles_pipeline_settings::domDepth_range(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domDepth_range::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_range" ); + meta->registerClass(domGles_pipeline_settings::domDepth_range::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_range , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_range , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domDepth_range)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domFog_color::create(DAE& dae) +{ + domGles_pipeline_settings::domFog_colorRef ref = new domGles_pipeline_settings::domFog_color(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domFog_color::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_color" ); + meta->registerClass(domGles_pipeline_settings::domFog_color::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_color , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_color , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domFog_color)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domFog_density::create(DAE& dae) +{ + domGles_pipeline_settings::domFog_densityRef ref = new domGles_pipeline_settings::domFog_density(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domFog_density::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_density" ); + meta->registerClass(domGles_pipeline_settings::domFog_density::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_density , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_density , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domFog_density)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domFog_mode::create(DAE& dae) +{ + domGles_pipeline_settings::domFog_modeRef ref = new domGles_pipeline_settings::domFog_mode(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domFog_mode::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_mode" ); + meta->registerClass(domGles_pipeline_settings::domFog_mode::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_fog_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_mode , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "EXP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_mode , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domFog_mode)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domFog_start::create(DAE& dae) +{ + domGles_pipeline_settings::domFog_startRef ref = new domGles_pipeline_settings::domFog_start(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domFog_start::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_start" ); + meta->registerClass(domGles_pipeline_settings::domFog_start::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_start , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_start , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domFog_start)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domFog_end::create(DAE& dae) +{ + domGles_pipeline_settings::domFog_endRef ref = new domGles_pipeline_settings::domFog_end(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domFog_end::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_end" ); + meta->registerClass(domGles_pipeline_settings::domFog_end::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_end , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_end , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domFog_end)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domFront_face::create(DAE& dae) +{ + domGles_pipeline_settings::domFront_faceRef ref = new domGles_pipeline_settings::domFront_face(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domFront_face::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "front_face" ); + meta->registerClass(domGles_pipeline_settings::domFront_face::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_front_face_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFront_face , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "CCW"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFront_face , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domFront_face)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domTexture_pipeline::create(DAE& dae) +{ + domGles_pipeline_settings::domTexture_pipelineRef ref = new domGles_pipeline_settings::domTexture_pipeline(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domTexture_pipeline::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture_pipeline" ); + meta->registerClass(domGles_pipeline_settings::domTexture_pipeline::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "value" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domTexture_pipeline,elemValue) ); + mea->setElementType( domGles_texture_pipeline::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domTexture_pipeline , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domTexture_pipeline)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLogic_op::create(DAE& dae) +{ + domGles_pipeline_settings::domLogic_opRef ref = new domGles_pipeline_settings::domLogic_op(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLogic_op::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "logic_op" ); + meta->registerClass(domGles_pipeline_settings::domLogic_op::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_logic_op_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLogic_op , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "COPY"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLogic_op , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLogic_op)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_ambient::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_ambientRef ref = new domGles_pipeline_settings::domLight_ambient(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_ambient::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_ambient" ); + meta->registerClass(domGles_pipeline_settings::domLight_ambient::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_ambient , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_ambient , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_ambient , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_ambient)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_diffuse::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_diffuseRef ref = new domGles_pipeline_settings::domLight_diffuse(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_diffuse::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_diffuse" ); + meta->registerClass(domGles_pipeline_settings::domLight_diffuse::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_diffuse , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_diffuse , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_diffuse , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_diffuse)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_specular::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_specularRef ref = new domGles_pipeline_settings::domLight_specular(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_specular::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_specular" ); + meta->registerClass(domGles_pipeline_settings::domLight_specular::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_specular , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_specular , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_specular , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_specular)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_position::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_positionRef ref = new domGles_pipeline_settings::domLight_position(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_position::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_position" ); + meta->registerClass(domGles_pipeline_settings::domLight_position::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_position , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 1 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_position , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_position , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_position)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_constant_attenuation::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_constant_attenuationRef ref = new domGles_pipeline_settings::domLight_constant_attenuation(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_constant_attenuation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_constant_attenuation" ); + meta->registerClass(domGles_pipeline_settings::domLight_constant_attenuation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_constant_attenuation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_constant_attenuation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_constant_attenuation , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_constant_attenuation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_linear_attenutation::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_linear_attenutationRef ref = new domGles_pipeline_settings::domLight_linear_attenutation(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_linear_attenutation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_linear_attenutation" ); + meta->registerClass(domGles_pipeline_settings::domLight_linear_attenutation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_linear_attenutation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_linear_attenutation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_linear_attenutation , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_linear_attenutation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_quadratic_attenuation::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_quadratic_attenuationRef ref = new domGles_pipeline_settings::domLight_quadratic_attenuation(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_quadratic_attenuation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_quadratic_attenuation" ); + meta->registerClass(domGles_pipeline_settings::domLight_quadratic_attenuation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_quadratic_attenuation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_quadratic_attenuation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_quadratic_attenuation , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_quadratic_attenuation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_spot_cutoff::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_spot_cutoffRef ref = new domGles_pipeline_settings::domLight_spot_cutoff(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_spot_cutoff::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_spot_cutoff" ); + meta->registerClass(domGles_pipeline_settings::domLight_spot_cutoff::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_cutoff , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "180"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_cutoff , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_cutoff , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_spot_cutoff)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_spot_direction::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_spot_directionRef ref = new domGles_pipeline_settings::domLight_spot_direction(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_spot_direction::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_spot_direction" ); + meta->registerClass(domGles_pipeline_settings::domLight_spot_direction::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_direction , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 -1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_direction , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_direction , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_spot_direction)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_spot_exponent::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_spot_exponentRef ref = new domGles_pipeline_settings::domLight_spot_exponent(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_spot_exponent::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_spot_exponent" ); + meta->registerClass(domGles_pipeline_settings::domLight_spot_exponent::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_exponent , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_exponent , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_spot_exponent , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_spot_exponent)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_model_ambient::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_model_ambientRef ref = new domGles_pipeline_settings::domLight_model_ambient(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_model_ambient::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_model_ambient" ); + meta->registerClass(domGles_pipeline_settings::domLight_model_ambient::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_model_ambient , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.2 0.2 0.2 1.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_model_ambient , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_model_ambient)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLine_width::create(DAE& dae) +{ + domGles_pipeline_settings::domLine_widthRef ref = new domGles_pipeline_settings::domLine_width(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLine_width::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "line_width" ); + meta->registerClass(domGles_pipeline_settings::domLine_width::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLine_width , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLine_width , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLine_width)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domMaterial_ambient::create(DAE& dae) +{ + domGles_pipeline_settings::domMaterial_ambientRef ref = new domGles_pipeline_settings::domMaterial_ambient(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domMaterial_ambient::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_ambient" ); + meta->registerClass(domGles_pipeline_settings::domMaterial_ambient::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_ambient , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.2 0.2 0.2 1.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_ambient , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domMaterial_ambient)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domMaterial_diffuse::create(DAE& dae) +{ + domGles_pipeline_settings::domMaterial_diffuseRef ref = new domGles_pipeline_settings::domMaterial_diffuse(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domMaterial_diffuse::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_diffuse" ); + meta->registerClass(domGles_pipeline_settings::domMaterial_diffuse::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_diffuse , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0.8 0.8 0.8 1.0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_diffuse , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domMaterial_diffuse)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domMaterial_emission::create(DAE& dae) +{ + domGles_pipeline_settings::domMaterial_emissionRef ref = new domGles_pipeline_settings::domMaterial_emission(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domMaterial_emission::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_emission" ); + meta->registerClass(domGles_pipeline_settings::domMaterial_emission::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_emission , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_emission , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domMaterial_emission)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domMaterial_shininess::create(DAE& dae) +{ + domGles_pipeline_settings::domMaterial_shininessRef ref = new domGles_pipeline_settings::domMaterial_shininess(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domMaterial_shininess::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_shininess" ); + meta->registerClass(domGles_pipeline_settings::domMaterial_shininess::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_shininess , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_shininess , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domMaterial_shininess)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domMaterial_specular::create(DAE& dae) +{ + domGles_pipeline_settings::domMaterial_specularRef ref = new domGles_pipeline_settings::domMaterial_specular(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domMaterial_specular::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material_specular" ); + meta->registerClass(domGles_pipeline_settings::domMaterial_specular::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_specular , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMaterial_specular , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domMaterial_specular)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domModel_view_matrix::create(DAE& dae) +{ + domGles_pipeline_settings::domModel_view_matrixRef ref = new domGles_pipeline_settings::domModel_view_matrix(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domModel_view_matrix::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "model_view_matrix" ); + meta->registerClass(domGles_pipeline_settings::domModel_view_matrix::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domModel_view_matrix , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domModel_view_matrix , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domModel_view_matrix)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPoint_distance_attenuation::create(DAE& dae) +{ + domGles_pipeline_settings::domPoint_distance_attenuationRef ref = new domGles_pipeline_settings::domPoint_distance_attenuation(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPoint_distance_attenuation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_distance_attenuation" ); + meta->registerClass(domGles_pipeline_settings::domPoint_distance_attenuation::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_distance_attenuation , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1 0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_distance_attenuation , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPoint_distance_attenuation)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPoint_fade_threshold_size::create(DAE& dae) +{ + domGles_pipeline_settings::domPoint_fade_threshold_sizeRef ref = new domGles_pipeline_settings::domPoint_fade_threshold_size(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPoint_fade_threshold_size::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_fade_threshold_size" ); + meta->registerClass(domGles_pipeline_settings::domPoint_fade_threshold_size::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_fade_threshold_size , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_fade_threshold_size , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPoint_fade_threshold_size)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPoint_size::create(DAE& dae) +{ + domGles_pipeline_settings::domPoint_sizeRef ref = new domGles_pipeline_settings::domPoint_size(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPoint_size::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_size" ); + meta->registerClass(domGles_pipeline_settings::domPoint_size::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_size , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_size , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPoint_size)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPoint_size_min::create(DAE& dae) +{ + domGles_pipeline_settings::domPoint_size_minRef ref = new domGles_pipeline_settings::domPoint_size_min(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPoint_size_min::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_size_min" ); + meta->registerClass(domGles_pipeline_settings::domPoint_size_min::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_size_min , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_size_min , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPoint_size_min)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPoint_size_max::create(DAE& dae) +{ + domGles_pipeline_settings::domPoint_size_maxRef ref = new domGles_pipeline_settings::domPoint_size_max(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPoint_size_max::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_size_max" ); + meta->registerClass(domGles_pipeline_settings::domPoint_size_max::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_size_max , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_size_max , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPoint_size_max)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPolygon_offset::create(DAE& dae) +{ + domGles_pipeline_settings::domPolygon_offsetRef ref = new domGles_pipeline_settings::domPolygon_offset(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPolygon_offset::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_offset" ); + meta->registerClass(domGles_pipeline_settings::domPolygon_offset::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPolygon_offset , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0 0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPolygon_offset , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPolygon_offset)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domProjection_matrix::create(DAE& dae) +{ + domGles_pipeline_settings::domProjection_matrixRef ref = new domGles_pipeline_settings::domProjection_matrix(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domProjection_matrix::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "projection_matrix" ); + meta->registerClass(domGles_pipeline_settings::domProjection_matrix::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domProjection_matrix , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domProjection_matrix , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domProjection_matrix)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domScissor::create(DAE& dae) +{ + domGles_pipeline_settings::domScissorRef ref = new domGles_pipeline_settings::domScissor(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domScissor::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "scissor" ); + meta->registerClass(domGles_pipeline_settings::domScissor::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Int4")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domScissor , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domScissor , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domScissor)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domShade_model::create(DAE& dae) +{ + domGles_pipeline_settings::domShade_modelRef ref = new domGles_pipeline_settings::domShade_model(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domShade_model::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "shade_model" ); + meta->registerClass(domGles_pipeline_settings::domShade_model::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_shade_model_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domShade_model , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "SMOOTH"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domShade_model , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domShade_model)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_func::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_funcRef ref = new domGles_pipeline_settings::domStencil_func(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_func::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_func" ); + meta->registerClass(domGles_pipeline_settings::domStencil_func::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "func" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domStencil_func,elemFunc) ); + mea->setElementType( domGles_pipeline_settings::domStencil_func::domFunc::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "ref" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domStencil_func,elemRef) ); + mea->setElementType( domGles_pipeline_settings::domStencil_func::domRef::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "mask" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domStencil_func,elemMask) ); + mea->setElementType( domGles_pipeline_settings::domStencil_func::domMask::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_func)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_func::domFunc::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_func::domFuncRef ref = new domGles_pipeline_settings::domStencil_func::domFunc(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_func::domFunc::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "func" ); + meta->registerClass(domGles_pipeline_settings::domStencil_func::domFunc::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gl_func_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_func::domFunc , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "ALWAYS"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_func::domFunc , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_func::domFunc)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_func::domRef::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_func::domRefRef ref = new domGles_pipeline_settings::domStencil_func::domRef(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_func::domRef::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "ref" ); + meta->registerClass(domGles_pipeline_settings::domStencil_func::domRef::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_func::domRef , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "0"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_func::domRef , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_func::domRef)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_func::domMask::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_func::domMaskRef ref = new domGles_pipeline_settings::domStencil_func::domMask(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_func::domMask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mask" ); + meta->registerClass(domGles_pipeline_settings::domStencil_func::domMask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_func::domMask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "255"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_func::domMask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_func::domMask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_mask::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_maskRef ref = new domGles_pipeline_settings::domStencil_mask(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_mask::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_mask" ); + meta->registerClass(domGles_pipeline_settings::domStencil_mask::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Int")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_mask , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "4294967295"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_mask , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_mask)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_op::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_opRef ref = new domGles_pipeline_settings::domStencil_op(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_op::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_op" ); + meta->registerClass(domGles_pipeline_settings::domStencil_op::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fail" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domStencil_op,elemFail) ); + mea->setElementType( domGles_pipeline_settings::domStencil_op::domFail::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "zfail" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domStencil_op,elemZfail) ); + mea->setElementType( domGles_pipeline_settings::domStencil_op::domZfail::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "zpass" ); + mea->setOffset( daeOffsetOf(domGles_pipeline_settings::domStencil_op,elemZpass) ); + mea->setElementType( domGles_pipeline_settings::domStencil_op::domZpass::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_op)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_op::domFail::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_op::domFailRef ref = new domGles_pipeline_settings::domStencil_op::domFail(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_op::domFail::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fail" ); + meta->registerClass(domGles_pipeline_settings::domStencil_op::domFail::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gles_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_op::domFail , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_op::domFail , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_op::domFail)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_op::domZfail::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_op::domZfailRef ref = new domGles_pipeline_settings::domStencil_op::domZfail(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_op::domZfail::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "zfail" ); + meta->registerClass(domGles_pipeline_settings::domStencil_op::domZfail::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gles_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_op::domZfail , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_op::domZfail , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_op::domZfail)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_op::domZpass::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_op::domZpassRef ref = new domGles_pipeline_settings::domStencil_op::domZpass(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_op::domZpass::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "zpass" ); + meta->registerClass(domGles_pipeline_settings::domStencil_op::domZpass::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Gles_stencil_op_type")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_op::domZpass , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "KEEP"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_op::domZpass , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_op::domZpass)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domAlpha_test_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domAlpha_test_enableRef ref = new domGles_pipeline_settings::domAlpha_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domAlpha_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "alpha_test_enable" ); + meta->registerClass(domGles_pipeline_settings::domAlpha_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domAlpha_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domAlpha_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domAlpha_test_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domBlend_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domBlend_enableRef ref = new domGles_pipeline_settings::domBlend_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domBlend_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blend_enable" ); + meta->registerClass(domGles_pipeline_settings::domBlend_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domBlend_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domBlend_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domBlend_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domClip_plane_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domClip_plane_enableRef ref = new domGles_pipeline_settings::domClip_plane_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domClip_plane_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "clip_plane_enable" ); + meta->registerClass(domGles_pipeline_settings::domClip_plane_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClip_plane_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClip_plane_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_CLIP_PLANES_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domClip_plane_enable , attrIndex )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domClip_plane_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domColor_logic_op_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domColor_logic_op_enableRef ref = new domGles_pipeline_settings::domColor_logic_op_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domColor_logic_op_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_logic_op_enable" ); + meta->registerClass(domGles_pipeline_settings::domColor_logic_op_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domColor_logic_op_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domColor_logic_op_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domColor_logic_op_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domColor_material_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domColor_material_enableRef ref = new domGles_pipeline_settings::domColor_material_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domColor_material_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_material_enable" ); + meta->registerClass(domGles_pipeline_settings::domColor_material_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domColor_material_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "true"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domColor_material_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domColor_material_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domCull_face_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domCull_face_enableRef ref = new domGles_pipeline_settings::domCull_face_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domCull_face_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "cull_face_enable" ); + meta->registerClass(domGles_pipeline_settings::domCull_face_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domCull_face_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domCull_face_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domCull_face_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domDepth_test_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domDepth_test_enableRef ref = new domGles_pipeline_settings::domDepth_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domDepth_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_test_enable" ); + meta->registerClass(domGles_pipeline_settings::domDepth_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDepth_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domDepth_test_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domDither_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domDither_enableRef ref = new domGles_pipeline_settings::domDither_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domDither_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dither_enable" ); + meta->registerClass(domGles_pipeline_settings::domDither_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDither_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domDither_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domDither_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domFog_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domFog_enableRef ref = new domGles_pipeline_settings::domFog_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domFog_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "fog_enable" ); + meta->registerClass(domGles_pipeline_settings::domFog_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domFog_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domFog_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domTexture_pipeline_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domTexture_pipeline_enableRef ref = new domGles_pipeline_settings::domTexture_pipeline_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domTexture_pipeline_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texture_pipeline_enable" ); + meta->registerClass(domGles_pipeline_settings::domTexture_pipeline_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domTexture_pipeline_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domTexture_pipeline_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domTexture_pipeline_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_enableRef ref = new domGles_pipeline_settings::domLight_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_enable" ); + meta->registerClass(domGles_pipeline_settings::domLight_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: index + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "index" ); + ma->setType( dae.getAtomicTypes().get("GLES_MAX_LIGHTS_index")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_enable , attrIndex )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLighting_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domLighting_enableRef ref = new domGles_pipeline_settings::domLighting_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLighting_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "lighting_enable" ); + meta->registerClass(domGles_pipeline_settings::domLighting_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLighting_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLighting_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLighting_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLight_model_two_side_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domLight_model_two_side_enableRef ref = new domGles_pipeline_settings::domLight_model_two_side_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLight_model_two_side_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light_model_two_side_enable" ); + meta->registerClass(domGles_pipeline_settings::domLight_model_two_side_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_model_two_side_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLight_model_two_side_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLight_model_two_side_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domLine_smooth_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domLine_smooth_enableRef ref = new domGles_pipeline_settings::domLine_smooth_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domLine_smooth_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "line_smooth_enable" ); + meta->registerClass(domGles_pipeline_settings::domLine_smooth_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLine_smooth_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domLine_smooth_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domLine_smooth_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domMultisample_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domMultisample_enableRef ref = new domGles_pipeline_settings::domMultisample_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domMultisample_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "multisample_enable" ); + meta->registerClass(domGles_pipeline_settings::domMultisample_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMultisample_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domMultisample_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domMultisample_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domNormalize_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domNormalize_enableRef ref = new domGles_pipeline_settings::domNormalize_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domNormalize_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "normalize_enable" ); + meta->registerClass(domGles_pipeline_settings::domNormalize_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domNormalize_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domNormalize_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domNormalize_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPoint_smooth_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domPoint_smooth_enableRef ref = new domGles_pipeline_settings::domPoint_smooth_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPoint_smooth_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point_smooth_enable" ); + meta->registerClass(domGles_pipeline_settings::domPoint_smooth_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_smooth_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPoint_smooth_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPoint_smooth_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domPolygon_offset_fill_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domPolygon_offset_fill_enableRef ref = new domGles_pipeline_settings::domPolygon_offset_fill_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domPolygon_offset_fill_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygon_offset_fill_enable" ); + meta->registerClass(domGles_pipeline_settings::domPolygon_offset_fill_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPolygon_offset_fill_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domPolygon_offset_fill_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domPolygon_offset_fill_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domRescale_normal_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domRescale_normal_enableRef ref = new domGles_pipeline_settings::domRescale_normal_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domRescale_normal_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "rescale_normal_enable" ); + meta->registerClass(domGles_pipeline_settings::domRescale_normal_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domRescale_normal_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domRescale_normal_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domRescale_normal_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domSample_alpha_to_coverage_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domSample_alpha_to_coverage_enableRef ref = new domGles_pipeline_settings::domSample_alpha_to_coverage_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domSample_alpha_to_coverage_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sample_alpha_to_coverage_enable" ); + meta->registerClass(domGles_pipeline_settings::domSample_alpha_to_coverage_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domSample_alpha_to_coverage_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domSample_alpha_to_coverage_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domSample_alpha_to_coverage_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domSample_alpha_to_one_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domSample_alpha_to_one_enableRef ref = new domGles_pipeline_settings::domSample_alpha_to_one_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domSample_alpha_to_one_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sample_alpha_to_one_enable" ); + meta->registerClass(domGles_pipeline_settings::domSample_alpha_to_one_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domSample_alpha_to_one_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domSample_alpha_to_one_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domSample_alpha_to_one_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domSample_coverage_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domSample_coverage_enableRef ref = new domGles_pipeline_settings::domSample_coverage_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domSample_coverage_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sample_coverage_enable" ); + meta->registerClass(domGles_pipeline_settings::domSample_coverage_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domSample_coverage_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domSample_coverage_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domSample_coverage_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domScissor_test_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domScissor_test_enableRef ref = new domGles_pipeline_settings::domScissor_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domScissor_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "scissor_test_enable" ); + meta->registerClass(domGles_pipeline_settings::domScissor_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domScissor_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domScissor_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domScissor_test_enable)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_pipeline_settings::domStencil_test_enable::create(DAE& dae) +{ + domGles_pipeline_settings::domStencil_test_enableRef ref = new domGles_pipeline_settings::domStencil_test_enable(dae); + return ref; +} + + +daeMetaElement * +domGles_pipeline_settings::domStencil_test_enable::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_test_enable" ); + meta->registerClass(domGles_pipeline_settings::domStencil_test_enable::create); + + meta->setIsInnerClass( true ); + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_test_enable , attrValue )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_pipeline_settings::domStencil_test_enable , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_pipeline_settings::domStencil_test_enable)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_sampler_state.cpp b/src/1.4/dom/domGles_sampler_state.cpp new file mode 100644 index 0000000..565ddd7 --- /dev/null +++ b/src/1.4/dom/domGles_sampler_state.cpp @@ -0,0 +1,366 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_sampler_state::create(DAE& dae) +{ + domGles_sampler_stateRef ref = new domGles_sampler_state(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_sampler_state" ); + meta->registerClass(domGles_sampler_state::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "wrap_s" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemWrap_s) ); + mea->setElementType( domGles_sampler_state::domWrap_s::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "wrap_t" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemWrap_t) ); + mea->setElementType( domGles_sampler_state::domWrap_t::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "minfilter" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemMinfilter) ); + mea->setElementType( domGles_sampler_state::domMinfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "magfilter" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemMagfilter) ); + mea->setElementType( domGles_sampler_state::domMagfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mipfilter" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemMipfilter) ); + mea->setElementType( domGles_sampler_state::domMipfilter::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipmap_maxlevel" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemMipmap_maxlevel) ); + mea->setElementType( domGles_sampler_state::domMipmap_maxlevel::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "mipmap_bias" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemMipmap_bias) ); + mea->setElementType( domGles_sampler_state::domMipmap_bias::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 7, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGles_sampler_state,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 7 ); + meta->setCMRoot( cm ); + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_sampler_state , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_sampler_state::domWrap_s::create(DAE& dae) +{ + domGles_sampler_state::domWrap_sRef ref = new domGles_sampler_state::domWrap_s(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::domWrap_s::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_s" ); + meta->registerClass(domGles_sampler_state::domWrap_s::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gles_sampler_wrap")); + ma->setOffset( daeOffsetOf( domGles_sampler_state::domWrap_s , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state::domWrap_s)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_sampler_state::domWrap_t::create(DAE& dae) +{ + domGles_sampler_state::domWrap_tRef ref = new domGles_sampler_state::domWrap_t(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::domWrap_t::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "wrap_t" ); + meta->registerClass(domGles_sampler_state::domWrap_t::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gles_sampler_wrap")); + ma->setOffset( daeOffsetOf( domGles_sampler_state::domWrap_t , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state::domWrap_t)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_sampler_state::domMinfilter::create(DAE& dae) +{ + domGles_sampler_state::domMinfilterRef ref = new domGles_sampler_state::domMinfilter(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::domMinfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "minfilter" ); + meta->registerClass(domGles_sampler_state::domMinfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domGles_sampler_state::domMinfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state::domMinfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_sampler_state::domMagfilter::create(DAE& dae) +{ + domGles_sampler_state::domMagfilterRef ref = new domGles_sampler_state::domMagfilter(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::domMagfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "magfilter" ); + meta->registerClass(domGles_sampler_state::domMagfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domGles_sampler_state::domMagfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state::domMagfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_sampler_state::domMipfilter::create(DAE& dae) +{ + domGles_sampler_state::domMipfilterRef ref = new domGles_sampler_state::domMipfilter(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::domMipfilter::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipfilter" ); + meta->registerClass(domGles_sampler_state::domMipfilter::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_sampler_filter_common")); + ma->setOffset( daeOffsetOf( domGles_sampler_state::domMipfilter , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state::domMipfilter)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_sampler_state::domMipmap_maxlevel::create(DAE& dae) +{ + domGles_sampler_state::domMipmap_maxlevelRef ref = new domGles_sampler_state::domMipmap_maxlevel(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::domMipmap_maxlevel::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_maxlevel" ); + meta->registerClass(domGles_sampler_state::domMipmap_maxlevel::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsUnsignedByte")); + ma->setOffset( daeOffsetOf( domGles_sampler_state::domMipmap_maxlevel , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state::domMipmap_maxlevel)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_sampler_state::domMipmap_bias::create(DAE& dae) +{ + domGles_sampler_state::domMipmap_biasRef ref = new domGles_sampler_state::domMipmap_bias(dae); + return ref; +} + + +daeMetaElement * +domGles_sampler_state::domMipmap_bias::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mipmap_bias" ); + meta->registerClass(domGles_sampler_state::domMipmap_bias::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domGles_sampler_state::domMipmap_bias , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_sampler_state::domMipmap_bias)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texcombiner_argumentAlpha_type.cpp b/src/1.4/dom/domGles_texcombiner_argumentAlpha_type.cpp new file mode 100644 index 0000000..b45298c --- /dev/null +++ b/src/1.4/dom/domGles_texcombiner_argumentAlpha_type.cpp @@ -0,0 +1,84 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texcombiner_argumentAlpha_type::create(DAE& dae) +{ + domGles_texcombiner_argumentAlpha_typeRef ref = new domGles_texcombiner_argumentAlpha_type(dae); + return ref; +} + + +daeMetaElement * +domGles_texcombiner_argumentAlpha_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texcombiner_argumentAlpha_type" ); + meta->registerClass(domGles_texcombiner_argumentAlpha_type::create); + + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("Gles_texcombiner_source_enums")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_argumentAlpha_type , attrSource )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: operand + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "operand" ); + ma->setType( dae.getAtomicTypes().get("Gles_texcombiner_operandAlpha_enums")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_argumentAlpha_type , attrOperand )); + ma->setContainer( meta ); + ma->setDefaultString( "SRC_ALPHA"); + + meta->appendAttribute(ma); + } + + // Add attribute: unit + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "unit" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_argumentAlpha_type , attrUnit )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texcombiner_argumentAlpha_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texcombiner_argumentRGB_type.cpp b/src/1.4/dom/domGles_texcombiner_argumentRGB_type.cpp new file mode 100644 index 0000000..f96fe91 --- /dev/null +++ b/src/1.4/dom/domGles_texcombiner_argumentRGB_type.cpp @@ -0,0 +1,84 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texcombiner_argumentRGB_type::create(DAE& dae) +{ + domGles_texcombiner_argumentRGB_typeRef ref = new domGles_texcombiner_argumentRGB_type(dae); + return ref; +} + + +daeMetaElement * +domGles_texcombiner_argumentRGB_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texcombiner_argumentRGB_type" ); + meta->registerClass(domGles_texcombiner_argumentRGB_type::create); + + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("Gles_texcombiner_source_enums")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_argumentRGB_type , attrSource )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: operand + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "operand" ); + ma->setType( dae.getAtomicTypes().get("Gles_texcombiner_operandRGB_enums")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_argumentRGB_type , attrOperand )); + ma->setContainer( meta ); + ma->setDefaultString( "SRC_COLOR"); + + meta->appendAttribute(ma); + } + + // Add attribute: unit + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "unit" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_argumentRGB_type , attrUnit )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texcombiner_argumentRGB_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texcombiner_commandAlpha_type.cpp b/src/1.4/dom/domGles_texcombiner_commandAlpha_type.cpp new file mode 100644 index 0000000..9a6ef19 --- /dev/null +++ b/src/1.4/dom/domGles_texcombiner_commandAlpha_type.cpp @@ -0,0 +1,84 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texcombiner_commandAlpha_type::create(DAE& dae) +{ + domGles_texcombiner_commandAlpha_typeRef ref = new domGles_texcombiner_commandAlpha_type(dae); + return ref; +} + + +daeMetaElement * +domGles_texcombiner_commandAlpha_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texcombiner_commandAlpha_type" ); + meta->registerClass(domGles_texcombiner_commandAlpha_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 3 ); + mea->setName( "argument" ); + mea->setOffset( daeOffsetOf(domGles_texcombiner_commandAlpha_type,elemArgument_array) ); + mea->setElementType( domGles_texcombiner_argumentAlpha_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: operator + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "operator" ); + ma->setType( dae.getAtomicTypes().get("Gles_texcombiner_operatorAlpha_enums")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_commandAlpha_type , attrOperator )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: scale + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "scale" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_commandAlpha_type , attrScale )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texcombiner_commandAlpha_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texcombiner_commandRGB_type.cpp b/src/1.4/dom/domGles_texcombiner_commandRGB_type.cpp new file mode 100644 index 0000000..8519af9 --- /dev/null +++ b/src/1.4/dom/domGles_texcombiner_commandRGB_type.cpp @@ -0,0 +1,84 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texcombiner_commandRGB_type::create(DAE& dae) +{ + domGles_texcombiner_commandRGB_typeRef ref = new domGles_texcombiner_commandRGB_type(dae); + return ref; +} + + +daeMetaElement * +domGles_texcombiner_commandRGB_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texcombiner_commandRGB_type" ); + meta->registerClass(domGles_texcombiner_commandRGB_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 3 ); + mea->setName( "argument" ); + mea->setOffset( daeOffsetOf(domGles_texcombiner_commandRGB_type,elemArgument_array) ); + mea->setElementType( domGles_texcombiner_argumentRGB_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: operator + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "operator" ); + ma->setType( dae.getAtomicTypes().get("Gles_texcombiner_operatorRGB_enums")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_commandRGB_type , attrOperator )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: scale + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "scale" ); + ma->setType( dae.getAtomicTypes().get("xsFloat")); + ma->setOffset( daeOffsetOf( domGles_texcombiner_commandRGB_type , attrScale )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texcombiner_commandRGB_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texcombiner_command_type.cpp b/src/1.4/dom/domGles_texcombiner_command_type.cpp new file mode 100644 index 0000000..c984ac0 --- /dev/null +++ b/src/1.4/dom/domGles_texcombiner_command_type.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texcombiner_command_type::create(DAE& dae) +{ + domGles_texcombiner_command_typeRef ref = new domGles_texcombiner_command_type(dae); + return ref; +} + + +daeMetaElement * +domGles_texcombiner_command_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texcombiner_command_type" ); + meta->registerClass(domGles_texcombiner_command_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "constant" ); + mea->setOffset( daeOffsetOf(domGles_texcombiner_command_type,elemConstant) ); + mea->setElementType( domGles_texture_constant_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "RGB" ); + mea->setOffset( daeOffsetOf(domGles_texcombiner_command_type,elemRGB) ); + mea->setElementType( domGles_texcombiner_commandRGB_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "alpha" ); + mea->setOffset( daeOffsetOf(domGles_texcombiner_command_type,elemAlpha) ); + mea->setElementType( domGles_texcombiner_commandAlpha_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domGles_texcombiner_command_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texenv_command_type.cpp b/src/1.4/dom/domGles_texenv_command_type.cpp new file mode 100644 index 0000000..7737bd2 --- /dev/null +++ b/src/1.4/dom/domGles_texenv_command_type.cpp @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texenv_command_type::create(DAE& dae) +{ + domGles_texenv_command_typeRef ref = new domGles_texenv_command_type(dae); + return ref; +} + + +daeMetaElement * +domGles_texenv_command_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texenv_command_type" ); + meta->registerClass(domGles_texenv_command_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "constant" ); + mea->setOffset( daeOffsetOf(domGles_texenv_command_type,elemConstant) ); + mea->setElementType( domGles_texture_constant_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: operator + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "operator" ); + ma->setType( dae.getAtomicTypes().get("Gles_texenv_mode_enums")); + ma->setOffset( daeOffsetOf( domGles_texenv_command_type , attrOperator )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: unit + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "unit" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texenv_command_type , attrUnit )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texenv_command_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texture_constant_type.cpp b/src/1.4/dom/domGles_texture_constant_type.cpp new file mode 100644 index 0000000..408bafe --- /dev/null +++ b/src/1.4/dom/domGles_texture_constant_type.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texture_constant_type::create(DAE& dae) +{ + domGles_texture_constant_typeRef ref = new domGles_texture_constant_type(dae); + return ref; +} + + +daeMetaElement * +domGles_texture_constant_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texture_constant_type" ); + meta->registerClass(domGles_texture_constant_type::create); + + + // Add attribute: value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domGles_texture_constant_type , attrValue )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: param + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "param" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texture_constant_type , attrParam )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texture_constant_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texture_pipeline.cpp b/src/1.4/dom/domGles_texture_pipeline.cpp new file mode 100644 index 0000000..728f449 --- /dev/null +++ b/src/1.4/dom/domGles_texture_pipeline.cpp @@ -0,0 +1,88 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texture_pipeline::create(DAE& dae) +{ + domGles_texture_pipelineRef ref = new domGles_texture_pipeline(dae); + return ref; +} + + +daeMetaElement * +domGles_texture_pipeline::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texture_pipeline" ); + meta->registerClass(domGles_texture_pipeline::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texcombiner" ); + mea->setOffset( daeOffsetOf(domGles_texture_pipeline,elemTexcombiner_array) ); + mea->setElementType( domGles_texcombiner_command_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "texenv" ); + mea->setOffset( daeOffsetOf(domGles_texture_pipeline,elemTexenv_array) ); + mea->setElementType( domGles_texenv_command_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGles_texture_pipeline,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGles_texture_pipeline,_contents)); + meta->addContentsOrder(daeOffsetOf(domGles_texture_pipeline,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGles_texture_pipeline,_CMData), 1); + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texture_pipeline , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texture_pipeline)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGles_texture_unit.cpp b/src/1.4/dom/domGles_texture_unit.cpp new file mode 100644 index 0000000..510b9cb --- /dev/null +++ b/src/1.4/dom/domGles_texture_unit.cpp @@ -0,0 +1,200 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGles_texture_unit::create(DAE& dae) +{ + domGles_texture_unitRef ref = new domGles_texture_unit(dae); + return ref; +} + + +daeMetaElement * +domGles_texture_unit::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "gles_texture_unit" ); + meta->registerClass(domGles_texture_unit::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "surface" ); + mea->setOffset( daeOffsetOf(domGles_texture_unit,elemSurface) ); + mea->setElementType( domGles_texture_unit::domSurface::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "sampler_state" ); + mea->setOffset( daeOffsetOf(domGles_texture_unit,elemSampler_state) ); + mea->setElementType( domGles_texture_unit::domSampler_state::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "texcoord" ); + mea->setOffset( daeOffsetOf(domGles_texture_unit,elemTexcoord) ); + mea->setElementType( domGles_texture_unit::domTexcoord::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGles_texture_unit,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texture_unit , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texture_unit)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_texture_unit::domSurface::create(DAE& dae) +{ + domGles_texture_unit::domSurfaceRef ref = new domGles_texture_unit::domSurface(dae); + return ref; +} + + +daeMetaElement * +domGles_texture_unit::domSurface::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "surface" ); + meta->registerClass(domGles_texture_unit::domSurface::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texture_unit::domSurface , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texture_unit::domSurface)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_texture_unit::domSampler_state::create(DAE& dae) +{ + domGles_texture_unit::domSampler_stateRef ref = new domGles_texture_unit::domSampler_state(dae); + return ref; +} + + +daeMetaElement * +domGles_texture_unit::domSampler_state::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sampler_state" ); + meta->registerClass(domGles_texture_unit::domSampler_state::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texture_unit::domSampler_state , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texture_unit::domSampler_state)); + meta->validate(); + + return meta; +} + +daeElementRef +domGles_texture_unit::domTexcoord::create(DAE& dae) +{ + domGles_texture_unit::domTexcoordRef ref = new domGles_texture_unit::domTexcoord(dae); + return ref; +} + + +daeMetaElement * +domGles_texture_unit::domTexcoord::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "texcoord" ); + meta->registerClass(domGles_texture_unit::domTexcoord::create); + + meta->setIsInnerClass( true ); + + // Add attribute: semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGles_texture_unit::domTexcoord , attrSemantic )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGles_texture_unit::domTexcoord)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGlsl_newarray_type.cpp b/src/1.4/dom/domGlsl_newarray_type.cpp new file mode 100644 index 0000000..4e0a0fc --- /dev/null +++ b/src/1.4/dom/domGlsl_newarray_type.cpp @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGlsl_newarray_type::create(DAE& dae) +{ + domGlsl_newarray_typeRef ref = new domGlsl_newarray_type(dae); + return ref; +} + + +daeMetaElement * +domGlsl_newarray_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "glsl_newarray_type" ); + meta->registerClass(domGlsl_newarray_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "glsl_param_type" ); + mea->setOffset( daeOffsetOf(domGlsl_newarray_type,elemGlsl_param_type_array) ); + mea->setElementType( domGlsl_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domGlsl_newarray_type,elemArray_array) ); + mea->setElementType( domGlsl_newarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGlsl_newarray_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domGlsl_newarray_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGlsl_newarray_type,_CMData), 1); + // Add attribute: length + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "length" ); + ma->setType( dae.getAtomicTypes().get("xsPositiveInteger")); + ma->setOffset( daeOffsetOf( domGlsl_newarray_type , attrLength )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_newarray_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGlsl_newparam.cpp b/src/1.4/dom/domGlsl_newparam.cpp new file mode 100644 index 0000000..abd152c --- /dev/null +++ b/src/1.4/dom/domGlsl_newparam.cpp @@ -0,0 +1,179 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGlsl_newparam::create(DAE& dae) +{ + domGlsl_newparamRef ref = new domGlsl_newparam(dae); + return ref; +} + + +daeMetaElement * +domGlsl_newparam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "glsl_newparam" ); + meta->registerClass(domGlsl_newparam::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domGlsl_newparam,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "semantic" ); + mea->setOffset( daeOffsetOf(domGlsl_newparam,elemSemantic) ); + mea->setElementType( domGlsl_newparam::domSemantic::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "modifier" ); + mea->setOffset( daeOffsetOf(domGlsl_newparam,elemModifier) ); + mea->setElementType( domGlsl_newparam::domModifier::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 3, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "glsl_param_type" ); + mea->setOffset( daeOffsetOf(domGlsl_newparam,elemGlsl_param_type) ); + mea->setElementType( domGlsl_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domGlsl_newparam,elemArray) ); + mea->setElementType( domGlsl_newarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGlsl_newparam,_contents)); + meta->addContentsOrder(daeOffsetOf(domGlsl_newparam,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGlsl_newparam,_CMData), 1); + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("Glsl_identifier")); + ma->setOffset( daeOffsetOf( domGlsl_newparam , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_newparam)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_newparam::domSemantic::create(DAE& dae) +{ + domGlsl_newparam::domSemanticRef ref = new domGlsl_newparam::domSemantic(dae); + return ref; +} + + +daeMetaElement * +domGlsl_newparam::domSemantic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "semantic" ); + meta->registerClass(domGlsl_newparam::domSemantic::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGlsl_newparam::domSemantic , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_newparam::domSemantic)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_newparam::domModifier::create(DAE& dae) +{ + domGlsl_newparam::domModifierRef ref = new domGlsl_newparam::domModifier(dae); + return ref; +} + + +daeMetaElement * +domGlsl_newparam::domModifier::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "modifier" ); + meta->registerClass(domGlsl_newparam::domModifier::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_modifier_enum_common")); + ma->setOffset( daeOffsetOf( domGlsl_newparam::domModifier , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_newparam::domModifier)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGlsl_param_type.cpp b/src/1.4/dom/domGlsl_param_type.cpp new file mode 100644 index 0000000..be249ad --- /dev/null +++ b/src/1.4/dom/domGlsl_param_type.cpp @@ -0,0 +1,774 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGlsl_param_type::create(DAE& dae) +{ + domGlsl_param_typeRef ref = new domGlsl_param_type(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "glsl_param_type" ); + meta->registerClass(domGlsl_param_type::create); + + meta->setIsTransparent( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemBool) ); + mea->setElementType( domGlsl_param_type::domBool::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool2" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemBool2) ); + mea->setElementType( domGlsl_param_type::domBool2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool3" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemBool3) ); + mea->setElementType( domGlsl_param_type::domBool3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool4" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemBool4) ); + mea->setElementType( domGlsl_param_type::domBool4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemFloat) ); + mea->setElementType( domGlsl_param_type::domFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemFloat2) ); + mea->setElementType( domGlsl_param_type::domFloat2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemFloat3) ); + mea->setElementType( domGlsl_param_type::domFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemFloat4) ); + mea->setElementType( domGlsl_param_type::domFloat4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float2x2" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemFloat2x2) ); + mea->setElementType( domGlsl_param_type::domFloat2x2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float3x3" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemFloat3x3) ); + mea->setElementType( domGlsl_param_type::domFloat3x3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float4x4" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemFloat4x4) ); + mea->setElementType( domGlsl_param_type::domFloat4x4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemInt) ); + mea->setElementType( domGlsl_param_type::domInt::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int2" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemInt2) ); + mea->setElementType( domGlsl_param_type::domInt2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int3" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemInt3) ); + mea->setElementType( domGlsl_param_type::domInt3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int4" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemInt4) ); + mea->setElementType( domGlsl_param_type::domInt4::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "surface" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemSurface) ); + mea->setElementType( domGlsl_surface_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler1D" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemSampler1D) ); + mea->setElementType( domGl_sampler1D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler2D" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemSampler2D) ); + mea->setElementType( domGl_sampler2D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sampler3D" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemSampler3D) ); + mea->setElementType( domGl_sampler3D::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerCUBE" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemSamplerCUBE) ); + mea->setElementType( domGl_samplerCUBE::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerRECT" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemSamplerRECT) ); + mea->setElementType( domGl_samplerRECT::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "samplerDEPTH" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemSamplerDEPTH) ); + mea->setElementType( domGl_samplerDEPTH::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "enum" ); + mea->setOffset( daeOffsetOf(domGlsl_param_type,elemEnum) ); + mea->setElementType( domGlsl_param_type::domEnum::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGlsl_param_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domGlsl_param_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGlsl_param_type,_CMData), 1); + meta->setElementSize(sizeof(domGlsl_param_type)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domBool::create(DAE& dae) +{ + domGlsl_param_type::domBoolRef ref = new domGlsl_param_type::domBool(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domBool::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool" ); + meta->registerClass(domGlsl_param_type::domBool::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_bool")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domBool , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domBool)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domBool2::create(DAE& dae) +{ + domGlsl_param_type::domBool2Ref ref = new domGlsl_param_type::domBool2(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domBool2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool2" ); + meta->registerClass(domGlsl_param_type::domBool2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_bool2")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domBool2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domBool2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domBool3::create(DAE& dae) +{ + domGlsl_param_type::domBool3Ref ref = new domGlsl_param_type::domBool3(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domBool3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool3" ); + meta->registerClass(domGlsl_param_type::domBool3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_bool3")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domBool3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domBool3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domBool4::create(DAE& dae) +{ + domGlsl_param_type::domBool4Ref ref = new domGlsl_param_type::domBool4(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domBool4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bool4" ); + meta->registerClass(domGlsl_param_type::domBool4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_bool4")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domBool4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domBool4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domFloat::create(DAE& dae) +{ + domGlsl_param_type::domFloatRef ref = new domGlsl_param_type::domFloat(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float" ); + meta->registerClass(domGlsl_param_type::domFloat::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_float")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domFloat)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domFloat2::create(DAE& dae) +{ + domGlsl_param_type::domFloat2Ref ref = new domGlsl_param_type::domFloat2(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domFloat2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2" ); + meta->registerClass(domGlsl_param_type::domFloat2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_float2")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domFloat2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domFloat2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domFloat3::create(DAE& dae) +{ + domGlsl_param_type::domFloat3Ref ref = new domGlsl_param_type::domFloat3(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domFloat3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3" ); + meta->registerClass(domGlsl_param_type::domFloat3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_float3")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domFloat3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domFloat3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domFloat4::create(DAE& dae) +{ + domGlsl_param_type::domFloat4Ref ref = new domGlsl_param_type::domFloat4(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domFloat4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4" ); + meta->registerClass(domGlsl_param_type::domFloat4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_float4")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domFloat4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domFloat4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domFloat2x2::create(DAE& dae) +{ + domGlsl_param_type::domFloat2x2Ref ref = new domGlsl_param_type::domFloat2x2(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domFloat2x2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float2x2" ); + meta->registerClass(domGlsl_param_type::domFloat2x2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_float2x2")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domFloat2x2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domFloat2x2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domFloat3x3::create(DAE& dae) +{ + domGlsl_param_type::domFloat3x3Ref ref = new domGlsl_param_type::domFloat3x3(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domFloat3x3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float3x3" ); + meta->registerClass(domGlsl_param_type::domFloat3x3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_float3x3")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domFloat3x3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domFloat3x3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domFloat4x4::create(DAE& dae) +{ + domGlsl_param_type::domFloat4x4Ref ref = new domGlsl_param_type::domFloat4x4(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domFloat4x4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "float4x4" ); + meta->registerClass(domGlsl_param_type::domFloat4x4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_float4x4")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domFloat4x4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domFloat4x4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domInt::create(DAE& dae) +{ + domGlsl_param_type::domIntRef ref = new domGlsl_param_type::domInt(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domInt::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int" ); + meta->registerClass(domGlsl_param_type::domInt::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_int")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domInt , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domInt)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domInt2::create(DAE& dae) +{ + domGlsl_param_type::domInt2Ref ref = new domGlsl_param_type::domInt2(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domInt2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int2" ); + meta->registerClass(domGlsl_param_type::domInt2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_int2")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domInt2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domInt2)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domInt3::create(DAE& dae) +{ + domGlsl_param_type::domInt3Ref ref = new domGlsl_param_type::domInt3(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domInt3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int3" ); + meta->registerClass(domGlsl_param_type::domInt3::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_int3")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domInt3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domInt3)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domInt4::create(DAE& dae) +{ + domGlsl_param_type::domInt4Ref ref = new domGlsl_param_type::domInt4(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domInt4::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int4" ); + meta->registerClass(domGlsl_param_type::domInt4::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Glsl_int4")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domInt4 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domInt4)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_param_type::domEnum::create(DAE& dae) +{ + domGlsl_param_type::domEnumRef ref = new domGlsl_param_type::domEnum(dae); + return ref; +} + + +daeMetaElement * +domGlsl_param_type::domEnum::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "enum" ); + meta->registerClass(domGlsl_param_type::domEnum::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gl_enumeration")); + ma->setOffset( daeOffsetOf( domGlsl_param_type::domEnum , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_param_type::domEnum)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGlsl_setarray_type.cpp b/src/1.4/dom/domGlsl_setarray_type.cpp new file mode 100644 index 0000000..54f4f38 --- /dev/null +++ b/src/1.4/dom/domGlsl_setarray_type.cpp @@ -0,0 +1,83 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGlsl_setarray_type::create(DAE& dae) +{ + domGlsl_setarray_typeRef ref = new domGlsl_setarray_type(dae); + return ref; +} + + +daeMetaElement * +domGlsl_setarray_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "glsl_setarray_type" ); + meta->registerClass(domGlsl_setarray_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "glsl_param_type" ); + mea->setOffset( daeOffsetOf(domGlsl_setarray_type,elemGlsl_param_type_array) ); + mea->setElementType( domGlsl_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domGlsl_setarray_type,elemArray_array) ); + mea->setElementType( domGlsl_setarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGlsl_setarray_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domGlsl_setarray_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGlsl_setarray_type,_CMData), 1); + // Add attribute: length + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "length" ); + ma->setType( dae.getAtomicTypes().get("xsPositiveInteger")); + ma->setOffset( daeOffsetOf( domGlsl_setarray_type , attrLength )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_setarray_type)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGlsl_setparam.cpp b/src/1.4/dom/domGlsl_setparam.cpp new file mode 100644 index 0000000..03093fc --- /dev/null +++ b/src/1.4/dom/domGlsl_setparam.cpp @@ -0,0 +1,106 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGlsl_setparam::create(DAE& dae) +{ + domGlsl_setparamRef ref = new domGlsl_setparam(dae); + return ref; +} + + +daeMetaElement * +domGlsl_setparam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "glsl_setparam" ); + meta->registerClass(domGlsl_setparam::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domGlsl_setparam,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "glsl_param_type" ); + mea->setOffset( daeOffsetOf(domGlsl_setparam,elemGlsl_param_type) ); + mea->setElementType( domGlsl_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "array" ); + mea->setOffset( daeOffsetOf(domGlsl_setparam,elemArray) ); + mea->setElementType( domGlsl_setarray_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGlsl_setparam,_contents)); + meta->addContentsOrder(daeOffsetOf(domGlsl_setparam,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGlsl_setparam,_CMData), 1); + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("Glsl_identifier")); + ma->setOffset( daeOffsetOf( domGlsl_setparam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: program + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "program" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGlsl_setparam , attrProgram )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_setparam)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGlsl_setparam_simple.cpp b/src/1.4/dom/domGlsl_setparam_simple.cpp new file mode 100644 index 0000000..f55bf6c --- /dev/null +++ b/src/1.4/dom/domGlsl_setparam_simple.cpp @@ -0,0 +1,79 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGlsl_setparam_simple::create(DAE& dae) +{ + domGlsl_setparam_simpleRef ref = new domGlsl_setparam_simple(dae); + return ref; +} + + +daeMetaElement * +domGlsl_setparam_simple::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "glsl_setparam_simple" ); + meta->registerClass(domGlsl_setparam_simple::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domGlsl_setparam_simple,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "glsl_param_type" ); + mea->setOffset( daeOffsetOf(domGlsl_setparam_simple,elemGlsl_param_type) ); + mea->setElementType( domGlsl_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 1, 1, 1 ) ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("Glsl_identifier")); + ma->setOffset( daeOffsetOf( domGlsl_setparam_simple , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_setparam_simple)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domGlsl_surface_type.cpp b/src/1.4/dom/domGlsl_surface_type.cpp new file mode 100644 index 0000000..23f24e9 --- /dev/null +++ b/src/1.4/dom/domGlsl_surface_type.cpp @@ -0,0 +1,264 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domGlsl_surface_type::create(DAE& dae) +{ + domGlsl_surface_typeRef ref = new domGlsl_surface_type(dae); + return ref; +} + + +daeMetaElement * +domGlsl_surface_type::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "glsl_surface_type" ); + meta->registerClass(domGlsl_surface_type::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "fx_surface_init_common" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemFx_surface_init_common) ); + mea->setElementType( domFx_surface_init_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 0, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "format" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemFormat) ); + mea->setElementType( domFormat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "format_hint" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemFormat_hint) ); + mea->setElementType( domFx_surface_format_hint_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 3, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "size" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemSize) ); + mea->setElementType( domSize::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "viewport_ratio" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemViewport_ratio) ); + mea->setElementType( domViewport_ratio::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mip_levels" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemMip_levels) ); + mea->setElementType( domMip_levels::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "mipmap_generate" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemMipmap_generate) ); + mea->setElementType( domMipmap_generate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 6 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaSequence( meta, cm, 7, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "generator" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type,elemGenerator) ); + mea->setElementType( domGenerator::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 7 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGlsl_surface_type,_contents)); + meta->addContentsOrder(daeOffsetOf(domGlsl_surface_type,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGlsl_surface_type,_CMData), 1); + // Add attribute: type + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "type" ); + ma->setType( dae.getAtomicTypes().get("Fx_surface_type_enum")); + ma->setOffset( daeOffsetOf( domGlsl_surface_type , attrType )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_surface_type)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_surface_type::domGenerator::create(DAE& dae) +{ + domGlsl_surface_type::domGeneratorRef ref = new domGlsl_surface_type::domGenerator(dae); + return ref; +} + + +daeMetaElement * +domGlsl_surface_type::domGenerator::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "generator" ); + meta->registerClass(domGlsl_surface_type::domGenerator::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type::domGenerator,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "code" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type::domGenerator,elemCode_array) ); + mea->setElementType( domFx_code_profile::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "include" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type::domGenerator,elemInclude_array) ); + mea->setElementType( domFx_include_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 3002, 1, 1 ); + mea->setName( "name" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type::domGenerator,elemName) ); + mea->setElementType( domGlsl_surface_type::domGenerator::domName::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "setparam" ); + mea->setOffset( daeOffsetOf(domGlsl_surface_type::domGenerator,elemSetparam_array) ); + mea->setElementType( domGlsl_setparam_simple::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domGlsl_surface_type::domGenerator,_contents)); + meta->addContentsOrder(daeOffsetOf(domGlsl_surface_type::domGenerator,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domGlsl_surface_type::domGenerator,_CMData), 1); + meta->setElementSize(sizeof(domGlsl_surface_type::domGenerator)); + meta->validate(); + + return meta; +} + +daeElementRef +domGlsl_surface_type::domGenerator::domName::create(DAE& dae) +{ + domGlsl_surface_type::domGenerator::domNameRef ref = new domGlsl_surface_type::domGenerator::domName(dae); + return ref; +} + + +daeMetaElement * +domGlsl_surface_type::domGenerator::domName::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "name" ); + meta->registerClass(domGlsl_surface_type::domGenerator::domName::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGlsl_surface_type::domGenerator::domName , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domGlsl_surface_type::domGenerator::domName , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domGlsl_surface_type::domGenerator::domName)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domIDREF_array.cpp b/src/1.4/dom/domIDREF_array.cpp new file mode 100644 index 0000000..2159e2e --- /dev/null +++ b/src/1.4/dom/domIDREF_array.cpp @@ -0,0 +1,92 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domIDREF_array::create(DAE& dae) +{ + domIDREF_arrayRef ref = new domIDREF_array(dae); + return ref; +} + + +daeMetaElement * +domIDREF_array::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "IDREF_array" ); + meta->registerClass(domIDREF_array::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsIDREFS")); + ma->setOffset( daeOffsetOf( domIDREF_array , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domIDREF_array , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domIDREF_array , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domIDREF_array , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domIDREF_array)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domImage.cpp b/src/1.4/dom/domImage.cpp new file mode 100644 index 0000000..632b5bf --- /dev/null +++ b/src/1.4/dom/domImage.cpp @@ -0,0 +1,228 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domImage::create(DAE& dae) +{ + domImageRef ref = new domImage(dae); + return ref; +} + + +daeMetaElement * +domImage::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "image" ); + meta->registerClass(domImage::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domImage,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "data" ); + mea->setOffset( daeOffsetOf(domImage,elemData) ); + mea->setElementType( domImage::domData::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "init_from" ); + mea->setOffset( daeOffsetOf(domImage,elemInit_from) ); + mea->setElementType( domImage::domInit_from::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domImage,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domImage,_contents)); + meta->addContentsOrder(daeOffsetOf(domImage,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domImage,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domImage , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domImage , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: format + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "format" ); + ma->setType( dae.getAtomicTypes().get("xsToken")); + ma->setOffset( daeOffsetOf( domImage , attrFormat )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: height + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "height" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domImage , attrHeight )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: width + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "width" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domImage , attrWidth )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: depth + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "depth" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domImage , attrDepth )); + ma->setContainer( meta ); + ma->setDefaultString( "1"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domImage)); + meta->validate(); + + return meta; +} + +daeElementRef +domImage::domData::create(DAE& dae) +{ + domImage::domDataRef ref = new domImage::domData(dae); + return ref; +} + + +daeMetaElement * +domImage::domData::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "data" ); + meta->registerClass(domImage::domData::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfHexBinary")); + ma->setOffset( daeOffsetOf( domImage::domData , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domImage::domData)); + meta->validate(); + + return meta; +} + +daeElementRef +domImage::domInit_from::create(DAE& dae) +{ + domImage::domInit_fromRef ref = new domImage::domInit_from(dae); + return ref; +} + + +daeMetaElement * +domImage::domInit_from::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "init_from" ); + meta->registerClass(domImage::domInit_from::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domImage::domInit_from , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domImage::domInit_from)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInputGlobal.cpp b/src/1.4/dom/domInputGlobal.cpp new file mode 100644 index 0000000..704105b --- /dev/null +++ b/src/1.4/dom/domInputGlobal.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInputGlobal::create(DAE& dae) +{ + domInputGlobalRef ref = new domInputGlobal(dae); + return ref; +} + + +daeMetaElement * +domInputGlobal::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "InputGlobal" ); + meta->registerClass(domInputGlobal::create); + + + // Add attribute: semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domInputGlobal , attrSemantic )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInputGlobal , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInputGlobal)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInputLocal.cpp b/src/1.4/dom/domInputLocal.cpp new file mode 100644 index 0000000..375a8cc --- /dev/null +++ b/src/1.4/dom/domInputLocal.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInputLocal::create(DAE& dae) +{ + domInputLocalRef ref = new domInputLocal(dae); + return ref; +} + + +daeMetaElement * +domInputLocal::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "InputLocal" ); + meta->registerClass(domInputLocal::create); + + + // Add attribute: semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domInputLocal , attrSemantic )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("URIFragmentType")); + ma->setOffset( daeOffsetOf( domInputLocal , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInputLocal)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInputLocalOffset.cpp b/src/1.4/dom/domInputLocalOffset.cpp new file mode 100644 index 0000000..e61e721 --- /dev/null +++ b/src/1.4/dom/domInputLocalOffset.cpp @@ -0,0 +1,96 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInputLocalOffset::create(DAE& dae) +{ + domInputLocalOffsetRef ref = new domInputLocalOffset(dae); + return ref; +} + + +daeMetaElement * +domInputLocalOffset::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "InputLocalOffset" ); + meta->registerClass(domInputLocalOffset::create); + + + // Add attribute: offset + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "offset" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domInputLocalOffset , attrOffset )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domInputLocalOffset , attrSemantic )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("URIFragmentType")); + ma->setOffset( daeOffsetOf( domInputLocalOffset , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: set + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "set" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domInputLocalOffset , attrSet )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInputLocalOffset)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstanceWithExtra.cpp b/src/1.4/dom/domInstanceWithExtra.cpp new file mode 100644 index 0000000..9fcd4d7 --- /dev/null +++ b/src/1.4/dom/domInstanceWithExtra.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstanceWithExtra::create(DAE& dae) +{ + domInstanceWithExtraRef ref = new domInstanceWithExtra(dae); + return ref; +} + + +daeMetaElement * +domInstanceWithExtra::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "InstanceWithExtra" ); + meta->registerClass(domInstanceWithExtra::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstanceWithExtra,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstanceWithExtra , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstanceWithExtra , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstanceWithExtra , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstanceWithExtra)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_camera.cpp b/src/1.4/dom/domInstance_camera.cpp new file mode 100644 index 0000000..b7b4f13 --- /dev/null +++ b/src/1.4/dom/domInstance_camera.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_camera::create(DAE& dae) +{ + domInstance_cameraRef ref = new domInstance_camera(dae); + return ref; +} + + +daeMetaElement * +domInstance_camera::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_camera" ); + meta->registerClass(domInstance_camera::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_camera,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_camera , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_camera , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_camera , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_camera)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_controller.cpp b/src/1.4/dom/domInstance_controller.cpp new file mode 100644 index 0000000..8d40f90 --- /dev/null +++ b/src/1.4/dom/domInstance_controller.cpp @@ -0,0 +1,143 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_controller::create(DAE& dae) +{ + domInstance_controllerRef ref = new domInstance_controller(dae); + return ref; +} + + +daeMetaElement * +domInstance_controller::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_controller" ); + meta->registerClass(domInstance_controller::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "skeleton" ); + mea->setOffset( daeOffsetOf(domInstance_controller,elemSkeleton_array) ); + mea->setElementType( domInstance_controller::domSkeleton::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "bind_material" ); + mea->setOffset( daeOffsetOf(domInstance_controller,elemBind_material) ); + mea->setElementType( domBind_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_controller,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_controller , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_controller , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_controller , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_controller)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_controller::domSkeleton::create(DAE& dae) +{ + domInstance_controller::domSkeletonRef ref = new domInstance_controller::domSkeleton(dae); + return ref; +} + + +daeMetaElement * +domInstance_controller::domSkeleton::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "skeleton" ); + meta->registerClass(domInstance_controller::domSkeleton::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_controller::domSkeleton , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_controller::domSkeleton)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_effect.cpp b/src/1.4/dom/domInstance_effect.cpp new file mode 100644 index 0000000..d3c947f --- /dev/null +++ b/src/1.4/dom/domInstance_effect.cpp @@ -0,0 +1,221 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_effect::create(DAE& dae) +{ + domInstance_effectRef ref = new domInstance_effect(dae); + return ref; +} + + +daeMetaElement * +domInstance_effect::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_effect" ); + meta->registerClass(domInstance_effect::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "technique_hint" ); + mea->setOffset( daeOffsetOf(domInstance_effect,elemTechnique_hint_array) ); + mea->setElementType( domInstance_effect::domTechnique_hint::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "setparam" ); + mea->setOffset( daeOffsetOf(domInstance_effect,elemSetparam_array) ); + mea->setElementType( domInstance_effect::domSetparam::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_effect,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_effect , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_effect , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_effect , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_effect)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_effect::domTechnique_hint::create(DAE& dae) +{ + domInstance_effect::domTechnique_hintRef ref = new domInstance_effect::domTechnique_hint(dae); + return ref; +} + + +daeMetaElement * +domInstance_effect::domTechnique_hint::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_hint" ); + meta->registerClass(domInstance_effect::domTechnique_hint::create); + + meta->setIsInnerClass( true ); + + // Add attribute: platform + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "platform" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_effect::domTechnique_hint , attrPlatform )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: profile + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "profile" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_effect::domTechnique_hint , attrProfile )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_effect::domTechnique_hint , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_effect::domTechnique_hint)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_effect::domSetparam::create(DAE& dae) +{ + domInstance_effect::domSetparamRef ref = new domInstance_effect::domSetparam(dae); + return ref; +} + + +daeMetaElement * +domInstance_effect::domSetparam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "setparam" ); + meta->registerClass(domInstance_effect::domSetparam::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "fx_basic_type_common" ); + mea->setOffset( daeOffsetOf(domInstance_effect::domSetparam,elemFx_basic_type_common) ); + mea->setElementType( domFx_basic_type_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsToken")); + ma->setOffset( daeOffsetOf( domInstance_effect::domSetparam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_effect::domSetparam)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_force_field.cpp b/src/1.4/dom/domInstance_force_field.cpp new file mode 100644 index 0000000..90e1c25 --- /dev/null +++ b/src/1.4/dom/domInstance_force_field.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_force_field::create(DAE& dae) +{ + domInstance_force_fieldRef ref = new domInstance_force_field(dae); + return ref; +} + + +daeMetaElement * +domInstance_force_field::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_force_field" ); + meta->registerClass(domInstance_force_field::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_force_field,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_force_field , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_force_field , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_force_field , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_force_field)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_geometry.cpp b/src/1.4/dom/domInstance_geometry.cpp new file mode 100644 index 0000000..21411e4 --- /dev/null +++ b/src/1.4/dom/domInstance_geometry.cpp @@ -0,0 +1,101 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_geometry::create(DAE& dae) +{ + domInstance_geometryRef ref = new domInstance_geometry(dae); + return ref; +} + + +daeMetaElement * +domInstance_geometry::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_geometry" ); + meta->registerClass(domInstance_geometry::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "bind_material" ); + mea->setOffset( daeOffsetOf(domInstance_geometry,elemBind_material) ); + mea->setElementType( domBind_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_geometry,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_geometry , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_geometry , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_geometry , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_geometry)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_light.cpp b/src/1.4/dom/domInstance_light.cpp new file mode 100644 index 0000000..b19065f --- /dev/null +++ b/src/1.4/dom/domInstance_light.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_light::create(DAE& dae) +{ + domInstance_lightRef ref = new domInstance_light(dae); + return ref; +} + + +daeMetaElement * +domInstance_light::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_light" ); + meta->registerClass(domInstance_light::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_light,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_light , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_light , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_light , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_light)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_material.cpp b/src/1.4/dom/domInstance_material.cpp new file mode 100644 index 0000000..29e9e9f --- /dev/null +++ b/src/1.4/dom/domInstance_material.cpp @@ -0,0 +1,232 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_material::create(DAE& dae) +{ + domInstance_materialRef ref = new domInstance_material(dae); + return ref; +} + + +daeMetaElement * +domInstance_material::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_material" ); + meta->registerClass(domInstance_material::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "bind" ); + mea->setOffset( daeOffsetOf(domInstance_material,elemBind_array) ); + mea->setElementType( domInstance_material::domBind::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "bind_vertex_input" ); + mea->setOffset( daeOffsetOf(domInstance_material,elemBind_vertex_input_array) ); + mea->setElementType( domInstance_material::domBind_vertex_input::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_material,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: symbol + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "symbol" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_material , attrSymbol )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: target + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "target" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_material , attrTarget )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_material , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_material , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_material)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_material::domBind::create(DAE& dae) +{ + domInstance_material::domBindRef ref = new domInstance_material::domBind(dae); + return ref; +} + + +daeMetaElement * +domInstance_material::domBind::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bind" ); + meta->registerClass(domInstance_material::domBind::create); + + meta->setIsInnerClass( true ); + + // Add attribute: semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_material::domBind , attrSemantic )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: target + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "target" ); + ma->setType( dae.getAtomicTypes().get("xsToken")); + ma->setOffset( daeOffsetOf( domInstance_material::domBind , attrTarget )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_material::domBind)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_material::domBind_vertex_input::create(DAE& dae) +{ + domInstance_material::domBind_vertex_inputRef ref = new domInstance_material::domBind_vertex_input(dae); + return ref; +} + + +daeMetaElement * +domInstance_material::domBind_vertex_input::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bind_vertex_input" ); + meta->registerClass(domInstance_material::domBind_vertex_input::create); + + meta->setIsInnerClass( true ); + + // Add attribute: semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrSemantic )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: input_semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "input_semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrInput_semantic )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: input_set + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "input_set" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domInstance_material::domBind_vertex_input , attrInput_set )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_material::domBind_vertex_input)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_node.cpp b/src/1.4/dom/domInstance_node.cpp new file mode 100644 index 0000000..c69f720 --- /dev/null +++ b/src/1.4/dom/domInstance_node.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_node::create(DAE& dae) +{ + domInstance_nodeRef ref = new domInstance_node(dae); + return ref; +} + + +daeMetaElement * +domInstance_node::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_node" ); + meta->registerClass(domInstance_node::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_node,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_node , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_node , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_node , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_node)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_physics_material.cpp b/src/1.4/dom/domInstance_physics_material.cpp new file mode 100644 index 0000000..4b4e04c --- /dev/null +++ b/src/1.4/dom/domInstance_physics_material.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_physics_material::create(DAE& dae) +{ + domInstance_physics_materialRef ref = new domInstance_physics_material(dae); + return ref; +} + + +daeMetaElement * +domInstance_physics_material::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_physics_material" ); + meta->registerClass(domInstance_physics_material::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_physics_material,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_physics_material , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_physics_material , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_physics_material , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_physics_material)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_physics_model.cpp b/src/1.4/dom/domInstance_physics_model.cpp new file mode 100644 index 0000000..8bf86e1 --- /dev/null +++ b/src/1.4/dom/domInstance_physics_model.cpp @@ -0,0 +1,124 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_physics_model::create(DAE& dae) +{ + domInstance_physics_modelRef ref = new domInstance_physics_model(dae); + return ref; +} + + +daeMetaElement * +domInstance_physics_model::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_physics_model" ); + meta->registerClass(domInstance_physics_model::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "instance_force_field" ); + mea->setOffset( daeOffsetOf(domInstance_physics_model,elemInstance_force_field_array) ); + mea->setElementType( domInstance_force_field::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "instance_rigid_body" ); + mea->setOffset( daeOffsetOf(domInstance_physics_model,elemInstance_rigid_body_array) ); + mea->setElementType( domInstance_rigid_body::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "instance_rigid_constraint" ); + mea->setOffset( daeOffsetOf(domInstance_physics_model,elemInstance_rigid_constraint_array) ); + mea->setElementType( domInstance_rigid_constraint::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_physics_model,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: url + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "url" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_physics_model , attrUrl )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_physics_model , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_physics_model , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: parent + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "parent" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_physics_model , attrParent )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_physics_model)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_rigid_body.cpp b/src/1.4/dom/domInstance_rigid_body.cpp new file mode 100644 index 0000000..b400a99 --- /dev/null +++ b/src/1.4/dom/domInstance_rigid_body.cpp @@ -0,0 +1,582 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_rigid_body::create(DAE& dae) +{ + domInstance_rigid_bodyRef ref = new domInstance_rigid_body(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_rigid_body" ); + meta->registerClass(domInstance_rigid_body::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body,elemTechnique_common) ); + mea->setElementType( domInstance_rigid_body::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: body + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "body" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrBody )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: target + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "target" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrTarget )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_rigid_body)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_rigid_body::domTechnique_common::create(DAE& dae) +{ + domInstance_rigid_body::domTechnique_commonRef ref = new domInstance_rigid_body::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domInstance_rigid_body::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "angular_velocity" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemAngular_velocity) ); + mea->setElementType( domInstance_rigid_body::domTechnique_common::domAngular_velocity::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "velocity" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemVelocity) ); + mea->setElementType( domInstance_rigid_body::domTechnique_common::domVelocity::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "dynamic" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemDynamic) ); + mea->setElementType( domInstance_rigid_body::domTechnique_common::domDynamic::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "mass" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemMass) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "mass_frame" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemMass_frame) ); + mea->setElementType( domInstance_rigid_body::domTechnique_common::domMass_frame::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "inertia" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemInertia) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 6, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "instance_physics_material" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemInstance_physics_material) ); + mea->setElementType( domInstance_physics_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "physics_material" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemPhysics_material) ); + mea->setElementType( domPhysics_material::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 7, 0, -1 ); + mea->setName( "shape" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemShape_array) ); + mea->setElementType( domInstance_rigid_body::domTechnique_common::domShape::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 7 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domInstance_rigid_body::domTechnique_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domInstance_rigid_body::domTechnique_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domInstance_rigid_body::domTechnique_common,_CMData), 1); + meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_rigid_body::domTechnique_common::domAngular_velocity::create(DAE& dae) +{ + domInstance_rigid_body::domTechnique_common::domAngular_velocityRef ref = new domInstance_rigid_body::domTechnique_common::domAngular_velocity(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::domTechnique_common::domAngular_velocity::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "angular_velocity" ); + meta->registerClass(domInstance_rigid_body::domTechnique_common::domAngular_velocity::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domAngular_velocity , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domAngular_velocity)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_rigid_body::domTechnique_common::domVelocity::create(DAE& dae) +{ + domInstance_rigid_body::domTechnique_common::domVelocityRef ref = new domInstance_rigid_body::domTechnique_common::domVelocity(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::domTechnique_common::domVelocity::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "velocity" ); + meta->registerClass(domInstance_rigid_body::domTechnique_common::domVelocity::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domVelocity , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domVelocity)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_rigid_body::domTechnique_common::domDynamic::create(DAE& dae) +{ + domInstance_rigid_body::domTechnique_common::domDynamicRef ref = new domInstance_rigid_body::domTechnique_common::domDynamic(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::domTechnique_common::domDynamic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dynamic" ); + meta->registerClass(domInstance_rigid_body::domTechnique_common::domDynamic::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domDynamic , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domDynamic , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domDynamic)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_rigid_body::domTechnique_common::domMass_frame::create(DAE& dae) +{ + domInstance_rigid_body::domTechnique_common::domMass_frameRef ref = new domInstance_rigid_body::domTechnique_common::domMass_frame(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::domTechnique_common::domMass_frame::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mass_frame" ); + meta->registerClass(domInstance_rigid_body::domTechnique_common::domMass_frame::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "translate" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,elemTranslate_array) ); + mea->setElementType( domTranslate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rotate" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,elemRotate_array) ); + mea->setElementType( domRotate::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,_contents)); + meta->addContentsOrder(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,_CMData), 1); + meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domMass_frame)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_rigid_body::domTechnique_common::domShape::create(DAE& dae) +{ + domInstance_rigid_body::domTechnique_common::domShapeRef ref = new domInstance_rigid_body::domTechnique_common::domShape(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::domTechnique_common::domShape::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "shape" ); + meta->registerClass(domInstance_rigid_body::domTechnique_common::domShape::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "hollow" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemHollow) ); + mea->setElementType( domInstance_rigid_body::domTechnique_common::domShape::domHollow::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "mass" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemMass) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "density" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemDensity) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 3, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "instance_physics_material" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemInstance_physics_material) ); + mea->setElementType( domInstance_physics_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "physics_material" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemPhysics_material) ); + mea->setElementType( domPhysics_material::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 1, 4, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "instance_geometry" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemInstance_geometry) ); + mea->setElementType( domInstance_geometry::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "plane" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemPlane) ); + mea->setElementType( domPlane::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "box" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemBox) ); + mea->setElementType( domBox::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sphere" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemSphere) ); + mea->setElementType( domSphere::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cylinder" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemCylinder) ); + mea->setElementType( domCylinder::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "tapered_cylinder" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemTapered_cylinder) ); + mea->setElementType( domTapered_cylinder::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "capsule" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemCapsule) ); + mea->setElementType( domCapsule::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "tapered_capsule" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemTapered_capsule) ); + mea->setElementType( domTapered_capsule::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 2, 5, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "translate" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemTranslate_array) ); + mea->setElementType( domTranslate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rotate" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemRotate_array) ); + mea->setElementType( domRotate::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3006, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3006 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,_contents)); + meta->addContentsOrder(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,_CMData), 3); + meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domShape)); + meta->validate(); + + return meta; +} + +daeElementRef +domInstance_rigid_body::domTechnique_common::domShape::domHollow::create(DAE& dae) +{ + domInstance_rigid_body::domTechnique_common::domShape::domHollowRef ref = new domInstance_rigid_body::domTechnique_common::domShape::domHollow(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_body::domTechnique_common::domShape::domHollow::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "hollow" ); + meta->registerClass(domInstance_rigid_body::domTechnique_common::domShape::domHollow::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domShape::domHollow , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domShape::domHollow , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domShape::domHollow)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInstance_rigid_constraint.cpp b/src/1.4/dom/domInstance_rigid_constraint.cpp new file mode 100644 index 0000000..62aebe6 --- /dev/null +++ b/src/1.4/dom/domInstance_rigid_constraint.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInstance_rigid_constraint::create(DAE& dae) +{ + domInstance_rigid_constraintRef ref = new domInstance_rigid_constraint(dae); + return ref; +} + + +daeMetaElement * +domInstance_rigid_constraint::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "instance_rigid_constraint" ); + meta->registerClass(domInstance_rigid_constraint::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domInstance_rigid_constraint,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: constraint + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "constraint" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_constraint , attrConstraint )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_constraint , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInstance_rigid_constraint , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInstance_rigid_constraint)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domInt_array.cpp b/src/1.4/dom/domInt_array.cpp new file mode 100644 index 0000000..4257f0e --- /dev/null +++ b/src/1.4/dom/domInt_array.cpp @@ -0,0 +1,116 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domInt_array::create(DAE& dae) +{ + domInt_arrayRef ref = new domInt_array(dae); + return ref; +} + + +daeMetaElement * +domInt_array::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "int_array" ); + meta->registerClass(domInt_array::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfInts")); + ma->setOffset( daeOffsetOf( domInt_array , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domInt_array , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domInt_array , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domInt_array , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: minInclusive + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "minInclusive" ); + ma->setType( dae.getAtomicTypes().get("xsInteger")); + ma->setOffset( daeOffsetOf( domInt_array , attrMinInclusive )); + ma->setContainer( meta ); + ma->setDefaultString( "-2147483648"); + + meta->appendAttribute(ma); + } + + // Add attribute: maxInclusive + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "maxInclusive" ); + ma->setType( dae.getAtomicTypes().get("xsInteger")); + ma->setOffset( daeOffsetOf( domInt_array , attrMaxInclusive )); + ma->setContainer( meta ); + ma->setDefaultString( "2147483647"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domInt_array)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_animation_clips.cpp b/src/1.4/dom/domLibrary_animation_clips.cpp new file mode 100644 index 0000000..e13b0d8 --- /dev/null +++ b/src/1.4/dom/domLibrary_animation_clips.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_animation_clips::create(DAE& dae) +{ + domLibrary_animation_clipsRef ref = new domLibrary_animation_clips(dae); + return ref; +} + + +daeMetaElement * +domLibrary_animation_clips::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_animation_clips" ); + meta->registerClass(domLibrary_animation_clips::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_animation_clips,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "animation_clip" ); + mea->setOffset( daeOffsetOf(domLibrary_animation_clips,elemAnimation_clip_array) ); + mea->setElementType( domAnimation_clip::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_animation_clips,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_animation_clips , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_animation_clips , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_animation_clips)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_animations.cpp b/src/1.4/dom/domLibrary_animations.cpp new file mode 100644 index 0000000..1daa1f1 --- /dev/null +++ b/src/1.4/dom/domLibrary_animations.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_animations::create(DAE& dae) +{ + domLibrary_animationsRef ref = new domLibrary_animations(dae); + return ref; +} + + +daeMetaElement * +domLibrary_animations::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_animations" ); + meta->registerClass(domLibrary_animations::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_animations,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "animation" ); + mea->setOffset( daeOffsetOf(domLibrary_animations,elemAnimation_array) ); + mea->setElementType( domAnimation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_animations,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_animations , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_animations , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_animations)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_cameras.cpp b/src/1.4/dom/domLibrary_cameras.cpp new file mode 100644 index 0000000..0a2c12e --- /dev/null +++ b/src/1.4/dom/domLibrary_cameras.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_cameras::create(DAE& dae) +{ + domLibrary_camerasRef ref = new domLibrary_cameras(dae); + return ref; +} + + +daeMetaElement * +domLibrary_cameras::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_cameras" ); + meta->registerClass(domLibrary_cameras::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_cameras,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "camera" ); + mea->setOffset( daeOffsetOf(domLibrary_cameras,elemCamera_array) ); + mea->setElementType( domCamera::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_cameras,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_cameras , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_cameras , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_cameras)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_controllers.cpp b/src/1.4/dom/domLibrary_controllers.cpp new file mode 100644 index 0000000..6f68afd --- /dev/null +++ b/src/1.4/dom/domLibrary_controllers.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_controllers::create(DAE& dae) +{ + domLibrary_controllersRef ref = new domLibrary_controllers(dae); + return ref; +} + + +daeMetaElement * +domLibrary_controllers::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_controllers" ); + meta->registerClass(domLibrary_controllers::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_controllers,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "controller" ); + mea->setOffset( daeOffsetOf(domLibrary_controllers,elemController_array) ); + mea->setElementType( domController::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_controllers,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_controllers , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_controllers , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_controllers)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_effects.cpp b/src/1.4/dom/domLibrary_effects.cpp new file mode 100644 index 0000000..a54b1b9 --- /dev/null +++ b/src/1.4/dom/domLibrary_effects.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_effects::create(DAE& dae) +{ + domLibrary_effectsRef ref = new domLibrary_effects(dae); + return ref; +} + + +daeMetaElement * +domLibrary_effects::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_effects" ); + meta->registerClass(domLibrary_effects::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_effects,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "effect" ); + mea->setOffset( daeOffsetOf(domLibrary_effects,elemEffect_array) ); + mea->setElementType( domEffect::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_effects,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_effects , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_effects , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_effects)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_force_fields.cpp b/src/1.4/dom/domLibrary_force_fields.cpp new file mode 100644 index 0000000..f0b60ea --- /dev/null +++ b/src/1.4/dom/domLibrary_force_fields.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_force_fields::create(DAE& dae) +{ + domLibrary_force_fieldsRef ref = new domLibrary_force_fields(dae); + return ref; +} + + +daeMetaElement * +domLibrary_force_fields::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_force_fields" ); + meta->registerClass(domLibrary_force_fields::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_force_fields,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "force_field" ); + mea->setOffset( daeOffsetOf(domLibrary_force_fields,elemForce_field_array) ); + mea->setElementType( domForce_field::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_force_fields,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_force_fields , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_force_fields , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_force_fields)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_geometries.cpp b/src/1.4/dom/domLibrary_geometries.cpp new file mode 100644 index 0000000..009f59c --- /dev/null +++ b/src/1.4/dom/domLibrary_geometries.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_geometries::create(DAE& dae) +{ + domLibrary_geometriesRef ref = new domLibrary_geometries(dae); + return ref; +} + + +daeMetaElement * +domLibrary_geometries::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_geometries" ); + meta->registerClass(domLibrary_geometries::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_geometries,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "geometry" ); + mea->setOffset( daeOffsetOf(domLibrary_geometries,elemGeometry_array) ); + mea->setElementType( domGeometry::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_geometries,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_geometries , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_geometries , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_geometries)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_images.cpp b/src/1.4/dom/domLibrary_images.cpp new file mode 100644 index 0000000..b905743 --- /dev/null +++ b/src/1.4/dom/domLibrary_images.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_images::create(DAE& dae) +{ + domLibrary_imagesRef ref = new domLibrary_images(dae); + return ref; +} + + +daeMetaElement * +domLibrary_images::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_images" ); + meta->registerClass(domLibrary_images::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_images,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domLibrary_images,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_images,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_images , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_images , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_images)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_lights.cpp b/src/1.4/dom/domLibrary_lights.cpp new file mode 100644 index 0000000..ce2bdf3 --- /dev/null +++ b/src/1.4/dom/domLibrary_lights.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_lights::create(DAE& dae) +{ + domLibrary_lightsRef ref = new domLibrary_lights(dae); + return ref; +} + + +daeMetaElement * +domLibrary_lights::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_lights" ); + meta->registerClass(domLibrary_lights::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_lights,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "light" ); + mea->setOffset( daeOffsetOf(domLibrary_lights,elemLight_array) ); + mea->setElementType( domLight::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_lights,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_lights , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_lights , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_lights)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_materials.cpp b/src/1.4/dom/domLibrary_materials.cpp new file mode 100644 index 0000000..f235d91 --- /dev/null +++ b/src/1.4/dom/domLibrary_materials.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_materials::create(DAE& dae) +{ + domLibrary_materialsRef ref = new domLibrary_materials(dae); + return ref; +} + + +daeMetaElement * +domLibrary_materials::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_materials" ); + meta->registerClass(domLibrary_materials::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_materials,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "material" ); + mea->setOffset( daeOffsetOf(domLibrary_materials,elemMaterial_array) ); + mea->setElementType( domMaterial::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_materials,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_materials , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_materials , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_materials)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_nodes.cpp b/src/1.4/dom/domLibrary_nodes.cpp new file mode 100644 index 0000000..3e755c9 --- /dev/null +++ b/src/1.4/dom/domLibrary_nodes.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_nodes::create(DAE& dae) +{ + domLibrary_nodesRef ref = new domLibrary_nodes(dae); + return ref; +} + + +daeMetaElement * +domLibrary_nodes::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_nodes" ); + meta->registerClass(domLibrary_nodes::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_nodes,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "node" ); + mea->setOffset( daeOffsetOf(domLibrary_nodes,elemNode_array) ); + mea->setElementType( domNode::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_nodes,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_nodes , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_nodes , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_nodes)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_physics_materials.cpp b/src/1.4/dom/domLibrary_physics_materials.cpp new file mode 100644 index 0000000..d7e5ba2 --- /dev/null +++ b/src/1.4/dom/domLibrary_physics_materials.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_physics_materials::create(DAE& dae) +{ + domLibrary_physics_materialsRef ref = new domLibrary_physics_materials(dae); + return ref; +} + + +daeMetaElement * +domLibrary_physics_materials::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_physics_materials" ); + meta->registerClass(domLibrary_physics_materials::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_materials,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "physics_material" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_materials,elemPhysics_material_array) ); + mea->setElementType( domPhysics_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_materials,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_physics_materials , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_physics_materials , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_physics_materials)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_physics_models.cpp b/src/1.4/dom/domLibrary_physics_models.cpp new file mode 100644 index 0000000..f8db59a --- /dev/null +++ b/src/1.4/dom/domLibrary_physics_models.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_physics_models::create(DAE& dae) +{ + domLibrary_physics_modelsRef ref = new domLibrary_physics_models(dae); + return ref; +} + + +daeMetaElement * +domLibrary_physics_models::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_physics_models" ); + meta->registerClass(domLibrary_physics_models::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_models,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "physics_model" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_models,elemPhysics_model_array) ); + mea->setElementType( domPhysics_model::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_models,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_physics_models , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_physics_models , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_physics_models)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_physics_scenes.cpp b/src/1.4/dom/domLibrary_physics_scenes.cpp new file mode 100644 index 0000000..c880741 --- /dev/null +++ b/src/1.4/dom/domLibrary_physics_scenes.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_physics_scenes::create(DAE& dae) +{ + domLibrary_physics_scenesRef ref = new domLibrary_physics_scenes(dae); + return ref; +} + + +daeMetaElement * +domLibrary_physics_scenes::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_physics_scenes" ); + meta->registerClass(domLibrary_physics_scenes::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_scenes,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "physics_scene" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_scenes,elemPhysics_scene_array) ); + mea->setElementType( domPhysics_scene::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_physics_scenes,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_physics_scenes , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_physics_scenes , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_physics_scenes)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLibrary_visual_scenes.cpp b/src/1.4/dom/domLibrary_visual_scenes.cpp new file mode 100644 index 0000000..851d125 --- /dev/null +++ b/src/1.4/dom/domLibrary_visual_scenes.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLibrary_visual_scenes::create(DAE& dae) +{ + domLibrary_visual_scenesRef ref = new domLibrary_visual_scenes(dae); + return ref; +} + + +daeMetaElement * +domLibrary_visual_scenes::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "library_visual_scenes" ); + meta->registerClass(domLibrary_visual_scenes::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLibrary_visual_scenes,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "visual_scene" ); + mea->setOffset( daeOffsetOf(domLibrary_visual_scenes,elemVisual_scene_array) ); + mea->setElementType( domVisual_scene::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLibrary_visual_scenes,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLibrary_visual_scenes , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLibrary_visual_scenes , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLibrary_visual_scenes)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLight.cpp b/src/1.4/dom/domLight.cpp new file mode 100644 index 0000000..d1e589a --- /dev/null +++ b/src/1.4/dom/domLight.cpp @@ -0,0 +1,366 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLight::create(DAE& dae) +{ + domLightRef ref = new domLight(dae); + return ref; +} + + +daeMetaElement * +domLight::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "light" ); + meta->registerClass(domLight::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domLight,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domLight,elemTechnique_common) ); + mea->setElementType( domLight::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domLight,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLight,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domLight , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLight , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLight)); + meta->validate(); + + return meta; +} + +daeElementRef +domLight::domTechnique_common::create(DAE& dae) +{ + domLight::domTechnique_commonRef ref = new domLight::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domLight::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domLight::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "ambient" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common,elemAmbient) ); + mea->setElementType( domLight::domTechnique_common::domAmbient::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "directional" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common,elemDirectional) ); + mea->setElementType( domLight::domTechnique_common::domDirectional::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "point" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common,elemPoint) ); + mea->setElementType( domLight::domTechnique_common::domPoint::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "spot" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common,elemSpot) ); + mea->setElementType( domLight::domTechnique_common::domSpot::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domLight::domTechnique_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domLight::domTechnique_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domLight::domTechnique_common,_CMData), 1); + meta->setElementSize(sizeof(domLight::domTechnique_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domLight::domTechnique_common::domAmbient::create(DAE& dae) +{ + domLight::domTechnique_common::domAmbientRef ref = new domLight::domTechnique_common::domAmbient(dae); + return ref; +} + + +daeMetaElement * +domLight::domTechnique_common::domAmbient::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "ambient" ); + meta->registerClass(domLight::domTechnique_common::domAmbient::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domAmbient,elemColor) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domLight::domTechnique_common::domAmbient)); + meta->validate(); + + return meta; +} + +daeElementRef +domLight::domTechnique_common::domDirectional::create(DAE& dae) +{ + domLight::domTechnique_common::domDirectionalRef ref = new domLight::domTechnique_common::domDirectional(dae); + return ref; +} + + +daeMetaElement * +domLight::domTechnique_common::domDirectional::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "directional" ); + meta->registerClass(domLight::domTechnique_common::domDirectional::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domDirectional,elemColor) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domLight::domTechnique_common::domDirectional)); + meta->validate(); + + return meta; +} + +daeElementRef +domLight::domTechnique_common::domPoint::create(DAE& dae) +{ + domLight::domTechnique_common::domPointRef ref = new domLight::domTechnique_common::domPoint(dae); + return ref; +} + + +daeMetaElement * +domLight::domTechnique_common::domPoint::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "point" ); + meta->registerClass(domLight::domTechnique_common::domPoint::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domPoint,elemColor) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "constant_attenuation" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domPoint,elemConstant_attenuation) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "linear_attenuation" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domPoint,elemLinear_attenuation) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "quadratic_attenuation" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domPoint,elemQuadratic_attenuation) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domLight::domTechnique_common::domPoint)); + meta->validate(); + + return meta; +} + +daeElementRef +domLight::domTechnique_common::domSpot::create(DAE& dae) +{ + domLight::domTechnique_common::domSpotRef ref = new domLight::domTechnique_common::domSpot(dae); + return ref; +} + + +daeMetaElement * +domLight::domTechnique_common::domSpot::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "spot" ); + meta->registerClass(domLight::domTechnique_common::domSpot::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "color" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domSpot,elemColor) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "constant_attenuation" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domSpot,elemConstant_attenuation) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "linear_attenuation" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domSpot,elemLinear_attenuation) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "quadratic_attenuation" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domSpot,elemQuadratic_attenuation) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "falloff_angle" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domSpot,elemFalloff_angle) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "falloff_exponent" ); + mea->setOffset( daeOffsetOf(domLight::domTechnique_common::domSpot,elemFalloff_exponent) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domLight::domTechnique_common::domSpot)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLines.cpp b/src/1.4/dom/domLines.cpp new file mode 100644 index 0000000..0c38737 --- /dev/null +++ b/src/1.4/dom/domLines.cpp @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLines::create(DAE& dae) +{ + domLinesRef ref = new domLines(dae); + return ref; +} + + +daeMetaElement * +domLines::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "lines" ); + meta->registerClass(domLines::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domLines,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domLines,elemP) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLines,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLines , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domLines , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: material + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "material" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLines , attrMaterial )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLines)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLinestrips.cpp b/src/1.4/dom/domLinestrips.cpp new file mode 100644 index 0000000..91937f6 --- /dev/null +++ b/src/1.4/dom/domLinestrips.cpp @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLinestrips::create(DAE& dae) +{ + domLinestripsRef ref = new domLinestrips(dae); + return ref; +} + + +daeMetaElement * +domLinestrips::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "linestrips" ); + meta->registerClass(domLinestrips::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domLinestrips,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domLinestrips,elemP_array) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domLinestrips,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLinestrips , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domLinestrips , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: material + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "material" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLinestrips , attrMaterial )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLinestrips)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domLookat.cpp b/src/1.4/dom/domLookat.cpp new file mode 100644 index 0000000..6ec29ac --- /dev/null +++ b/src/1.4/dom/domLookat.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domLookat::create(DAE& dae) +{ + domLookatRef ref = new domLookat(dae); + return ref; +} + + +daeMetaElement * +domLookat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "lookat" ); + meta->registerClass(domLookat::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3x3")); + ma->setOffset( daeOffsetOf( domLookat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domLookat , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domLookat)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domMaterial.cpp b/src/1.4/dom/domMaterial.cpp new file mode 100644 index 0000000..42f73ac --- /dev/null +++ b/src/1.4/dom/domMaterial.cpp @@ -0,0 +1,95 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domMaterial::create(DAE& dae) +{ + domMaterialRef ref = new domMaterial(dae); + return ref; +} + + +daeMetaElement * +domMaterial::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "material" ); + meta->registerClass(domMaterial::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domMaterial,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "instance_effect" ); + mea->setOffset( daeOffsetOf(domMaterial,elemInstance_effect) ); + mea->setElementType( domInstance_effect::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domMaterial,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domMaterial , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domMaterial , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domMaterial)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domMatrix.cpp b/src/1.4/dom/domMatrix.cpp new file mode 100644 index 0000000..417059b --- /dev/null +++ b/src/1.4/dom/domMatrix.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domMatrix::create(DAE& dae) +{ + domMatrixRef ref = new domMatrix(dae); + return ref; +} + + +daeMetaElement * +domMatrix::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "matrix" ); + meta->registerClass(domMatrix::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domMatrix , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domMatrix , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domMatrix)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domMesh.cpp b/src/1.4/dom/domMesh.cpp new file mode 100644 index 0000000..08706cb --- /dev/null +++ b/src/1.4/dom/domMesh.cpp @@ -0,0 +1,125 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domMesh::create(DAE& dae) +{ + domMeshRef ref = new domMesh(dae); + return ref; +} + + +daeMetaElement * +domMesh::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mesh" ); + meta->registerClass(domMesh::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domMesh,elemSource_array) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "vertices" ); + mea->setOffset( daeOffsetOf(domMesh,elemVertices) ); + mea->setElementType( domVertices::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 2, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "lines" ); + mea->setOffset( daeOffsetOf(domMesh,elemLines_array) ); + mea->setElementType( domLines::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "linestrips" ); + mea->setOffset( daeOffsetOf(domMesh,elemLinestrips_array) ); + mea->setElementType( domLinestrips::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polygons" ); + mea->setOffset( daeOffsetOf(domMesh,elemPolygons_array) ); + mea->setElementType( domPolygons::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "polylist" ); + mea->setOffset( daeOffsetOf(domMesh,elemPolylist_array) ); + mea->setElementType( domPolylist::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "triangles" ); + mea->setOffset( daeOffsetOf(domMesh,elemTriangles_array) ); + mea->setElementType( domTriangles::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "trifans" ); + mea->setOffset( daeOffsetOf(domMesh,elemTrifans_array) ); + mea->setElementType( domTrifans::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "tristrips" ); + mea->setOffset( daeOffsetOf(domMesh,elemTristrips_array) ); + mea->setElementType( domTristrips::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domMesh,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domMesh,_contents)); + meta->addContentsOrder(daeOffsetOf(domMesh,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domMesh,_CMData), 1); + meta->setElementSize(sizeof(domMesh)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domMorph.cpp b/src/1.4/dom/domMorph.cpp new file mode 100644 index 0000000..bd7e7ae --- /dev/null +++ b/src/1.4/dom/domMorph.cpp @@ -0,0 +1,142 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domMorph::create(DAE& dae) +{ + domMorphRef ref = new domMorph(dae); + return ref; +} + + +daeMetaElement * +domMorph::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "morph" ); + meta->registerClass(domMorph::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 2, -1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domMorph,elemSource_array) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "targets" ); + mea->setOffset( daeOffsetOf(domMorph,elemTargets) ); + mea->setElementType( domMorph::domTargets::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domMorph,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: method + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "method" ); + ma->setType( dae.getAtomicTypes().get("MorphMethodType")); + ma->setOffset( daeOffsetOf( domMorph , attrMethod )); + ma->setContainer( meta ); + ma->setDefaultString( "NORMALIZED"); + + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domMorph , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domMorph)); + meta->validate(); + + return meta; +} + +daeElementRef +domMorph::domTargets::create(DAE& dae) +{ + domMorph::domTargetsRef ref = new domMorph::domTargets(dae); + return ref; +} + + +daeMetaElement * +domMorph::domTargets::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "targets" ); + meta->registerClass(domMorph::domTargets::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 2, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domMorph::domTargets,elemInput_array) ); + mea->setElementType( domInputLocal::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domMorph::domTargets,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domMorph::domTargets)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domName_array.cpp b/src/1.4/dom/domName_array.cpp new file mode 100644 index 0000000..9b427a1 --- /dev/null +++ b/src/1.4/dom/domName_array.cpp @@ -0,0 +1,92 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domName_array::create(DAE& dae) +{ + domName_arrayRef ref = new domName_array(dae); + return ref; +} + + +daeMetaElement * +domName_array::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "Name_array" ); + meta->registerClass(domName_array::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfNames")); + ma->setOffset( daeOffsetOf( domName_array , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domName_array , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domName_array , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domName_array , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domName_array)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domNode.cpp b/src/1.4/dom/domNode.cpp new file mode 100644 index 0000000..33cdb0b --- /dev/null +++ b/src/1.4/dom/domNode.cpp @@ -0,0 +1,205 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domNode::create(DAE& dae) +{ + domNodeRef ref = new domNode(dae); + return ref; +} + + +daeMetaElement * +domNode::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "node" ); + meta->registerClass(domNode::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domNode,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "lookat" ); + mea->setOffset( daeOffsetOf(domNode,elemLookat_array) ); + mea->setElementType( domLookat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "matrix" ); + mea->setOffset( daeOffsetOf(domNode,elemMatrix_array) ); + mea->setElementType( domMatrix::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rotate" ); + mea->setOffset( daeOffsetOf(domNode,elemRotate_array) ); + mea->setElementType( domRotate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "scale" ); + mea->setOffset( daeOffsetOf(domNode,elemScale_array) ); + mea->setElementType( domScale::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "skew" ); + mea->setOffset( daeOffsetOf(domNode,elemSkew_array) ); + mea->setElementType( domSkew::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "translate" ); + mea->setOffset( daeOffsetOf(domNode,elemTranslate_array) ); + mea->setElementType( domTranslate::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3002, 0, -1 ); + mea->setName( "instance_camera" ); + mea->setOffset( daeOffsetOf(domNode,elemInstance_camera_array) ); + mea->setElementType( domInstance_camera::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "instance_controller" ); + mea->setOffset( daeOffsetOf(domNode,elemInstance_controller_array) ); + mea->setElementType( domInstance_controller::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3004, 0, -1 ); + mea->setName( "instance_geometry" ); + mea->setOffset( daeOffsetOf(domNode,elemInstance_geometry_array) ); + mea->setElementType( domInstance_geometry::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3005, 0, -1 ); + mea->setName( "instance_light" ); + mea->setOffset( daeOffsetOf(domNode,elemInstance_light_array) ); + mea->setElementType( domInstance_light::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3006, 0, -1 ); + mea->setName( "instance_node" ); + mea->setOffset( daeOffsetOf(domNode,elemInstance_node_array) ); + mea->setElementType( domInstance_node::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3007, 0, -1 ); + mea->setName( "node" ); + mea->setOffset( daeOffsetOf(domNode,elemNode_array) ); + mea->setElementType( domNode::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3008, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domNode,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3008 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domNode,_contents)); + meta->addContentsOrder(daeOffsetOf(domNode,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domNode,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domNode , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domNode , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domNode , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: type + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "type" ); + ma->setType( dae.getAtomicTypes().get("NodeType")); + ma->setOffset( daeOffsetOf( domNode , attrType )); + ma->setContainer( meta ); + ma->setDefaultString( "NODE"); + + meta->appendAttribute(ma); + } + + // Add attribute: layer + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "layer" ); + ma->setType( dae.getAtomicTypes().get("ListOfNames")); + ma->setOffset( daeOffsetOf( domNode , attrLayer )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domNode)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domP.cpp b/src/1.4/dom/domP.cpp new file mode 100644 index 0000000..a7e5bb3 --- /dev/null +++ b/src/1.4/dom/domP.cpp @@ -0,0 +1,58 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domP::create(DAE& dae) +{ + domPRef ref = new domP(dae); + return ref; +} + + +daeMetaElement * +domP::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "p" ); + meta->registerClass(domP::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfUInts")); + ma->setOffset( daeOffsetOf( domP , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domP)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domParam.cpp b/src/1.4/dom/domParam.cpp new file mode 100644 index 0000000..7f57b01 --- /dev/null +++ b/src/1.4/dom/domParam.cpp @@ -0,0 +1,103 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domParam::create(DAE& dae) +{ + domParamRef ref = new domParam(dae); + return ref; +} + + +daeMetaElement * +domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domParam::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domParam , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domParam , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domParam , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: semantic + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "semantic" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domParam , attrSemantic )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: type + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "type" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domParam , attrType )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domParam)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domPhysics_material.cpp b/src/1.4/dom/domPhysics_material.cpp new file mode 100644 index 0000000..99c5b92 --- /dev/null +++ b/src/1.4/dom/domPhysics_material.cpp @@ -0,0 +1,152 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domPhysics_material::create(DAE& dae) +{ + domPhysics_materialRef ref = new domPhysics_material(dae); + return ref; +} + + +daeMetaElement * +domPhysics_material::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "physics_material" ); + meta->registerClass(domPhysics_material::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemTechnique_common) ); + mea->setElementType( domPhysics_material::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domPhysics_material,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domPhysics_material , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPhysics_material , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPhysics_material)); + meta->validate(); + + return meta; +} + +daeElementRef +domPhysics_material::domTechnique_common::create(DAE& dae) +{ + domPhysics_material::domTechnique_commonRef ref = new domPhysics_material::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domPhysics_material::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domPhysics_material::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "dynamic_friction" ); + mea->setOffset( daeOffsetOf(domPhysics_material::domTechnique_common,elemDynamic_friction) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "restitution" ); + mea->setOffset( daeOffsetOf(domPhysics_material::domTechnique_common,elemRestitution) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "static_friction" ); + mea->setOffset( daeOffsetOf(domPhysics_material::domTechnique_common,elemStatic_friction) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domPhysics_material::domTechnique_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domPhysics_model.cpp b/src/1.4/dom/domPhysics_model.cpp new file mode 100644 index 0000000..c498c16 --- /dev/null +++ b/src/1.4/dom/domPhysics_model.cpp @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domPhysics_model::create(DAE& dae) +{ + domPhysics_modelRef ref = new domPhysics_model(dae); + return ref; +} + + +daeMetaElement * +domPhysics_model::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "physics_model" ); + meta->registerClass(domPhysics_model::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domPhysics_model,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "rigid_body" ); + mea->setOffset( daeOffsetOf(domPhysics_model,elemRigid_body_array) ); + mea->setElementType( domRigid_body::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "rigid_constraint" ); + mea->setOffset( daeOffsetOf(domPhysics_model,elemRigid_constraint_array) ); + mea->setElementType( domRigid_constraint::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "instance_physics_model" ); + mea->setOffset( daeOffsetOf(domPhysics_model,elemInstance_physics_model_array) ); + mea->setElementType( domInstance_physics_model::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domPhysics_model,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domPhysics_model , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPhysics_model , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPhysics_model)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domPhysics_scene.cpp b/src/1.4/dom/domPhysics_scene.cpp new file mode 100644 index 0000000..a39d91b --- /dev/null +++ b/src/1.4/dom/domPhysics_scene.cpp @@ -0,0 +1,158 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domPhysics_scene::create(DAE& dae) +{ + domPhysics_sceneRef ref = new domPhysics_scene(dae); + return ref; +} + + +daeMetaElement * +domPhysics_scene::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "physics_scene" ); + meta->registerClass(domPhysics_scene::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domPhysics_scene,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "instance_force_field" ); + mea->setOffset( daeOffsetOf(domPhysics_scene,elemInstance_force_field_array) ); + mea->setElementType( domInstance_force_field::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "instance_physics_model" ); + mea->setOffset( daeOffsetOf(domPhysics_scene,elemInstance_physics_model_array) ); + mea->setElementType( domInstance_physics_model::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domPhysics_scene,elemTechnique_common) ); + mea->setElementType( domPhysics_scene::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domPhysics_scene,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domPhysics_scene,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domPhysics_scene , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPhysics_scene , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPhysics_scene)); + meta->validate(); + + return meta; +} + +daeElementRef +domPhysics_scene::domTechnique_common::create(DAE& dae) +{ + domPhysics_scene::domTechnique_commonRef ref = new domPhysics_scene::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domPhysics_scene::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domPhysics_scene::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "gravity" ); + mea->setOffset( daeOffsetOf(domPhysics_scene::domTechnique_common,elemGravity) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "time_step" ); + mea->setOffset( daeOffsetOf(domPhysics_scene::domTechnique_common,elemTime_step) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domPhysics_scene::domTechnique_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domPlane.cpp b/src/1.4/dom/domPlane.cpp new file mode 100644 index 0000000..7400613 --- /dev/null +++ b/src/1.4/dom/domPlane.cpp @@ -0,0 +1,103 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domPlane::create(DAE& dae) +{ + domPlaneRef ref = new domPlane(dae); + return ref; +} + + +daeMetaElement * +domPlane::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "plane" ); + meta->registerClass(domPlane::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "equation" ); + mea->setOffset( daeOffsetOf(domPlane,elemEquation) ); + mea->setElementType( domPlane::domEquation::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domPlane,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domPlane)); + meta->validate(); + + return meta; +} + +daeElementRef +domPlane::domEquation::create(DAE& dae) +{ + domPlane::domEquationRef ref = new domPlane::domEquation(dae); + return ref; +} + + +daeMetaElement * +domPlane::domEquation::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "equation" ); + meta->registerClass(domPlane::domEquation::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domPlane::domEquation , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPlane::domEquation)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domPolygons.cpp b/src/1.4/dom/domPolygons.cpp new file mode 100644 index 0000000..3e7a1a8 --- /dev/null +++ b/src/1.4/dom/domPolygons.cpp @@ -0,0 +1,204 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domPolygons::create(DAE& dae) +{ + domPolygonsRef ref = new domPolygons(dae); + return ref; +} + + +daeMetaElement * +domPolygons::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polygons" ); + meta->registerClass(domPolygons::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domPolygons,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domPolygons,elemP_array) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "ph" ); + mea->setOffset( daeOffsetOf(domPolygons,elemPh_array) ); + mea->setElementType( domPolygons::domPh::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3002, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domPolygons,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3002 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domPolygons,_contents)); + meta->addContentsOrder(daeOffsetOf(domPolygons,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domPolygons,_CMData), 1); + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPolygons , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domPolygons , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: material + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "material" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPolygons , attrMaterial )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPolygons)); + meta->validate(); + + return meta; +} + +daeElementRef +domPolygons::domPh::create(DAE& dae) +{ + domPolygons::domPhRef ref = new domPolygons::domPh(dae); + return ref; +} + + +daeMetaElement * +domPolygons::domPh::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "ph" ); + meta->registerClass(domPolygons::domPh::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domPolygons::domPh,elemP) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "h" ); + mea->setOffset( daeOffsetOf(domPolygons::domPh,elemH_array) ); + mea->setElementType( domPolygons::domPh::domH::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domPolygons::domPh)); + meta->validate(); + + return meta; +} + +daeElementRef +domPolygons::domPh::domH::create(DAE& dae) +{ + domPolygons::domPh::domHRef ref = new domPolygons::domPh::domH(dae); + return ref; +} + + +daeMetaElement * +domPolygons::domPh::domH::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "h" ); + meta->registerClass(domPolygons::domPh::domH::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfUInts")); + ma->setOffset( daeOffsetOf( domPolygons::domPh::domH , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPolygons::domPh::domH)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domPolylist.cpp b/src/1.4/dom/domPolylist.cpp new file mode 100644 index 0000000..307480b --- /dev/null +++ b/src/1.4/dom/domPolylist.cpp @@ -0,0 +1,149 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domPolylist::create(DAE& dae) +{ + domPolylistRef ref = new domPolylist(dae); + return ref; +} + + +daeMetaElement * +domPolylist::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "polylist" ); + meta->registerClass(domPolylist::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domPolylist,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "vcount" ); + mea->setOffset( daeOffsetOf(domPolylist,elemVcount) ); + mea->setElementType( domPolylist::domVcount::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domPolylist,elemP) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domPolylist,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPolylist , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domPolylist , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: material + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "material" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domPolylist , attrMaterial )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPolylist)); + meta->validate(); + + return meta; +} + +daeElementRef +domPolylist::domVcount::create(DAE& dae) +{ + domPolylist::domVcountRef ref = new domPolylist::domVcount(dae); + return ref; +} + + +daeMetaElement * +domPolylist::domVcount::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "vcount" ); + meta->registerClass(domPolylist::domVcount::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfUInts")); + ma->setOffset( daeOffsetOf( domPolylist::domVcount , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domPolylist::domVcount)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domProfile_CG.cpp b/src/1.4/dom/domProfile_CG.cpp new file mode 100644 index 0000000..7292428 --- /dev/null +++ b/src/1.4/dom/domProfile_CG.cpp @@ -0,0 +1,721 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domProfile_CG::create(DAE& dae) +{ + domProfile_CGRef ref = new domProfile_CG(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "profile_CG" ); + meta->registerClass(domProfile_CG::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domProfile_CG,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "code" ); + mea->setOffset( daeOffsetOf(domProfile_CG,elemCode_array) ); + mea->setElementType( domFx_code_profile::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "include" ); + mea->setOffset( daeOffsetOf(domProfile_CG,elemInclude_array) ); + mea->setElementType( domFx_include_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 1, 3002, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_CG,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_CG,elemNewparam_array) ); + mea->setElementType( domCg_newparam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6003, 1, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domProfile_CG,elemTechnique_array) ); + mea->setElementType( domProfile_CG::domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6004, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_CG,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 6004 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_CG,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_CG,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_CG,_CMData), 2); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_CG , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: platform + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "platform" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_CG , attrPlatform )); + ma->setContainer( meta ); + ma->setDefaultString( "PC"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::create(DAE& dae) +{ + domProfile_CG::domTechniqueRef ref = new domProfile_CG::domTechnique(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique" ); + meta->registerClass(domProfile_CG::domTechnique::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 2, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "code" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemCode_array) ); + mea->setElementType( domFx_code_profile::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "include" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemInclude_array) ); + mea->setElementType( domFx_include_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 1, 3003, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemNewparam_array) ); + mea->setElementType( domCg_newparam::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "setparam" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemSetparam_array) ); + mea->setElementType( domCg_setparam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6004, 1, -1 ); + mea->setName( "pass" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemPass_array) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6005, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 6005 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_CG::domTechnique,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_CG::domTechnique,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_CG::domTechnique,_CMData), 2); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPassRef ref = new domProfile_CG::domTechnique::domPass(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "pass" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "color_target" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemColor_target_array) ); + mea->setElementType( domFx_colortarget_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "depth_target" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemDepth_target_array) ); + mea->setElementType( domFx_depthtarget_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "stencil_target" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemStencil_target_array) ); + mea->setElementType( domFx_stenciltarget_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "color_clear" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemColor_clear_array) ); + mea->setElementType( domFx_clearcolor_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 ); + mea->setName( "depth_clear" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemDepth_clear_array) ); + mea->setElementType( domFx_cleardepth_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6, 0, -1 ); + mea->setName( "stencil_clear" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemStencil_clear_array) ); + mea->setElementType( domFx_clearstencil_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "draw" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemDraw) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::domDraw::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 8, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "gl_pipeline_settings" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemGl_pipeline_settings_array) ); + mea->setElementType( domGl_pipeline_settings::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "shader" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemShader_array) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3009, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3009 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_CG::domTechnique::domPass,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_CG::domTechnique::domPass,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_CG::domTechnique::domPass,_CMData), 1); + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::domDraw::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPass::domDrawRef ref = new domProfile_CG::domTechnique::domPass::domDraw(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::domDraw::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "draw" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::domDraw::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_draw_common")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domDraw , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domDraw)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::domShader::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPass::domShaderRef ref = new domProfile_CG::domTechnique::domPass::domShader(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::domShader::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "shader" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaSequence( meta, cm, 1, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "compiler_target" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemCompiler_target) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "compiler_options" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemCompiler_options) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "name" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemName) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domName::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "bind" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemBind_array) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domBind::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + meta->setCMRoot( cm ); + + // Add attribute: stage + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "stage" ); + ma->setType( dae.getAtomicTypes().get("Cg_pipeline_stage")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader , attrStage )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPass::domShader::domCompiler_targetRef ref = new domProfile_CG::domTechnique::domPass::domShader::domCompiler_target(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "compiler_target" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domCompiler_target , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domCompiler_target)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPass::domShader::domCompiler_optionsRef ref = new domProfile_CG::domTechnique::domPass::domShader::domCompiler_options(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "compiler_options" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domCompiler_options , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domCompiler_options)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::domShader::domName::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPass::domShader::domNameRef ref = new domProfile_CG::domTechnique::domPass::domShader::domName(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::domShader::domName::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "name" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domName::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domName , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domName , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domName)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::domShader::domBind::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPass::domShader::domBindRef ref = new domProfile_CG::domTechnique::domPass::domShader::domBind(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::domShader::domBind::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bind" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domBind::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cg_param_type" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,elemCg_param_type) ); + mea->setElementType( domCg_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,elemParam) ); + mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,_CMData), 1); + // Add attribute: symbol + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "symbol" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domBind , attrSymbol )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domBind)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::create(DAE& dae) +{ + domProfile_CG::domTechnique::domPass::domShader::domBind::domParamRef ref = new domProfile_CG::domTechnique::domPass::domShader::domBind::domParam(dae); + return ref; +} + + +daeMetaElement * +domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domBind::domParam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domBind::domParam)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domProfile_COMMON.cpp b/src/1.4/dom/domProfile_COMMON.cpp new file mode 100644 index 0000000..d62c0b6 --- /dev/null +++ b/src/1.4/dom/domProfile_COMMON.cpp @@ -0,0 +1,563 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domProfile_COMMON::create(DAE& dae) +{ + domProfile_COMMONRef ref = new domProfile_COMMON(dae); + return ref; +} + + +daeMetaElement * +domProfile_COMMON::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "profile_COMMON" ); + meta->registerClass(domProfile_COMMON::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON,elemNewparam_array) ); + mea->setElementType( domCommon_newparam_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 3002, 1, 1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON,elemTechnique) ); + mea->setElementType( domProfile_COMMON::domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_COMMON,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_COMMON,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_COMMON,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_COMMON , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_COMMON)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_COMMON::domTechnique::create(DAE& dae) +{ + domProfile_COMMON::domTechniqueRef ref = new domProfile_COMMON::domTechnique(dae); + return ref; +} + + +daeMetaElement * +domProfile_COMMON::domTechnique::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique" ); + meta->registerClass(domProfile_COMMON::domTechnique::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemNewparam_array) ); + mea->setElementType( domCommon_newparam_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 1, 3002, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "constant" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemConstant) ); + mea->setElementType( domProfile_COMMON::domTechnique::domConstant::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "lambert" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemLambert) ); + mea->setElementType( domProfile_COMMON::domTechnique::domLambert::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "phong" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemPhong) ); + mea->setElementType( domProfile_COMMON::domTechnique::domPhong::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "blinn" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemBlinn) ); + mea->setElementType( domProfile_COMMON::domTechnique::domBlinn::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_COMMON::domTechnique,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_COMMON::domTechnique,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_COMMON::domTechnique,_CMData), 2); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_COMMON::domTechnique , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_COMMON::domTechnique , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_COMMON::domTechnique)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_COMMON::domTechnique::domConstant::create(DAE& dae) +{ + domProfile_COMMON::domTechnique::domConstantRef ref = new domProfile_COMMON::domTechnique::domConstant(dae); + return ref; +} + + +daeMetaElement * +domProfile_COMMON::domTechnique::domConstant::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "constant" ); + meta->registerClass(domProfile_COMMON::domTechnique::domConstant::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "emission" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domConstant,elemEmission) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "reflective" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domConstant,elemReflective) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "reflectivity" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domConstant,elemReflectivity) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "transparent" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domConstant,elemTransparent) ); + mea->setElementType( domCommon_transparent_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "transparency" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domConstant,elemTransparency) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "index_of_refraction" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domConstant,elemIndex_of_refraction) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domProfile_COMMON::domTechnique::domConstant)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_COMMON::domTechnique::domLambert::create(DAE& dae) +{ + domProfile_COMMON::domTechnique::domLambertRef ref = new domProfile_COMMON::domTechnique::domLambert(dae); + return ref; +} + + +daeMetaElement * +domProfile_COMMON::domTechnique::domLambert::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "lambert" ); + meta->registerClass(domProfile_COMMON::domTechnique::domLambert::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "emission" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemEmission) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "ambient" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemAmbient) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "diffuse" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemDiffuse) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "reflective" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemReflective) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "reflectivity" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemReflectivity) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "transparent" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemTransparent) ); + mea->setElementType( domCommon_transparent_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "transparency" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemTransparency) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "index_of_refraction" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domLambert,elemIndex_of_refraction) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 7 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domProfile_COMMON::domTechnique::domLambert)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_COMMON::domTechnique::domPhong::create(DAE& dae) +{ + domProfile_COMMON::domTechnique::domPhongRef ref = new domProfile_COMMON::domTechnique::domPhong(dae); + return ref; +} + + +daeMetaElement * +domProfile_COMMON::domTechnique::domPhong::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "phong" ); + meta->registerClass(domProfile_COMMON::domTechnique::domPhong::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "emission" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemEmission) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "ambient" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemAmbient) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "diffuse" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemDiffuse) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "specular" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemSpecular) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "shininess" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemShininess) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "reflective" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemReflective) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "reflectivity" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemReflectivity) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "transparent" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemTransparent) ); + mea->setElementType( domCommon_transparent_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "transparency" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemTransparency) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "index_of_refraction" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domPhong,elemIndex_of_refraction) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domProfile_COMMON::domTechnique::domPhong)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_COMMON::domTechnique::domBlinn::create(DAE& dae) +{ + domProfile_COMMON::domTechnique::domBlinnRef ref = new domProfile_COMMON::domTechnique::domBlinn(dae); + return ref; +} + + +daeMetaElement * +domProfile_COMMON::domTechnique::domBlinn::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "blinn" ); + meta->registerClass(domProfile_COMMON::domTechnique::domBlinn::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "emission" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemEmission) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "ambient" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemAmbient) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "diffuse" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemDiffuse) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "specular" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemSpecular) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "shininess" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemShininess) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "reflective" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemReflective) ); + mea->setElementType( domCommon_color_or_texture_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "reflectivity" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemReflectivity) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "transparent" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemTransparent) ); + mea->setElementType( domCommon_transparent_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 8, 0, 1 ); + mea->setName( "transparency" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemTransparency) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 9, 0, 1 ); + mea->setName( "index_of_refraction" ); + mea->setOffset( daeOffsetOf(domProfile_COMMON::domTechnique::domBlinn,elemIndex_of_refraction) ); + mea->setElementType( domCommon_float_or_param_type::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 9 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domProfile_COMMON::domTechnique::domBlinn)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domProfile_GLES.cpp b/src/1.4/dom/domProfile_GLES.cpp new file mode 100644 index 0000000..86e22e7 --- /dev/null +++ b/src/1.4/dom/domProfile_GLES.cpp @@ -0,0 +1,652 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domProfile_GLES::create(DAE& dae) +{ + domProfile_GLESRef ref = new domProfile_GLES(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "profile_GLES" ); + meta->registerClass(domProfile_GLES::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domProfile_GLES,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_GLES,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_GLES,elemNewparam_array) ); + mea->setElementType( domGles_newparam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3002, 1, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domProfile_GLES,elemTechnique_array) ); + mea->setElementType( domProfile_GLES::domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_GLES,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3003 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_GLES,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_GLES,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_GLES,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_GLES , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: platform + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "platform" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLES , attrPlatform )); + ma->setContainer( meta ); + ma->setDefaultString( "PC"); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::create(DAE& dae) +{ + domProfile_GLES::domTechniqueRef ref = new domProfile_GLES::domTechnique(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique" ); + meta->registerClass(domProfile_GLES::domTechnique::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 2, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique,elemNewparam_array) ); + mea->setElementType( domGles_newparam::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "setparam" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique,elemSetparam_array) ); + mea->setElementType( domProfile_GLES::domTechnique::domSetparam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3003, 1, -1 ); + mea->setName( "pass" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique,elemPass_array) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3004, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3004 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_GLES::domTechnique,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_GLES::domTechnique,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_GLES::domTechnique,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domSetparam::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domSetparamRef ref = new domProfile_GLES::domTechnique::domSetparam(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domSetparam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "setparam" ); + meta->registerClass(domProfile_GLES::domTechnique::domSetparam::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domSetparam,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "gles_basic_type_common" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domSetparam,elemGles_basic_type_common) ); + mea->setElementType( domGles_basic_type_common::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 1, 1, 1 ) ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domSetparam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domSetparam)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPassRef ref = new domProfile_GLES::domTechnique::domPass(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "pass" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "color_target" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemColor_target) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::domColor_target::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "depth_target" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemDepth_target) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::domDepth_target::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "stencil_target" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemStencil_target) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::domStencil_target::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 ); + mea->setName( "color_clear" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemColor_clear) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::domColor_clear::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 ); + mea->setName( "depth_clear" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemDepth_clear) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::domDepth_clear::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 6, 0, 1 ); + mea->setName( "stencil_clear" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemStencil_clear) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::domStencil_clear::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "draw" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemDraw) ); + mea->setElementType( domProfile_GLES::domTechnique::domPass::domDraw::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 8, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "gles_pipeline_settings" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemGles_pipeline_settings_array) ); + mea->setElementType( domGles_pipeline_settings::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3009, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_GLES::domTechnique::domPass,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3009 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_GLES::domTechnique::domPass,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_GLES::domTechnique::domPass,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_GLES::domTechnique::domPass,_CMData), 1); + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::domColor_target::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPass::domColor_targetRef ref = new domProfile_GLES::domTechnique::domPass::domColor_target(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::domColor_target::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_target" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::domColor_target::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gles_rendertarget_common")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass::domColor_target , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass::domColor_target)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::domDepth_target::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPass::domDepth_targetRef ref = new domProfile_GLES::domTechnique::domPass::domDepth_target(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::domDepth_target::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_target" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::domDepth_target::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gles_rendertarget_common")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass::domDepth_target , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass::domDepth_target)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::domStencil_target::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPass::domStencil_targetRef ref = new domProfile_GLES::domTechnique::domPass::domStencil_target(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::domStencil_target::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_target" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::domStencil_target::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Gles_rendertarget_common")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass::domStencil_target , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass::domStencil_target)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::domColor_clear::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPass::domColor_clearRef ref = new domProfile_GLES::domTechnique::domPass::domColor_clear(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::domColor_clear::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "color_clear" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::domColor_clear::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_color_common")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass::domColor_clear , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass::domColor_clear)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::domDepth_clear::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPass::domDepth_clearRef ref = new domProfile_GLES::domTechnique::domPass::domDepth_clear(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::domDepth_clear::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "depth_clear" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::domDepth_clear::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass::domDepth_clear , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass::domDepth_clear)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::domStencil_clear::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPass::domStencil_clearRef ref = new domProfile_GLES::domTechnique::domPass::domStencil_clear(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::domStencil_clear::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "stencil_clear" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::domStencil_clear::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsByte")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass::domStencil_clear , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass::domStencil_clear)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLES::domTechnique::domPass::domDraw::create(DAE& dae) +{ + domProfile_GLES::domTechnique::domPass::domDrawRef ref = new domProfile_GLES::domTechnique::domPass::domDraw(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLES::domTechnique::domPass::domDraw::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "draw" ); + meta->registerClass(domProfile_GLES::domTechnique::domPass::domDraw::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_draw_common")); + ma->setOffset( daeOffsetOf( domProfile_GLES::domTechnique::domPass::domDraw , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLES::domTechnique::domPass::domDraw)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domProfile_GLSL.cpp b/src/1.4/dom/domProfile_GLSL.cpp new file mode 100644 index 0000000..adb2567 --- /dev/null +++ b/src/1.4/dom/domProfile_GLSL.cpp @@ -0,0 +1,702 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domProfile_GLSL::create(DAE& dae) +{ + domProfile_GLSLRef ref = new domProfile_GLSL(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "profile_GLSL" ); + meta->registerClass(domProfile_GLSL::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "code" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL,elemCode_array) ); + mea->setElementType( domFx_code_profile::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "include" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL,elemInclude_array) ); + mea->setElementType( domFx_include_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 1, 3002, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL,elemNewparam_array) ); + mea->setElementType( domGlsl_newparam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6003, 1, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL,elemTechnique_array) ); + mea->setElementType( domProfile_GLSL::domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6004, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 6004 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_GLSL,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_GLSL,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_GLSL,_CMData), 2); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_GLSL , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::create(DAE& dae) +{ + domProfile_GLSL::domTechniqueRef ref = new domProfile_GLSL::domTechnique(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique" ); + meta->registerClass(domProfile_GLSL::domTechnique::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "code" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemCode_array) ); + mea->setElementType( domFx_code_profile::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "include" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemInclude_array) ); + mea->setElementType( domFx_include_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 1, 3002, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "image" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemImage_array) ); + mea->setElementType( domImage::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "newparam" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemNewparam_array) ); + mea->setElementType( domGlsl_newparam::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "setparam" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemSetparam_array) ); + mea->setElementType( domGlsl_setparam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6003, 1, -1 ); + mea->setName( "pass" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemPass_array) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6004, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 6004 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_GLSL::domTechnique,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_GLSL::domTechnique,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_GLSL::domTechnique,_CMData), 2); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPassRef ref = new domProfile_GLSL::domTechnique::domPass(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "pass" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "color_target" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemColor_target_array) ); + mea->setElementType( domFx_colortarget_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "depth_target" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemDepth_target_array) ); + mea->setElementType( domFx_depthtarget_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "stencil_target" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemStencil_target_array) ); + mea->setElementType( domFx_stenciltarget_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "color_clear" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemColor_clear_array) ); + mea->setElementType( domFx_clearcolor_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 ); + mea->setName( "depth_clear" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemDepth_clear_array) ); + mea->setElementType( domFx_cleardepth_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 6, 0, -1 ); + mea->setName( "stencil_clear" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemStencil_clear_array) ); + mea->setElementType( domFx_clearstencil_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 ); + mea->setName( "draw" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemDraw) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::domDraw::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 8, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "gl_pipeline_settings" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemGl_pipeline_settings_array) ); + mea->setElementType( domGl_pipeline_settings::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "shader" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemShader_array) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::domShader::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3009, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3009 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_GLSL::domTechnique::domPass,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_GLSL::domTechnique::domPass,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_GLSL::domTechnique::domPass,_CMData), 1); + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::domDraw::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPass::domDrawRef ref = new domProfile_GLSL::domTechnique::domPass::domDraw(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::domDraw::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "draw" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::domDraw::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Fx_draw_common")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domDraw , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass::domDraw)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::domShader::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPass::domShaderRef ref = new domProfile_GLSL::domTechnique::domPass::domShader(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::domShader::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "shader" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::domShader::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "annotate" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader,elemAnnotate_array) ); + mea->setElementType( domFx_annotate_common::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaSequence( meta, cm, 1, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "compiler_target" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader,elemCompiler_target) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_target::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "compiler_options" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader,elemCompiler_options) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_options::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "name" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader,elemName) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::domShader::domName::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "bind" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader,elemBind_array) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::domShader::domBind::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + meta->setCMRoot( cm ); + + // Add attribute: stage + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "stage" ); + ma->setType( dae.getAtomicTypes().get("Glsl_pipeline_stage")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domShader , attrStage )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass::domShader)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_target::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_targetRef ref = new domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_target(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_target::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "compiler_target" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_target::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_target , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_target)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_options::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_optionsRef ref = new domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_options(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_options::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "compiler_options" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_options::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_options , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass::domShader::domCompiler_options)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::domShader::domName::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPass::domShader::domNameRef ref = new domProfile_GLSL::domTechnique::domPass::domShader::domName(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::domShader::domName::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "name" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::domShader::domName::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domShader::domName , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domShader::domName , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass::domShader::domName)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::domShader::domBind::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPass::domShader::domBindRef ref = new domProfile_GLSL::domTechnique::domPass::domShader::domBind(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::domShader::domBind::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bind" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::domShader::domBind::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "glsl_param_type" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader::domBind,elemGlsl_param_type) ); + mea->setElementType( domGlsl_param_type::registerElement(dae) ); + cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "param" ); + mea->setOffset( daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader::domBind,elemParam) ); + mea->setElementType( domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParam::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader::domBind,_contents)); + meta->addContentsOrder(daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader::domBind,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domProfile_GLSL::domTechnique::domPass::domShader::domBind,_CMData), 1); + // Add attribute: symbol + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "symbol" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domShader::domBind , attrSymbol )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass::domShader::domBind)); + meta->validate(); + + return meta; +} + +daeElementRef +domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParam::create(DAE& dae) +{ + domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParamRef ref = new domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParam(dae); + return ref; +} + + +daeMetaElement * +domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParam::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "param" ); + meta->registerClass(domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParam::create); + + meta->setIsInnerClass( true ); + + // Add attribute: ref + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "ref" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParam , attrRef )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domProfile_GLSL::domTechnique::domPass::domShader::domBind::domParam)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domRigid_body.cpp b/src/1.4/dom/domRigid_body.cpp new file mode 100644 index 0000000..15f2ab5 --- /dev/null +++ b/src/1.4/dom/domRigid_body.cpp @@ -0,0 +1,475 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domRigid_body::create(DAE& dae) +{ + domRigid_bodyRef ref = new domRigid_body(dae); + return ref; +} + + +daeMetaElement * +domRigid_body::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "rigid_body" ); + meta->registerClass(domRigid_body::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domRigid_body,elemTechnique_common) ); + mea->setElementType( domRigid_body::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domRigid_body,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domRigid_body,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_body , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_body , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_body)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_body::domTechnique_common::create(DAE& dae) +{ + domRigid_body::domTechnique_commonRef ref = new domRigid_body::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domRigid_body::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domRigid_body::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "dynamic" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common,elemDynamic) ); + mea->setElementType( domRigid_body::domTechnique_common::domDynamic::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "mass" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common,elemMass) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "mass_frame" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common,elemMass_frame) ); + mea->setElementType( domRigid_body::domTechnique_common::domMass_frame::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "inertia" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common,elemInertia) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 4, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "instance_physics_material" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common,elemInstance_physics_material) ); + mea->setElementType( domInstance_physics_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "physics_material" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common,elemPhysics_material) ); + mea->setElementType( domPhysics_material::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 5, 1, -1 ); + mea->setName( "shape" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common,elemShape_array) ); + mea->setElementType( domRigid_body::domTechnique_common::domShape::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 5 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domRigid_body::domTechnique_common,_contents)); + meta->addContentsOrder(daeOffsetOf(domRigid_body::domTechnique_common,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domRigid_body::domTechnique_common,_CMData), 1); + meta->setElementSize(sizeof(domRigid_body::domTechnique_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_body::domTechnique_common::domDynamic::create(DAE& dae) +{ + domRigid_body::domTechnique_common::domDynamicRef ref = new domRigid_body::domTechnique_common::domDynamic(dae); + return ref; +} + + +daeMetaElement * +domRigid_body::domTechnique_common::domDynamic::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "dynamic" ); + meta->registerClass(domRigid_body::domTechnique_common::domDynamic::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domRigid_body::domTechnique_common::domDynamic , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_body::domTechnique_common::domDynamic , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_body::domTechnique_common::domDynamic)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_body::domTechnique_common::domMass_frame::create(DAE& dae) +{ + domRigid_body::domTechnique_common::domMass_frameRef ref = new domRigid_body::domTechnique_common::domMass_frame(dae); + return ref; +} + + +daeMetaElement * +domRigid_body::domTechnique_common::domMass_frame::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "mass_frame" ); + meta->registerClass(domRigid_body::domTechnique_common::domMass_frame::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 1, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "translate" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domMass_frame,elemTranslate_array) ); + mea->setElementType( domTranslate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rotate" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domMass_frame,elemRotate_array) ); + mea->setElementType( domRotate::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domRigid_body::domTechnique_common::domMass_frame,_contents)); + meta->addContentsOrder(daeOffsetOf(domRigid_body::domTechnique_common::domMass_frame,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domRigid_body::domTechnique_common::domMass_frame,_CMData), 1); + meta->setElementSize(sizeof(domRigid_body::domTechnique_common::domMass_frame)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_body::domTechnique_common::domShape::create(DAE& dae) +{ + domRigid_body::domTechnique_common::domShapeRef ref = new domRigid_body::domTechnique_common::domShape(dae); + return ref; +} + + +daeMetaElement * +domRigid_body::domTechnique_common::domShape::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "shape" ); + meta->registerClass(domRigid_body::domTechnique_common::domShape::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "hollow" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemHollow) ); + mea->setElementType( domRigid_body::domTechnique_common::domShape::domHollow::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "mass" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemMass) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "density" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemDensity) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 3, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "instance_physics_material" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemInstance_physics_material) ); + mea->setElementType( domInstance_physics_material::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "physics_material" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemPhysics_material) ); + mea->setElementType( domPhysics_material::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 1, 4, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "instance_geometry" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemInstance_geometry) ); + mea->setElementType( domInstance_geometry::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "plane" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemPlane) ); + mea->setElementType( domPlane::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "box" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemBox) ); + mea->setElementType( domBox::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "sphere" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemSphere) ); + mea->setElementType( domSphere::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "cylinder" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemCylinder) ); + mea->setElementType( domCylinder::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "tapered_cylinder" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemTapered_cylinder) ); + mea->setElementType( domTapered_cylinder::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "capsule" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemCapsule) ); + mea->setElementType( domCapsule::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "tapered_capsule" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemTapered_capsule) ); + mea->setElementType( domTapered_capsule::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm = new daeMetaChoice( meta, cm, 2, 5, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "translate" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemTranslate_array) ); + mea->setElementType( domTranslate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rotate" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemRotate_array) ); + mea->setElementType( domRotate::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3006, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domRigid_body::domTechnique_common::domShape,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3006 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domRigid_body::domTechnique_common::domShape,_contents)); + meta->addContentsOrder(daeOffsetOf(domRigid_body::domTechnique_common::domShape,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domRigid_body::domTechnique_common::domShape,_CMData), 3); + meta->setElementSize(sizeof(domRigid_body::domTechnique_common::domShape)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_body::domTechnique_common::domShape::domHollow::create(DAE& dae) +{ + domRigid_body::domTechnique_common::domShape::domHollowRef ref = new domRigid_body::domTechnique_common::domShape::domHollow(dae); + return ref; +} + + +daeMetaElement * +domRigid_body::domTechnique_common::domShape::domHollow::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "hollow" ); + meta->registerClass(domRigid_body::domTechnique_common::domShape::domHollow::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domRigid_body::domTechnique_common::domShape::domHollow , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_body::domTechnique_common::domShape::domHollow , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_body::domTechnique_common::domShape::domHollow)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domRigid_constraint.cpp b/src/1.4/dom/domRigid_constraint.cpp new file mode 100644 index 0000000..3db4781 --- /dev/null +++ b/src/1.4/dom/domRigid_constraint.cpp @@ -0,0 +1,673 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domRigid_constraint::create(DAE& dae) +{ + domRigid_constraintRef ref = new domRigid_constraint(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "rigid_constraint" ); + meta->registerClass(domRigid_constraint::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "ref_attachment" ); + mea->setOffset( daeOffsetOf(domRigid_constraint,elemRef_attachment) ); + mea->setElementType( domRigid_constraint::domRef_attachment::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "attachment" ); + mea->setOffset( daeOffsetOf(domRigid_constraint,elemAttachment) ); + mea->setElementType( domRigid_constraint::domAttachment::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domRigid_constraint,elemTechnique_common) ); + mea->setElementType( domRigid_constraint::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domRigid_constraint,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domRigid_constraint,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + meta->setCMRoot( cm ); + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_constraint , attrSid )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_constraint , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_constraint)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domRef_attachment::create(DAE& dae) +{ + domRigid_constraint::domRef_attachmentRef ref = new domRigid_constraint::domRef_attachment(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domRef_attachment::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "ref_attachment" ); + meta->registerClass(domRigid_constraint::domRef_attachment::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "translate" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domRef_attachment,elemTranslate_array) ); + mea->setElementType( domTranslate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rotate" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domRef_attachment,elemRotate_array) ); + mea->setElementType( domRotate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domRef_attachment,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domRigid_constraint::domRef_attachment,_contents)); + meta->addContentsOrder(daeOffsetOf(domRigid_constraint::domRef_attachment,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domRigid_constraint::domRef_attachment,_CMData), 1); + // Add attribute: rigid_body + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "rigid_body" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domRigid_constraint::domRef_attachment , attrRigid_body )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_constraint::domRef_attachment)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domAttachment::create(DAE& dae) +{ + domRigid_constraint::domAttachmentRef ref = new domRigid_constraint::domAttachment(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domAttachment::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "attachment" ); + meta->registerClass(domRigid_constraint::domAttachment::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaChoice( meta, cm, 0, 0, 0, -1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "translate" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domAttachment,elemTranslate_array) ); + mea->setElementType( domTranslate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "rotate" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domAttachment,elemRotate_array) ); + mea->setElementType( domRotate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domAttachment,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3000 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domRigid_constraint::domAttachment,_contents)); + meta->addContentsOrder(daeOffsetOf(domRigid_constraint::domAttachment,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domRigid_constraint::domAttachment,_CMData), 1); + // Add attribute: rigid_body + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "rigid_body" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domRigid_constraint::domAttachment , attrRigid_body )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_constraint::domAttachment)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::create(DAE& dae) +{ + domRigid_constraint::domTechnique_commonRef ref = new domRigid_constraint::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domRigid_constraint::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "enabled" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common,elemEnabled) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domEnabled::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "interpenetrate" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common,elemInterpenetrate) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domInterpenetrate::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "limits" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common,elemLimits) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domLimits::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 ); + mea->setName( "spring" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common,elemSpring) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domSpring::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domEnabled::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domEnabledRef ref = new domRigid_constraint::domTechnique_common::domEnabled(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domEnabled::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "enabled" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domEnabled::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domRigid_constraint::domTechnique_common::domEnabled , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_constraint::domTechnique_common::domEnabled , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domEnabled)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domInterpenetrate::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domInterpenetrateRef ref = new domRigid_constraint::domTechnique_common::domInterpenetrate(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domInterpenetrate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "interpenetrate" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domInterpenetrate::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domRigid_constraint::domTechnique_common::domInterpenetrate , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRigid_constraint::domTechnique_common::domInterpenetrate , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domInterpenetrate)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domLimits::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domLimitsRef ref = new domRigid_constraint::domTechnique_common::domLimits(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domLimits::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "limits" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domLimits::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "swing_cone_and_twist" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domLimits,elemSwing_cone_and_twist) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "linear" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domLimits,elemLinear) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domLimits::domLinear::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domLimits)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twistRef ref = new domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "swing_cone_and_twist" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "min" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist,elemMin) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "max" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist,elemMax) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domLimits::domSwing_cone_and_twist)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domLimits::domLinear::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domLimits::domLinearRef ref = new domRigid_constraint::domTechnique_common::domLimits::domLinear(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domLimits::domLinear::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "linear" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domLimits::domLinear::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "min" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domLimits::domLinear,elemMin) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "max" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domLimits::domLinear,elemMax) ); + mea->setElementType( domTargetableFloat3::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domLimits::domLinear)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domSpring::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domSpringRef ref = new domRigid_constraint::domTechnique_common::domSpring(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domSpring::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "spring" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domSpring::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "angular" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring,elemAngular) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domSpring::domAngular::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "linear" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring,elemLinear) ); + mea->setElementType( domRigid_constraint::domTechnique_common::domSpring::domLinear::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domSpring)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domSpring::domAngular::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domSpring::domAngularRef ref = new domRigid_constraint::domTechnique_common::domSpring::domAngular(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domSpring::domAngular::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "angular" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domSpring::domAngular::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "stiffness" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring::domAngular,elemStiffness) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "damping" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring::domAngular,elemDamping) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "target_value" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring::domAngular,elemTarget_value) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domSpring::domAngular)); + meta->validate(); + + return meta; +} + +daeElementRef +domRigid_constraint::domTechnique_common::domSpring::domLinear::create(DAE& dae) +{ + domRigid_constraint::domTechnique_common::domSpring::domLinearRef ref = new domRigid_constraint::domTechnique_common::domSpring::domLinear(dae); + return ref; +} + + +daeMetaElement * +domRigid_constraint::domTechnique_common::domSpring::domLinear::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "linear" ); + meta->registerClass(domRigid_constraint::domTechnique_common::domSpring::domLinear::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "stiffness" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring::domLinear,elemStiffness) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "damping" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring::domLinear,elemDamping) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "target_value" ); + mea->setOffset( daeOffsetOf(domRigid_constraint::domTechnique_common::domSpring::domLinear,elemTarget_value) ); + mea->setElementType( domTargetableFloat::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domRigid_constraint::domTechnique_common::domSpring::domLinear)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domRotate.cpp b/src/1.4/dom/domRotate.cpp new file mode 100644 index 0000000..5d99de8 --- /dev/null +++ b/src/1.4/dom/domRotate.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domRotate::create(DAE& dae) +{ + domRotateRef ref = new domRotate(dae); + return ref; +} + + +daeMetaElement * +domRotate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "rotate" ); + meta->registerClass(domRotate::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4")); + ma->setOffset( daeOffsetOf( domRotate , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domRotate , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domRotate)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domSampler.cpp b/src/1.4/dom/domSampler.cpp new file mode 100644 index 0000000..5bbefcb --- /dev/null +++ b/src/1.4/dom/domSampler.cpp @@ -0,0 +1,72 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domSampler::create(DAE& dae) +{ + domSamplerRef ref = new domSampler(dae); + return ref; +} + + +daeMetaElement * +domSampler::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sampler" ); + meta->registerClass(domSampler::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domSampler,elemInput_array) ); + mea->setElementType( domInputLocal::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domSampler , attrId )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSampler)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domScale.cpp b/src/1.4/dom/domScale.cpp new file mode 100644 index 0000000..029823c --- /dev/null +++ b/src/1.4/dom/domScale.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domScale::create(DAE& dae) +{ + domScaleRef ref = new domScale(dae); + return ref; +} + + +daeMetaElement * +domScale::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "scale" ); + meta->registerClass(domScale::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domScale , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domScale , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domScale)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domSkew.cpp b/src/1.4/dom/domSkew.cpp new file mode 100644 index 0000000..ea400a7 --- /dev/null +++ b/src/1.4/dom/domSkew.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domSkew::create(DAE& dae) +{ + domSkewRef ref = new domSkew(dae); + return ref; +} + + +daeMetaElement * +domSkew::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "skew" ); + meta->registerClass(domSkew::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float7")); + ma->setOffset( daeOffsetOf( domSkew , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domSkew , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSkew)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domSkin.cpp b/src/1.4/dom/domSkin.cpp new file mode 100644 index 0000000..9e23085 --- /dev/null +++ b/src/1.4/dom/domSkin.cpp @@ -0,0 +1,319 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domSkin::create(DAE& dae) +{ + domSkinRef ref = new domSkin(dae); + return ref; +} + + +daeMetaElement * +domSkin::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "skin" ); + meta->registerClass(domSkin::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "bind_shape_matrix" ); + mea->setOffset( daeOffsetOf(domSkin,elemBind_shape_matrix) ); + mea->setElementType( domSkin::domBind_shape_matrix::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 3, -1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domSkin,elemSource_array) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "joints" ); + mea->setOffset( daeOffsetOf(domSkin,elemJoints) ); + mea->setElementType( domSkin::domJoints::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 ); + mea->setName( "vertex_weights" ); + mea->setOffset( daeOffsetOf(domSkin,elemVertex_weights) ); + mea->setElementType( domSkin::domVertex_weights::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domSkin,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 4 ); + meta->setCMRoot( cm ); + + // Add attribute: source + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "source" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domSkin , attrSource )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSkin)); + meta->validate(); + + return meta; +} + +daeElementRef +domSkin::domBind_shape_matrix::create(DAE& dae) +{ + domSkin::domBind_shape_matrixRef ref = new domSkin::domBind_shape_matrix(dae); + return ref; +} + + +daeMetaElement * +domSkin::domBind_shape_matrix::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "bind_shape_matrix" ); + meta->registerClass(domSkin::domBind_shape_matrix::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float4x4")); + ma->setOffset( daeOffsetOf( domSkin::domBind_shape_matrix , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSkin::domBind_shape_matrix)); + meta->validate(); + + return meta; +} + +daeElementRef +domSkin::domJoints::create(DAE& dae) +{ + domSkin::domJointsRef ref = new domSkin::domJoints(dae); + return ref; +} + + +daeMetaElement * +domSkin::domJoints::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "joints" ); + meta->registerClass(domSkin::domJoints::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 2, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domSkin::domJoints,elemInput_array) ); + mea->setElementType( domInputLocal::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domSkin::domJoints,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domSkin::domJoints)); + meta->validate(); + + return meta; +} + +daeElementRef +domSkin::domVertex_weights::create(DAE& dae) +{ + domSkin::domVertex_weightsRef ref = new domSkin::domVertex_weights(dae); + return ref; +} + + +daeMetaElement * +domSkin::domVertex_weights::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "vertex_weights" ); + meta->registerClass(domSkin::domVertex_weights::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 2, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domSkin::domVertex_weights,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "vcount" ); + mea->setOffset( daeOffsetOf(domSkin::domVertex_weights,elemVcount) ); + mea->setElementType( domSkin::domVertex_weights::domVcount::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "v" ); + mea->setOffset( daeOffsetOf(domSkin::domVertex_weights,elemV) ); + mea->setElementType( domSkin::domVertex_weights::domV::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domSkin::domVertex_weights,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domSkin::domVertex_weights , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSkin::domVertex_weights)); + meta->validate(); + + return meta; +} + +daeElementRef +domSkin::domVertex_weights::domVcount::create(DAE& dae) +{ + domSkin::domVertex_weights::domVcountRef ref = new domSkin::domVertex_weights::domVcount(dae); + return ref; +} + + +daeMetaElement * +domSkin::domVertex_weights::domVcount::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "vcount" ); + meta->registerClass(domSkin::domVertex_weights::domVcount::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfUInts")); + ma->setOffset( daeOffsetOf( domSkin::domVertex_weights::domVcount , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSkin::domVertex_weights::domVcount)); + meta->validate(); + + return meta; +} + +daeElementRef +domSkin::domVertex_weights::domV::create(DAE& dae) +{ + domSkin::domVertex_weights::domVRef ref = new domSkin::domVertex_weights::domV(dae); + return ref; +} + + +daeMetaElement * +domSkin::domVertex_weights::domV::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "v" ); + meta->registerClass(domSkin::domVertex_weights::domV::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("ListOfInts")); + ma->setOffset( daeOffsetOf( domSkin::domVertex_weights::domV , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSkin::domVertex_weights::domV)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domSource.cpp b/src/1.4/dom/domSource.cpp new file mode 100644 index 0000000..0a29eb3 --- /dev/null +++ b/src/1.4/dom/domSource.cpp @@ -0,0 +1,175 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domSource::create(DAE& dae) +{ + domSourceRef ref = new domSource(dae); + return ref; +} + + +daeMetaElement * +domSource::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "source" ); + meta->registerClass(domSource::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domSource,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + cm = new daeMetaChoice( meta, cm, 0, 1, 0, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "IDREF_array" ); + mea->setOffset( daeOffsetOf(domSource,elemIDREF_array) ); + mea->setElementType( domIDREF_array::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "Name_array" ); + mea->setOffset( daeOffsetOf(domSource,elemName_array) ); + mea->setElementType( domName_array::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "bool_array" ); + mea->setOffset( daeOffsetOf(domSource,elemBool_array) ); + mea->setElementType( domBool_array::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "float_array" ); + mea->setOffset( daeOffsetOf(domSource,elemFloat_array) ); + mea->setElementType( domFloat_array::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "int_array" ); + mea->setOffset( daeOffsetOf(domSource,elemInt_array) ); + mea->setElementType( domInt_array::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 ); + mea->setName( "technique_common" ); + mea->setOffset( daeOffsetOf(domSource,elemTechnique_common) ); + mea->setElementType( domSource::domTechnique_common::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "technique" ); + mea->setOffset( daeOffsetOf(domSource,elemTechnique_array) ); + mea->setElementType( domTechnique::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domSource,_contents)); + meta->addContentsOrder(daeOffsetOf(domSource,_contentsOrder)); + + meta->addCMDataArray(daeOffsetOf(domSource,_CMData), 1); + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domSource , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domSource , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSource)); + meta->validate(); + + return meta; +} + +daeElementRef +domSource::domTechnique_common::create(DAE& dae) +{ + domSource::domTechnique_commonRef ref = new domSource::domTechnique_common(dae); + return ref; +} + + +daeMetaElement * +domSource::domTechnique_common::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique_common" ); + meta->registerClass(domSource::domTechnique_common::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "accessor" ); + mea->setOffset( daeOffsetOf(domSource::domTechnique_common,elemAccessor) ); + mea->setElementType( domAccessor::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domSource::domTechnique_common)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domSphere.cpp b/src/1.4/dom/domSphere.cpp new file mode 100644 index 0000000..dda6790 --- /dev/null +++ b/src/1.4/dom/domSphere.cpp @@ -0,0 +1,103 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domSphere::create(DAE& dae) +{ + domSphereRef ref = new domSphere(dae); + return ref; +} + + +daeMetaElement * +domSphere::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "sphere" ); + meta->registerClass(domSphere::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "radius" ); + mea->setOffset( daeOffsetOf(domSphere,elemRadius) ); + mea->setElementType( domSphere::domRadius::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domSphere,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domSphere)); + meta->validate(); + + return meta; +} + +daeElementRef +domSphere::domRadius::create(DAE& dae) +{ + domSphere::domRadiusRef ref = new domSphere::domRadius(dae); + return ref; +} + + +daeMetaElement * +domSphere::domRadius::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius" ); + meta->registerClass(domSphere::domRadius::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domSphere::domRadius , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSphere::domRadius)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domSpline.cpp b/src/1.4/dom/domSpline.cpp new file mode 100644 index 0000000..e32b64a --- /dev/null +++ b/src/1.4/dom/domSpline.cpp @@ -0,0 +1,130 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domSpline::create(DAE& dae) +{ + domSplineRef ref = new domSpline(dae); + return ref; +} + + +daeMetaElement * +domSpline::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "spline" ); + meta->registerClass(domSpline::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "source" ); + mea->setOffset( daeOffsetOf(domSpline,elemSource_array) ); + mea->setElementType( domSource::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "control_vertices" ); + mea->setOffset( daeOffsetOf(domSpline,elemControl_vertices) ); + mea->setElementType( domSpline::domControl_vertices::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domSpline,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: closed + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "closed" ); + ma->setType( dae.getAtomicTypes().get("Bool")); + ma->setOffset( daeOffsetOf( domSpline , attrClosed )); + ma->setContainer( meta ); + ma->setDefaultString( "false"); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domSpline)); + meta->validate(); + + return meta; +} + +daeElementRef +domSpline::domControl_vertices::create(DAE& dae) +{ + domSpline::domControl_verticesRef ref = new domSpline::domControl_vertices(dae); + return ref; +} + + +daeMetaElement * +domSpline::domControl_vertices::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "control_vertices" ); + meta->registerClass(domSpline::domControl_vertices::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domSpline::domControl_vertices,elemInput_array) ); + mea->setElementType( domInputLocal::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domSpline::domControl_vertices,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domSpline::domControl_vertices)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTapered_capsule.cpp b/src/1.4/dom/domTapered_capsule.cpp new file mode 100644 index 0000000..d495f2f --- /dev/null +++ b/src/1.4/dom/domTapered_capsule.cpp @@ -0,0 +1,187 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTapered_capsule::create(DAE& dae) +{ + domTapered_capsuleRef ref = new domTapered_capsule(dae); + return ref; +} + + +daeMetaElement * +domTapered_capsule::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "tapered_capsule" ); + meta->registerClass(domTapered_capsule::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "height" ); + mea->setOffset( daeOffsetOf(domTapered_capsule,elemHeight) ); + mea->setElementType( domTapered_capsule::domHeight::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "radius1" ); + mea->setOffset( daeOffsetOf(domTapered_capsule,elemRadius1) ); + mea->setElementType( domTapered_capsule::domRadius1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "radius2" ); + mea->setOffset( daeOffsetOf(domTapered_capsule,elemRadius2) ); + mea->setElementType( domTapered_capsule::domRadius2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domTapered_capsule,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domTapered_capsule)); + meta->validate(); + + return meta; +} + +daeElementRef +domTapered_capsule::domHeight::create(DAE& dae) +{ + domTapered_capsule::domHeightRef ref = new domTapered_capsule::domHeight(dae); + return ref; +} + + +daeMetaElement * +domTapered_capsule::domHeight::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "height" ); + meta->registerClass(domTapered_capsule::domHeight::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domTapered_capsule::domHeight , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTapered_capsule::domHeight)); + meta->validate(); + + return meta; +} + +daeElementRef +domTapered_capsule::domRadius1::create(DAE& dae) +{ + domTapered_capsule::domRadius1Ref ref = new domTapered_capsule::domRadius1(dae); + return ref; +} + + +daeMetaElement * +domTapered_capsule::domRadius1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius1" ); + meta->registerClass(domTapered_capsule::domRadius1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domTapered_capsule::domRadius1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTapered_capsule::domRadius1)); + meta->validate(); + + return meta; +} + +daeElementRef +domTapered_capsule::domRadius2::create(DAE& dae) +{ + domTapered_capsule::domRadius2Ref ref = new domTapered_capsule::domRadius2(dae); + return ref; +} + + +daeMetaElement * +domTapered_capsule::domRadius2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius2" ); + meta->registerClass(domTapered_capsule::domRadius2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domTapered_capsule::domRadius2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTapered_capsule::domRadius2)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTapered_cylinder.cpp b/src/1.4/dom/domTapered_cylinder.cpp new file mode 100644 index 0000000..8d3cfde --- /dev/null +++ b/src/1.4/dom/domTapered_cylinder.cpp @@ -0,0 +1,187 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTapered_cylinder::create(DAE& dae) +{ + domTapered_cylinderRef ref = new domTapered_cylinder(dae); + return ref; +} + + +daeMetaElement * +domTapered_cylinder::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "tapered_cylinder" ); + meta->registerClass(domTapered_cylinder::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 ); + mea->setName( "height" ); + mea->setOffset( daeOffsetOf(domTapered_cylinder,elemHeight) ); + mea->setElementType( domTapered_cylinder::domHeight::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 1, 1 ); + mea->setName( "radius1" ); + mea->setOffset( daeOffsetOf(domTapered_cylinder,elemRadius1) ); + mea->setElementType( domTapered_cylinder::domRadius1::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 2, 1, 1 ); + mea->setName( "radius2" ); + mea->setOffset( daeOffsetOf(domTapered_cylinder,elemRadius2) ); + mea->setElementType( domTapered_cylinder::domRadius2::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domTapered_cylinder,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + meta->setElementSize(sizeof(domTapered_cylinder)); + meta->validate(); + + return meta; +} + +daeElementRef +domTapered_cylinder::domHeight::create(DAE& dae) +{ + domTapered_cylinder::domHeightRef ref = new domTapered_cylinder::domHeight(dae); + return ref; +} + + +daeMetaElement * +domTapered_cylinder::domHeight::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "height" ); + meta->registerClass(domTapered_cylinder::domHeight::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domTapered_cylinder::domHeight , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTapered_cylinder::domHeight)); + meta->validate(); + + return meta; +} + +daeElementRef +domTapered_cylinder::domRadius1::create(DAE& dae) +{ + domTapered_cylinder::domRadius1Ref ref = new domTapered_cylinder::domRadius1(dae); + return ref; +} + + +daeMetaElement * +domTapered_cylinder::domRadius1::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius1" ); + meta->registerClass(domTapered_cylinder::domRadius1::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domTapered_cylinder::domRadius1 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTapered_cylinder::domRadius1)); + meta->validate(); + + return meta; +} + +daeElementRef +domTapered_cylinder::domRadius2::create(DAE& dae) +{ + domTapered_cylinder::domRadius2Ref ref = new domTapered_cylinder::domRadius2(dae); + return ref; +} + + +daeMetaElement * +domTapered_cylinder::domRadius2::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "radius2" ); + meta->registerClass(domTapered_cylinder::domRadius2::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float2")); + ma->setOffset( daeOffsetOf( domTapered_cylinder::domRadius2 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTapered_cylinder::domRadius2)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTargetableFloat.cpp b/src/1.4/dom/domTargetableFloat.cpp new file mode 100644 index 0000000..f4388cd --- /dev/null +++ b/src/1.4/dom/domTargetableFloat.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTargetableFloat::create(DAE& dae) +{ + domTargetableFloatRef ref = new domTargetableFloat(dae); + return ref; +} + + +daeMetaElement * +domTargetableFloat::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "TargetableFloat" ); + meta->registerClass(domTargetableFloat::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float")); + ma->setOffset( daeOffsetOf( domTargetableFloat , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTargetableFloat , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTargetableFloat)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTargetableFloat3.cpp b/src/1.4/dom/domTargetableFloat3.cpp new file mode 100644 index 0000000..1bf8ce8 --- /dev/null +++ b/src/1.4/dom/domTargetableFloat3.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTargetableFloat3::create(DAE& dae) +{ + domTargetableFloat3Ref ref = new domTargetableFloat3(dae); + return ref; +} + + +daeMetaElement * +domTargetableFloat3::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "TargetableFloat3" ); + meta->registerClass(domTargetableFloat3::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domTargetableFloat3 , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTargetableFloat3 , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTargetableFloat3)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTechnique.cpp b/src/1.4/dom/domTechnique.cpp new file mode 100644 index 0000000..07f0524 --- /dev/null +++ b/src/1.4/dom/domTechnique.cpp @@ -0,0 +1,87 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTechnique::create(DAE& dae) +{ + domTechniqueRef ref = new domTechnique(dae); + return ref; +} + + +daeMetaElement * +domTechnique::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "technique" ); + meta->registerClass(domTechnique::create); + + daeMetaCMPolicy *cm = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + cm = new daeMetaAny( meta, cm, 0, 0, -1 ); + + cm->setMaxOrdinal( 0 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + meta->setAllowsAny( true ); + // Ordered list of sub-elements + meta->addContents(daeOffsetOf(domTechnique,_contents)); + meta->addContentsOrder(daeOffsetOf(domTechnique,_contentsOrder)); + + // Add attribute: xmlns + { + daeMetaAttribute* ma = new daeMetaAttribute; + ma->setName( "xmlns" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domTechnique , attrXmlns )); + ma->setContainer( meta ); + //ma->setIsRequired( true ); + meta->appendAttribute(ma); + } + + // Add attribute: profile + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "profile" ); + ma->setType( dae.getAtomicTypes().get("xsNMTOKEN")); + ma->setOffset( daeOffsetOf( domTechnique , attrProfile )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTechnique)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTranslate.cpp b/src/1.4/dom/domTranslate.cpp new file mode 100644 index 0000000..57fcccd --- /dev/null +++ b/src/1.4/dom/domTranslate.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTranslate::create(DAE& dae) +{ + domTranslateRef ref = new domTranslate(dae); + return ref; +} + + +daeMetaElement * +domTranslate::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "translate" ); + meta->registerClass(domTranslate::create); + + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaArrayAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("Float3")); + ma->setOffset( daeOffsetOf( domTranslate , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + // Add attribute: sid + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "sid" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTranslate , attrSid )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTranslate)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTriangles.cpp b/src/1.4/dom/domTriangles.cpp new file mode 100644 index 0000000..9ee0bf2 --- /dev/null +++ b/src/1.4/dom/domTriangles.cpp @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTriangles::create(DAE& dae) +{ + domTrianglesRef ref = new domTriangles(dae); + return ref; +} + + +daeMetaElement * +domTriangles::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "triangles" ); + meta->registerClass(domTriangles::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domTriangles,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domTriangles,elemP) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domTriangles,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTriangles , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domTriangles , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: material + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "material" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTriangles , attrMaterial )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTriangles)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTrifans.cpp b/src/1.4/dom/domTrifans.cpp new file mode 100644 index 0000000..b05bec2 --- /dev/null +++ b/src/1.4/dom/domTrifans.cpp @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTrifans::create(DAE& dae) +{ + domTrifansRef ref = new domTrifans(dae); + return ref; +} + + +daeMetaElement * +domTrifans::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "trifans" ); + meta->registerClass(domTrifans::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domTrifans,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domTrifans,elemP_array) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domTrifans,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTrifans , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domTrifans , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: material + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "material" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTrifans , attrMaterial )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTrifans)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTristrips.cpp b/src/1.4/dom/domTristrips.cpp new file mode 100644 index 0000000..1ee52fa --- /dev/null +++ b/src/1.4/dom/domTristrips.cpp @@ -0,0 +1,107 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domTristrips::create(DAE& dae) +{ + domTristripsRef ref = new domTristrips(dae); + return ref; +} + + +daeMetaElement * +domTristrips::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "tristrips" ); + meta->registerClass(domTristrips::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domTristrips,elemInput_array) ); + mea->setElementType( domInputLocalOffset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "p" ); + mea->setOffset( daeOffsetOf(domTristrips,elemP_array) ); + mea->setElementType( domP::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domTristrips,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 2 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTristrips , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + // Add attribute: count + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "count" ); + ma->setType( dae.getAtomicTypes().get("Uint")); + ma->setOffset( daeOffsetOf( domTristrips , attrCount )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: material + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "material" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domTristrips , attrMaterial )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domTristrips)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domTypes.cpp b/src/1.4/dom/domTypes.cpp new file mode 100644 index 0000000..0a8bfd8 --- /dev/null +++ b/src/1.4/dom/domTypes.cpp @@ -0,0 +1,2942 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include + + +void registerDomTypes(DAE& dae) +{ + daeAtomicType* type = NULL; + daeAtomicTypeList& atomicTypes = dae.getAtomicTypes(); + + // TYPEDEF: Bool //check if this type has an existing base + type = atomicTypes.get("xsBoolean"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Bool"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Bool"); + } + + // TYPEDEF: DateTime //check if this type has an existing base + type = atomicTypes.get("xsDateTime"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("DateTime"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("DateTime"); + } + + // TYPEDEF: Float //check if this type has an existing base + type = atomicTypes.get("xsDouble"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float"); + } + + // TYPEDEF: Int //check if this type has an existing base + type = atomicTypes.get("xsLong"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Int"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Int"); + } + + // TYPEDEF: Name //check if this type has an existing base + type = atomicTypes.get("xsName"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Name"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Name"); + } + + // TYPEDEF: String //check if this type has an existing base + type = atomicTypes.get("xsString"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("String"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("String"); + } + + // TYPEDEF: Token //check if this type has an existing base + type = atomicTypes.get("xsToken"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Token"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Token"); + } + + // TYPEDEF: Uint //check if this type has an existing base + type = atomicTypes.get("xsUnsignedLong"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Uint"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Uint"); + } + + // TYPEDEF: ListOfBools //check if this type has an existing base + type = atomicTypes.get("Bool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("ListOfBools"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("ListOfBools"); + } + + // TYPEDEF: ListOfFloats //check if this type has an existing base + type = atomicTypes.get("Float"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("ListOfFloats"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("ListOfFloats"); + } + + // TYPEDEF: ListOfHexBinary //check if this type has an existing base + type = atomicTypes.get("xsHexBinary"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("ListOfHexBinary"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("ListOfHexBinary"); + } + + // TYPEDEF: ListOfInts //check if this type has an existing base + type = atomicTypes.get("Int"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("ListOfInts"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("ListOfInts"); + } + + // TYPEDEF: ListOfNames //check if this type has an existing base + type = atomicTypes.get("Name"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("ListOfNames"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("ListOfNames"); + } + + // TYPEDEF: ListOfTokens //check if this type has an existing base + type = atomicTypes.get("Token"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("ListOfTokens"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("ListOfTokens"); + } + + // TYPEDEF: ListOfUInts //check if this type has an existing base + type = atomicTypes.get("Uint"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("ListOfUInts"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("ListOfUInts"); + } + + // TYPEDEF: Bool2 //check if this type has an existing base + type = atomicTypes.get("ListOfBools"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Bool2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Bool2"); + } + + // TYPEDEF: Bool3 //check if this type has an existing base + type = atomicTypes.get("ListOfBools"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Bool3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Bool3"); + } + + // TYPEDEF: Bool4 //check if this type has an existing base + type = atomicTypes.get("ListOfBools"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Bool4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Bool4"); + } + + // TYPEDEF: Float2 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float2"); + } + + // TYPEDEF: Float3 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float3"); + } + + // TYPEDEF: Float4 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float4"); + } + + // TYPEDEF: Float7 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float7"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float7"); + } + + // TYPEDEF: Float2x2 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float2x2"); + } + + // TYPEDEF: Float3x3 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float3x3"); + } + + // TYPEDEF: Float4x4 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float4x4"); + } + + // TYPEDEF: Float2x3 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float2x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float2x3"); + } + + // TYPEDEF: Float2x4 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float2x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float2x4"); + } + + // TYPEDEF: Float3x2 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float3x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float3x2"); + } + + // TYPEDEF: Float3x4 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float3x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float3x4"); + } + + // TYPEDEF: Float4x2 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float4x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float4x2"); + } + + // TYPEDEF: Float4x3 //check if this type has an existing base + type = atomicTypes.get("ListOfFloats"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Float4x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Float4x3"); + } + + // TYPEDEF: Int2 //check if this type has an existing base + type = atomicTypes.get("ListOfInts"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Int2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Int2"); + } + + // TYPEDEF: Int3 //check if this type has an existing base + type = atomicTypes.get("ListOfInts"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Int3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Int3"); + } + + // TYPEDEF: Int4 //check if this type has an existing base + type = atomicTypes.get("ListOfInts"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Int4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Int4"); + } + + // TYPEDEF: Int2x2 //check if this type has an existing base + type = atomicTypes.get("ListOfInts"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Int2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Int2x2"); + } + + // TYPEDEF: Int3x3 //check if this type has an existing base + type = atomicTypes.get("ListOfInts"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Int3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Int3x3"); + } + + // TYPEDEF: Int4x4 //check if this type has an existing base + type = atomicTypes.get("ListOfInts"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Int4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Int4x4"); + } + + // ENUM: MorphMethodType + type = new daeEnumType(dae); + type->_nameBindings.append("MorphMethodType"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("NORMALIZED"); + ((daeEnumType*)type)->_values->append(MORPHMETHODTYPE_NORMALIZED); + ((daeEnumType*)type)->_strings->append("RELATIVE"); + ((daeEnumType*)type)->_values->append(MORPHMETHODTYPE_RELATIVE); + atomicTypes.append( type ); + + // ENUM: NodeType + type = new daeEnumType(dae); + type->_nameBindings.append("NodeType"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("JOINT"); + ((daeEnumType*)type)->_values->append(NODETYPE_JOINT); + ((daeEnumType*)type)->_strings->append("NODE"); + ((daeEnumType*)type)->_values->append(NODETYPE_NODE); + atomicTypes.append( type ); + + // TYPEDEF: URIFragmentType //check if this type has an existing base + type = atomicTypes.get("xsAnyURI"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("URIFragmentType"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("URIFragmentType"); + } + + // ENUM: UpAxisType + type = new daeEnumType(dae); + type->_nameBindings.append("UpAxisType"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("X_UP"); + ((daeEnumType*)type)->_values->append(UPAXISTYPE_X_UP); + ((daeEnumType*)type)->_strings->append("Y_UP"); + ((daeEnumType*)type)->_values->append(UPAXISTYPE_Y_UP); + ((daeEnumType*)type)->_strings->append("Z_UP"); + ((daeEnumType*)type)->_values->append(UPAXISTYPE_Z_UP); + atomicTypes.append( type ); + + // ENUM: VersionType + type = new daeEnumType(dae); + type->_nameBindings.append("VersionType"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("1.4.0"); + ((daeEnumType*)type)->_values->append(VERSIONTYPE_1_4_0); + ((daeEnumType*)type)->_strings->append("1.4.1"); + ((daeEnumType*)type)->_values->append(VERSIONTYPE_1_4_1); + atomicTypes.append( type ); + + // TYPEDEF: Fx_color_common //check if this type has an existing base + type = atomicTypes.get("Float4"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Fx_color_common"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Fx_color_common"); + } + + // ENUM: Fx_opaque_enum + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_opaque_enum"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("A_ONE"); + ((daeEnumType*)type)->_values->append(FX_OPAQUE_ENUM_A_ONE); + ((daeEnumType*)type)->_strings->append("RGB_ZERO"); + ((daeEnumType*)type)->_values->append(FX_OPAQUE_ENUM_RGB_ZERO); + atomicTypes.append( type ); + + // ENUM: Fx_surface_type_enum + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_surface_type_enum"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("UNTYPED"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_TYPE_ENUM_UNTYPED); + ((daeEnumType*)type)->_strings->append("1D"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_TYPE_ENUM_1D); + ((daeEnumType*)type)->_strings->append("2D"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_TYPE_ENUM_2D); + ((daeEnumType*)type)->_strings->append("3D"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_TYPE_ENUM_3D); + ((daeEnumType*)type)->_strings->append("RECT"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_TYPE_ENUM_RECT); + ((daeEnumType*)type)->_strings->append("CUBE"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_TYPE_ENUM_CUBE); + ((daeEnumType*)type)->_strings->append("DEPTH"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_TYPE_ENUM_DEPTH); + atomicTypes.append( type ); + + // ENUM: Fx_surface_face_enum + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_surface_face_enum"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("POSITIVE_X"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FACE_ENUM_POSITIVE_X); + ((daeEnumType*)type)->_strings->append("NEGATIVE_X"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FACE_ENUM_NEGATIVE_X); + ((daeEnumType*)type)->_strings->append("POSITIVE_Y"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FACE_ENUM_POSITIVE_Y); + ((daeEnumType*)type)->_strings->append("NEGATIVE_Y"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FACE_ENUM_NEGATIVE_Y); + ((daeEnumType*)type)->_strings->append("POSITIVE_Z"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FACE_ENUM_POSITIVE_Z); + ((daeEnumType*)type)->_strings->append("NEGATIVE_Z"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FACE_ENUM_NEGATIVE_Z); + atomicTypes.append( type ); + + // ENUM: Fx_surface_format_hint_channels_enum + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_surface_format_hint_channels_enum"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("RGB"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_RGB); + ((daeEnumType*)type)->_strings->append("RGBA"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_RGBA); + ((daeEnumType*)type)->_strings->append("L"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_L); + ((daeEnumType*)type)->_strings->append("LA"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_LA); + ((daeEnumType*)type)->_strings->append("D"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_D); + ((daeEnumType*)type)->_strings->append("XYZ"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_XYZ); + ((daeEnumType*)type)->_strings->append("XYZW"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_XYZW); + atomicTypes.append( type ); + + // ENUM: Fx_surface_format_hint_precision_enum + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_surface_format_hint_precision_enum"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("LOW"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_LOW); + ((daeEnumType*)type)->_strings->append("MID"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_MID); + ((daeEnumType*)type)->_strings->append("HIGH"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_HIGH); + atomicTypes.append( type ); + + // ENUM: Fx_surface_format_hint_range_enum + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_surface_format_hint_range_enum"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("SNORM"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_RANGE_ENUM_SNORM); + ((daeEnumType*)type)->_strings->append("UNORM"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_RANGE_ENUM_UNORM); + ((daeEnumType*)type)->_strings->append("SINT"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_RANGE_ENUM_SINT); + ((daeEnumType*)type)->_strings->append("UINT"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_RANGE_ENUM_UINT); + ((daeEnumType*)type)->_strings->append("FLOAT"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_RANGE_ENUM_FLOAT); + atomicTypes.append( type ); + + // ENUM: Fx_surface_format_hint_option_enum + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_surface_format_hint_option_enum"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("SRGB_GAMMA"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_OPTION_ENUM_SRGB_GAMMA); + ((daeEnumType*)type)->_strings->append("NORMALIZED3"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_OPTION_ENUM_NORMALIZED3); + ((daeEnumType*)type)->_strings->append("NORMALIZED4"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_OPTION_ENUM_NORMALIZED4); + ((daeEnumType*)type)->_strings->append("COMPRESSABLE"); + ((daeEnumType*)type)->_values->append(FX_SURFACE_FORMAT_HINT_OPTION_ENUM_COMPRESSABLE); + atomicTypes.append( type ); + + // ENUM: Fx_sampler_wrap_common + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_sampler_wrap_common"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("NONE"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_COMMON_NONE); + ((daeEnumType*)type)->_strings->append("WRAP"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_COMMON_WRAP); + ((daeEnumType*)type)->_strings->append("MIRROR"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_COMMON_MIRROR); + ((daeEnumType*)type)->_strings->append("CLAMP"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_COMMON_CLAMP); + ((daeEnumType*)type)->_strings->append("BORDER"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_COMMON_BORDER); + atomicTypes.append( type ); + + // ENUM: Fx_sampler_filter_common + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_sampler_filter_common"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("NONE"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_FILTER_COMMON_NONE); + ((daeEnumType*)type)->_strings->append("NEAREST"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_FILTER_COMMON_NEAREST); + ((daeEnumType*)type)->_strings->append("LINEAR"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_FILTER_COMMON_LINEAR); + ((daeEnumType*)type)->_strings->append("NEAREST_MIPMAP_NEAREST"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_FILTER_COMMON_NEAREST_MIPMAP_NEAREST); + ((daeEnumType*)type)->_strings->append("LINEAR_MIPMAP_NEAREST"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_FILTER_COMMON_LINEAR_MIPMAP_NEAREST); + ((daeEnumType*)type)->_strings->append("NEAREST_MIPMAP_LINEAR"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_FILTER_COMMON_NEAREST_MIPMAP_LINEAR); + ((daeEnumType*)type)->_strings->append("LINEAR_MIPMAP_LINEAR"); + ((daeEnumType*)type)->_values->append(FX_SAMPLER_FILTER_COMMON_LINEAR_MIPMAP_LINEAR); + atomicTypes.append( type ); + + // ENUM: Fx_modifier_enum_common + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_modifier_enum_common"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("CONST"); + ((daeEnumType*)type)->_values->append(FX_MODIFIER_ENUM_COMMON_CONST); + ((daeEnumType*)type)->_strings->append("UNIFORM"); + ((daeEnumType*)type)->_values->append(FX_MODIFIER_ENUM_COMMON_UNIFORM); + ((daeEnumType*)type)->_strings->append("VARYING"); + ((daeEnumType*)type)->_values->append(FX_MODIFIER_ENUM_COMMON_VARYING); + ((daeEnumType*)type)->_strings->append("STATIC"); + ((daeEnumType*)type)->_values->append(FX_MODIFIER_ENUM_COMMON_STATIC); + ((daeEnumType*)type)->_strings->append("VOLATILE"); + ((daeEnumType*)type)->_values->append(FX_MODIFIER_ENUM_COMMON_VOLATILE); + ((daeEnumType*)type)->_strings->append("EXTERN"); + ((daeEnumType*)type)->_values->append(FX_MODIFIER_ENUM_COMMON_EXTERN); + ((daeEnumType*)type)->_strings->append("SHARED"); + ((daeEnumType*)type)->_values->append(FX_MODIFIER_ENUM_COMMON_SHARED); + atomicTypes.append( type ); + + // TYPEDEF: Fx_draw_common //check if this type has an existing base + type = atomicTypes.get("xsString"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Fx_draw_common"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Fx_draw_common"); + } + + // ENUM: Fx_pipeline_stage_common + type = new daeEnumType(dae); + type->_nameBindings.append("Fx_pipeline_stage_common"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("VERTEXPROGRAM"); + ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_COMMON_VERTEXPROGRAM); + ((daeEnumType*)type)->_strings->append("FRAGMENTPROGRAM"); + ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_COMMON_FRAGMENTPROGRAM); + ((daeEnumType*)type)->_strings->append("VERTEXSHADER"); + ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_COMMON_VERTEXSHADER); + ((daeEnumType*)type)->_strings->append("PIXELSHADER"); + ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_COMMON_PIXELSHADER); + atomicTypes.append( type ); + + // TYPEDEF: GL_MAX_LIGHTS_index //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("GL_MAX_LIGHTS_index"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("GL_MAX_LIGHTS_index"); + } + + // TYPEDEF: GL_MAX_CLIP_PLANES_index //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("GL_MAX_CLIP_PLANES_index"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("GL_MAX_CLIP_PLANES_index"); + } + + // TYPEDEF: GL_MAX_TEXTURE_IMAGE_UNITS_index //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("GL_MAX_TEXTURE_IMAGE_UNITS_index"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("GL_MAX_TEXTURE_IMAGE_UNITS_index"); + } + + // ENUM: Gl_blend_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_blend_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("ZERO"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ZERO); + ((daeEnumType*)type)->_strings->append("ONE"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ONE); + ((daeEnumType*)type)->_strings->append("SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ONE_MINUS_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("DEST_COLOR"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_DEST_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_DEST_COLOR"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ONE_MINUS_DEST_COLOR); + ((daeEnumType*)type)->_strings->append("SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ONE_MINUS_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("DST_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_DST_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_DST_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ONE_MINUS_DST_ALPHA); + ((daeEnumType*)type)->_strings->append("CONSTANT_COLOR"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_CONSTANT_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_COLOR"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ONE_MINUS_CONSTANT_COLOR); + ((daeEnumType*)type)->_strings->append("CONSTANT_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_CONSTANT_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_ONE_MINUS_CONSTANT_ALPHA); + ((daeEnumType*)type)->_strings->append("SRC_ALPHA_SATURATE"); + ((daeEnumType*)type)->_values->append(GL_BLEND_TYPE_SRC_ALPHA_SATURATE); + atomicTypes.append( type ); + + // ENUM: Gl_face_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_face_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("FRONT"); + ((daeEnumType*)type)->_values->append(GL_FACE_TYPE_FRONT); + ((daeEnumType*)type)->_strings->append("BACK"); + ((daeEnumType*)type)->_values->append(GL_FACE_TYPE_BACK); + ((daeEnumType*)type)->_strings->append("FRONT_AND_BACK"); + ((daeEnumType*)type)->_values->append(GL_FACE_TYPE_FRONT_AND_BACK); + atomicTypes.append( type ); + + // ENUM: Gl_blend_equation_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_blend_equation_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("FUNC_ADD"); + ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_TYPE_FUNC_ADD); + ((daeEnumType*)type)->_strings->append("FUNC_SUBTRACT"); + ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_TYPE_FUNC_SUBTRACT); + ((daeEnumType*)type)->_strings->append("FUNC_REVERSE_SUBTRACT"); + ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_TYPE_FUNC_REVERSE_SUBTRACT); + ((daeEnumType*)type)->_strings->append("MIN"); + ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_TYPE_MIN); + ((daeEnumType*)type)->_strings->append("MAX"); + ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_TYPE_MAX); + atomicTypes.append( type ); + + // ENUM: Gl_func_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_func_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("NEVER"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_NEVER); + ((daeEnumType*)type)->_strings->append("LESS"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_LESS); + ((daeEnumType*)type)->_strings->append("LEQUAL"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_LEQUAL); + ((daeEnumType*)type)->_strings->append("EQUAL"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_EQUAL); + ((daeEnumType*)type)->_strings->append("GREATER"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_GREATER); + ((daeEnumType*)type)->_strings->append("NOTEQUAL"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_NOTEQUAL); + ((daeEnumType*)type)->_strings->append("GEQUAL"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_GEQUAL); + ((daeEnumType*)type)->_strings->append("ALWAYS"); + ((daeEnumType*)type)->_values->append(GL_FUNC_TYPE_ALWAYS); + atomicTypes.append( type ); + + // ENUM: Gl_stencil_op_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_stencil_op_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("KEEP"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_KEEP); + ((daeEnumType*)type)->_strings->append("ZERO"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_ZERO); + ((daeEnumType*)type)->_strings->append("REPLACE"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_REPLACE); + ((daeEnumType*)type)->_strings->append("INCR"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_INCR); + ((daeEnumType*)type)->_strings->append("DECR"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_DECR); + ((daeEnumType*)type)->_strings->append("INVERT"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_INVERT); + ((daeEnumType*)type)->_strings->append("INCR_WRAP"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_INCR_WRAP); + ((daeEnumType*)type)->_strings->append("DECR_WRAP"); + ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_TYPE_DECR_WRAP); + atomicTypes.append( type ); + + // ENUM: Gl_material_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_material_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("EMISSION"); + ((daeEnumType*)type)->_values->append(GL_MATERIAL_TYPE_EMISSION); + ((daeEnumType*)type)->_strings->append("AMBIENT"); + ((daeEnumType*)type)->_values->append(GL_MATERIAL_TYPE_AMBIENT); + ((daeEnumType*)type)->_strings->append("DIFFUSE"); + ((daeEnumType*)type)->_values->append(GL_MATERIAL_TYPE_DIFFUSE); + ((daeEnumType*)type)->_strings->append("SPECULAR"); + ((daeEnumType*)type)->_values->append(GL_MATERIAL_TYPE_SPECULAR); + ((daeEnumType*)type)->_strings->append("AMBIENT_AND_DIFFUSE"); + ((daeEnumType*)type)->_values->append(GL_MATERIAL_TYPE_AMBIENT_AND_DIFFUSE); + atomicTypes.append( type ); + + // ENUM: Gl_fog_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_fog_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("LINEAR"); + ((daeEnumType*)type)->_values->append(GL_FOG_TYPE_LINEAR); + ((daeEnumType*)type)->_strings->append("EXP"); + ((daeEnumType*)type)->_values->append(GL_FOG_TYPE_EXP); + ((daeEnumType*)type)->_strings->append("EXP2"); + ((daeEnumType*)type)->_values->append(GL_FOG_TYPE_EXP2); + atomicTypes.append( type ); + + // ENUM: Gl_fog_coord_src_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_fog_coord_src_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("FOG_COORDINATE"); + ((daeEnumType*)type)->_values->append(GL_FOG_COORD_SRC_TYPE_FOG_COORDINATE); + ((daeEnumType*)type)->_strings->append("FRAGMENT_DEPTH"); + ((daeEnumType*)type)->_values->append(GL_FOG_COORD_SRC_TYPE_FRAGMENT_DEPTH); + atomicTypes.append( type ); + + // ENUM: Gl_front_face_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_front_face_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("CW"); + ((daeEnumType*)type)->_values->append(GL_FRONT_FACE_TYPE_CW); + ((daeEnumType*)type)->_strings->append("CCW"); + ((daeEnumType*)type)->_values->append(GL_FRONT_FACE_TYPE_CCW); + atomicTypes.append( type ); + + // ENUM: Gl_light_model_color_control_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_light_model_color_control_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("SINGLE_COLOR"); + ((daeEnumType*)type)->_values->append(GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_SINGLE_COLOR); + ((daeEnumType*)type)->_strings->append("SEPARATE_SPECULAR_COLOR"); + ((daeEnumType*)type)->_values->append(GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_SEPARATE_SPECULAR_COLOR); + atomicTypes.append( type ); + + // ENUM: Gl_logic_op_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_logic_op_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("CLEAR"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_CLEAR); + ((daeEnumType*)type)->_strings->append("AND"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_AND); + ((daeEnumType*)type)->_strings->append("AND_REVERSE"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_AND_REVERSE); + ((daeEnumType*)type)->_strings->append("COPY"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_COPY); + ((daeEnumType*)type)->_strings->append("AND_INVERTED"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_AND_INVERTED); + ((daeEnumType*)type)->_strings->append("NOOP"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_NOOP); + ((daeEnumType*)type)->_strings->append("XOR"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_XOR); + ((daeEnumType*)type)->_strings->append("OR"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_OR); + ((daeEnumType*)type)->_strings->append("NOR"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_NOR); + ((daeEnumType*)type)->_strings->append("EQUIV"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_EQUIV); + ((daeEnumType*)type)->_strings->append("INVERT"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_INVERT); + ((daeEnumType*)type)->_strings->append("OR_REVERSE"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_OR_REVERSE); + ((daeEnumType*)type)->_strings->append("COPY_INVERTED"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_COPY_INVERTED); + ((daeEnumType*)type)->_strings->append("NAND"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_NAND); + ((daeEnumType*)type)->_strings->append("SET"); + ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_TYPE_SET); + atomicTypes.append( type ); + + // ENUM: Gl_polygon_mode_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_polygon_mode_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("POINT"); + ((daeEnumType*)type)->_values->append(GL_POLYGON_MODE_TYPE_POINT); + ((daeEnumType*)type)->_strings->append("LINE"); + ((daeEnumType*)type)->_values->append(GL_POLYGON_MODE_TYPE_LINE); + ((daeEnumType*)type)->_strings->append("FILL"); + ((daeEnumType*)type)->_values->append(GL_POLYGON_MODE_TYPE_FILL); + atomicTypes.append( type ); + + // ENUM: Gl_shade_model_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_shade_model_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("FLAT"); + ((daeEnumType*)type)->_values->append(GL_SHADE_MODEL_TYPE_FLAT); + ((daeEnumType*)type)->_strings->append("SMOOTH"); + ((daeEnumType*)type)->_values->append(GL_SHADE_MODEL_TYPE_SMOOTH); + atomicTypes.append( type ); + + // TYPEDEF: Gl_alpha_value_type //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Gl_alpha_value_type"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Gl_alpha_value_type"); + } + + // ENUM: Gl_enumeration + type = new daeEnumType(dae); + type->_nameBindings.append("Gl_enumeration"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("ZERO"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ZERO); + ((daeEnumType*)type)->_strings->append("ONE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE); + ((daeEnumType*)type)->_strings->append("SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("DEST_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DEST_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_DEST_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_DEST_COLOR); + ((daeEnumType*)type)->_strings->append("SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("DST_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DST_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_DST_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_DST_ALPHA); + ((daeEnumType*)type)->_strings->append("CONSTANT_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CONSTANT_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_CONSTANT_COLOR); + ((daeEnumType*)type)->_strings->append("CONSTANT_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CONSTANT_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_ALPHA"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA); + ((daeEnumType*)type)->_strings->append("SRC_ALPHA_SATURATE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SRC_ALPHA_SATURATE); + ((daeEnumType*)type)->_strings->append("FRONT"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FRONT); + ((daeEnumType*)type)->_strings->append("BACK"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_BACK); + ((daeEnumType*)type)->_strings->append("FRONT_AND_BACK"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FRONT_AND_BACK); + ((daeEnumType*)type)->_strings->append("FUNC_ADD"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FUNC_ADD); + ((daeEnumType*)type)->_strings->append("FUNC_SUBTRACT"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FUNC_SUBTRACT); + ((daeEnumType*)type)->_strings->append("FUNC_REVERSE_SUBTRACT"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FUNC_REVERSE_SUBTRACT); + ((daeEnumType*)type)->_strings->append("MIN"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_MIN); + ((daeEnumType*)type)->_strings->append("MAX"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_MAX); + ((daeEnumType*)type)->_strings->append("NEVER"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NEVER); + ((daeEnumType*)type)->_strings->append("LESS"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LESS); + ((daeEnumType*)type)->_strings->append("LEQUAL"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LEQUAL); + ((daeEnumType*)type)->_strings->append("EQUAL"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EQUAL); + ((daeEnumType*)type)->_strings->append("GREATER"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_GREATER); + ((daeEnumType*)type)->_strings->append("NOTEQUAL"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NOTEQUAL); + ((daeEnumType*)type)->_strings->append("GEQUAL"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_GEQUAL); + ((daeEnumType*)type)->_strings->append("ALWAYS"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ALWAYS); + ((daeEnumType*)type)->_strings->append("KEEP"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_KEEP); + ((daeEnumType*)type)->_strings->append("REPLACE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_REPLACE); + ((daeEnumType*)type)->_strings->append("INCR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_INCR); + ((daeEnumType*)type)->_strings->append("DECR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DECR); + ((daeEnumType*)type)->_strings->append("INVERT"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_INVERT); + ((daeEnumType*)type)->_strings->append("INCR_WRAP"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_INCR_WRAP); + ((daeEnumType*)type)->_strings->append("DECR_WRAP"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DECR_WRAP); + ((daeEnumType*)type)->_strings->append("EMISSION"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EMISSION); + ((daeEnumType*)type)->_strings->append("AMBIENT"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AMBIENT); + ((daeEnumType*)type)->_strings->append("DIFFUSE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DIFFUSE); + ((daeEnumType*)type)->_strings->append("SPECULAR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SPECULAR); + ((daeEnumType*)type)->_strings->append("AMBIENT_AND_DIFFUSE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AMBIENT_AND_DIFFUSE); + ((daeEnumType*)type)->_strings->append("LINEAR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LINEAR); + ((daeEnumType*)type)->_strings->append("EXP"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EXP); + ((daeEnumType*)type)->_strings->append("EXP2"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EXP2); + ((daeEnumType*)type)->_strings->append("FOG_COORDINATE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FOG_COORDINATE); + ((daeEnumType*)type)->_strings->append("FRAGMENT_DEPTH"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FRAGMENT_DEPTH); + ((daeEnumType*)type)->_strings->append("CW"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CW); + ((daeEnumType*)type)->_strings->append("CCW"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CCW); + ((daeEnumType*)type)->_strings->append("SINGLE_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SINGLE_COLOR); + ((daeEnumType*)type)->_strings->append("SEPARATE_SPECULAR_COLOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SEPARATE_SPECULAR_COLOR); + ((daeEnumType*)type)->_strings->append("CLEAR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CLEAR); + ((daeEnumType*)type)->_strings->append("AND"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AND); + ((daeEnumType*)type)->_strings->append("AND_REVERSE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AND_REVERSE); + ((daeEnumType*)type)->_strings->append("COPY"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_COPY); + ((daeEnumType*)type)->_strings->append("AND_INVERTED"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AND_INVERTED); + ((daeEnumType*)type)->_strings->append("NOOP"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NOOP); + ((daeEnumType*)type)->_strings->append("XOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_XOR); + ((daeEnumType*)type)->_strings->append("OR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_OR); + ((daeEnumType*)type)->_strings->append("NOR"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NOR); + ((daeEnumType*)type)->_strings->append("EQUIV"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EQUIV); + ((daeEnumType*)type)->_strings->append("OR_REVERSE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_OR_REVERSE); + ((daeEnumType*)type)->_strings->append("COPY_INVERTED"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_COPY_INVERTED); + ((daeEnumType*)type)->_strings->append("NAND"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NAND); + ((daeEnumType*)type)->_strings->append("SET"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SET); + ((daeEnumType*)type)->_strings->append("POINT"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_POINT); + ((daeEnumType*)type)->_strings->append("LINE"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LINE); + ((daeEnumType*)type)->_strings->append("FILL"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FILL); + ((daeEnumType*)type)->_strings->append("FLAT"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FLAT); + ((daeEnumType*)type)->_strings->append("SMOOTH"); + ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SMOOTH); + atomicTypes.append( type ); + + // TYPEDEF: Glsl_float //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_float"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_float"); + } + + // TYPEDEF: Glsl_int //check if this type has an existing base + type = atomicTypes.get("xsInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_int"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_int"); + } + + // TYPEDEF: Glsl_bool //check if this type has an existing base + type = atomicTypes.get("xsBoolean"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_bool"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_bool"); + } + + // TYPEDEF: Glsl_ListOfBool //check if this type has an existing base + type = atomicTypes.get("Glsl_bool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_ListOfBool"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_ListOfBool"); + } + + // TYPEDEF: Glsl_ListOfFloat //check if this type has an existing base + type = atomicTypes.get("Glsl_float"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_ListOfFloat"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_ListOfFloat"); + } + + // TYPEDEF: Glsl_ListOfInt //check if this type has an existing base + type = atomicTypes.get("Glsl_int"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_ListOfInt"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_ListOfInt"); + } + + // TYPEDEF: Glsl_bool2 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_bool2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_bool2"); + } + + // TYPEDEF: Glsl_bool3 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_bool3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_bool3"); + } + + // TYPEDEF: Glsl_bool4 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_bool4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_bool4"); + } + + // TYPEDEF: Glsl_float2 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_float2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_float2"); + } + + // TYPEDEF: Glsl_float3 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_float3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_float3"); + } + + // TYPEDEF: Glsl_float4 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_float4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_float4"); + } + + // TYPEDEF: Glsl_float2x2 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_float2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_float2x2"); + } + + // TYPEDEF: Glsl_float3x3 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_float3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_float3x3"); + } + + // TYPEDEF: Glsl_float4x4 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_float4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_float4x4"); + } + + // TYPEDEF: Glsl_int2 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_int2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_int2"); + } + + // TYPEDEF: Glsl_int3 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_int3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_int3"); + } + + // TYPEDEF: Glsl_int4 //check if this type has an existing base + type = atomicTypes.get("Glsl_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_int4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_int4"); + } + + // ENUM: Glsl_pipeline_stage + type = new daeEnumType(dae); + type->_nameBindings.append("Glsl_pipeline_stage"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("VERTEXPROGRAM"); + ((daeEnumType*)type)->_values->append(GLSL_PIPELINE_STAGE_VERTEXPROGRAM); + ((daeEnumType*)type)->_strings->append("FRAGMENTPROGRAM"); + ((daeEnumType*)type)->_values->append(GLSL_PIPELINE_STAGE_FRAGMENTPROGRAM); + atomicTypes.append( type ); + + // TYPEDEF: Glsl_identifier //check if this type has an existing base + type = atomicTypes.get("xsToken"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Glsl_identifier"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Glsl_identifier"); + } + + // TYPEDEF: Cg_bool //check if this type has an existing base + type = atomicTypes.get("xsBoolean"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool"); + } + + // TYPEDEF: Cg_float //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float"); + } + + // TYPEDEF: Cg_int //check if this type has an existing base + type = atomicTypes.get("xsInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int"); + } + + // TYPEDEF: Cg_half //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half"); + } + + // TYPEDEF: Cg_fixed //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed"); + } + + // TYPEDEF: Cg_bool1 //check if this type has an existing base + type = atomicTypes.get("xsBoolean"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool1"); + } + + // TYPEDEF: Cg_float1 //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float1"); + } + + // TYPEDEF: Cg_int1 //check if this type has an existing base + type = atomicTypes.get("xsInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int1"); + } + + // TYPEDEF: Cg_half1 //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half1"); + } + + // TYPEDEF: Cg_fixed1 //check if this type has an existing base + type = atomicTypes.get("xsFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed1"); + } + + // TYPEDEF: Cg_ListOfBool //check if this type has an existing base + type = atomicTypes.get("Cg_bool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_ListOfBool"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_ListOfBool"); + } + + // TYPEDEF: Cg_ListOfFloat //check if this type has an existing base + type = atomicTypes.get("Cg_float"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_ListOfFloat"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_ListOfFloat"); + } + + // TYPEDEF: Cg_ListOfInt //check if this type has an existing base + type = atomicTypes.get("Cg_int"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_ListOfInt"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_ListOfInt"); + } + + // TYPEDEF: Cg_ListOfHalf //check if this type has an existing base + type = atomicTypes.get("Cg_half"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_ListOfHalf"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_ListOfHalf"); + } + + // TYPEDEF: Cg_ListOfFixed //check if this type has an existing base + type = atomicTypes.get("Cg_fixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_ListOfFixed"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_ListOfFixed"); + } + + // TYPEDEF: Cg_bool2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool2"); + } + + // TYPEDEF: Cg_bool3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool3"); + } + + // TYPEDEF: Cg_bool4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool4"); + } + + // TYPEDEF: Cg_bool1x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool1x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool1x1"); + } + + // TYPEDEF: Cg_bool1x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool1x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool1x2"); + } + + // TYPEDEF: Cg_bool1x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool1x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool1x3"); + } + + // TYPEDEF: Cg_bool1x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool1x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool1x4"); + } + + // TYPEDEF: Cg_bool2x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool2x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool2x1"); + } + + // TYPEDEF: Cg_bool2x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool2x2"); + } + + // TYPEDEF: Cg_bool2x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool2x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool2x3"); + } + + // TYPEDEF: Cg_bool2x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool2x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool2x4"); + } + + // TYPEDEF: Cg_bool3x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool3x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool3x1"); + } + + // TYPEDEF: Cg_bool3x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool3x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool3x2"); + } + + // TYPEDEF: Cg_bool3x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool3x3"); + } + + // TYPEDEF: Cg_bool3x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool3x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool3x4"); + } + + // TYPEDEF: Cg_bool4x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool4x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool4x1"); + } + + // TYPEDEF: Cg_bool4x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool4x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool4x2"); + } + + // TYPEDEF: Cg_bool4x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool4x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool4x3"); + } + + // TYPEDEF: Cg_bool4x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfBool"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_bool4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_bool4x4"); + } + + // TYPEDEF: Cg_float2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float2"); + } + + // TYPEDEF: Cg_float3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float3"); + } + + // TYPEDEF: Cg_float4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float4"); + } + + // TYPEDEF: Cg_float1x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float1x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float1x1"); + } + + // TYPEDEF: Cg_float1x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float1x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float1x2"); + } + + // TYPEDEF: Cg_float1x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float1x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float1x3"); + } + + // TYPEDEF: Cg_float1x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float1x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float1x4"); + } + + // TYPEDEF: Cg_float2x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float2x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float2x1"); + } + + // TYPEDEF: Cg_float2x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float2x2"); + } + + // TYPEDEF: Cg_float2x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float2x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float2x3"); + } + + // TYPEDEF: Cg_float2x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float2x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float2x4"); + } + + // TYPEDEF: Cg_float3x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float3x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float3x1"); + } + + // TYPEDEF: Cg_float3x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float3x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float3x2"); + } + + // TYPEDEF: Cg_float3x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float3x3"); + } + + // TYPEDEF: Cg_float3x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float3x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float3x4"); + } + + // TYPEDEF: Cg_float4x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float4x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float4x1"); + } + + // TYPEDEF: Cg_float4x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float4x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float4x2"); + } + + // TYPEDEF: Cg_float4x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float4x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float4x3"); + } + + // TYPEDEF: Cg_float4x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFloat"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_float4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_float4x4"); + } + + // TYPEDEF: Cg_int2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int2"); + } + + // TYPEDEF: Cg_int3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int3"); + } + + // TYPEDEF: Cg_int4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int4"); + } + + // TYPEDEF: Cg_int1x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int1x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int1x1"); + } + + // TYPEDEF: Cg_int1x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int1x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int1x2"); + } + + // TYPEDEF: Cg_int1x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int1x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int1x3"); + } + + // TYPEDEF: Cg_int1x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int1x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int1x4"); + } + + // TYPEDEF: Cg_int2x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int2x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int2x1"); + } + + // TYPEDEF: Cg_int2x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int2x2"); + } + + // TYPEDEF: Cg_int2x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int2x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int2x3"); + } + + // TYPEDEF: Cg_int2x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int2x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int2x4"); + } + + // TYPEDEF: Cg_int3x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int3x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int3x1"); + } + + // TYPEDEF: Cg_int3x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int3x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int3x2"); + } + + // TYPEDEF: Cg_int3x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int3x3"); + } + + // TYPEDEF: Cg_int3x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int3x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int3x4"); + } + + // TYPEDEF: Cg_int4x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int4x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int4x1"); + } + + // TYPEDEF: Cg_int4x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int4x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int4x2"); + } + + // TYPEDEF: Cg_int4x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int4x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int4x3"); + } + + // TYPEDEF: Cg_int4x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfInt"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_int4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_int4x4"); + } + + // TYPEDEF: Cg_half2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half2"); + } + + // TYPEDEF: Cg_half3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half3"); + } + + // TYPEDEF: Cg_half4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half4"); + } + + // TYPEDEF: Cg_half1x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half1x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half1x1"); + } + + // TYPEDEF: Cg_half1x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half1x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half1x2"); + } + + // TYPEDEF: Cg_half1x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half1x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half1x3"); + } + + // TYPEDEF: Cg_half1x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half1x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half1x4"); + } + + // TYPEDEF: Cg_half2x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half2x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half2x1"); + } + + // TYPEDEF: Cg_half2x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half2x2"); + } + + // TYPEDEF: Cg_half2x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half2x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half2x3"); + } + + // TYPEDEF: Cg_half2x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half2x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half2x4"); + } + + // TYPEDEF: Cg_half3x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half3x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half3x1"); + } + + // TYPEDEF: Cg_half3x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half3x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half3x2"); + } + + // TYPEDEF: Cg_half3x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half3x3"); + } + + // TYPEDEF: Cg_half3x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half3x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half3x4"); + } + + // TYPEDEF: Cg_half4x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half4x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half4x1"); + } + + // TYPEDEF: Cg_half4x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half4x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half4x2"); + } + + // TYPEDEF: Cg_half4x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half4x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half4x3"); + } + + // TYPEDEF: Cg_half4x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfHalf"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_half4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_half4x4"); + } + + // TYPEDEF: Cg_fixed2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed2"); + } + + // TYPEDEF: Cg_fixed3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed3"); + } + + // TYPEDEF: Cg_fixed4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed4"); + } + + // TYPEDEF: Cg_fixed1x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed1x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed1x1"); + } + + // TYPEDEF: Cg_fixed1x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed1x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed1x2"); + } + + // TYPEDEF: Cg_fixed1x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed1x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed1x3"); + } + + // TYPEDEF: Cg_fixed1x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed1x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed1x4"); + } + + // TYPEDEF: Cg_fixed2x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed2x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed2x1"); + } + + // TYPEDEF: Cg_fixed2x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed2x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed2x2"); + } + + // TYPEDEF: Cg_fixed2x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed2x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed2x3"); + } + + // TYPEDEF: Cg_fixed2x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed2x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed2x4"); + } + + // TYPEDEF: Cg_fixed3x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed3x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed3x1"); + } + + // TYPEDEF: Cg_fixed3x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed3x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed3x2"); + } + + // TYPEDEF: Cg_fixed3x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed3x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed3x3"); + } + + // TYPEDEF: Cg_fixed3x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed3x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed3x4"); + } + + // TYPEDEF: Cg_fixed4x1 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed4x1"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed4x1"); + } + + // TYPEDEF: Cg_fixed4x2 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed4x2"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed4x2"); + } + + // TYPEDEF: Cg_fixed4x3 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed4x3"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed4x3"); + } + + // TYPEDEF: Cg_fixed4x4 //check if this type has an existing base + type = atomicTypes.get("Cg_ListOfFixed"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_fixed4x4"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_fixed4x4"); + } + + // ENUM: Cg_pipeline_stage + type = new daeEnumType(dae); + type->_nameBindings.append("Cg_pipeline_stage"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("VERTEX"); + ((daeEnumType*)type)->_values->append(CG_PIPELINE_STAGE_VERTEX); + ((daeEnumType*)type)->_strings->append("FRAGMENT"); + ((daeEnumType*)type)->_values->append(CG_PIPELINE_STAGE_FRAGMENT); + atomicTypes.append( type ); + + // TYPEDEF: Cg_identifier //check if this type has an existing base + type = atomicTypes.get("xsToken"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Cg_identifier"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Cg_identifier"); + } + + // TYPEDEF: GLES_MAX_LIGHTS_index //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("GLES_MAX_LIGHTS_index"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("GLES_MAX_LIGHTS_index"); + } + + // TYPEDEF: GLES_MAX_CLIP_PLANES_index //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("GLES_MAX_CLIP_PLANES_index"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("GLES_MAX_CLIP_PLANES_index"); + } + + // TYPEDEF: GLES_MAX_TEXTURE_COORDS_index //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("GLES_MAX_TEXTURE_COORDS_index"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("GLES_MAX_TEXTURE_COORDS_index"); + } + + // TYPEDEF: GLES_MAX_TEXTURE_IMAGE_UNITS_index //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("GLES_MAX_TEXTURE_IMAGE_UNITS_index"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("GLES_MAX_TEXTURE_IMAGE_UNITS_index"); + } + + // ENUM: Gles_texenv_mode_enums + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_texenv_mode_enums"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("REPLACE"); + ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_ENUMS_REPLACE); + ((daeEnumType*)type)->_strings->append("MODULATE"); + ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_ENUMS_MODULATE); + ((daeEnumType*)type)->_strings->append("DECAL"); + ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_ENUMS_DECAL); + ((daeEnumType*)type)->_strings->append("BLEND"); + ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_ENUMS_BLEND); + ((daeEnumType*)type)->_strings->append("ADD"); + ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_ENUMS_ADD); + atomicTypes.append( type ); + + // ENUM: Gles_texcombiner_operatorRGB_enums + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_texcombiner_operatorRGB_enums"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("REPLACE"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_REPLACE); + ((daeEnumType*)type)->_strings->append("MODULATE"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_MODULATE); + ((daeEnumType*)type)->_strings->append("ADD"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_ADD); + ((daeEnumType*)type)->_strings->append("ADD_SIGNED"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_ADD_SIGNED); + ((daeEnumType*)type)->_strings->append("INTERPOLATE"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_INTERPOLATE); + ((daeEnumType*)type)->_strings->append("SUBTRACT"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_SUBTRACT); + ((daeEnumType*)type)->_strings->append("DOT3_RGB"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_DOT3_RGB); + ((daeEnumType*)type)->_strings->append("DOT3_RGBA"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORRGB_ENUMS_DOT3_RGBA); + atomicTypes.append( type ); + + // ENUM: Gles_texcombiner_operatorAlpha_enums + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_texcombiner_operatorAlpha_enums"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("REPLACE"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_REPLACE); + ((daeEnumType*)type)->_strings->append("MODULATE"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_MODULATE); + ((daeEnumType*)type)->_strings->append("ADD"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_ADD); + ((daeEnumType*)type)->_strings->append("ADD_SIGNED"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_ADD_SIGNED); + ((daeEnumType*)type)->_strings->append("INTERPOLATE"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_INTERPOLATE); + ((daeEnumType*)type)->_strings->append("SUBTRACT"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_SUBTRACT); + atomicTypes.append( type ); + + // ENUM: Gles_texcombiner_source_enums + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_texcombiner_source_enums"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("TEXTURE"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_ENUMS_TEXTURE); + ((daeEnumType*)type)->_strings->append("CONSTANT"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_ENUMS_CONSTANT); + ((daeEnumType*)type)->_strings->append("PRIMARY"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_ENUMS_PRIMARY); + ((daeEnumType*)type)->_strings->append("PREVIOUS"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_ENUMS_PREVIOUS); + atomicTypes.append( type ); + + // ENUM: Gles_texcombiner_operandRGB_enums + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_texcombiner_operandRGB_enums"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERANDRGB_ENUMS_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERANDRGB_ENUMS_ONE_MINUS_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERANDRGB_ENUMS_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERANDRGB_ENUMS_ONE_MINUS_SRC_ALPHA); + atomicTypes.append( type ); + + // ENUM: Gles_texcombiner_operandAlpha_enums + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_texcombiner_operandAlpha_enums"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_ONE_MINUS_SRC_ALPHA); + atomicTypes.append( type ); + + // TYPEDEF: Gles_texcombiner_argument_index_type //check if this type has an existing base + type = atomicTypes.get("xsNonNegativeInteger"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Gles_texcombiner_argument_index_type"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Gles_texcombiner_argument_index_type"); + } + + // ENUM: Gles_sampler_wrap + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_sampler_wrap"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("REPEAT"); + ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_REPEAT); + ((daeEnumType*)type)->_strings->append("CLAMP"); + ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_CLAMP); + ((daeEnumType*)type)->_strings->append("CLAMP_TO_EDGE"); + ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_CLAMP_TO_EDGE); + ((daeEnumType*)type)->_strings->append("MIRRORED_REPEAT"); + ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_MIRRORED_REPEAT); + atomicTypes.append( type ); + + // ENUM: Gles_stencil_op_type + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_stencil_op_type"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("KEEP"); + ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_TYPE_KEEP); + ((daeEnumType*)type)->_strings->append("ZERO"); + ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_TYPE_ZERO); + ((daeEnumType*)type)->_strings->append("REPLACE"); + ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_TYPE_REPLACE); + ((daeEnumType*)type)->_strings->append("INCR"); + ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_TYPE_INCR); + ((daeEnumType*)type)->_strings->append("DECR"); + ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_TYPE_DECR); + ((daeEnumType*)type)->_strings->append("INVERT"); + ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_TYPE_INVERT); + atomicTypes.append( type ); + + // ENUM: Gles_enumeration + type = new daeEnumType(dae); + type->_nameBindings.append("Gles_enumeration"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("ZERO"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ZERO); + ((daeEnumType*)type)->_strings->append("ONE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE); + ((daeEnumType*)type)->_strings->append("SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_SRC_COLOR); + ((daeEnumType*)type)->_strings->append("DEST_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DEST_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_DEST_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_DEST_COLOR); + ((daeEnumType*)type)->_strings->append("SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_SRC_ALPHA); + ((daeEnumType*)type)->_strings->append("DST_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DST_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_DST_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_DST_ALPHA); + ((daeEnumType*)type)->_strings->append("CONSTANT_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CONSTANT_COLOR); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_CONSTANT_COLOR); + ((daeEnumType*)type)->_strings->append("CONSTANT_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CONSTANT_ALPHA); + ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_ALPHA"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA); + ((daeEnumType*)type)->_strings->append("SRC_ALPHA_SATURATE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SRC_ALPHA_SATURATE); + ((daeEnumType*)type)->_strings->append("FRONT"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FRONT); + ((daeEnumType*)type)->_strings->append("BACK"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_BACK); + ((daeEnumType*)type)->_strings->append("FRONT_AND_BACK"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FRONT_AND_BACK); + ((daeEnumType*)type)->_strings->append("NEVER"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NEVER); + ((daeEnumType*)type)->_strings->append("LESS"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LESS); + ((daeEnumType*)type)->_strings->append("LEQUAL"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LEQUAL); + ((daeEnumType*)type)->_strings->append("EQUAL"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EQUAL); + ((daeEnumType*)type)->_strings->append("GREATER"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_GREATER); + ((daeEnumType*)type)->_strings->append("NOTEQUAL"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NOTEQUAL); + ((daeEnumType*)type)->_strings->append("GEQUAL"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_GEQUAL); + ((daeEnumType*)type)->_strings->append("ALWAYS"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ALWAYS); + ((daeEnumType*)type)->_strings->append("KEEP"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_KEEP); + ((daeEnumType*)type)->_strings->append("REPLACE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_REPLACE); + ((daeEnumType*)type)->_strings->append("INCR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_INCR); + ((daeEnumType*)type)->_strings->append("DECR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DECR); + ((daeEnumType*)type)->_strings->append("INVERT"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_INVERT); + ((daeEnumType*)type)->_strings->append("INCR_WRAP"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_INCR_WRAP); + ((daeEnumType*)type)->_strings->append("DECR_WRAP"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DECR_WRAP); + ((daeEnumType*)type)->_strings->append("EMISSION"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EMISSION); + ((daeEnumType*)type)->_strings->append("AMBIENT"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AMBIENT); + ((daeEnumType*)type)->_strings->append("DIFFUSE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DIFFUSE); + ((daeEnumType*)type)->_strings->append("SPECULAR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SPECULAR); + ((daeEnumType*)type)->_strings->append("AMBIENT_AND_DIFFUSE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AMBIENT_AND_DIFFUSE); + ((daeEnumType*)type)->_strings->append("LINEAR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LINEAR); + ((daeEnumType*)type)->_strings->append("EXP"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EXP); + ((daeEnumType*)type)->_strings->append("EXP2"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EXP2); + ((daeEnumType*)type)->_strings->append("CW"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CW); + ((daeEnumType*)type)->_strings->append("CCW"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CCW); + ((daeEnumType*)type)->_strings->append("SINGLE_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SINGLE_COLOR); + ((daeEnumType*)type)->_strings->append("SEPARATE_SPECULAR_COLOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SEPARATE_SPECULAR_COLOR); + ((daeEnumType*)type)->_strings->append("CLEAR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CLEAR); + ((daeEnumType*)type)->_strings->append("AND"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AND); + ((daeEnumType*)type)->_strings->append("AND_REVERSE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AND_REVERSE); + ((daeEnumType*)type)->_strings->append("COPY"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_COPY); + ((daeEnumType*)type)->_strings->append("AND_INVERTED"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AND_INVERTED); + ((daeEnumType*)type)->_strings->append("NOOP"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NOOP); + ((daeEnumType*)type)->_strings->append("XOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_XOR); + ((daeEnumType*)type)->_strings->append("OR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_OR); + ((daeEnumType*)type)->_strings->append("NOR"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NOR); + ((daeEnumType*)type)->_strings->append("EQUIV"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EQUIV); + ((daeEnumType*)type)->_strings->append("OR_REVERSE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_OR_REVERSE); + ((daeEnumType*)type)->_strings->append("COPY_INVERTED"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_COPY_INVERTED); + ((daeEnumType*)type)->_strings->append("NAND"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NAND); + ((daeEnumType*)type)->_strings->append("SET"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SET); + ((daeEnumType*)type)->_strings->append("POINT"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_POINT); + ((daeEnumType*)type)->_strings->append("LINE"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LINE); + ((daeEnumType*)type)->_strings->append("FILL"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FILL); + ((daeEnumType*)type)->_strings->append("FLAT"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FLAT); + ((daeEnumType*)type)->_strings->append("SMOOTH"); + ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SMOOTH); + atomicTypes.append( type ); + + // TYPEDEF: Gles_rendertarget_common //check if this type has an existing base + type = atomicTypes.get("xsNCName"); + if ( type == NULL ) { //register as a raw type + type = new daeRawRefType(dae); + type->_nameBindings.append("Gles_rendertarget_common"); + atomicTypes.append( type ); + } + else { //add binding to existing type + type->_nameBindings.append("Gles_rendertarget_common"); + } + + // ENUM: SpringType + type = new daeEnumType(dae); + type->_nameBindings.append("SpringType"); + ((daeEnumType*)type)->_strings = new daeStringRefArray; + ((daeEnumType*)type)->_values = new daeEnumArray; + ((daeEnumType*)type)->_strings->append("LINEAR"); + ((daeEnumType*)type)->_values->append(SPRINGTYPE_LINEAR); + ((daeEnumType*)type)->_strings->append("ANGULAR"); + ((daeEnumType*)type)->_values->append(SPRINGTYPE_ANGULAR); + atomicTypes.append( type ); + +} + +daeMetaElement* registerDomElements(DAE& dae) +{ + daeMetaElement* meta = domCOLLADA::registerElement(dae); + // Enable tracking of top level object by default + meta->setIsTrackableForQueries(true); + return meta; +} + +daeInt DLLSPEC colladaTypeCount() { + return 815; +} diff --git a/src/1.4/dom/domVertices.cpp b/src/1.4/dom/domVertices.cpp new file mode 100644 index 0000000..a7eb04d --- /dev/null +++ b/src/1.4/dom/domVertices.cpp @@ -0,0 +1,90 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domVertices::create(DAE& dae) +{ + domVerticesRef ref = new domVertices(dae); + return ref; +} + + +daeMetaElement * +domVertices::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "vertices" ); + meta->registerClass(domVertices::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "input" ); + mea->setOffset( daeOffsetOf(domVertices,elemInput_array) ); + mea->setElementType( domInputLocal::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domVertices,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domVertices , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domVertices , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domVertices)); + meta->validate(); + + return meta; +} + diff --git a/src/1.4/dom/domVisual_scene.cpp b/src/1.4/dom/domVisual_scene.cpp new file mode 100644 index 0000000..0144634 --- /dev/null +++ b/src/1.4/dom/domVisual_scene.cpp @@ -0,0 +1,245 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domVisual_scene::create(DAE& dae) +{ + domVisual_sceneRef ref = new domVisual_scene(dae); + return ref; +} + + +daeMetaElement * +domVisual_scene::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "visual_scene" ); + meta->registerClass(domVisual_scene::create); + + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 ); + mea->setName( "asset" ); + mea->setOffset( daeOffsetOf(domVisual_scene,elemAsset) ); + mea->setElementType( domAsset::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 1, 1, -1 ); + mea->setName( "node" ); + mea->setOffset( daeOffsetOf(domVisual_scene,elemNode_array) ); + mea->setElementType( domNode::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 ); + mea->setName( "evaluate_scene" ); + mea->setOffset( daeOffsetOf(domVisual_scene,elemEvaluate_scene_array) ); + mea->setElementType( domVisual_scene::domEvaluate_scene::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 ); + mea->setName( "extra" ); + mea->setOffset( daeOffsetOf(domVisual_scene,elemExtra_array) ); + mea->setElementType( domExtra::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 3 ); + meta->setCMRoot( cm ); + + // Add attribute: id + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "id" ); + ma->setType( dae.getAtomicTypes().get("xsID")); + ma->setOffset( daeOffsetOf( domVisual_scene , attrId )); + ma->setContainer( meta ); + ma->setIsRequired( false ); + + meta->appendAttribute(ma); + } + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domVisual_scene , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domVisual_scene)); + meta->validate(); + + return meta; +} + +daeElementRef +domVisual_scene::domEvaluate_scene::create(DAE& dae) +{ + domVisual_scene::domEvaluate_sceneRef ref = new domVisual_scene::domEvaluate_scene(dae); + return ref; +} + + +daeMetaElement * +domVisual_scene::domEvaluate_scene::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "evaluate_scene" ); + meta->registerClass(domVisual_scene::domEvaluate_scene::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, -1 ); + mea->setName( "render" ); + mea->setOffset( daeOffsetOf(domVisual_scene::domEvaluate_scene,elemRender_array) ); + mea->setElementType( domVisual_scene::domEvaluate_scene::domRender::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 0 ); + meta->setCMRoot( cm ); + + // Add attribute: name + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "name" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domVisual_scene::domEvaluate_scene , attrName )); + ma->setContainer( meta ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domVisual_scene::domEvaluate_scene)); + meta->validate(); + + return meta; +} + +daeElementRef +domVisual_scene::domEvaluate_scene::domRender::create(DAE& dae) +{ + domVisual_scene::domEvaluate_scene::domRenderRef ref = new domVisual_scene::domEvaluate_scene::domRender(dae); + return ref; +} + + +daeMetaElement * +domVisual_scene::domEvaluate_scene::domRender::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "render" ); + meta->registerClass(domVisual_scene::domEvaluate_scene::domRender::create); + + meta->setIsInnerClass( true ); + daeMetaCMPolicy *cm = NULL; + daeMetaElementAttribute *mea = NULL; + cm = new daeMetaSequence( meta, cm, 0, 1, 1 ); + + mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 ); + mea->setName( "layer" ); + mea->setOffset( daeOffsetOf(domVisual_scene::domEvaluate_scene::domRender,elemLayer_array) ); + mea->setElementType( domVisual_scene::domEvaluate_scene::domRender::domLayer::registerElement(dae) ); + cm->appendChild( mea ); + + mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 ); + mea->setName( "instance_effect" ); + mea->setOffset( daeOffsetOf(domVisual_scene::domEvaluate_scene::domRender,elemInstance_effect) ); + mea->setElementType( domInstance_effect::registerElement(dae) ); + cm->appendChild( mea ); + + cm->setMaxOrdinal( 1 ); + meta->setCMRoot( cm ); + + // Add attribute: camera_node + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "camera_node" ); + ma->setType( dae.getAtomicTypes().get("xsAnyURI")); + ma->setOffset( daeOffsetOf( domVisual_scene::domEvaluate_scene::domRender , attrCamera_node )); + ma->setContainer( meta ); + ma->setIsRequired( true ); + + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domVisual_scene::domEvaluate_scene::domRender)); + meta->validate(); + + return meta; +} + +daeElementRef +domVisual_scene::domEvaluate_scene::domRender::domLayer::create(DAE& dae) +{ + domVisual_scene::domEvaluate_scene::domRender::domLayerRef ref = new domVisual_scene::domEvaluate_scene::domRender::domLayer(dae); + return ref; +} + + +daeMetaElement * +domVisual_scene::domEvaluate_scene::domRender::domLayer::registerElement(DAE& dae) +{ + daeMetaElement* meta = dae.getMeta(ID()); + if ( meta != NULL ) return meta; + + meta = new daeMetaElement(dae); + dae.setMeta(ID(), *meta); + meta->setName( "layer" ); + meta->registerClass(domVisual_scene::domEvaluate_scene::domRender::domLayer::create); + + meta->setIsInnerClass( true ); + // Add attribute: _value + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsNCName")); + ma->setOffset( daeOffsetOf( domVisual_scene::domEvaluate_scene::domRender::domLayer , _value )); + ma->setContainer( meta ); + meta->appendAttribute(ma); + } + + meta->setElementSize(sizeof(domVisual_scene::domEvaluate_scene::domRender::domLayer)); + meta->validate(); + + return meta; +} + diff --git a/src/dae/dae.cpp b/src/dae/dae.cpp new file mode 100644 index 0000000..68d819a --- /dev/null +++ b/src/dae/dae.cpp @@ -0,0 +1,362 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef DOM_INCLUDE_LIBXML +#include +#endif + +#ifdef DOM_INCLUDE_TINYXML +#include +#endif + +using namespace std; + +// Don't include domConstants.h because it varies depending on the dom version, +// just extern the one thing we need (COLLADA_VERSION) which all versions of +// domConstants.h/.cpp are required to define. + +extern daeString COLLADA_VERSION; + +daeInt DAEInstanceCount = 0; +DAE::charEncoding DAE::globalCharEncoding = DAE::Utf8; + +void +DAE::cleanup() +{ + //Contributed by Nus - Wed, 08 Nov 2006 + daeStringRef::releaseStringTable(); + //---------------------- +} + +void DAE::init(daeDatabase* database_, daeIOPlugin* ioPlugin) { + database = NULL; + plugin = NULL; + defaultDatabase = false; + defaultPlugin = false; + metas.setCount(colladaTypeCount()); + + initializeDomMeta(*this); + DAEInstanceCount++; + + // The order of the URI resolvers is significant, so be careful + uriResolvers.list().append(new daeRawResolver(*this)); + uriResolvers.list().append(new daeStandardURIResolver(*this)); + + idRefResolvers.addResolver(new daeDefaultIDRefResolver(*this)); + + setDatabase(database_); + setIOPlugin(ioPlugin); +} + +DAE::~DAE() +{ + if (defaultDatabase) + delete database; + if (defaultPlugin) + delete plugin; + if ( --DAEInstanceCount <= 0 ) + cleanup(); +} + +// Database setup +daeDatabase* DAE::getDatabase() +{ + return database; +} + +daeInt DAE::setDatabase(daeDatabase* _database) +{ + if (defaultDatabase) + delete database; + if (_database) + { + defaultDatabase = false; + database = _database; + } + else + { + //create default database + database = new daeSTLDatabase(*this); + defaultDatabase = true; + } + database->setMeta(getMeta(domCOLLADA::ID())); + return DAE_OK; +} + +// IO Plugin setup +daeIOPlugin* DAE::getIOPlugin() +{ + return plugin; +} + +daeInt DAE::setIOPlugin(daeIOPlugin* _plugin) +{ + if (defaultPlugin) + delete plugin; + if (_plugin) { + defaultPlugin = false; + plugin = _plugin; + } + else { + plugin = NULL; + defaultPlugin = true; + + //create default plugin +#ifdef DOM_INCLUDE_LIBXML + plugin = new daeLIBXMLPlugin(*this); +#else +#ifdef DOM_INCLUDE_TINYXML + plugin = new daeTinyXMLPlugin; +#endif +#endif + + if (!plugin) { + daeErrorHandler::get()->handleWarning("No IOPlugin Set"); + plugin = new daeIOEmpty; + return DAE_ERROR; + } + } + + int res = plugin->setMeta(getMeta(domCOLLADA::ID())); + if (res != DAE_OK) { + if (defaultPlugin) { + defaultPlugin = false; + delete plugin; + } + plugin = NULL; + } + return res; +} + + +// Take a path (either a URI ref or a file system path) and return a full URI, +// using the current working directory as the base URI if a relative URI +// reference is given. +string DAE::makeFullUri(const string& path) { + daeURI uri(*this, cdom::nativePathToUri(path)); + return uri.str(); +} + + +domCOLLADA* DAE::add(const string& path) { + close(path); + string uri = makeFullUri(path); + database->insertDocument(uri.c_str()); + return getRoot(uri); +} + +domCOLLADA* DAE::openCommon(const string& path, daeString buffer) { + close(path); + string uri = makeFullUri(path); + plugin->setDatabase(database); + if (plugin->read(daeURI(*this, uri.c_str()), buffer) != DAE_OK) + return NULL; + return getRoot(uri); +} + +domCOLLADA* DAE::open(const string& path) { + return openCommon(path, NULL); +} + +domCOLLADA* DAE::openFromMemory(const string& path, daeString buffer) { + return openCommon(path, buffer); +} + +bool DAE::writeCommon(const string& docPath, const string& pathToWriteTo, bool replace) { + string docUri = makeFullUri(docPath), + uriToWriteTo = makeFullUri(pathToWriteTo); + plugin->setDatabase(database); + if (daeDocument* doc = getDoc(docUri)) + return plugin->write(daeURI(*this, uriToWriteTo.c_str()), doc, replace) == DAE_OK; + return false; +} + +bool DAE::write(const string& path) { + return writeCommon(path, path, true); +} + +bool DAE::writeTo(const string& docPath, const string& pathToWriteTo) { + return writeCommon(docPath, pathToWriteTo, true); +} + +bool DAE::writeAll() { + for (int i = 0; i < getDocCount(); i++) + if (save((daeUInt)i, true) != DAE_OK) + return false; + return true; +} + +void DAE::close(const string& path) { + database->removeDocument(getDoc(makeFullUri(path).c_str())); +} + +daeInt DAE::clear() { + database->clear(); + rawRefCache.clear(); + sidRefCache.clear(); + return DAE_OK; +} + + +// Deprecated methods +daeInt DAE::load(daeString uri, daeString docBuffer) { + return openCommon(uri, docBuffer) ? DAE_OK : DAE_ERROR; +} + +daeInt DAE::save(daeString uri, daeBool replace) { + return writeCommon(uri, uri, replace) ? DAE_OK : DAE_ERROR; +} + +daeInt DAE::save(daeUInt documentIndex, daeBool replace) { + if ((int)documentIndex >= getDocCount()) + return DAE_ERROR; + + // Save it out to the URI it was loaded from + daeString uri = getDoc((int)documentIndex)->getDocumentURI()->getURI(); + return writeCommon(uri, uri, replace) ? DAE_OK : DAE_ERROR; +} + +daeInt DAE::saveAs(daeString uriToSaveTo, daeString docUri, daeBool replace) { + return writeCommon(docUri, uriToSaveTo, replace) ? DAE_OK : DAE_ERROR; +} + +daeInt DAE::saveAs(daeString uriToSaveTo, daeUInt documentIndex, daeBool replace) { + if ((int)documentIndex >= getDocCount()) + return DAE_ERROR; + + daeString docUri = getDoc((int)documentIndex)->getDocumentURI()->getURI(); + return writeCommon(docUri, uriToSaveTo, replace); +} + +daeInt DAE::unload(daeString uri) { + close(uri); + return DAE_OK; +} + + +int DAE::getDocCount() { + return (int)database->getDocumentCount(); +} + +daeDocument* DAE::getDoc(int i) { + return database->getDocument(i); +} + +daeDocument* DAE::getDoc(const string& path) { + return database->getDocument(makeFullUri(path).c_str(), true); +} + +domCOLLADA* DAE::getRoot(const string& path) { + if (daeDocument* doc = getDoc(path)) + return (domCOLLADA*)doc->getDomRoot(); + return NULL; +} + +bool DAE::setRoot(const string& path, domCOLLADA* root) { + if (daeDocument* doc = getDoc(path)) + doc->setDomRoot(root); + else + database->insertDocument(makeFullUri(path).c_str(), root); + return getRoot(path) != NULL; +} + +domCOLLADA* DAE::getDom(daeString uri) { + return getRoot(uri); +} + +daeInt DAE::setDom(daeString uri, domCOLLADA* dom) { + return setRoot(uri, dom); +} + +daeString DAE::getDomVersion() +{ + return(COLLADA_VERSION); +} + +daeAtomicTypeList& DAE::getAtomicTypes() { + return atomicTypes; +} + +daeMetaElement* DAE::getMeta(daeInt typeID) { + if (typeID < 0 || typeID >= daeInt(metas.getCount())) + return NULL; + return metas[typeID]; +} + +daeMetaElementRefArray& DAE::getAllMetas() { + return metas; +} + +void DAE::setMeta(daeInt typeID, daeMetaElement& meta) { + if (typeID < 0 || typeID >= daeInt(metas.getCount())) + return; + metas[typeID] = &meta; +} + +daeURIResolverList& DAE::getURIResolvers() { + return uriResolvers; +} + +daeURI& DAE::getBaseURI() { + return baseUri; +} + +void DAE::setBaseURI(const daeURI& uri) { + baseUri = uri; +} + +void DAE::setBaseURI(const string& uri) { + baseUri = uri.c_str(); +} + +daeIDRefResolverList& DAE::getIDRefResolvers() { + return idRefResolvers; +} + +daeRawRefCache& DAE::getRawRefCache() { + return rawRefCache; +} + +daeSidRefCache& DAE::getSidRefCache() { + return sidRefCache; +} + +void DAE::dummyFunction1() { } + +DAE::charEncoding DAE::getGlobalCharEncoding() { + return globalCharEncoding; +} + +void DAE::setGlobalCharEncoding(charEncoding encoding) { + globalCharEncoding = encoding; +} + +DAE::charEncoding DAE::getCharEncoding() { + return localCharEncoding.get() ? *localCharEncoding : getGlobalCharEncoding(); +} + +void DAE::setCharEncoding(charEncoding encoding) { + localCharEncoding.reset(new charEncoding(encoding)); +} diff --git a/src/dae/daeArray.cpp b/src/dae/daeArray.cpp new file mode 100644 index 0000000..2e7bffa --- /dev/null +++ b/src/dae/daeArray.cpp @@ -0,0 +1,28 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include + +daeArray::daeArray():_count(0),_capacity(0),_data(NULL),_elementSize(4),_type(NULL) +{ +} + +daeArray::~daeArray() +{ +} + +void daeArray::setElementSize(size_t elementSize) { + clear(); + _elementSize = elementSize; +} diff --git a/src/dae/daeAtomicType.cpp b/src/dae/daeAtomicType.cpp new file mode 100644 index 0000000..a603326 --- /dev/null +++ b/src/dae/daeAtomicType.cpp @@ -0,0 +1,943 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + // Skip leading whitespace + daeChar* skipWhitespace(daeChar* s) { + if (s) { + // !!!GAC NEEDS TO BE CHANGED to use XML standard whitespace parsing + while(*s == ' ' || *s == '\r' || *s == '\n' || *s == '\t') s++; + } + + return s; + } + + // Move forward past this token + daeChar* skipToken(daeChar* s) { + while(*s != ' ' && *s != '\r' && *s != '\n' && *s != '\t' && *s != 0) s++; + return s; + } + + // Given a string of whitespace-separated tokens, this function returns a null-terminated string + // containing the next token. If the next token is already null-terminated, no memory is allocated + // and the function returns the pointer that was passed in. Note that this function assumes that + // the string passed in starts with the next token and not a whitespace. + // If returnValue != s, the client should free the returnValue with delete[]. + daeChar* extractToken(daeChar* s) { + if (!s) + return 0; + + daeChar* tmp = skipToken(s); + if (*tmp != 0) { + daeChar* scopy = new daeChar[tmp-s+1]; + strncpy(scopy, s, tmp-s); + scopy[tmp-s] = 0; + return scopy; + } + + return s; + } +} + + +daeAtomicTypeList::daeAtomicTypeList(DAE& dae) { + types.append(new daeUIntType(dae)); + types.append(new daeIntType(dae)); + types.append(new daeLongType(dae)); + types.append(new daeShortType(dae)); + types.append(new daeULongType(dae)); + types.append(new daeFloatType(dae)); + types.append(new daeDoubleType(dae)); + types.append(new daeStringRefType(dae)); + types.append(new daeElementRefType(dae)); + types.append(new daeEnumType(dae)); + types.append(new daeRawRefType(dae)); + types.append(new daeResolverType(dae)); + types.append(new daeIDResolverType(dae)); + types.append(new daeBoolType(dae)); + types.append(new daeTokenType(dae)); +} + +daeAtomicTypeList::~daeAtomicTypeList() { + for (size_t i = 0; i < types.getCount(); i++) + delete types[i]; +} + +daeInt daeAtomicTypeList::append(daeAtomicType* t) { + return (daeInt)types.append(t); +} + +const daeAtomicType* daeAtomicTypeList::getByIndex(daeInt index) { + return types[index]; +} + +daeInt daeAtomicTypeList::getCount() { + return (daeInt)types.getCount(); +} + +daeAtomicType* daeAtomicTypeList::get(daeStringRef typeString) { + for (size_t i = 0; i < types.getCount(); i++) { + daeStringRefArray& nameBindings = types[i]->getNameBindings(); + for (size_t j = 0; j < nameBindings.getCount(); j++) { + if (strcmp(typeString, nameBindings[j]) == 0) + return types[i]; + } + } + + return NULL; +} + +daeAtomicType* daeAtomicTypeList::get(daeEnum typeEnum) { + for (size_t i = 0; i < types.getCount(); i++) + if (typeEnum == types[i]->getTypeEnum()) + return types[i]; + return NULL; +} + + +daeAtomicType::daeAtomicType(DAE& dae) +{ + _dae = &dae; + _size = -1; + _alignment = -1; + _typeEnum = -1; + _typeString = "notype"; + _printFormat = "badtype"; + _scanFormat = ""; + _maxStringLength = -1; +} + +daeBool +daeAtomicType::stringToMemory(daeChar *src, daeChar* dstMemory) +{ + sscanf(src, _scanFormat, dstMemory); + return true; +} + +void daeAtomicType::arrayToString(daeArray& array, std::ostringstream& buffer) { + if (array.getCount() > 0) + memoryToString(array.getRaw(0), buffer); + for (size_t i = 1; i < array.getCount(); i++) { + buffer << ' '; + memoryToString(array.getRaw(i), buffer); + } +} + +daeBool +daeAtomicType::stringToArray(daeChar* src, daeArray& array) { + array.clear(); + array.setElementSize(_size); + + if (src == 0) + return false; + + // We're about to insert null terminators into the string so that scanf doesn't take forever + // doing strlens. Since the memory might not be writable, I need to duplicate the string and + // write into the duplicate, or else I might get access violations. + // This sucks... surely we can do better than this. + daeChar* srcDup = new daeChar[strlen(src)+1]; + strcpy(srcDup, src); + src = srcDup; + + while (*src != 0) + { + src = skipWhitespace(src); + if(*src != 0) + { + daeChar* token = src; + src = skipToken(src); + daeChar temp = *src; + *src = 0; + + array.setCount(array.getCount()+1); + if (!stringToMemory(token, array.getRaw(array.getCount()-1))) { + delete[] srcDup; + return false; + } + + *src = temp; + } + } + + delete[] srcDup; + return true; +} + +daeInt daeAtomicType::compareArray(daeArray& value1, daeArray& value2) { + if (value1.getCount() != value2.getCount()) + return value1.getCount() > value2.getCount() ? 1 : -1; + + for (size_t i = 0; i < value1.getCount(); i++) { + daeInt result = compare(value1.getRaw(i), value2.getRaw(i)); + if (result != 0) + return result; + } + + return 0; +} + +void daeAtomicType::copyArray(daeArray& src, daeArray& dst) { + dst.setCount(src.getCount()); + for (size_t i = 0; i < src.getCount(); i++) + copy(src.getRaw(i), dst.getRaw(i)); +} + +daeInt +daeAtomicType::compare(daeChar* value1, daeChar* value2) { + return memcmp(value1, value2, _size); +} + +daeEnumType::daeEnumType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeEnum); + _alignment = sizeof(daeEnum); + _typeEnum = EnumType; + _nameBindings.append("enum"); + _printFormat = "%s";//"%%.%ds"; + _scanFormat = "%s"; + _strings = NULL; + _values = NULL; + _typeString = "enum"; +} + +daeEnumType::~daeEnumType() { + if ( _strings ) { + delete _strings; + _strings = NULL; + } + if ( _values ) { + delete _values; + _values = NULL; + } +} + +daeBoolType::daeBoolType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeBool); + _alignment = sizeof(daeBool); + _typeEnum = BoolType; + _printFormat = "%d"; + _scanFormat = "%d"; + _typeString = "bool"; + _maxStringLength = (daeInt)strlen("false")+1; + _nameBindings.append("bool"); + //_nameBindings.append("xsBool"); + _nameBindings.append("xsBoolean"); +} + +daeIntType::daeIntType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeInt); + _alignment = sizeof(daeInt); + _typeEnum = IntType; + _maxStringLength = 16; + _nameBindings.append("int"); + _nameBindings.append("xsInteger"); + _nameBindings.append("xsHexBinary"); + _nameBindings.append("xsIntegerArray"); + _nameBindings.append("xsHexBinaryArray"); + _nameBindings.append("xsByte"); + _nameBindings.append("xsInt"); + _printFormat = "%d"; + _scanFormat = "%d"; + _typeString = "int"; +} +daeLongType::daeLongType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeLong); + _alignment = sizeof(daeLong); + _typeEnum = LongType; + _maxStringLength = 32; + _nameBindings.append("xsLong"); + _nameBindings.append("xsLongArray"); +#if defined(_MSC_VER) || defined(__MINGW32__) + _printFormat = "%I64d"; + _scanFormat = "%I64d"; +#else + _printFormat = "%lld"; + _scanFormat = "%lld"; +#endif + _typeString = "long"; +} +daeShortType::daeShortType(DAE& dae) : daeAtomicType(dae) +{ + _maxStringLength = 8; + _size = sizeof(daeShort); + _alignment = sizeof(daeShort); + _typeEnum = ShortType; + _nameBindings.append("short"); + _nameBindings.append("xsShort"); + _printFormat = "%hd"; + _scanFormat = "%hd"; + _typeString = "short"; +} +daeUIntType::daeUIntType(DAE& dae) : daeAtomicType(dae) +{ + _maxStringLength = 16; + _size = sizeof(daeUInt); + _alignment = sizeof(daeUInt); + _typeEnum = UIntType; + _nameBindings.append("uint"); + _nameBindings.append("xsNonNegativeInteger"); + _nameBindings.append("xsUnsignedByte"); + _nameBindings.append("xsUnsignedInt"); + _nameBindings.append("xsPositiveInteger"); + _printFormat = "%u"; + _scanFormat = "%u"; + _typeString = "uint"; +} +daeULongType::daeULongType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeULong); + _alignment = sizeof(daeULong); + _typeEnum = ULongType; + _maxStringLength = 32; + _nameBindings.append("ulong"); + _nameBindings.append("xsUnsignedLong"); +#if defined(_MSC_VER) || defined(__MINGW32__) + _printFormat = "%I64u"; + _scanFormat = "%I64u"; +#else + _printFormat = "%llu"; + _scanFormat = "%llu"; +#endif + _typeString = "ulong"; +} +daeFloatType::daeFloatType(DAE& dae) : daeAtomicType(dae) +{ + _maxStringLength = 64; + _size = sizeof(daeFloat); + _alignment = sizeof(daeFloat); + _typeEnum = FloatType; + _nameBindings.append("float"); + _nameBindings.append("xsFloat"); + _printFormat = "%g"; + _scanFormat = "%g"; + _typeString = "float"; +} +daeDoubleType::daeDoubleType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeDouble); + _alignment = sizeof(daeDouble); + _typeEnum = DoubleType; + _nameBindings.append("double"); + _nameBindings.append("xsDouble"); + _nameBindings.append("xsDecimal"); + _printFormat = "%lg"; + _scanFormat = "%lg"; + _typeString = "double"; + _maxStringLength = 64; +} + +daeStringRefType::daeStringRefType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeStringRef); + _alignment = sizeof(daeStringRef); + _typeEnum = StringRefType; + _nameBindings.append("string"); + _nameBindings.append("xsString"); + _nameBindings.append("xsDateTime"); + _printFormat = "%s"; + _scanFormat = "%s"; + _typeString = "string"; +} + +daeTokenType::daeTokenType(DAE& dae) : daeStringRefType(dae) +{ + _size = sizeof(daeStringRef); + _alignment = sizeof(daeStringRef); + _typeEnum = TokenType; + _nameBindings.append("token"); + _nameBindings.append("xsID"); + _nameBindings.append("xsNCName"); + _nameBindings.append("xsNMTOKEN"); + _nameBindings.append("xsName"); + _nameBindings.append("xsToken"); + _nameBindings.append("xsNameArray"); + _nameBindings.append("xsTokenArray"); + _nameBindings.append("xsNCNameArray"); + _printFormat = "%s"; + _scanFormat = "%s"; + _typeString = "token"; +} + +daeElementRefType::daeElementRefType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeElementRef); + _alignment = sizeof(daeElementRef); + _typeEnum = ElementRefType; + _nameBindings.append("element"); + _nameBindings.append("Element"); + _nameBindings.append("TrackedElement"); + _printFormat = "%p"; + _scanFormat = "%p"; + _typeString = "element"; + _maxStringLength = 64; +} + +daeRawRefType::daeRawRefType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeRawRef); + _alignment = sizeof(daeRawRef); + _typeEnum = RawRefType; + _nameBindings.append("raw"); + _printFormat = "%p"; + _scanFormat = "%p"; + _typeString = "raw"; + _maxStringLength = 64; +} + +daeResolverType::daeResolverType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeURI); + _alignment = sizeof(daeURI); + _typeEnum = ResolverType; + _nameBindings.append("resolver"); + _nameBindings.append("xsAnyURI"); + _printFormat = "%s"; + _scanFormat = "%s"; + _typeString = "resolver"; +} +daeIDResolverType::daeIDResolverType(DAE& dae) : daeAtomicType(dae) +{ + _size = sizeof(daeIDRef); + _alignment = sizeof(daeIDRef); + _typeEnum = IDResolverType; + _nameBindings.append("xsIDREF"); + _nameBindings.append("xsIDREFS"); + _printFormat = "%s"; + _scanFormat = "%s"; + _typeString = "idref_resolver"; +} + +daeBool daeIntType::memoryToString(daeChar* src, std::ostringstream& dst) { + dst << *(daeInt*)src; + return true; +} + +daeBool daeLongType::memoryToString(daeChar* src, std::ostringstream& dst) { + dst << *(daeLong*)src; + return true; +} + +daeBool daeShortType::memoryToString(daeChar* src, std::ostringstream& dst) { + dst << *(daeShort*)src; + return true; +} + +daeBool daeUIntType::memoryToString(daeChar* src, std::ostringstream& dst) { + dst << *(daeUInt*)src; + return true; +} + +daeBool daeULongType::memoryToString(daeChar* src, std::ostringstream& dst) { +#ifdef _MSC_VER + // Microsoft's stringstream implementation has weird performance issues + static char buffer[64]; + _snprintf(buffer, 64, _printFormat, *((daeULong*)src)); + dst << buffer; +#else + dst << *(daeULong*)src; +#endif + return true; +} + +daeBool daeFloatType::memoryToString(daeChar* src, std::ostringstream& dst) { + if ( *(daeFloat*)src != *(daeFloat*)src ) // NAN + dst << "NaN"; + else if ( *(daeUInt*)src == 0x7f800000 ) // +INF + dst << "INF"; + else if ( *(daeUInt*)src == 0xff800000 ) // -INF + dst << "-INF"; + else + dst << *(daeFloat*)src; + return true; +} + +daeBool +daeFloatType::stringToMemory(daeChar *src, daeChar* dstMemory) +{ + src = skipWhitespace(src); + + if ( strncmp(src, "NaN", 3) == 0 ) { + daeErrorHandler::get()->handleWarning("NaN encountered while setting an attribute or value\n"); + *(daeInt*)(dstMemory) = 0x7f800002; + } + else if ( strncmp(src, "INF", 3) == 0 ) { + daeErrorHandler::get()->handleWarning( "INF encountered while setting an attribute or value\n" ); + *(daeInt*)(dstMemory) = 0x7f800000; + } + else if ( strncmp(src, "-INF", 4) == 0 ) { + daeErrorHandler::get()->handleWarning( "-INF encountered while setting an attribute or value\n" ); + *(daeInt*)(dstMemory) = 0xff800000; + } + else + { + sscanf(src, _scanFormat, dstMemory); + } + return true; +} + +daeBool daeDoubleType::memoryToString(daeChar* src, std::ostringstream& dst) { + if ( *(daeDouble*)src != *(daeDouble*)src ) // NAN + dst << "NaN"; + else if ( *(daeULong*)src == 0x7ff0000000000000LL ) // +INF + dst << "INF"; + else if ( *(daeULong*)src == 0xfff0000000000000LL ) // -INF + dst << "-INF"; + else { +#ifdef _MSC_VER + // Microsoft's stringstream implementation has weird performance issues + static char buffer[64]; + _snprintf(buffer, 64, _printFormat, *((daeDouble*)src)); + dst << buffer; +#else + dst << *(daeDouble*)src; +#endif + } + return true; +} + +daeBool +daeDoubleType::stringToMemory(daeChar *src, daeChar* dstMemory) +{ + src = skipWhitespace(src); + + if ( strncmp(src, "NaN", 3) == 0 ) { + daeErrorHandler::get()->handleWarning( "NaN encountered while setting an attribute or value\n" ); + *(daeLong*)(dstMemory) = 0x7ff0000000000002LL; + } + else if ( strncmp(src, "INF", 3) == 0 ) { + daeErrorHandler::get()->handleWarning( "INF encountered while setting an attribute or value\n" ); + *(daeLong*)(dstMemory) = 0x7ff0000000000000LL; + } + else if ( strncmp(src, "-INF", 4) == 0 ) { + daeErrorHandler::get()->handleWarning( "-INF encountered while setting an attribute or value\n" ); + *(daeLong*)(dstMemory) = 0xfff0000000000000LL; + } + else + { + sscanf(src, _scanFormat, dstMemory); + } + return true; +} + +daeBool daeRawRefType::memoryToString(daeChar* src, std::ostringstream& dst) { + dst << (void *)(*((daeRawRef*)src)); + return true; +} + +daeBool daeStringRefType::memoryToString(daeChar* src, std::ostringstream& dst) { + daeString s = *((daeStringRef *)src); + if (s) + dst << s; + return true; +} + +daeBool daeResolverType::memoryToString(daeChar* src, std::ostringstream& dst) { + // Get the URI we are trying to write + daeURI *thisURI = ((daeURI *)src); + // Encode spaces with %20 + dst << cdom::replace(thisURI->originalStr(), " ", "%20"); + return true; +} + +daeBool daeIDResolverType::memoryToString(daeChar* src, std::ostringstream& dst) { + dst << ((daeIDRef *)src)->getID(); + return true; +} + +daeBool +daeResolverType::stringToMemory(daeChar* src, daeChar* dstMemory) +{ + ((daeURI*)dstMemory)->set(cdom::replace(src, " ", "%20")); + return true; +} + +daeBool +daeIDResolverType::stringToMemory(daeChar* src, daeChar* dstMemory) +{ + src = skipWhitespace(src); + daeChar* id = extractToken(src); + ((daeIDRef*)dstMemory)->setID(id); + if (id != src) + delete[] id; + return true; +} + +daeBool +daeStringRefType::stringToMemory(daeChar* srcChars, daeChar* dstMemory) +{ + *((daeStringRef*)dstMemory) = srcChars; + return true; +} + +daeBool +daeTokenType::stringToMemory(daeChar* src, daeChar* dst) +{ + src = skipWhitespace(src); + daeChar* srcTmp = extractToken(src); + *((daeStringRef*)dst) = srcTmp; + if (srcTmp != src) + delete[] srcTmp; + return true; +} + +daeBool +daeEnumType::stringToMemory(daeChar* src, daeChar* dst ) +{ + src = skipWhitespace(src); + daeChar* srcTmp = extractToken(src); + + size_t index(0); + bool result = _strings->find(srcTmp, index) != DAE_ERR_QUERY_NO_MATCH; + if (result) { + daeEnum val = _values->get( index ); + *((daeEnum*)dst) = val; + } + + if (srcTmp != src) + delete[] srcTmp; + + return result; +} + +daeBool daeEnumType::memoryToString(daeChar* src, std::ostringstream& dst) { + daeStringRef s = "unknown"; + if (_strings != NULL) { + size_t index; + if (_values->find(*((daeEnum*)src), index) == DAE_OK) + s = _strings->get(index); + } + dst << (const char*)s; + return true; +} + +daeBool +daeBoolType::stringToMemory(daeChar* srcChars, daeChar* dstMemory) +{ + if (strncmp(srcChars,"true",4)==0 || strncmp(srcChars,"1",1)==0) + *((daeBool*)dstMemory) = true; + else + *((daeBool*)dstMemory) = false; + return true; +} + +daeBool daeBoolType::memoryToString(daeChar* src, std::ostringstream& dst) { + if (*((daeBool*)src)) + dst << "true"; + else + dst << "false"; + return true; +} +//!!!ACL added for 1.4 complex types and groups + +// Unimplemented +daeBool daeElementRefType::memoryToString(daeChar* src, std::ostringstream& dst) { + (void)src; + (void)dst; + return false; +} + +daeMemoryRef daeBoolType::create() { + return (daeMemoryRef)new daeBool; +} + +daeMemoryRef daeIntType::create() { + return (daeMemoryRef)new daeInt; +} + +daeMemoryRef daeLongType::create() { + return (daeMemoryRef)new daeLong; +} + +daeMemoryRef daeUIntType::create() { + return (daeMemoryRef)new daeUInt; +} + +daeMemoryRef daeULongType::create() { + return (daeMemoryRef)new daeULong; +} + +daeMemoryRef daeShortType::create() { + return (daeMemoryRef)new daeShort; +} + +daeMemoryRef daeFloatType::create() { + return (daeMemoryRef)new daeFloat; +} + +daeMemoryRef daeDoubleType::create() { + return (daeMemoryRef)new daeDouble; +} + +daeMemoryRef daeStringRefType::create() { + return (daeMemoryRef)new daeStringRef; +} + +daeMemoryRef daeTokenType::create() { + return (daeMemoryRef)new daeStringRef; +} + +daeMemoryRef daeElementRefType::create() { + return (daeMemoryRef)new daeElementRef; +} + +daeMemoryRef daeEnumType::create() { + return (daeMemoryRef)new daeEnum; +} + +daeMemoryRef daeRawRefType::create() { + return (daeMemoryRef)new daeRawRef; +} + +daeMemoryRef daeResolverType::create() { + return (daeMemoryRef)new daeURI(*_dae); +} + +daeMemoryRef daeIDResolverType::create() { + return (daeMemoryRef)new daeIDRef; +} + + +void daeBoolType::destroy(daeMemoryRef obj) { + delete (daeBool*)obj; +} + +void daeIntType::destroy(daeMemoryRef obj) { + delete (daeInt*)obj; +} + +void daeLongType::destroy(daeMemoryRef obj) { + delete (daeLong*)obj; +} + +void daeUIntType::destroy(daeMemoryRef obj) { + delete (daeUInt*)obj; +} + +void daeULongType::destroy(daeMemoryRef obj) { + delete (daeULong*)obj; +} + +void daeShortType::destroy(daeMemoryRef obj) { + delete (daeShort*)obj; +} + +void daeFloatType::destroy(daeMemoryRef obj) { + delete (daeFloat*)obj; +} + +void daeDoubleType::destroy(daeMemoryRef obj) { + delete (daeDouble*)obj; +} + +void daeStringRefType::destroy(daeMemoryRef obj) { + delete (daeStringRef*)obj; +} + +void daeTokenType::destroy(daeMemoryRef obj) { + delete (daeStringRef*)obj; +} + +void daeElementRefType::destroy(daeMemoryRef obj) { + delete (daeElementRef*)obj; +} + +void daeEnumType::destroy(daeMemoryRef obj) { + delete (daeEnum*)obj; +} + +void daeRawRefType::destroy(daeMemoryRef obj) { + delete (daeRawRef*)obj; +} + +void daeResolverType::destroy(daeMemoryRef obj) { + delete (daeURI*)obj; +} + +void daeIDResolverType::destroy(daeMemoryRef obj) { + delete (daeIDRef*)obj; +} + + +daeInt daeStringRefType::compare(daeChar* value1, daeChar* value2) { + daeString s1 = *((daeStringRef *)value1); + daeString s2 = *((daeStringRef *)value2); + // For string types, the empty string and null are considered equivalent + if (!s1) + s1 = ""; + if (!s2) + s2 = ""; + return strcmp(s1, s2); +} + +daeInt daeResolverType::compare(daeChar* value1, daeChar* value2) { + return strcmp(((daeURI*)value1)->str().c_str(), ((daeURI*)value2)->str().c_str()); +} + +daeInt daeIDResolverType::compare(daeChar* value1, daeChar* value2) { + return (daeIDRef&)*value1 == (daeIDRef&)*value2; +} + + +daeArray* daeBoolType::createArray() { + return new daeTArray; +} + +daeArray* daeIntType::createArray() { + return new daeTArray; +} + +daeArray* daeLongType::createArray() { + return new daeTArray; +} + +daeArray* daeUIntType::createArray() { + return new daeTArray; +} + +daeArray* daeULongType::createArray() { + return new daeTArray; +} + +daeArray* daeShortType::createArray() { + return new daeTArray; +} + +daeArray* daeFloatType::createArray() { + return new daeTArray; +} + +daeArray* daeDoubleType::createArray() { + return new daeTArray; +} + +daeArray* daeStringRefType::createArray() { + return new daeTArray; +} + +daeArray* daeTokenType::createArray() { + return new daeTArray; +} + +daeArray* daeElementRefType::createArray() { + return new daeTArray; +} + +daeArray* daeEnumType::createArray() { + return new daeTArray; +} + +daeArray* daeRawRefType::createArray() { + return new daeTArray; +} + +daeArray* daeResolverType::createArray() { + // !!!steveT + // The daeURI object no longer has a constructor that takes no arguments, so + // it's not compatible with daeTArray. Therefore this method currently can't be used, + // and asserts if you try to use it. The DOM doesn't ever call this code now, + // so the situation is sort of alright, but we might need to fix this in the future. + assert(false); + return NULL; +} + +daeArray* daeIDResolverType::createArray() { + return new daeTArray; +} + + +void daeBoolType::copy(daeChar* src, daeChar* dst) { + (daeBool&)*dst = (daeBool&)*src; +} + +void daeIntType::copy(daeChar* src, daeChar* dst) { + (daeInt&)*dst = (daeInt&)*src; +} + +void daeLongType::copy(daeChar* src, daeChar* dst) { + (daeLong&)*dst = (daeLong&)*src; +} + +void daeUIntType::copy(daeChar* src, daeChar* dst) { + (daeUInt&)*dst = (daeUInt&)*src; +} + +void daeULongType::copy(daeChar* src, daeChar* dst) { + (daeULong&)*dst = (daeULong&)*src; +} + +void daeShortType::copy(daeChar* src, daeChar* dst) { + (daeShort&)*dst = (daeShort&)*src; +} + +void daeFloatType::copy(daeChar* src, daeChar* dst) { + (daeFloat&)*dst = (daeFloat&)*src; +} + +void daeDoubleType::copy(daeChar* src, daeChar* dst) { + (daeDouble&)*dst = (daeDouble&)*src; +} + +void daeStringRefType::copy(daeChar* src, daeChar* dst) { + (daeStringRef&)*dst = (daeStringRef&)*src; +} + +void daeTokenType::copy(daeChar* src, daeChar* dst) { + (daeStringRef&)*dst = (daeStringRef&)*src; +} + +void daeElementRefType::copy(daeChar* src, daeChar* dst) { + (daeElementRef&)*dst = (daeElementRef&)*src; +} + +void daeEnumType::copy(daeChar* src, daeChar* dst) { + (daeEnum&)*dst = (daeEnum&)*src; +} + +void daeRawRefType::copy(daeChar* src, daeChar* dst) { + (daeRawRef&)*dst = (daeRawRef&)*src; +} + +void daeResolverType::copy(daeChar* src, daeChar* dst) { + (daeURI&)*dst = (daeURI&)*src; +} + +void daeIDResolverType::copy(daeChar* src, daeChar* dst) { + (daeIDRef&)*dst = (daeIDRef&)*src; +} + +void daeResolverType::setDocument(daeChar* value, daeDocument* doc) { + daeURI* uri = (daeURI*)value; + uri->setContainer(uri->getContainer()); +} + +void daeResolverType::setDocument(daeArray& array, daeDocument* doc) { + // !!!steveT + // The daeURI object no longer has a constructor that takes no arguments, so + // it's not compatible with daeTArray. Therefore this method currently can't be used, + // and asserts if you try to use it. The DOM doesn't ever call this code now, + // so the situation is sort of alright, but we might need to fix this in the future. + assert(false); +} diff --git a/src/dae/daeDatabase.cpp b/src/dae/daeDatabase.cpp new file mode 100644 index 0000000..6217a71 --- /dev/null +++ b/src/dae/daeDatabase.cpp @@ -0,0 +1,45 @@ +/* + * Copyright 2007 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include "dae/daeDatabase.h" +using namespace std; + +daeDatabase::daeDatabase(DAE& dae) : dae(dae) { } + +DAE* daeDatabase::getDAE() { + return &dae; +} + +daeDocument* daeDatabase::getDoc(daeUInt index) { + return getDocument(index); +} + +daeElement* daeDatabase::idLookup(const string& id, daeDocument* doc) { + vector elts = idLookup(id); + for (size_t i = 0; i < elts.size(); i++) + if (elts[i]->getDocument() == doc) + return elts[i]; + return NULL; +} + +vector daeDatabase::typeLookup(daeInt typeID, daeDocument* doc) { + vector result; + typeLookup(typeID, result); + return result; +} + +vector daeDatabase::sidLookup(const string& sid, daeDocument* doc) { + vector result; + sidLookup(sid, result, doc); + return result; +} diff --git a/src/dae/daeDocument.cpp b/src/dae/daeDocument.cpp new file mode 100644 index 0000000..51f3fd3 --- /dev/null +++ b/src/dae/daeDocument.cpp @@ -0,0 +1,46 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include + + +daeDocument::daeDocument(DAE& dae) : dae(&dae), uri(dae) { } + +daeDocument::~daeDocument() { +} + +void daeDocument::insertElement( daeElementRef element ) { + dae->getDatabase()->insertElement( this, element.cast() ); +} + +void daeDocument::removeElement( daeElementRef element ) { + dae->getDatabase()->removeElement( this, element.cast() ); +} + +void daeDocument::changeElementID( daeElementRef element, daeString newID ) { + dae->getDatabase()->changeElementID( element.cast(), newID ); +} + +void daeDocument::changeElementSID( daeElementRef element, daeString newSID ) { + dae->getDatabase()->changeElementSID( element.cast(), newSID ); +} + +DAE* daeDocument::getDAE() { + return dae; +} + +daeDatabase* daeDocument::getDatabase() { + return dae->getDatabase(); +} diff --git a/src/dae/daeDom.cpp b/src/dae/daeDom.cpp new file mode 100644 index 0000000..d89ed63 --- /dev/null +++ b/src/dae/daeDom.cpp @@ -0,0 +1,22 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ +#include +#include +#include +#include + +daeMetaElement* initializeDomMeta(DAE& dae) +{ + registerDomTypes(dae); + return registerDomElements(dae); +} diff --git a/src/dae/daeElement.cpp b/src/dae/daeElement.cpp new file mode 100644 index 0000000..a2c127c --- /dev/null +++ b/src/dae/daeElement.cpp @@ -0,0 +1,758 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +daeElement* daeElement::simpleAdd(daeString name, int index) { + if (daeElementRef elt = _meta->create(name)) + return add(elt, index); + return NULL; +} + +daeElement* daeElement::add(daeString names_, int index) { + list names; + cdom::tokenize(names_, " ", names); + cdom::tokenIter iter = names.begin(); + daeElement* root = simpleAdd(iter->c_str(), index); + if (!root) + return NULL; + + iter++; + daeElement* elt = root; + for (; iter != names.end(); iter++) { + elt = elt->simpleAdd(iter->c_str()); + if (!elt) { + removeChildElement(root); + return NULL; + } + } + + return elt; +} + +daeElement* daeElement::add(daeElement* elt, int index) { + if (!elt) + return NULL; + if (elt == this) + return this; + bool result = (index == -1 ? _meta->place(this, elt) : _meta->placeAt(index, this, elt)); + return result ? elt : NULL; +} + +daeElement* daeElement::addBefore(daeElement* elt, daeElement* index) { + if (!index || !elt || index->getParent() != this) + return NULL; + return _meta->placeBefore(index, this, elt) ? elt : NULL; +} + +daeElement* daeElement::addAfter(daeElement* elt, daeElement* index) { + if (!index || !elt || index->getParent() != this) + return NULL; + return _meta->placeAfter(index, this, elt) ? elt : NULL; +} + +daeElementRef +daeElement::createElement(daeString className) +{ + daeElementRef elem = _meta->create(className); + // Bug #225 work around +// if ( elem != NULL) +// elem->ref(); // change premature delete into memory leak. + return elem; +} + +daeElement* daeElement::createAndPlace(daeString className) { + return add(className); +} + +daeElement* daeElement::createAndPlaceAt(daeInt index, daeString className) { + return add(className, index); +} + +daeBool daeElement::placeElement(daeElement* e) { + return add(e) != NULL; +} + +daeBool daeElement::placeElementAt(daeInt index, daeElement* e) { + return add(e, index) != NULL; +} + +daeBool daeElement::placeElementBefore( daeElement *marker, daeElement *element ) { + return addBefore(element, marker) != NULL; +} + +daeBool daeElement::placeElementAfter( daeElement *marker, daeElement *element ) { + return addAfter(element, marker) != NULL; +} + +daeInt daeElement::findLastIndexOf( daeString elementName ) { + if ( _meta->getContents() != NULL ) { + daeElementRefArray* contents = + (daeElementRefArray*)_meta->getContents()->getWritableMemory(this); + for ( int i = (int)contents->getCount()-1; i >= 0; --i ) { + if ( strcmp( contents->get(i)->getElementName(), elementName ) == 0 ) { + return i; + } + } + } + return -1; +} + +daeBool +daeElement::removeChildElement(daeElement* element) +{ + // error traps + if(element==NULL) + return false; + if(element->_parent != this) + return false; + + return _meta->remove( this, element ); +} + +void daeElement::setDocument( daeDocument *c, bool notifyDocument ) { + if( _document == c ) + return; + + // Notify our parent document if necessary. + if ( _document != NULL && notifyDocument ) + _document->removeElement(this); + _document = c; + if ( _document != NULL && notifyDocument ) + _document->insertElement(this); + + // Notify our attributes + daeMetaAttributeRefArray& metaAttrs = getMeta()->getMetaAttributes(); + for (size_t i = 0; i < metaAttrs.getCount(); i++) + metaAttrs[i]->setDocument(this, c); + + // Notify our char data object + if (getCharDataObject()) + getCharDataObject()->setDocument(this, c); + + // Notify our children + daeElementRefArray ea; + getChildren( ea ); + for ( size_t x = 0; x < ea.getCount(); x++ ) { + // Since inserting and removing elements works recursively in the database, + // we don't need to notify it about inserts/removals as we process the + // children of this element. + ea[x]->setDocument( c, false ); + } +} + +void daeElement::deleteCMDataArray(daeTArray& cmData) { + for (unsigned int i = 0; i < cmData.getCount(); i++) + delete cmData.get(i); + cmData.clear(); +} + +size_t daeElement::getAttributeCount() { + return getMeta()->getMetaAttributes().getCount(); +} + +namespace { + // A helper function to get the index of an attribute given the attribute name. + size_t getAttributeIndex(daeElement& el, daeString name) { + if (el.getMeta()) { + daeMetaAttributeRefArray& metaAttrs = el.getMeta()->getMetaAttributes(); + for (size_t i = 0; i < metaAttrs.getCount(); i++) + if (metaAttrs[i]->getName() && strcmp(metaAttrs[i]->getName(), name) == 0) + return i; + } + return (size_t)-1; + } +} + +daeMetaAttribute* daeElement::getAttributeObject(size_t i) { + daeMetaAttributeRefArray& attrs = getMeta()->getMetaAttributes(); + if (i >= attrs.getCount()) + return NULL; + return attrs[i]; +} + +daeMetaAttribute* daeElement::getAttributeObject(daeString name) { + return getAttributeObject(getAttributeIndex(*this, name)); +} + +std::string daeElement::getAttributeName(size_t i) { + if (daeMetaAttribute* attr = getAttributeObject(i)) + return (daeString)attr->getName(); + return ""; +} + +daeBool daeElement::hasAttribute(daeString name) { + return getAttributeObject(name) != 0; +} + +daeBool daeElement::isAttributeSet(daeString name) { + size_t i = getAttributeIndex(*this, name); + if (i != (size_t)-1) + return _validAttributeArray[i]; + return false; +} + +std::string daeElement::getAttribute(size_t i) { + std::string value; + getAttribute(i, value); + return value; +} + +void daeElement::getAttribute(size_t i, std::string& value) { + value = ""; + if (daeMetaAttribute* attr = getAttributeObject(i)) { + std::ostringstream buffer; + attr->memoryToString(this, buffer); + value = buffer.str(); + } +} + +std::string daeElement::getAttribute(daeString name) { + std::string value; + getAttribute(name, value); + return value; +} + +void daeElement::getAttribute(daeString name, std::string& value) { + getAttribute(getAttributeIndex(*this, name), value); +} + +daeElement::attr::attr() { } +daeElement::attr::attr(const std::string& name, const std::string& value) + : name(name), value(value) { } + +daeTArray daeElement::getAttributes() { + daeTArray attrs; + getAttributes(attrs); + return attrs; +} + +void daeElement::getAttributes(daeTArray& attrs) { + attrs.clear(); + for (size_t i = 0; i < getAttributeCount(); i++) { + std::string value; + getAttribute(i, value); + attrs.append(attr(getAttributeName(i), value)); + } +} + +daeBool daeElement::setAttribute(size_t i, daeString value) { + if (daeMetaAttribute* attr = getAttributeObject(i)) { + if (attr->getType()) { + attr->stringToMemory(this, value); + _validAttributeArray.set(i, true); + return true; + } + } + return false; +} + +daeBool daeElement::setAttribute(daeString name, daeString value) { + return setAttribute(getAttributeIndex(*this, name), value); +} + +// Deprecated +daeMemoryRef daeElement::getAttributeValue(daeString name) { + if (daeMetaAttribute* attr = getAttributeObject(name)) + return attr->get(this); + return NULL; +} + +daeMetaAttribute* daeElement::getCharDataObject() { + if (_meta) + return _meta->getValueAttribute(); + return NULL; +} + +daeBool daeElement::hasCharData() { + return getCharDataObject() != NULL; +} + +std::string daeElement::getCharData() { + std::string result; + getCharData(result); + return result; +} + +void daeElement::getCharData(std::string& data) { + data = ""; + if (daeMetaAttribute* charDataAttr = getCharDataObject()) { + std::ostringstream buffer; + charDataAttr->memoryToString(this, buffer); + data = buffer.str(); + } +} + +daeBool daeElement::setCharData(const std::string& data) { + if (daeMetaAttribute* charDataAttr = getCharDataObject()) { + charDataAttr->stringToMemory(this, data.c_str()); + return true; + } + return false; +} + +daeBool daeElement::hasValue() { + return hasCharData(); +} + +daeMemoryRef daeElement::getValuePointer() { + if (daeMetaAttribute* charDataAttr = getCharDataObject()) + return charDataAttr->get(this); + return NULL; +} + +void +daeElement::setup(daeMetaElement* meta) +{ + if (_meta) + return; + _meta = meta; + daeMetaAttributeRefArray& attrs = meta->getMetaAttributes(); + int macnt = (int)attrs.getCount(); + + _validAttributeArray.setCount(macnt, false); + + for (int i = 0; i < macnt; i++) { + if (attrs[i]->getDefaultValue() != NULL) + attrs[i]->copyDefault(this); + } + + //set up the _CMData array if there is one + if ( _meta->getMetaCMData() != NULL ) + { + daeTArray< daeCharArray *> *CMData = (daeTArray< daeCharArray *>*)_meta->getMetaCMData()->getWritableMemory(this); + CMData->setCount( _meta->getNumChoices() ); + for ( unsigned int i = 0; i < _meta->getNumChoices(); i++ ) + { + CMData->set( i, new daeCharArray() ); + } + } +} + +void daeElement::init() { + _parent = NULL; + _document = NULL; + _meta = NULL; + _elementName = NULL; + _userData = NULL; +} + +daeElement::daeElement() { + init(); +} + +daeElement::daeElement(DAE& dae) { + init(); +} + +daeElement::~daeElement() +{ + if (_elementName) { + delete[] _elementName; + _elementName = NULL; + } +} + +//function used until we clarify what's a type and what's a name for an element +daeString daeElement::getTypeName() const +{ + return _meta->getName(); +} +daeString daeElement::getElementName() const +{ + return _elementName ? _elementName : (daeString)_meta->getName(); +} +void daeElement::setElementName( daeString nm ) { + if ( nm == NULL ) { + if ( _elementName ) delete[] _elementName; + _elementName = NULL; + return; + } + if ( !_elementName ) _elementName = new daeChar[128]; + strcpy( (char*)_elementName, nm ); +} + +daeString daeElement::getID() const { + daeElement* this_ = const_cast(this); + if (_meta) + if (daeMetaAttribute* idAttr = this_->getAttributeObject("id")) + return *(daeStringRef*)idAttr->get(this_); + return NULL; +} + +daeElementRefArray daeElement::getChildren() { + daeElementRefArray array; + getChildren(array); + return array; +} + +void daeElement::getChildren( daeElementRefArray &array ) { + _meta->getChildren( this, array ); +} + +daeSmartRef daeElement::clone(daeString idSuffix, daeString nameSuffix) { + // Use the meta object system to create a new instance of this element. We need to + // create a new meta if we're cloning a domAny object because domAnys never share meta objects. + // Ideally we'd be able to clone the _meta for domAny objects. Then we wouldn't need + // any additional special case code for cloning domAny. Unfortunately, we don't have a + // daeMetaElement::clone method. + bool any = typeID() == domAny::ID(); + daeElementRef ret = any ? domAny::registerElement(*getDAE())->create() : _meta->create(); + ret->setElementName( _elementName ); + + // Copy the attributes and character data. Requires special care for domAny. + if (any) { + domAny* thisAny = (domAny*)this; + domAny* retAny = (domAny*)ret.cast(); + for (daeUInt i = 0; i < (daeUInt)thisAny->getAttributeCount(); i++) + retAny->setAttribute(thisAny->getAttributeName(i), thisAny->getAttributeValue(i)); + retAny->setValue(thisAny->getValue()); + } else { + // Use the meta system to copy attributes + daeMetaAttributeRefArray &attrs = _meta->getMetaAttributes(); + for (unsigned int i = 0; i < attrs.getCount(); i++) { + attrs[i]->copy( ret, this ); + ret->_validAttributeArray[i] = _validAttributeArray[i]; + } + if (daeMetaAttribute* valueAttr = getCharDataObject()) + valueAttr->copy( ret, this ); + } + + daeElementRefArray children; + _meta->getChildren( this, children ); + for ( size_t x = 0; x < children.getCount(); x++ ) { + ret->placeElement( children.get(x)->clone( idSuffix, nameSuffix ) ); + } + + // Mangle the id + if (idSuffix) { + std::string id = ret->getAttribute("id"); + if (!id.empty()) + ret->setAttribute("id", (id + idSuffix).c_str()); + } + // Mangle the name + if (nameSuffix) { + std::string name = ret->getAttribute("name"); + if (!name.empty()) + ret->setAttribute("name", (name + nameSuffix).c_str()); + } + return ret; +} + + +// Element comparison + +namespace { // Utility functions + int getNecessaryColumnWidth(const vector& tokens) { + int result = 0; + for (size_t i = 0; i < tokens.size(); i++) { + int tokenLength = int(tokens[i].length() > 0 ? tokens[i].length()+2 : 0); + result = max(tokenLength, result); + } + return result; + } + + string formatToken(const string& token) { + if (token.length() <= 50) + return token; + return token.substr(0, 47) + "..."; + } +} // namespace { + +daeElement::compareResult::compareResult() + : compareValue(0), + elt1(NULL), + elt2(NULL), + nameMismatch(false), + attrMismatch(""), + charDataMismatch(false), + childCountMismatch(false) { +} + +string daeElement::compareResult::format() { + if (!elt1 || !elt2) + return ""; + + // Gather the data we'll be printing + string name1 = formatToken(elt1->getElementName()), + name2 = formatToken(elt2->getElementName()), + type1 = formatToken(elt1->getTypeName()), + type2 = formatToken(elt2->getTypeName()), + id1 = formatToken(elt1->getAttribute("id")), + id2 = formatToken(elt2->getAttribute("id")), + attrName1 = formatToken(attrMismatch), + attrName2 = formatToken(attrMismatch), + attrValue1 = formatToken(elt1->getAttribute(attrMismatch.c_str())), + attrValue2 = formatToken(elt2->getAttribute(attrMismatch.c_str())), + charData1 = formatToken(elt1->getCharData()), + charData2 = formatToken(elt2->getCharData()), + childCount1 = formatToken(cdom::toString(elt1->getChildren().getCount())), + childCount2 = formatToken(cdom::toString(elt2->getChildren().getCount())); + + // Compute formatting information + vector col1Tokens = cdom::makeStringArray("Name", "Type", "ID", + "Attr name", "Attr value", "Char data", "Child count", 0); + vector col2Tokens = cdom::makeStringArray("Element 1", name1.c_str(), + type1.c_str(), id1.c_str(), attrName1.c_str(), attrValue1.c_str(), + charData1.c_str(), childCount1.c_str(), 0); + + int c1w = getNecessaryColumnWidth(col1Tokens), + c2w = getNecessaryColumnWidth(col2Tokens); + ostringstream msg; + msg << setw(c1w) << left << "" << setw(c2w) << left << "Element 1" << "Element 2\n" + << setw(c1w) << left << "" << setw(c2w) << left << "---------" << "---------\n" + << setw(c1w) << left << "Name" << setw(c2w) << left << name1 << name2 << endl + << setw(c1w) << left << "Type" << setw(c2w) << left << type1 << type2 << endl + << setw(c1w) << left << "ID" << setw(c2w) << left << id1 << id2 << endl + << setw(c1w) << left << "Attr name" << setw(c2w) << left << attrName1 << attrName2 << endl + << setw(c1w) << left << "Attr value" << setw(c2w) << left << attrValue1 << attrValue2 << endl + << setw(c1w) << left << "Char data" << setw(c2w) << left << charData1 << charData2 << endl + << setw(c1w) << left << "Child count" << setw(c2w) << left << childCount1 << childCount2; + + return msg.str(); +} + +namespace { + daeElement::compareResult compareMatch() { + daeElement::compareResult result; + result.compareValue = 0; + return result; + } + + daeElement::compareResult nameMismatch(daeElement& elt1, daeElement& elt2) { + daeElement::compareResult result; + result.elt1 = &elt1; + result.elt2 = &elt2; + result.compareValue = strcmp(elt1.getElementName(), elt2.getElementName()); + result.nameMismatch = true; + return result; + } + + daeElement::compareResult attrMismatch(daeElement& elt1, daeElement& elt2, const string& attr) { + daeElement::compareResult result; + result.elt1 = &elt1; + result.elt2 = &elt2; + result.compareValue = strcmp(elt1.getAttribute(attr.c_str()).c_str(), + elt2.getAttribute(attr.c_str()).c_str()); + result.attrMismatch = attr; + return result; + } + + daeElement::compareResult charDataMismatch(daeElement& elt1, daeElement& elt2) { + daeElement::compareResult result; + result.elt1 = &elt1; + result.elt2 = &elt2; + result.compareValue = strcmp(elt1.getCharData().c_str(), + elt2.getCharData().c_str()); + result.charDataMismatch = true; + return result; + } + + daeElement::compareResult childCountMismatch(daeElement& elt1, daeElement& elt2) { + daeElement::compareResult result; + result.elt1 = &elt1; + result.elt2 = &elt2; + daeElementRefArray children1 = elt1.getChildren(), + children2 = elt2.getChildren(); + result.compareValue = int(children1.getCount()) - int(children2.getCount()); + result.childCountMismatch = true; + return result; + } + + daeElement::compareResult compareElementsSameType(daeElement& elt1, daeElement& elt2) { + // Compare attributes + for (size_t i = 0; i < elt1.getAttributeCount(); i++) + if (elt1.getAttributeObject(i)->compare(&elt1, &elt2) != 0) + return attrMismatch(elt1, elt2, elt1.getAttributeName(i)); + + // Compare character data + if (elt1.getCharDataObject()) + if (elt1.getCharDataObject()->compare(&elt1, &elt2) != 0) + return charDataMismatch(elt1, elt2); + + // Compare children + daeElementRefArray children1 = elt1.getChildren(), + children2 = elt2.getChildren(); + if (children1.getCount() != children2.getCount()) + return childCountMismatch(elt1, elt2); + for (size_t i = 0; i < children1.getCount(); i++) { + daeElement::compareResult result = daeElement::compareWithFullResult(*children1[i], *children2[i]); + if (result.compareValue != 0) + return result; + } + + return compareMatch(); + } + + daeElement::compareResult compareElementsDifferentTypes(daeElement& elt1, daeElement& elt2) { + string value1, value2; + + // Compare attributes. Be careful because each element could have a + // different number of attributes. + if (elt1.getAttributeCount() > elt2.getAttributeCount()) + return attrMismatch(elt1, elt2, elt1.getAttributeName(elt2.getAttributeCount())); + if (elt2.getAttributeCount() > elt1.getAttributeCount()) + return attrMismatch(elt1, elt2, elt2.getAttributeName(elt1.getAttributeCount())); + for (size_t i = 0; i < elt1.getAttributeCount(); i++) { + elt1.getAttribute(i, value1); + elt2.getAttribute(elt1.getAttributeName(i).c_str(), value2); + if (value1 != value2) + return attrMismatch(elt1, elt2, elt1.getAttributeName(i)); + } + + // Compare character data + elt1.getCharData(value1); + elt2.getCharData(value2); + if (value1 != value2) + return charDataMismatch(elt1, elt2); + + // Compare children + daeElementRefArray children1 = elt1.getChildren(), + children2 = elt2.getChildren(); + if (children1.getCount() != children2.getCount()) + return childCountMismatch(elt1, elt2); + for (size_t i = 0; i < children1.getCount(); i++) { + daeElement::compareResult result = daeElement::compareWithFullResult(*children1[i], *children2[i]); + if (result.compareValue != 0) + return result; + } + + return compareMatch(); + } +} // namespace { + +int daeElement::compare(daeElement& elt1, daeElement& elt2) { + return compareWithFullResult(elt1, elt2).compareValue; +} + +daeElement::compareResult daeElement::compareWithFullResult(daeElement& elt1, daeElement& elt2) { + // Check the element name + if (strcmp(elt1.getElementName(), elt2.getElementName()) != 0) + return nameMismatch(elt1, elt2); + + // Dispatch to a specific function based on whether or not the types are the same + if ((elt1.typeID() != elt2.typeID()) || elt1.typeID() == domAny::ID()) + return compareElementsDifferentTypes(elt1, elt2); + else + return compareElementsSameType(elt1, elt2); +} + + +daeURI *daeElement::getDocumentURI() const { + if ( _document == NULL ) { + return NULL; + } + return _document->getDocumentURI(); +} + + +daeElement::matchName::matchName(daeString name) : name(name) { } + +bool daeElement::matchName::operator()(daeElement* elt) const { + return strcmp(elt->getElementName(), name.c_str()) == 0; +} + +daeElement::matchType::matchType(daeInt typeID) : typeID(typeID) { } + +bool daeElement::matchType::operator()(daeElement* elt) const { + return elt->typeID() == typeID; +} + +daeElement* daeElement::getChild(const matchElement& matcher) { + daeElementRefArray children; + getChildren(children); + for (size_t i = 0; i < children.getCount(); i++) + if (matcher(children[i])) + return children[i]; + + return NULL; +} + +daeElement* daeElement::getDescendant(const matchElement& matcher) { + daeElementRefArray elts; + getChildren(elts); + + for (size_t i = 0; i < elts.getCount(); i++) { + // Check the current element for a match + if (matcher(elts[i])) + return elts[i]; + + // Append the element's children to the queue + daeElementRefArray children; + elts[i]->getChildren(children); + size_t oldCount = elts.getCount(); + elts.setCount(elts.getCount() + children.getCount()); + for (size_t j = 0; j < children.getCount(); j++) + elts[oldCount + j] = children[j]; + } + + return NULL; +} + +daeElement* daeElement::getAncestor(const matchElement& matcher) { + daeElement* elt = getParent(); + while (elt) { + if (matcher(elt)) + return elt; + elt = elt->getParent(); + } + + return NULL; +} + +daeElement* daeElement::getParent() { + return _parent; +} + +daeElement* daeElement::getChild(daeString eltName) { + if (!eltName) + return NULL; + matchName test(eltName); + return getChild(matchName(eltName)); +} + +daeElement* daeElement::getDescendant(daeString eltName) { + if (!eltName) + return NULL; + return getDescendant(matchName(eltName)); +} + +daeElement* daeElement::getAncestor(daeString eltName) { + if (!eltName) + return NULL; + return getAncestor(matchName(eltName)); +} + +DAE* daeElement::getDAE() { + return _meta->getDAE(); +} + +void daeElement::setUserData(void* data) { + _userData = data; +} + +void* daeElement::getUserData() { + return _userData; +} diff --git a/src/dae/daeError.cpp b/src/dae/daeError.cpp new file mode 100644 index 0000000..cca0a60 --- /dev/null +++ b/src/dae/daeError.cpp @@ -0,0 +1,46 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include + +typedef struct +{ + int errCode; + const char *errString; +} DAEERROR; + +static DAEERROR errorsArray[] = +{ + { DAE_OK, "Success" }, + { DAE_ERROR, "Generic error" }, + { DAE_ERR_INVALID_CALL, "Invalid function call" }, + { DAE_ERR_FATAL, "Fatal" }, + { DAE_ERR_BACKEND_IO, "Backend IO" }, + { DAE_ERR_BACKEND_VALIDATION, "Backend validation" }, + { DAE_ERR_QUERY_SYNTAX, "Query syntax" }, + { DAE_ERR_QUERY_NO_MATCH, "Query no match" }, + { DAE_ERR_COLLECTION_ALREADY_EXISTS, "A document with the same name exists already" }, + { DAE_ERR_COLLECTION_DOES_NOT_EXIST, "No document is loaded with that name or index" }, + { DAE_ERR_NOT_IMPLEMENTED, "This function is not implemented in this reference implementation" }, +}; + +const char *daeErrorString(int errorCode) +{ + int iErrorCount = (int)(sizeof(errorsArray)/sizeof(DAEERROR)); + for (int i=0;i +#include + +daeErrorHandler *daeErrorHandler::_instance = NULL; +std::auto_ptr daeErrorHandler::_defaultInstance(new stdErrPlugin); + +daeErrorHandler::daeErrorHandler() { +} + +daeErrorHandler::~daeErrorHandler() { +} + +void daeErrorHandler::setErrorHandler( daeErrorHandler *eh ) { + _instance = eh; +} + +daeErrorHandler *daeErrorHandler::get() { + if ( _instance == NULL ) { + return _defaultInstance.get(); + } + return _instance; +} diff --git a/src/dae/daeIDRef.cpp b/src/dae/daeIDRef.cpp new file mode 100644 index 0000000..3fbd32a --- /dev/null +++ b/src/dae/daeIDRef.cpp @@ -0,0 +1,177 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include + +using namespace std; + +void +daeIDRef::initialize() +{ + id = ""; + container = NULL; +} + +daeIDRef::daeIDRef() +{ + initialize(); +} + +daeIDRef::daeIDRef(daeString IDRefString) +{ + initialize(); + setID(IDRefString); +} + +daeIDRef::daeIDRef(const daeIDRef& copyFrom_) +{ + initialize(); + copyFrom(copyFrom_); +} + +daeIDRef::daeIDRef(daeElement& container) { + initialize(); + setContainer(&container); +} + + +void +daeIDRef::reset() +{ + setID(""); +} + +bool daeIDRef::operator==(const daeIDRef& other) const { + return (!strcmp(other.getID(), getID())); +} + +daeIDRef &daeIDRef::operator=( const daeIDRef& other) { + if (!container) + container = other.container; + id = other.getID(); + return *this; +} + +daeString +daeIDRef::getID() const +{ + return id.c_str(); +} + +void +daeIDRef::setID(daeString _IDString) +{ + id = _IDString ? _IDString : ""; +} + +daeElement* daeIDRef::getElement() const { + if (container) + return container->getDAE()->getIDRefResolvers().resolveElement(id, container->getDocument()); + return NULL; +} + +daeElement* daeIDRef::getContainer() const { + return(container); +} + +void daeIDRef::setContainer(daeElement* cont) { + container = cont; +} + +void +daeIDRef::print() +{ + fprintf(stderr,"id = %s\n",id.c_str()); + fflush(stderr); +} + +// These methods are provided for backward compatibility only. +void daeIDRef::validate() { } + +void daeIDRef::resolveElement( daeString ) { } + +void daeIDRef::resolveID() { } + +daeIDRef &daeIDRef::get( daeUInt idx ) { + (void)idx; + return *this; +} + +size_t daeIDRef::getCount() const { + return 1; +} + +daeIDRef& daeIDRef::operator[](size_t index) { + (void)index; + return *this; +} + +void +daeIDRef::copyFrom(const daeIDRef& copyFrom) { + *this = copyFrom; +} + +daeIDRef::ResolveState daeIDRef::getState() const { + if (id.empty()) + return id_empty; + if (getElement()) + return id_success; + return id_failed_id_not_found; +} + + +daeIDRefResolver::daeIDRefResolver(DAE& dae) : dae(&dae) { } + +daeIDRefResolver::~daeIDRefResolver() { } + + +daeDefaultIDRefResolver::daeDefaultIDRefResolver(DAE& dae) : daeIDRefResolver(dae) { } + +daeDefaultIDRefResolver::~daeDefaultIDRefResolver() { } + +daeString +daeDefaultIDRefResolver::getName() +{ + return "DefaultIDRefResolver"; +} + +daeElement* daeDefaultIDRefResolver::resolveElement(const string& id, daeDocument* doc) { + return doc ? dae->getDatabase()->idLookup(id, doc) : NULL; +} + + +daeIDRefResolverList::daeIDRefResolverList() { } + +daeIDRefResolverList::~daeIDRefResolverList() { + for (size_t i = 0; i < resolvers.getCount(); i++) + delete resolvers[i]; +} + +void daeIDRefResolverList::addResolver(daeIDRefResolver* resolver) { + resolvers.append(resolver); +} + +void daeIDRefResolverList::removeResolver(daeIDRefResolver* resolver) { + resolvers.remove(resolver); +} + +daeElement* daeIDRefResolverList::resolveElement(const string& id, daeDocument* doc) { + for(size_t i = 0; i < resolvers.getCount(); i++) + if (daeElement* el = resolvers[i]->resolveElement(id, doc)) + return el; + return NULL; +} diff --git a/src/dae/daeIOPluginCommon.cpp b/src/dae/daeIOPluginCommon.cpp new file mode 100644 index 0000000..8b5b23b --- /dev/null +++ b/src/dae/daeIOPluginCommon.cpp @@ -0,0 +1,139 @@ +/* + * Copyright 2007 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +daeIOPluginCommon::daeIOPluginCommon() + : database(NULL), + topMeta(NULL) +{ +} + +daeIOPluginCommon::~daeIOPluginCommon() +{ +} + +daeInt daeIOPluginCommon::setMeta(daeMetaElement *_topMeta) +{ + topMeta = _topMeta; + return DAE_OK; +} + +void daeIOPluginCommon::setDatabase(daeDatabase* _database) +{ + database = _database; +} + +// This function needs to be re-entrant, it can be called recursively from inside of resolveAll +// to load files that the first file depends on. +daeInt daeIOPluginCommon::read(const daeURI& uri, daeString docBuffer) +{ + // Make sure topMeta has been set before proceeding + if (topMeta == NULL) + { + return DAE_ERR_BACKEND_IO; + } + + // Generate a version of the URI with the fragment removed + daeURI fileURI(*uri.getDAE(), uri.str(), true); + + //check if document already exists + if ( database->isDocumentLoaded( fileURI.getURI() ) ) + { + return DAE_ERR_COLLECTION_ALREADY_EXISTS; + } + + daeElementRef domObject = docBuffer ? + readFromMemory(docBuffer, fileURI) : + readFromFile(fileURI); // Load from URI + + if (!domObject) { + string msg = docBuffer ? + "Failed to load XML document from memory\n" : + string("Failed to load ") + fileURI.str() + "\n"; + daeErrorHandler::get()->handleError(msg.c_str()); + return DAE_ERR_BACKEND_IO; + } + + // Insert the document into the database, the Database will keep a ref on the main dom, so it won't get deleted + // until we clear the database + + daeDocument *document = NULL; + + int res = database->insertDocument(fileURI.getURI(),domObject,&document); + if (res!= DAE_OK) + return res; + + return DAE_OK; +} + +daeElementRef daeIOPluginCommon::beginReadElement(daeElement* parentElement, + daeString elementName, + const vector& attributes, + daeInt lineNumber) { + daeMetaElement* parentMeta = parentElement ? parentElement->getMeta() : topMeta; + daeElementRef element = parentMeta->create(elementName); + + if(!element) + { + ostringstream msg; + msg << "The DOM was unable to create an element named " << elementName << " at line " + << lineNumber << ". Probably a schema violation.\n"; + daeErrorHandler::get()->handleWarning( msg.str().c_str() ); + return NULL; + } + + // Process the attributes + for (size_t i = 0; i < attributes.size(); i++) { + daeString name = attributes[i].first, + value = attributes[i].second; + if (!element->setAttribute(name, value)) { + ostringstream msg; + msg << "The DOM was unable to create an attribute " << name << " = " << value + << " at line " << lineNumber << ".\nProbably a schema violation.\n"; + daeErrorHandler::get()->handleWarning(msg.str().c_str()); + } + } + + if (parentElement == NULL) { + // This is the root element. Check the COLLADA version. + daeURI *xmlns = (daeURI*)(element->getMeta()->getMetaAttribute( "xmlns" )->getWritableMemory( element )); + if ( strcmp( xmlns->getURI(), COLLADA_NAMESPACE ) != 0 ) { + // Invalid COLLADA version + daeErrorHandler::get()->handleError("Trying to load an invalid COLLADA version for this DOM build!"); + return NULL; + } + } + + return element; +} + +bool daeIOPluginCommon::readElementText(daeElement* element, daeString text, daeInt elementLineNumber) { + if (element->setCharData(text)) + return true; + + ostringstream msg; + msg << "The DOM was unable to set a value for element of type " << element->getTypeName() + << " at line " << elementLineNumber << ".\nProbably a schema violation.\n"; + daeErrorHandler::get()->handleWarning(msg.str().c_str()); + return false; +} diff --git a/src/dae/daeMemorySystem.cpp b/src/dae/daeMemorySystem.cpp new file mode 100644 index 0000000..b67fdec --- /dev/null +++ b/src/dae/daeMemorySystem.cpp @@ -0,0 +1,34 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +//#include + +daeRawRef +daeMemorySystem::alloc(daeString pool, size_t n) +{ + (void)pool; + void *mem = malloc(n); +// memset(mem,0,n); +// printf("alloc[%s] - %d = 0x%x\n",pool,n,mem); + return (daeRawRef)mem; +} + +void +daeMemorySystem::dealloc(daeString pool, daeRawRef mem) +{ + (void)pool; +// printf("free[%s] - 0x%x\n",pool,mem); + free(mem); +} + diff --git a/src/dae/daeMetaAny.cpp b/src/dae/daeMetaAny.cpp new file mode 100644 index 0000000..bceee8d --- /dev/null +++ b/src/dae/daeMetaAny.cpp @@ -0,0 +1,62 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include + +daeMetaAny::daeMetaAny( daeMetaElement *container, daeMetaCMPolicy *parent, daeUInt ordinal, + daeInt minO, daeInt maxO) : daeMetaCMPolicy( container, parent, ordinal, minO, maxO ) +{} + +daeMetaAny::~daeMetaAny() +{} + +daeElement *daeMetaAny::placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset, daeElement* before, daeElement *after ) { + //remove element from praent + (void)offset; + (void)before; + (void)after; + daeElement::removeFromParent( child ); + child->setParentElement( parent ); + //************************************************************************* + ordinal = 0; + return child; +} + +daeBool daeMetaAny::removeElement( daeElement *parent, daeElement *child ) { + (void)parent; + (void)child; + return true; +} + +daeMetaElement * daeMetaAny::findChild( daeString elementName ) { + if ( elementName != NULL ) { + const daeMetaElementRefArray &metas = _container->getDAE()->getAllMetas(); + size_t cnt = metas.getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + if ( metas[x] && !metas[x]->getIsInnerClass() && strcmp( elementName, metas[x]->getName() ) == 0 ) { + return metas[x]; + } + } + } + return domAny::registerElement(*_container->getDAE()); +} + +void daeMetaAny::getChildren( daeElement *parent, daeElementRefArray &array ) { + (void)parent; + (void)array; + //this is taken care of by the _contents in metaElement +} + diff --git a/src/dae/daeMetaAttribute.cpp b/src/dae/daeMetaAttribute.cpp new file mode 100644 index 0000000..3d7c5a4 --- /dev/null +++ b/src/dae/daeMetaAttribute.cpp @@ -0,0 +1,178 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include + +void daeMetaAttribute::set(daeElement* e, daeString s) { + stringToMemory(e, s); +} + +void daeMetaAttribute::copy(daeElement* to, daeElement *from) { + _type->copy(get(from), get(to)); +} + +void daeMetaArrayAttribute::copy(daeElement* to, daeElement *from) { + daeArray& fromArray = (daeArray&)*get(from); + daeArray& toArray = (daeArray&)*get(to); + _type->copyArray(fromArray, toArray); +} + +void daeMetaAttribute::copyDefault(daeElement* element) { + if (_defaultValue) + _type->copy(_defaultValue, get(element)); +} + +void daeMetaArrayAttribute::copyDefault(daeElement* element) { + if (_defaultValue) + _type->copyArray((daeArray&)*_defaultValue, (daeArray&)*get(element)); +} + +daeInt daeMetaAttribute::compare(daeElement* elt1, daeElement* elt2) { + return _type->compare(get(elt1), get(elt2)); +} + +daeInt daeMetaArrayAttribute::compare(daeElement* elt1, daeElement* elt2) { + daeArray& value1 = (daeArray&)*get(elt1); + daeArray& value2 = (daeArray&)*get(elt2); + return _type->compareArray(value1, value2); +} + +daeInt daeMetaAttribute::compareToDefault(daeElement* e) { + if (!_defaultValue) + return 1; + return _type->compare(get(e), _defaultValue); +} + +daeInt daeMetaArrayAttribute::compareToDefault(daeElement* e) { + if (!_defaultValue) + return 1; + daeArray& value1 = (daeArray&)*get(e); + daeArray& value2 = (daeArray&)*_defaultValue; + return _type->compareArray(value1, value2); +} + +daeMetaAttribute::daeMetaAttribute() +{ + _name = "noname"; + _offset = -1; + _type = NULL; + _container = NULL; + _defaultString = ""; + _defaultValue = NULL; + _isRequired = false; +} + +daeMetaAttribute::~daeMetaAttribute() { + if (_defaultValue) + _type->destroy(_defaultValue); + _defaultValue = NULL; +} + +daeMetaArrayAttribute::~daeMetaArrayAttribute() { + delete (daeArray*)_defaultValue; + _defaultValue = NULL; +} + +daeInt +daeMetaAttribute::getSize() +{ + return _type->getSize(); +} +daeInt +daeMetaAttribute::getAlignment() +{ + return _type->getAlignment(); +} + +void daeMetaAttribute::memoryToString(daeElement* e, std::ostringstream& buffer) { + _type->memoryToString(get(e), buffer); +} + +void daeMetaAttribute::stringToMemory(daeElement* e, daeString s) { + if (!strcmp(_name, "id") && e->getDocument()) + e->getDocument()->changeElementID(e, s); + else if (!strcmp(_name, "sid") && e->getDocument()) + e->getDocument()->changeElementSID(e, s); + + _type->stringToMemory((daeChar*)s, get(e)); +} + +daeChar* daeMetaAttribute::getWritableMemory(daeElement* e) { + return (daeChar*)e + _offset; +} + +daeMemoryRef daeMetaAttribute::get(daeElement* e) { + return getWritableMemory(e); +} + +void daeMetaAttribute::setDefaultString(daeString defaultVal) { + _defaultString = defaultVal; + if (!_defaultValue) + _defaultValue = _type->create(); + _type->stringToMemory((daeChar*)_defaultString.c_str(), _defaultValue); +} + +void daeMetaAttribute::setDefaultValue(daeMemoryRef defaultVal) { + if (!_defaultValue) + _defaultValue = _type->create(); + _type->copy(defaultVal, _defaultValue); + std::ostringstream buffer; + _type->memoryToString(_defaultValue, buffer); + _defaultString = buffer.str(); +} + +void daeMetaArrayAttribute::memoryToString(daeElement* e, std::ostringstream& buffer) { + if (e) + _type->arrayToString(*(daeArray*)get(e), buffer); +} + +void daeMetaArrayAttribute::stringToMemory(daeElement* e, daeString s) { + if (e) + _type->stringToArray((daeChar*)s, *(daeArray*)get(e)); +} + +void daeMetaArrayAttribute::setDefaultString(daeString defaultVal) { + _defaultString = defaultVal; + if (!_defaultValue) + _defaultValue = (daeMemoryRef)_type->createArray(); + _type->stringToArray((daeChar*)_defaultString.c_str(), (daeArray&)*_defaultValue); +} + +void daeMetaArrayAttribute::setDefaultValue(daeMemoryRef defaultVal) { + if (!_defaultValue) + _defaultValue = (daeMemoryRef)_type->createArray(); + _type->copyArray((daeArray&)*defaultVal, (daeArray&)*_defaultValue); + std::ostringstream buffer; + _type->arrayToString((daeArray&)*_defaultValue, buffer); + _defaultString = buffer.str(); +} + +daeString daeMetaAttribute::getDefaultString() { + return _defaultString.c_str(); +} + +daeMemoryRef daeMetaAttribute::getDefaultValue() { + return _defaultValue; +} + +void daeMetaAttribute::setDocument(daeElement* e, daeDocument* doc) { + _type->setDocument(get(e), doc); +} + +void daeMetaArrayAttribute::setDocument(daeElement* e, daeDocument* doc) { + _type->setDocument(*(daeArray*)get(e), doc); +} diff --git a/src/dae/daeMetaCMPolicy.cpp b/src/dae/daeMetaCMPolicy.cpp new file mode 100644 index 0000000..04e4e52 --- /dev/null +++ b/src/dae/daeMetaCMPolicy.cpp @@ -0,0 +1,22 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include + +daeMetaCMPolicy::~daeMetaCMPolicy() +{ + for( size_t i = 0; i < _children.getCount(); i++ ) { + delete _children[i]; + } +} + diff --git a/src/dae/daeMetaChoice.cpp b/src/dae/daeMetaChoice.cpp new file mode 100644 index 0000000..66ad406 --- /dev/null +++ b/src/dae/daeMetaChoice.cpp @@ -0,0 +1,153 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include + +daeMetaChoice::daeMetaChoice( daeMetaElement *container, daeMetaCMPolicy *parent, daeUInt choiceNum, daeUInt ordinal, + daeInt minO, daeInt maxO) : daeMetaCMPolicy( container, parent, ordinal, minO, maxO ), _choiceNum(choiceNum) +{} + +daeMetaChoice::~daeMetaChoice() +{} + +daeElement *daeMetaChoice::placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset, daeElement* before, daeElement *after ) { + (void)offset; + if ( _maxOccurs == -1 ) { + //Needed to prevent infinate loops. If unbounded check to see if you have the child before just trying to place + if ( findChild( child->getElementName() ) == NULL ) { + return NULL; + } + } + + daeElement *retVal = NULL; + size_t cnt = _children.getCount(); + + daeTArray< daeCharArray *> *CMData = (daeTArray< daeCharArray *>*)_container->getMetaCMData()->getWritableMemory(parent); + daeCharArray *myData = CMData->get( _choiceNum ); + + for ( daeInt i = 0; ( i < _maxOccurs || _maxOccurs == -1 ); i++ ) + { + if ( (daeInt)myData->getCount() > i && myData->get(i) != -1 ) //choice has already been made + { + if ( _children[ myData->get(i) ]->placeElement( parent, child, ordinal, i, before, after ) != NULL ) + { + retVal = child; + ordinal = ordinal + _ordinalOffset; + break; + } + //else //try to see if everything can be in a different choice + //{ + // daeElementRefArray childsInChoice; + // _children[ myData->get(i) ]->getChildren( parent, childsInChoice ); + // for ( size_t x = myData->get(i) +1; x < cnt; x++ ) + // { + // daeElementRefArray childsInNext; + // _children[ x ]->getChildren( parent, childsInNext ); //If you get children in another choice then + // //both choices can have the same type of children. + // if ( childsInNext.getCount() == childsInChoice.getCount() ) + // { + // //if there are the same ammount of children then all present children can belong to both + // //choices. Try to place the new child in this next choice. + // if ( _children[x]->placeElement( parent, child, ordinal, i, before, after ) != NULL ) + // { + // retVal = child; + // ordinal = ordinal + _ordinalOffset; + + // myData->set( i, (daeChar)x ); //change the choice to this new one + // break; + // } + // } + // } + // if ( retVal != NULL ) break; + //} + } + else //no choice has been made yet + { + for ( size_t x = 0; x < cnt; x++ ) + { + if ( _children[x]->placeElement( parent, child, ordinal, i, before, after ) != NULL ) + { + retVal = child; + ordinal = ordinal + _ordinalOffset; + + myData->append( (daeChar)x ); //you always place in the next available choice up to maxOccurs + break; + } + } + if ( retVal != NULL ) break; + } + } + if ( retVal == NULL ) + { + if ( findChild( child->getElementName() ) == NULL ) { + return NULL; + } + for ( daeInt i = 0; ( i < _maxOccurs || _maxOccurs == -1 ); i++ ) + { + daeElementRefArray childsInChoice; + _children[ myData->get(i) ]->getChildren( parent, childsInChoice ); + for ( size_t x = myData->get(i) +1; x < cnt; x++ ) + { + daeElementRefArray childsInNext; + _children[ x ]->getChildren( parent, childsInNext ); //If you get children in another choice then + //both choices can have the same type of children. + if ( childsInNext.getCount() == childsInChoice.getCount() ) + { + //if there are the same ammount of children then all present children can belong to both + //choices. Try to place the new child in this next choice. + if ( _children[x]->placeElement( parent, child, ordinal, i, before, after ) != NULL ) + { + retVal = child; + ordinal = ordinal + _ordinalOffset; + + myData->set( i, (daeChar)x ); //change the choice to this new one + break; + } + } + } + if ( retVal != NULL ) break; + } + } + return retVal; +} + +daeBool daeMetaChoice::removeElement( daeElement *parent, daeElement *child ) { + size_t cnt = _children.getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + if ( _children[x]->removeElement( parent, child ) ) { + return true; + } + } + return false; +} + +daeMetaElement * daeMetaChoice::findChild( daeString elementName ) { + daeMetaElement *me = NULL; + size_t cnt = _children.getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + me = _children[x]->findChild( elementName ); + if ( me != NULL ) { + return me; + } + } + return NULL; +} + +void daeMetaChoice::getChildren( daeElement *parent, daeElementRefArray &array ) { + size_t cnt = _children.getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + _children[x]->getChildren( parent, array ); + } +} + diff --git a/src/dae/daeMetaElement.cpp b/src/dae/daeMetaElement.cpp new file mode 100644 index 0000000..0127e12 --- /dev/null +++ b/src/dae/daeMetaElement.cpp @@ -0,0 +1,477 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +daeMetaElement::create() +{ + daeElementRef ret = (*_createFunc)(dae); + ret->setup(this); + + return ret; +} + +daeElementRef +daeMetaElement::create(daeString s) +{ + daeMetaElement* me = NULL; + if ( strcmp( s, _name ) == 0 ) { + //looking for this meta + me = this; + } + else if ( _contentModel != NULL ) { + me = _contentModel->findChild(s); + } + if (me != NULL) { + daeElementRef ret = me->create(); + if ( strcmp(s, me->getName() ) != 0 ) { + ret->setElementName(s); + } + return ret; + } + if ( getAllowsAny() ) { + daeElementRef ret = domAny::registerElement(dae)->create(); + ret->setElementName(s); + return ret; + } + return NULL; +} + +daeMetaElement::daeMetaElement(DAE& dae) : dae(dae) +{ + _name = "noname"; + _createFunc = NULL; + _elementSize = sizeof(daeElement); + _metaValue = NULL; + _metaContents = NULL; + _metaContentsOrder = NULL; // sthomas + _metaID = NULL; + _isTrackableForQueries = true; + _usesStringContents = false; + _isTransparent = false; + _isAbstract = false; + _allowsAny = false; + _innerClass = false; + _contentModel = NULL; + _metaCMData = NULL; + _numMetaChoices = 0; +} + +daeMetaElement::~daeMetaElement() +{ + delete _metaContents; + delete _contentModel; + delete _metaContentsOrder; + delete _metaCMData; +} + +DAE* daeMetaElement::getDAE() { + return &dae; +} + +void daeMetaElement::setCMRoot( daeMetaCMPolicy *cm ) +{ + if (_contentModel) + delete _contentModel; + _contentModel = cm; +} + +void +daeMetaElement::addContents(daeInt offset) +{ + daeMetaElementArrayAttribute* meaa = new daeMetaElementArrayAttribute( this, NULL, 0, 1, -1 ); + meaa->setType(dae.getAtomicTypes().get("element")); + meaa->setName("contents"); + meaa->setOffset(offset); + meaa->setContainer( this); + _metaContents = meaa; +} +void +daeMetaElement::addContentsOrder(daeInt offset) +{ + daeMetaArrayAttribute* meaa = new daeMetaArrayAttribute(); + meaa->setType(dae.getAtomicTypes().get("uint")); + meaa->setName("contentsOrder"); + meaa->setOffset(offset); + meaa->setContainer( this); + + if (_metaContentsOrder) + delete _metaContentsOrder; + + _metaContentsOrder = meaa; +} + +void daeMetaElement::addCMDataArray(daeInt offset, daeUInt numChoices) +{ + daeMetaArrayAttribute* meaa = new daeMetaArrayAttribute(); + meaa->setType(dae.getAtomicTypes().get("int")); + meaa->setName("CMData"); + meaa->setOffset(offset); + meaa->setContainer( this); + + if (_metaCMData) + delete _metaCMData; + + _metaCMData = meaa; + + _numMetaChoices = numChoices; +} + + +/*void +daeMetaElement::appendArrayElement(daeMetaElement* element, daeInt offset, daeString name) +{ + daeMetaElementArrayAttribute* meaa = new daeMetaElementArrayAttribute; + meaa->setType(daeAtomicType::get("element")); + if ( name ) { + meaa->setName(name); + } + else { + meaa->setName(element->getName()); + } + meaa->setOffset(offset); + meaa->setContainer(this); + meaa->setElementType( element); + _metaElements.append(meaa); +} +void +daeMetaElement::appendElement(daeMetaElement* element, daeInt offset, daeString name) +{ + daeMetaElementAttribute* meaa = new daeMetaElementAttribute; + meaa->setType(daeAtomicType::get("element")); + if ( name ) { + meaa->setName(name); + } + else { + meaa->setName(element->getName()); + } + meaa->setOffset( offset); + meaa->setContainer( this ); + meaa->setElementType( element ); + _metaElements.append(meaa); +}*/ + +void +daeMetaElement::appendAttribute(daeMetaAttribute* attr) +{ + if (attr == NULL) + return; + + if (strcmp(attr->getName(),"_value") == 0) { + _metaValue = attr; + } + else + _metaAttributes.append(attr); + + if ((attr->getName() != NULL) && + (strcmp(attr->getName(),"id") == 0)) { + _metaID = attr; + _isTrackableForQueries = true; + } +} + +void +daeMetaElement::validate() +{ + if (_elementSize == 0) + { + daeInt place=0; + unsigned int i; + for(i=0;i<_metaAttributes.getCount();i++) { + place += _metaAttributes[i]->getSize(); + int align = _metaAttributes[i]->getAlignment(); + place += align; + place &= (~(align-1)); + } + _elementSize = place; + } +} + +daeMetaAttribute* +daeMetaElement::getMetaAttribute(daeString s) +{ + int cnt = (int)_metaAttributes.getCount(); + int i; + for(i=0;igetName(),s) == 0) + return _metaAttributes[i]; + return NULL; +} + + +// void daeMetaElement::releaseMetas() +// { +// _metas().clear(); +// size_t count = _classMetaPointers().getCount(); +// for ( size_t i = 0; i < count; i++ ) +// { +// *(_classMetaPointers()[i]) = NULL; +// } +// _classMetaPointers().clear(); +// if (mera) +// { +// delete mera; +// mera = NULL; +// } +// if (mes) +// { +// delete mes; +// mes = NULL; +// } +// } + +daeBool daeMetaElement::place(daeElement *parent, daeElement *child, daeUInt *ordinal ) +{ + if (child->getMeta()->getIsAbstract() || parent->getMeta() != this ) { + return false; + } + daeUInt ord; + daeElement *retVal = _contentModel->placeElement( parent, child, ord ); + if ( retVal != NULL ) { + //update document pointer + child->setDocument( parent->getDocument() ); + retVal->setDocument( parent->getDocument() ); + //add to _contents array + if (_metaContents != NULL) { + daeElementRefArray* contents = + (daeElementRefArray*)_metaContents->getWritableMemory(parent); + daeUIntArray* contentsOrder = + (daeUIntArray*)_metaContentsOrder->getWritableMemory(parent); + daeBool needsAppend = true; + size_t cnt = contentsOrder->getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + if ( contentsOrder->get(x) > ord ) { + contents->insertAt( x, retVal ); + contentsOrder->insertAt( x, ord ); + needsAppend = false; + break; + } + } + if ( needsAppend ) { + contents->append(retVal); + contentsOrder->append( ord ); + } + } + if ( ordinal != NULL ) { + *ordinal = ord; + } + } + return retVal!=NULL; +} + +daeBool daeMetaElement::placeAt( daeInt index, daeElement *parent, daeElement *child ) +{ + if (child->getMeta()->getIsAbstract() || parent->getMeta() != this || index < 0 ) { + return false; + } + daeUInt ord; + daeElement *retVal = _contentModel->placeElement( parent, child, ord ); + if ( retVal != NULL ) { + //add to _contents array + if (_metaContents != NULL) { + daeElementRefArray* contents = + (daeElementRefArray*)_metaContents->getWritableMemory(parent); + daeUIntArray* contentsOrder = + (daeUIntArray*)_metaContentsOrder->getWritableMemory(parent); + daeBool validLoc; + if ( index > 0 ) { + validLoc = contentsOrder->get(index) >= ord && contentsOrder->get(index) <= ord; + } + else { + if ( contentsOrder->getCount() == 0 ) { + validLoc = true; + } + else { + validLoc = contentsOrder->get(index) >= ord; + } + } + if ( validLoc ) { + contents->insertAt( index, retVal ); + contentsOrder->insertAt( index, ord ); + } + else { + _contentModel->removeElement( parent, retVal ); + retVal = NULL; + } + } + } + if ( retVal != NULL ) { + //update document pointer + child->setDocument( parent->getDocument() ); + retVal->setDocument( parent->getDocument() ); + } + return retVal!=NULL; +} + +daeBool daeMetaElement::placeBefore( daeElement *marker, daeElement *parent, daeElement *child, daeUInt *ordinal ) +{ + if (child->getMeta()->getIsAbstract() || parent->getMeta() != this ) { + return false; + } + daeUInt ord; + daeElement *retVal = _contentModel->placeElement( parent, child, ord, 0, marker, NULL ); + if ( retVal != NULL ) { + //add to _contents array + if (_metaContents != NULL) { + daeElementRefArray* contents = + (daeElementRefArray*)_metaContents->getWritableMemory(parent); + daeUIntArray* contentsOrder = + (daeUIntArray*)_metaContentsOrder->getWritableMemory(parent); + size_t index(0); + daeBool validLoc = false; + if ( contents->find( marker, index ) == DAE_OK ) { + if ( index > 0 ) { + daeUInt gt = contentsOrder->get(index-1); + daeUInt lt = contentsOrder->get(index); + validLoc = gt <= ord && lt >= ord; + } + else { + validLoc = contentsOrder->get(index) >= ord; + } + } + if ( validLoc ) { + contents->insertAt( index, retVal ); + contentsOrder->insertAt( index, ord ); + if ( ordinal != NULL ) { + *ordinal = ord; + } + } + else { + _contentModel->removeElement( parent, retVal ); + retVal = NULL; + } + } + } + if ( retVal != NULL ) { + //update document pointer + child->setDocument( parent->getDocument() ); + retVal->setDocument( parent->getDocument() ); + } + return retVal!=NULL; +} + +daeBool daeMetaElement::placeAfter( daeElement *marker, daeElement *parent, daeElement *child, daeUInt *ordinal ) +{ + if (child->getMeta()->getIsAbstract() || parent->getMeta() != this ) { + return false; + } + daeUInt ord; + daeElement *retVal = _contentModel->placeElement( parent, child, ord, 0, NULL, marker ); + if ( retVal != NULL ) { + //add to _contents array + if (_metaContents != NULL) { + daeElementRefArray* contents = + (daeElementRefArray*)_metaContents->getWritableMemory(parent); + daeUIntArray* contentsOrder = + (daeUIntArray*)_metaContentsOrder->getWritableMemory(parent); + size_t index(0); + daeBool validLoc = false; + if ( contents->find( marker, index ) == DAE_OK ) { + if ( index < contentsOrder->getCount()-1 ) { + validLoc = contentsOrder->get(index) <= ord && contentsOrder->get(index+1) >= ord; + } + else { + validLoc = contentsOrder->get(index) <= ord; + } + } + if ( validLoc ) { + contents->insertAt( index+1, retVal ); + contentsOrder->insertAt( index+1, ord ); + if ( ordinal != NULL ) { + *ordinal = ord; + } + } + else { + _contentModel->removeElement( parent, retVal ); + retVal = NULL; + } + } + } + if ( retVal != NULL ) { + //update document pointer + child->setDocument( parent->getDocument() ); + retVal->setDocument( parent->getDocument() ); + } + return retVal!=NULL; +} + +daeBool daeMetaElement::remove(daeElement *parent, daeElement *child) +{ + if ( parent->getMeta() != this ) { + return false; + } + //prevent child from being deleted + daeElementRef el( child ); + if ( _contentModel->removeElement( parent, child ) ) { + if ( _metaContents != NULL) + { + daeElementRefArray* contents = (daeElementRefArray*)_metaContents->getWritableMemory(parent); + daeUIntArray* contentsOrder = (daeUIntArray*)_metaContentsOrder->getWritableMemory(parent); + size_t idx(0); + if ( contents->remove(child, &idx) == DAE_OK ) { + contentsOrder->removeIndex( idx ); + } + } + if ( child->getDocument() ) { + child->getDocument()->removeElement( child ); + } + + // Clear the child's parent pointer + child->setParentElement( NULL ); + + return true; + } + return false; +} + +void daeMetaElement::getChildren( daeElement* parent, daeElementRefArray &array ) +{ + if ( parent->getMeta() != this ) { + return; + } + if ( _metaContents != NULL ) { + daeElementRefArray* contents = (daeElementRefArray*)_metaContents->getWritableMemory(parent); + for ( size_t x = 0; x < contents->getCount(); x++ ) { + array.append( contents->get(x) ); + } + } + else if ( _contentModel != NULL ) { + _contentModel->getChildren( parent, array ); + } +} + +// daeMetaElementRefArray &daeMetaElement::_metas() +// { +// if (!mera) +// { +// mera = new daeMetaElementRefArray(); +// } +// return *mera; +// } + +// daeTArray< daeMetaElement** > &daeMetaElement::_classMetaPointers() +// { +// if (!mes) +// { +// mes = new daeTArray< daeMetaElement** >(); +// } +// return *mes; +// } + diff --git a/src/dae/daeMetaElementAttribute.cpp b/src/dae/daeMetaElementAttribute.cpp new file mode 100644 index 0000000..3c0d357 --- /dev/null +++ b/src/dae/daeMetaElementAttribute.cpp @@ -0,0 +1,232 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include + +daeMetaElementAttribute::daeMetaElementAttribute( daeMetaElement *container, daeMetaCMPolicy *parent, daeUInt ordinal, + daeInt minO, daeInt maxO) : daeMetaCMPolicy( container, parent, ordinal, minO, maxO ) +{ + _elementType = NULL; +} + +daeMetaElementAttribute::~daeMetaElementAttribute() +{} + +daeMetaElementArrayAttribute::daeMetaElementArrayAttribute( daeMetaElement *container, daeMetaCMPolicy *parent, daeUInt ordinal, + daeInt minO, daeInt maxO) : daeMetaElementAttribute( container, parent, ordinal, minO, maxO ) +{ +} + +daeMetaElementArrayAttribute::~daeMetaElementArrayAttribute() +{} + + +void daeMetaElementAttribute::set(daeElement* e, daeString s) +{ + //_type->stringToMemory((char*)s, getWritableMemory(e)); + daeElementRef *ref = (daeElementRef*)(getWritableMemory(e)); + if ((*ref) == NULL) { + (*ref) = _elementType->create(); + } + (*ref)->getMeta()->getValueAttribute()->stringToMemory((*ref), s); +} + +void daeMetaElementAttribute::copy(daeElement* to, daeElement *from) { + daeElement *cpy = (*(daeElementRef*)(getWritableMemory(from)))->clone(); + (*(daeElementRef*)(getWritableMemory(to))) = cpy; +} + +void daeMetaElementArrayAttribute::copy(daeElement* to, daeElement *from) { + (void)to; + (void)from; +} + +void +daeMetaElementAttribute::setDocument( daeElement * parent, daeDocument* c ) +{ + daeElementRef* er = (daeElementRef*)getWritableMemory( parent ); + if ( ((daeElement*)(*er)) != NULL ) { + (*er)->setDocument( c ); + } +} + +void +daeMetaElementArrayAttribute::setDocument( daeElement * parent, daeDocument* c ) +{ + daeElementRefArray* era = (daeElementRefArray*)getWritableMemory( parent ); + for ( unsigned int i = 0; i < era->getCount(); i++ ) { + era->get(i)->setDocument( c ); + } +} + +daeInt +daeMetaElementAttribute::getCount(daeElement* e) +{ + if (e == NULL) + return 0; + return ((*((daeElementRef*)getWritableMemory(e))) != NULL); +} + +daeMemoryRef +daeMetaElementAttribute::get(daeElement *e, daeInt index) +{ + (void)index; + return getWritableMemory(e); +} + +daeInt +daeMetaElementArrayAttribute::getCount(daeElement *e) +{ + if (e == NULL) + return 0; + daeElementRefArray* era = (daeElementRefArray*)getWritableMemory(e); + if (era == NULL) + return 0; + return (daeInt)era->getCount(); +} + +daeMemoryRef +daeMetaElementArrayAttribute::get(daeElement* e, daeInt index) +{ + if (e == NULL) + return NULL; + daeElementRefArray* era = (daeElementRefArray*)getWritableMemory(e); + if (era == NULL || index >= (daeInt)era->getCount() ) + return NULL; + return (daeMemoryRef)&(era->get(index)); +} + +daeElement * +daeMetaElementAttribute::placeElement(daeElement* parent, daeElement* child, daeUInt &ordinal, daeInt offset, daeElement* before, daeElement *after ) +{ + (void)offset; + (void)before; + (void)after; + if ((parent == NULL)||(child == NULL)) + return NULL; + if ( child->getMeta() != _elementType || strcmp( child->getElementName(), _name ) != 0 ) { + return NULL; + } + if (child->getParentElement() == parent) { + //I Don't know why this gets called when the child already has this as parent. + return child; + } + daeElementRef* er = (daeElementRef*)getWritableMemory(parent); + + if ( *er != NULL ) + { + return NULL; + } + + daeElement::removeFromParent( child ); + child->setParentElement( parent ); + + *er = child; + ordinal = _ordinalOffset; + + return child; +} + +daeElement * +daeMetaElementArrayAttribute::placeElement(daeElement* parent, daeElement* child, daeUInt &ordinal, daeInt offset, daeElement* before, daeElement *after ) +{ + if ((parent == NULL)||(child == NULL)) + return NULL; + if ( child->getMeta() != _elementType || strcmp( child->getElementName(), _name ) != 0 ) { + return NULL; + } + daeElement *p = child->getParentElement(); + daeElementRefArray* era = (daeElementRefArray*)getWritableMemory(parent); + if ( _maxOccurs != -1 && (daeInt)era->getCount()-offset >= _maxOccurs ) { + return NULL; + } + removeElement( p, child ); + child->setParentElement( parent ); + + if ( before != NULL && before->getMeta() == _elementType ) { + size_t idx(0); + if ( era->find( before, idx ) == DAE_OK ) { + era->insertAt( idx, child ); + } + } + else if ( after != NULL && after->getMeta() == _elementType ) { + size_t idx(0); + if ( era->find( after, idx ) == DAE_OK ) { + era->insertAt( idx+1, child ); + } + } + else { + era->append(child); + } + ordinal = _ordinalOffset; + + return child; +} + +// These are the opposite of the placeElement functions above +daeBool +daeMetaElementAttribute::removeElement(daeElement* parent, daeElement* child) +{ + (void)child; // silence unused variable warning + + if ((parent == NULL)||(child == NULL )) + return false; + + daeElementRef* er = (daeElementRef*)getWritableMemory(parent); + if ( *er != child ) { + return false; + } + *er = NULL; + return true; +} + +daeBool +daeMetaElementArrayAttribute::removeElement(daeElement* parent, + daeElement* child) +{ + if ((parent == NULL)||(child == NULL)) + return false ; + + daeElementRefArray* era = (daeElementRefArray*)getWritableMemory(parent); +/* if ( (daeInt)era->getCount() <= _minOccurs ) { + return false; + }*/ + daeInt error = era->remove(child); + if ( error != DAE_OK ) { + return false; + } + return true; +} + +daeMetaElement *daeMetaElementAttribute::findChild( daeString elementName ) { + if ( strcmp( elementName, _name ) == 0 ) { + return _elementType; + } + return NULL; +} + +void daeMetaElementAttribute::getChildren( daeElement *parent, daeElementRefArray &array ) { + daeElementRef* er = (daeElementRef*)getWritableMemory(parent); + if ( *er != NULL ) { + array.appendUnique( *er ); + } +} + +void daeMetaElementArrayAttribute::getChildren( daeElement *parent, daeElementRefArray &array ) { + daeElementRefArray* era = (daeElementRefArray*)getWritableMemory(parent); + size_t cnt = era->getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + array.appendUnique( era->get(x) ); + } +} diff --git a/src/dae/daeMetaGroup.cpp b/src/dae/daeMetaGroup.cpp new file mode 100644 index 0000000..0beb671 --- /dev/null +++ b/src/dae/daeMetaGroup.cpp @@ -0,0 +1,149 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include + +daeMetaGroup::daeMetaGroup( daeMetaElementAttribute *econ, daeMetaElement *container, + daeMetaCMPolicy *parent, daeUInt ordinal, daeInt minO, daeInt maxO) : + daeMetaCMPolicy( container, parent, ordinal, minO, maxO ), _elementContainer( econ ) +{} + +daeMetaGroup::~daeMetaGroup() +{ + if ( _elementContainer != NULL ) { + delete _elementContainer; + } +} + +daeElement *daeMetaGroup::placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset, daeElement* before, daeElement *after ) { + (void)offset; + daeString nm = child->getElementName(); + if ( findChild( nm ) == NULL ) { + return false; + } + daeElementRef el; + + //check if the element trying to be placed is a group element. If so Just add it don't create a new one. + if ( strcmp( nm, _elementContainer->getName() ) == 0 ) { + if ( _elementContainer->placeElement(parent, child, ordinal, offset ) != NULL ) { + return child; + } + } + +#if 1 + daeInt elCnt = _elementContainer->getCount(parent); + //check existing groups + //This doesn't work properly. Because the choice can't check if you make two decisions you cannot fail + //here when you are supposed to. Luckily the current schema just has groups with single choices so + //every element needs a new group container. Wasteful but thats how the schema is and its how it works. + for ( daeInt x = 0; x < elCnt; x++ ) { + daeMemoryRef mem = _elementContainer->get(parent, x ); + if ( mem != NULL ) { + el = *(daeElementRef*)mem; + } + if ( el == NULL ) { + continue; + } + if ( before != NULL ) { + if ( _elementContainer->_elementType->placeBefore( before, el, child, &ordinal ) ) { + ordinal = ordinal + _ordinalOffset; + return el; + } + } + else if ( after != NULL ) { + if ( _elementContainer->_elementType->placeAfter( after, el, child, &ordinal ) ) { + ordinal = ordinal + _ordinalOffset; + return el; + } + } + else { + if ( _elementContainer->_elementType->place( el, child, &ordinal ) ) { + ordinal = ordinal + _ordinalOffset; + return el; + } + } + } +#endif + //if you couldn't place in existing groups make a new one if you can + el = _elementContainer->placeElement(parent, _elementContainer->_elementType->create(), ordinal, offset ); + if ( el != NULL ) { + //el = *(daeElementRef*)_elementContainer->get(parent, elCnt ); + if ( before != NULL ) { + if ( _elementContainer->_elementType->placeBefore( before, el, child, &ordinal ) ) { + ordinal = ordinal + _ordinalOffset; + return el; + } + } + else if ( after != NULL ) { + if ( _elementContainer->_elementType->placeAfter( after, el, child, &ordinal ) ) { + ordinal = ordinal + _ordinalOffset; + return el; + } + } + else { + if ( _elementContainer->_elementType->place( el, child, &ordinal ) ) { + ordinal = ordinal + _ordinalOffset; + return el; + } + } + } + return NULL; +} + +daeBool daeMetaGroup::removeElement( daeElement *parent, daeElement *child ) { + daeElementRef el; + daeInt elCnt = _elementContainer->getCount(parent); + for ( daeInt x = 0; x < elCnt; x++ ) { + daeMemoryRef mem = _elementContainer->get(parent, x ); + if ( mem != NULL ) { + el = *(daeElementRef*)mem; + } + if ( el == NULL ) { + continue; + } + if ( el->removeChildElement( child ) ) { + //check if there are any more children in this group. If not remove the group container element too. + daeElementRefArray array; + getChildren( parent, array ); + if ( array.getCount() == 0 ) + { + _elementContainer->removeElement( parent, el ); + } + return true; + } + } + return false; +} + +daeMetaElement * daeMetaGroup::findChild( daeString elementName ) { + if ( strcmp( _elementContainer->getName(), elementName ) == 0 ) { + return _elementContainer->getElementType(); + } + return _elementContainer->_elementType->getCMRoot()->findChild( elementName ); +} + +void daeMetaGroup::getChildren( daeElement *parent, daeElementRefArray &array ) { + size_t cnt = _elementContainer->getCount( parent ); + for ( size_t x = 0; x < cnt; x++ ) { + (*((daeElementRef*)_elementContainer->get(parent, (daeInt)x )))->getChildren( array ); + /*daeElementRef el = (*((daeElementRef*)_elementContainer->get(parent, (daeInt)x ))); + size_t cnt2 = _children.getCount(); + for ( size_t i = 0; i < cnt2; i++ ) { + _children[i]->getChildren( el, array ); + }*/ + } + //_elementContainer->_elementType->getChildren( parent, array ); +} + diff --git a/src/dae/daeMetaSequence.cpp b/src/dae/daeMetaSequence.cpp new file mode 100644 index 0000000..f338b21 --- /dev/null +++ b/src/dae/daeMetaSequence.cpp @@ -0,0 +1,72 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include + +daeMetaSequence::daeMetaSequence( daeMetaElement *container, daeMetaCMPolicy *parent, daeUInt ordinal, + daeInt minO, daeInt maxO) : + daeMetaCMPolicy( container, parent, ordinal, minO, maxO ) +{} + +daeMetaSequence::~daeMetaSequence() +{} + +daeElement *daeMetaSequence::placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset, daeElement* before, daeElement *after ) { + (void)offset; + if ( _maxOccurs == -1 ) { + //Needed to prevent infinate loops. If unbounded check to see if you have the child before just trying to place + if ( findChild( child->getElementName() ) == NULL ) { + return NULL; + } + } + + size_t cnt = _children.getCount(); + for ( daeInt i = 0; ( i < _maxOccurs || _maxOccurs == -1 ); i++ ) { + for ( size_t x = 0; x < cnt; x++ ) { + if ( _children[x]->placeElement( parent, child, ordinal, i, before, after ) != NULL ) { + ordinal = ordinal + (i * ( _maxOrdinal + 1 )) + _ordinalOffset; + return child; + } + } + } + return NULL; +} + +daeBool daeMetaSequence::removeElement( daeElement *parent, daeElement *child ) { + size_t cnt = _children.getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + if ( _children[x]->removeElement( parent, child ) ) { + return true; + } + } + return false; +} + +daeMetaElement * daeMetaSequence::findChild( daeString elementName ) { + daeMetaElement *me = NULL; + size_t cnt = _children.getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + me = _children[x]->findChild( elementName ); + if ( me != NULL ) { + return me; + } + } + return NULL; +} + +void daeMetaSequence::getChildren( daeElement *parent, daeElementRefArray &array ) { + size_t cnt = _children.getCount(); + for ( size_t x = 0; x < cnt; x++ ) { + _children[x]->getChildren( parent, array ); + } +} diff --git a/src/dae/daeRawResolver.cpp b/src/dae/daeRawResolver.cpp new file mode 100644 index 0000000..f297a36 --- /dev/null +++ b/src/dae/daeRawResolver.cpp @@ -0,0 +1,129 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include + +using namespace std; + +daeRawResolver::daeRawResolver(DAE& dae) : daeURIResolver(dae) +{ +} + +daeRawResolver::~daeRawResolver() +{ +} + +daeString +daeRawResolver::getName() +{ + return "RawResolver"; +} + +daeElement* daeRawResolver::resolveElement(const daeURI& uri) { + if (cdom::tolower(uri.pathExt()).find(".raw") == string::npos) + return NULL; + + daeRawRefCache& cache = dae->getRawRefCache(); + if (daeElement* elt = cache.lookup(uri)) + return elt; + + string fileName = cdom::uriToNativePath(uri.str()); + if (fileName.empty()) + { + daeErrorHandler::get()->handleError( "daeRawResolver::resolveElement() - Can't get path from URI\n" ); + return NULL; + } + FILE *rawFile = fopen(fileName.c_str(), "rb"); + if (rawFile == NULL ) + return NULL; + long byteOffset = atoi( uri.getID() ); //get the fragment + + daeElement *src; + daeElement *array; + daeElement *accessor; + + accessor = uri.getContainer(); + if ( accessor == NULL ) + return NULL; + src = accessor->getParentElement()->getParentElement(); + daeElementRefArray children; + accessor->getChildren( children ); + bool hasInts = children[0]->getAttribute("type") == "int"; + + if ( hasInts ) + { + array = src->createAndPlace( "int_array" ); + } + else + { + array = src->createAndPlace( "float_array" ); + } + + daeULong *countPtr = (daeULong*)accessor->getAttributeValue( "count" ); + daeULong count = countPtr != NULL ? *countPtr : 0; + + daeULong *stridePtr = (daeULong*)accessor->getAttributeValue( "stride" ); + daeULong stride = stridePtr != NULL ? *stridePtr : 1; + + *(daeULong*)(array->getAttributeValue("count")) = count*stride; + array->setAttribute( "id", (src->getAttribute("id") + "-array").c_str() ); + + daeArray *valArray = (daeArray*)array->getValuePointer(); + valArray->setCount( (size_t)(count*stride) ); + + fseek( rawFile, byteOffset, SEEK_SET ); + if ( hasInts ) + { + daeInt val; + for ( unsigned int i = 0; i < count*stride; i++ ) + { + fread( &val, sizeof(daeInt), 1, rawFile ); + *(daeLong*)(valArray->getRaw(i)) = (daeLong)val; + } + } + else + { + daeFloat val; + for ( unsigned int i = 0; i < count*stride; i++ ) + { + fread( &val, sizeof(daeFloat), 1, rawFile ); + *(daeDouble*)(valArray->getRaw(i)) = (daeDouble)val; + } + } + + fclose(rawFile); + cache.add(uri, array); + return array; +} + + +daeElement* daeRawRefCache::lookup(const daeURI& uri) { + map::iterator iter = lookupTable.find(uri.str()); + return iter == lookupTable.end() ? NULL : iter->second; +} + +void daeRawRefCache::add(const daeURI& uri, daeElement* elt) { + lookupTable[uri.str()] = elt; +} + +void daeRawRefCache::remove(const daeURI& uri) { + lookupTable.erase(uri.str()); +} + +void daeRawRefCache::clear() { + lookupTable.clear(); +} diff --git a/src/dae/daeRefCountedObj.cpp b/src/dae/daeRefCountedObj.cpp new file mode 100644 index 0000000..45a9898 --- /dev/null +++ b/src/dae/daeRefCountedObj.cpp @@ -0,0 +1,37 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include + +daeRefCountedObj::daeRefCountedObj() : _refCount(0) { } + +daeRefCountedObj::~daeRefCountedObj() { } + +void daeRefCountedObj::release() const { + if (--_refCount <= 0) + delete this; +} + +void daeRefCountedObj::ref() const { + _refCount++; +} + +void checkedRelease(const daeRefCountedObj* obj) { + if (obj) + obj->release(); +} + +void checkedRef(const daeRefCountedObj* obj) { + if (obj) + obj->ref(); +} diff --git a/src/dae/daeSIDResolver.cpp b/src/dae/daeSIDResolver.cpp new file mode 100644 index 0000000..036ba22 --- /dev/null +++ b/src/dae/daeSIDResolver.cpp @@ -0,0 +1,511 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + + +namespace { + template + T nextIter(const T& iter) { + T next = iter; + return ++next; + } + + template + T moveIter(const T& iter, int n) { + T result = iter; + advance(result, n); + return result; + } + + // Implements a breadth-first sid search by starting at the container element and + // traversing downward through the element tree. + daeElement* findSidTopDown(daeElement* container, const string& sid, const string& profile) { + if (!container) + return NULL; + + vector elts, matchingElts; + elts.push_back(container); + + for (size_t i = 0; i < elts.size(); i++) { + daeElement* elt = elts[i]; + + // Bail if we're looking for an element in a different profile + if (!profile.empty()) { + if (strcmp(elt->getElementName(), COLLADA_ELEMENT_TECHNIQUE_COMMON) == 0) + continue; + if (strcmp(elt->getElementName(), COLLADA_ELEMENT_TECHNIQUE) == 0 && + profile != elt->getAttribute("profile")) + continue; + } + + // See if this is a matching element + if (elt->getAttribute("sid") == sid) + return elt; + else { + // Add the children to the list of elements to check + daeElementRefArray children; + elt->getChildren(children); + for (size_t j = 0; j < children.getCount(); j++) + elts.push_back(children[j]); + } + } + + return NULL; + } + + // Returns the distance between an element and an ancestor of the element. If 'container + // isn't an ancestor of 'elt', or if 'elt' is in a profile that doesn't match 'profile' + // UINT_MAX is returned. + unsigned int computeDistance(daeElement* container, daeElement* elt, const string& profile) { + if (!container || !elt) + return UINT_MAX; + + unsigned int distance = 0; + do { + // Bail if we're looking for an element in a different profile + if (!profile.empty()) { + if (strcmp(elt->getElementName(), COLLADA_ELEMENT_TECHNIQUE_COMMON) == 0) + return UINT_MAX; + if (strcmp(elt->getElementName(), COLLADA_ELEMENT_TECHNIQUE) == 0 && + profile != elt->getAttribute("profile")) + return UINT_MAX; + } + + if (elt == container) + return distance; + distance++; + } while ((elt = elt->getParentElement()) != NULL); + + return UINT_MAX; + } + + // Implements a breadth-first sid search by using the database to find all elements + // matching 'sid', then finding the element closest to 'container'. + daeElement* findSidBottomUp(daeElement* container, const string& sid, const string& profile) { + if (!container || !container->getDocument()) + return NULL; + + // Get the elements with a matching sid + vector elts; + container->getDocument()->getDAE()->getDatabase()->sidLookup(sid, elts, container->getDocument()); + + // Compute the distance from each matching element to the container element + unsigned int minDistance = UINT_MAX; + daeElement* closestElt = NULL; + for (size_t i = 0; i < elts.size(); i++) { + unsigned int distance = computeDistance(container, elts[i], profile); + if (distance < minDistance) { + minDistance = distance; + closestElt = elts[i]; + } + } + + return closestElt; + } + + daeElement* findID(daeElement* elt, const string& id, const string& profile) { + return elt ? elt->getDAE()->getDatabase()->idLookup(id, elt->getDocument()) : NULL; + } + + void buildString(const list::iterator& begin, + const list::iterator& end, + string& result) { + ostringstream stream; + for (list::iterator iter = begin; iter != end; iter++) + stream << *iter; + result = stream.str(); + } + + // Finds an element with a matching ID or sid (depending on the 'finder' function) + // passed in. First it tries to resolve the whole ID/sid, then it tries to resolve + // successively smaller parts. For example, consider this sid ref: "my.sid.ref". + // First this function will try to resolve "my.sid.ref" entirely, then if that + // fails it'll try to resolve "my.sid.", "my.sid", "my.", and "my", in that order. + // The part that wasn't matched is returned in the 'remainingPart' parameter. + daeElement* findWithDots(daeElement* container, + const string& s, + const string& profile, + daeElement* (*finder)(daeElement*, const string&, const string&), + list& remainingPart) { + remainingPart.clear(); + + // First see if the whole thing resolves correctly + if (daeElement* result = finder(container, s, profile)) + return result; + + // It didn't resolve. Let's tokenize it by '.'s and see if we can resolve a + // portion of it. + cdom::tokenize(s, ".", remainingPart, true); + if (remainingPart.size() == 1) + return NULL; // There were no '.'s, so the result won't be any different + + list::iterator iter = moveIter(remainingPart.end(), -1); + for (int i = int(remainingPart.size())-1; i >= 1; i--, iter--) { + string substr; + buildString(remainingPart.begin(), iter, substr); + if (daeElement* result = finder(container, substr, profile)) { + // Remove the part we matched against from the list + remainingPart.erase(remainingPart.begin(), iter); + return result; + } + } + + remainingPart.clear(); + return NULL; + } + + daeSidRef::resolveData resolveImpl(const daeSidRef& sidRef) { + if (sidRef.sidRef.empty() || !sidRef.refElt) + return daeSidRef::resolveData(); + + daeSidRef::resolveData result; + string separators = "/()"; + list tokens; + cdom::tokenize(sidRef.sidRef, separators, /* out */ tokens, true); + + list::iterator tok = tokens.begin(); + + // The first token should be either an ID or a '.' to indicate + // that we should start the search from the container element. + if (tok == tokens.end()) + return daeSidRef::resolveData(); + + list remainingPart; + if (*tok == ".") { + result.elt = sidRef.refElt; + tok++; + } else { + // Try to resolve it as an ID + result.elt = findWithDots(sidRef.refElt, *tok, sidRef.profile, findID, remainingPart); + if (result.elt) { + if (!remainingPart.empty()) { + // Insert the "remaining part" from the ID resolve into our list of tokens + tokens.erase(tokens.begin()); + tokens.splice(tokens.begin(), remainingPart); + tok = tokens.begin(); + } else + tok++; + } + } + + if (!result.elt) + return daeSidRef::resolveData(); + + // Next we have an optional list of SIDs, each one separated by "/". Once we hit one of "()", + // we know we're done with the SID section. + for (; tok != tokens.end() && *tok == "/"; tok++) { + tok++; // Read the '/' + if (tok == tokens.end()) + return daeSidRef::resolveData(); + + // Find the element matching the SID + result.elt = findWithDots(result.elt, *tok, sidRef.profile, findSidTopDown, remainingPart); + if (!result.elt) + return daeSidRef::resolveData(); + + if (!remainingPart.empty()) { + list::iterator tmp = tok; + tok--; + tokens.splice(tmp, remainingPart); + tokens.erase(tmp); + } + } + + // Now we want to parse the member selection tokens. It can either be + // (a) '.' followed by a string representing the member to access + // (b) '(x)' where x is a number, optionally followed by another '(x)' + // Anything else is an error. + string member; + bool haveArrayIndex1 = false, haveArrayIndex2 = false; + int arrayIndex1 = -1, arrayIndex2 = -1; + if (tok != tokens.end()) { + if (*tok == ".") { + tok++; + if (tok == tokens.end()) + return daeSidRef::resolveData(); + member = *tok; + tok++; + } + else if (*tok == "(") { + tok++; + if (tok == tokens.end()) + return daeSidRef::resolveData(); + + istringstream stream(*tok); + stream >> arrayIndex1; + haveArrayIndex1 = true; + if (!stream.good() && !stream.eof()) + return daeSidRef::resolveData(); + tok++; + if (tok == tokens.end() || *tok != ")") + return daeSidRef::resolveData(); + tok++; + + if (tok != tokens.end() && *tok == "(") { + tok++; + if (tok == tokens.end()) + return daeSidRef::resolveData(); + + stream.clear(); + stream.str(*tok); + stream >> arrayIndex2; + haveArrayIndex2 = true; + if (!stream.good() && !stream.eof()) + return daeSidRef::resolveData(); + tok++; + if (tok == tokens.end() || *tok != ")") + return daeSidRef::resolveData(); + tok++; + } + } + } + + // We shouldn't have any tokens left. If we do it's an error. + if (tok != tokens.end()) + return daeSidRef::resolveData(); + + // At this point we've parsed a correctly formatted SID reference. The only thing left is to resolve + // the member selection portion of the SID ref. First, see if the resolved element has a float array we + // can use. + if (result.elt->typeID() == domSource::ID()) { + if (domFloat_array* floatArray = ((domSource*)result.elt)->getFloat_array()) + result.array = (daeDoubleArray*)floatArray->getCharDataObject()->get(floatArray); + } + else + { + daeMetaAttribute *ma = result.elt->getCharDataObject(); + if ( ma != NULL ) { + if ( ma->isArrayAttribute() && ma->getType()->getTypeEnum() == daeAtomicType::DoubleType ) { + result.array = (daeDoubleArray*)ma->get( result.elt ); + } + } + } + + if( result.array ) { + // We have an array to use for indexing. Let's see if the SID ref uses member selection. + if (!member.empty()) { + // Do member lookup based on the constants defined in the COMMON profile + if (member == "ANGLE") { + result.scalar = &(result.array->get(3)); + } else if (member.length() == 1) { + switch(member[0]) { + case 'X': + case 'R': + case 'U': + case 'S': + result.scalar = &(result.array->get(0)); + break; + case 'Y': + case 'G': + case 'V': + case 'T': + result.scalar = &(result.array->get(1)); + break; + case 'Z': + case 'B': + case 'P': + result.scalar = &(result.array->get(2)); + break; + case 'W': + case 'A': + case 'Q': + result.scalar = &(result.array->get(3)); + break; + }; + } + } else if (haveArrayIndex1) { + // Use the indices to lookup a value in the array + if (haveArrayIndex2 && result.array->getCount() == 16) { + // We're doing a matrix lookup. Make sure the index is valid. + int i = arrayIndex1*4 + arrayIndex2; + if (i >= 0 && i < int(result.array->getCount())) + result.scalar = &(result.array->get(i)); + } else { + // Vector lookup. Make sure the index is valid. + if (arrayIndex1 >= 0 && arrayIndex1 < int(result.array->getCount())) + result.scalar = &(result.array->get(arrayIndex1)); + } + } + } + + // If we tried to do member selection but we couldn't resolve it to a doublePtr, fail. + if ((!member.empty() || haveArrayIndex1) && result.scalar == NULL) + return daeSidRef::resolveData(); + + // SID resolution was successful. + return result; + } +} // namespace { + + +daeSidRef::resolveData::resolveData() : elt(NULL), array(NULL), scalar(NULL) { } + +daeSidRef::resolveData::resolveData(daeElement* elt, daeDoubleArray* array, daeDouble* scalar) + : elt(elt), + array(array), + scalar(scalar) { } + + +daeSidRef::daeSidRef() : refElt(NULL) { } + +daeSidRef::daeSidRef(const string& sidRef, daeElement* referenceElt, const string& profile) + : sidRef(sidRef), + refElt(referenceElt), + profile(profile) { } + +bool daeSidRef::operator<(const daeSidRef& other) const { + if (refElt != other.refElt) + return refElt < other.refElt; + if (sidRef != other.sidRef) + return sidRef < other.sidRef; + return profile < other.profile; +} + +daeSidRef::resolveData daeSidRef::resolve() { + if (!refElt) + return daeSidRef::resolveData(); + + // First check the cache + daeSidRef::resolveData result = refElt->getDAE()->getSidRefCache().lookup(*this); + if (result.elt) + return result; + + // Try to resolve as an effect-style sid ref by prepending "./" to the sid ref. + // If that fails, try resolving as an animation-style sid ref, where the first part is an ID. + result = resolveImpl(daeSidRef(string("./") + sidRef, refElt, profile)); + if (!result.elt) + result = resolveImpl(*this); + + if (result.elt) // Add the result to the cache + refElt->getDAE()->getSidRefCache().add(*this, result); + + return result; +} + + +daeSIDResolver::daeSIDResolver( daeElement *container, daeString target, daeString profile ) + : container(NULL) +{ + setContainer(container); + setTarget(target); + setProfile(profile); +} + +daeString daeSIDResolver::getTarget() const { + return target.empty() ? NULL : target.c_str(); +} + +void daeSIDResolver::setTarget( daeString t ) +{ + target = t ? t : ""; +} + +daeString daeSIDResolver::getProfile() const { + return profile.empty() ? NULL : profile.c_str(); +} + +void daeSIDResolver::setProfile( daeString p ) +{ + profile = p ? p : ""; +} + +daeElement* daeSIDResolver::getContainer() const { + return container; +} + +void daeSIDResolver::setContainer(daeElement* element) +{ + container = element; +} + +daeSIDResolver::ResolveState daeSIDResolver::getState() const { + if (target.empty()) + return target_empty; + + daeSidRef::resolveData result = daeSidRef(target, container, profile).resolve(); + if (!result.elt) + return sid_failed_not_found; + if (result.scalar) + return sid_success_double; + if (result.array) + return sid_success_array; + + return sid_success_element; +} + +daeElement* daeSIDResolver::getElement() +{ + return daeSidRef(target, container, profile).resolve().elt; +} + +daeDoubleArray *daeSIDResolver::getDoubleArray() +{ + return daeSidRef(target, container, profile).resolve().array; +} + +daeDouble *daeSIDResolver::getDouble() +{ + return daeSidRef(target, container, profile).resolve().scalar; +} + + +daeSidRefCache::daeSidRefCache() : hitCount(0), missCount(0) { } + +daeSidRef::resolveData daeSidRefCache::lookup(const daeSidRef& sidRef) { + map::iterator iter = lookupTable.find(sidRef); + if (iter != lookupTable.end()) { + hitCount++; + return iter->second; + } + missCount++; + return daeSidRef::resolveData(); +} + +void daeSidRefCache::add(const daeSidRef& sidRef, const daeSidRef::resolveData& result) { + lookupTable[sidRef] = result; +} + +void daeSidRefCache::clear() { + lookupTable.clear(); + hitCount = missCount = 0; +} + +bool daeSidRefCache::empty() { + return lookupTable.empty(); +} + +int daeSidRefCache::misses() { + return missCount; +} + +int daeSidRefCache::hits() { + return hitCount; +} diff --git a/src/dae/daeStandardURIResolver.cpp b/src/dae/daeStandardURIResolver.cpp new file mode 100644 index 0000000..356e890 --- /dev/null +++ b/src/dae/daeStandardURIResolver.cpp @@ -0,0 +1,59 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +daeStandardURIResolver::daeStandardURIResolver(DAE& dae) + : daeURIResolver(dae) { } + +daeStandardURIResolver::~daeStandardURIResolver() { } + +daeString +daeStandardURIResolver::getName() +{ + return "XMLResolver"; +} + +namespace { + void printErrorMsg(const daeURI& uri) { + ostringstream msg; + msg << "daeStandardURIResolver::resolveElement() - Failed to resolve " << uri.str() << endl; + daeErrorHandler::get()->handleError(msg.str().c_str()); + } +} + +daeElement* daeStandardURIResolver::resolveElement(const daeURI& uri) { + daeDocument* doc = uri.getReferencedDocument(); + if (!doc) { + dae->open(uri.str()); + doc = uri.getReferencedDocument(); + if (!doc) { + printErrorMsg(uri); + return NULL; + } + } + + daeElement* elt = dae->getDatabase()->idLookup(uri.id(), doc); + if (!elt) + printErrorMsg(uri); + + return elt; +} diff --git a/src/dae/daeStringRef.cpp b/src/dae/daeStringRef.cpp new file mode 100644 index 0000000..bcb1d8a --- /dev/null +++ b/src/dae/daeStringRef.cpp @@ -0,0 +1,58 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include + +//Contributed by Nus - Wed, 08 Nov 2006 +// Nus: Use global pointer instead of local static. +static daeStringTable *pST = NULL; +//--------------------------- + +daeStringTable &daeStringRef::_stringTable() +{ +//Contributed by Nus - Wed, 08 Nov 2006 + // static daeStringTable *st = new daeStringTable(); + // return *st; + if(!pST) + pST = new daeStringTable(); + return *pST; +} + +void daeStringRef::releaseStringTable(void) +{ + if(pST) { + delete pST; + pST = NULL; + } +} +//-------------------------------- + +daeStringRef::daeStringRef(daeString string) +{ + daeStringTable &st = _stringTable(); + _string = st.allocString(string); +} + +const daeStringRef& +daeStringRef::set(daeString string) +{ + daeStringTable &st = _stringTable(); + _string = st.allocString(string); + return *this; +} + +const daeStringRef& +daeStringRef::operator= (daeString string) +{ + return set(string); +} diff --git a/src/dae/daeStringTable.cpp b/src/dae/daeStringTable.cpp new file mode 100644 index 0000000..fe7c53d --- /dev/null +++ b/src/dae/daeStringTable.cpp @@ -0,0 +1,69 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include + +daeStringTable::daeStringTable(int stringBufferSize):_stringBufferSize(stringBufferSize), _empty( "" ) +{ + _stringBufferIndex = _stringBufferSize; + //allocate initial buffer + //allocateBuffer(); +} + +daeString daeStringTable::allocateBuffer() +{ + daeString buf = new daeChar[_stringBufferSize]; + _stringBuffersList.append(buf); + _stringBufferIndex = 0; + return buf; +} + +daeString daeStringTable::allocString(daeString string) +{ + if ( string == NULL ) return _empty; + size_t stringSize = strlen(string) + 1; + size_t sizeLeft = _stringBufferSize - _stringBufferIndex; + daeString buf; + if (sizeLeft < stringSize) + { + if (stringSize > _stringBufferSize) + _stringBufferSize = ((stringSize / _stringBufferSize) + 1) * _stringBufferSize ; + buf = allocateBuffer(); + } + else + { + buf = _stringBuffersList.get((daeInt)_stringBuffersList.getCount()-1); + } + daeChar *str = (char*)buf + _stringBufferIndex; + memcpy(str,string,stringSize); + _stringBufferIndex += stringSize; + + int align = sizeof(void*); + _stringBufferIndex = (_stringBufferIndex+(align-1)) & (~(align-1)); + + return str; +} + +void daeStringTable::clear() +{ + unsigned int i; + for (i=0;i<_stringBuffersList.getCount();i++) +#if _MSC_VER <= 1200 + delete [] (char *) _stringBuffersList[i]; +#else + delete [] _stringBuffersList[i]; +#endif + + _stringBuffersList.clear(); + _stringBufferIndex = _stringBufferSize; +} diff --git a/src/dae/daeTinyXMLPlugin.cpp b/src/dae/daeTinyXMLPlugin.cpp new file mode 100644 index 0000000..c8bd37a --- /dev/null +++ b/src/dae/daeTinyXMLPlugin.cpp @@ -0,0 +1,230 @@ +/* + * Copyright 2007 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +// The user can choose whether or not to include TinyXML support in the DOM. Supporting TinyXML will +// require linking against it. By default TinyXML support isn't included. +#if defined(DOM_INCLUDE_TINYXML) + +#if defined(DOM_DYNAMIC) && defined(_MSC_VER) +#pragma comment(lib, "tinyxml.lib") +#endif + +#if defined(_MSC_VER) +#pragma warning(disable: 4100) // warning C4100: 'element' : unreferenced formal parameter +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +namespace { + daeInt getCurrentLineNumber(TiXmlElement* element) { + return -1; + } +} + +daeTinyXMLPlugin::daeTinyXMLPlugin() +{ + m_doc = NULL; + supportedProtocols.push_back("*"); +} + +daeTinyXMLPlugin::~daeTinyXMLPlugin() +{ +} + +daeInt daeTinyXMLPlugin::setOption( daeString option, daeString value ) +{ + return DAE_ERR_INVALID_CALL; +} + +daeString daeTinyXMLPlugin::getOption( daeString option ) +{ + return NULL; +} + +daeElementRef daeTinyXMLPlugin::readFromFile(const daeURI& uri) { + string file = cdom::uriToNativePath(uri.str()); + if (file.empty()) + return NULL; + TiXmlDocument doc; + doc.LoadFile(file.c_str()); + if (!doc.RootElement()) { + daeErrorHandler::get()->handleError((std::string("Failed to open ") + uri.str() + + " in daeTinyXMLPlugin::readFromFile\n").c_str()); + return NULL; + } + return readElement(doc.RootElement(), NULL); +} + +daeElementRef daeTinyXMLPlugin::readFromMemory(daeString buffer, const daeURI& baseUri) { + TiXmlDocument doc; + doc.Parse(buffer); + if (!doc.RootElement()) { + daeErrorHandler::get()->handleError("Failed to open XML document from memory buffer in " + "daeTinyXMLPlugin::readFromMemory\n"); + return NULL; + } + return readElement(doc.RootElement(), NULL); +} + +daeElementRef daeTinyXMLPlugin::readElement(TiXmlElement* tinyXmlElement, daeElement* parentElement) { + std::vector attributes; + for (TiXmlAttribute* attrib = tinyXmlElement->FirstAttribute(); attrib != NULL; attrib = attrib->Next()) + attributes.push_back(attrPair(attrib->Name(), attrib->Value())); + + daeElementRef element = beginReadElement(parentElement, tinyXmlElement->Value(), + attributes, getCurrentLineNumber(tinyXmlElement)); + if (!element) { + // We couldn't create the element. beginReadElement already printed an error message. + return NULL; + } + + if (tinyXmlElement->GetText() != NULL) + readElementText(element, tinyXmlElement->GetText(), getCurrentLineNumber(tinyXmlElement)); + + // Recurse children + for (TiXmlElement* child = tinyXmlElement->FirstChildElement(); child != NULL; child = child->NextSiblingElement()) + element->placeElement(readElement(child, element)); + + return element; +} + +daeInt daeTinyXMLPlugin::write(const daeURI& name, daeDocument *document, daeBool replace) +{ + // Make sure database and document are both set + if (!database) + return DAE_ERR_INVALID_CALL; + if(!document) + return DAE_ERR_COLLECTION_DOES_NOT_EXIST; + + string fileName = cdom::uriToNativePath(name.str()); + if (fileName.empty()) + { + daeErrorHandler::get()->handleError( "can't get path in write\n" ); + return DAE_ERR_BACKEND_IO; + } + // If replace=false, don't replace existing files + if(!replace) + { + // Using "stat" would be better, but it's not available on all platforms + FILE *tempfd = fopen(fileName.c_str(), "r"); + if(tempfd != NULL) + { + // File exists, return error + fclose(tempfd); + return DAE_ERR_BACKEND_FILE_EXISTS; + } + fclose(tempfd); + } + + m_doc = new TiXmlDocument(name.getURI()); + if (m_doc) + { + m_doc->SetTabSize(4); + + TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" ); + m_doc->LinkEndChild( decl ); + + writeElement(document->getDomRoot()); + + m_doc->SaveFile(fileName.c_str()); + delete m_doc; + m_doc = NULL; + } + return DAE_OK; +} + +void daeTinyXMLPlugin::writeElement( daeElement* element ) +{ + daeMetaElement* _meta = element->getMeta(); + if (!_meta->getIsTransparent() ) + { + TiXmlElement* tiElm = new TiXmlElement( element->getElementName() ); + + if (m_elements.empty() == true) { + m_doc->LinkEndChild(tiElm); + } else { + TiXmlElement* first = m_elements.front(); + first->LinkEndChild(tiElm); + } + m_elements.push_front(tiElm); + + daeMetaAttributeRefArray& attrs = _meta->getMetaAttributes(); + + int acnt = (int)attrs.getCount(); + + for(int i=0;igetChildren( children ); + for ( size_t x = 0; x < children.getCount(); x++ ) + { + writeElement( children.get(x) ); + } + + if (!_meta->getIsTransparent() ) + { + m_elements.pop_front(); + } +} + + +void daeTinyXMLPlugin::writeValue( daeElement* element ) +{ + if (daeMetaAttribute* attr = element->getMeta()->getValueAttribute()) { + std::ostringstream buffer; + attr->memoryToString(element, buffer); + std::string s = buffer.str(); + if (!s.empty()) + m_elements.front()->LinkEndChild( new TiXmlText(buffer.str().c_str()) ); + } +} + +void daeTinyXMLPlugin::writeAttribute( daeMetaAttribute* attr, daeElement* element ) +{ + //don't write if !required and is set && is default + if ( !attr->getIsRequired() ) { + //not required + if ( !element->isAttributeSet( attr->getName() ) ) { + //early out if !value && !required && !set + return; + } + + //is set + //check for default suppression + if (attr->compareToDefault(element) == 0) { + // We match the default value, so exit early + return; + } + } + + std::ostringstream buffer; + attr->memoryToString(element, buffer); + m_elements.front()->SetAttribute(attr->getName(), buffer.str().c_str()); +} + +#endif // DOM_INCLUDE_TINYXML diff --git a/src/dae/daeURI.cpp b/src/dae/daeURI.cpp new file mode 100644 index 0000000..7939c45 --- /dev/null +++ b/src/dae/daeURI.cpp @@ -0,0 +1,821 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +using namespace cdom; + +void daeURI::initialize() { + reset(); + container = NULL; +} + +daeURI::~daeURI() { } + +daeURI::daeURI(DAE& dae) : dae(&dae) { + initialize(); +} + +daeURI::daeURI(DAE& dae, const string& uriStr, daeBool nofrag) : dae(&dae) { + initialize(); + + if (nofrag) { + size_t pos = uriStr.find_last_of('#'); + if (pos != string::npos) { + set(uriStr.substr(0, pos)); + return; + } + } + + set(uriStr); +} + +daeURI::daeURI(const daeURI& baseURI, const string& uriStr) : dae(baseURI.getDAE()) +{ + initialize(); + set(uriStr, &baseURI); +} + +daeURI::daeURI(const daeURI& copyFrom_) : dae(copyFrom_.getDAE()), container(NULL) +{ + initialize(); + copyFrom(copyFrom_); +} + +daeURI::daeURI(daeElement& container_, const std::string& uriStr) + : dae(container_.getDAE()) +{ + initialize(); + container = &container_; + set(uriStr); +} + +daeURI::daeURI(DAE& dae, daeElement& container_, const string& uriStr) + : dae(&dae) +{ + initialize(); + container = &container_; + set(uriStr); +} + +void +daeURI::copyFrom(const daeURI& copyFrom) +{ + if (!container) + container = copyFrom.container; + set(copyFrom.originalStr()); +} + +daeURI& daeURI::operator=(const daeURI& other) { + copyFrom(other); + return *this; +} + +daeURI& daeURI::operator=(const string& uriStr) { + set(uriStr); + return *this; +} + +void daeURI::reset() { + // Clear everything except the container, which doesn't change for the lifetime of the daeURI + uriString = ""; + originalURIString = ""; + _scheme = ""; + _authority = ""; + _path = ""; + _query = ""; + _fragment = ""; +} + +DAE* daeURI::getDAE() const { + return dae; +} + + +const string& daeURI::str() const { + return uriString; +} + +const string& daeURI::originalStr() const { + return originalURIString; +} + +daeString daeURI::getURI() const { + return str().c_str(); +} + +daeString daeURI::getOriginalURI() const { + return originalStr().c_str(); +} + + +namespace { + void parsePath(const string& path, + /* out */ string& dir, + /* out */ string& baseName, + /* out */ string& extension) { + // !!!steveT Currently, if we have a file name that begins with a '.', as in + // ".emacs", that will be treated as having no base name with an extension + // of ".emacs". We might want to change this behavior, so that the base name + // is considered ".emacs" and the extension is empty. I think this is more + // in line with what path parsers in other libraries/languages do, and it + // more accurately reflects the intended structure of the file name. + static pcrecpp::RE re("(.*/)?([^.]*)?(\\..*)?"); + dir = baseName = extension = ""; + re.FullMatch(path, &dir, &baseName, &extension); + } +} + +void daeURI::set(const string& uriStr_, const daeURI* baseURI) { + // We make a copy of the uriStr so that set(originalURIString, ...) works properly. + string uriStr = uriStr_; + reset(); + originalURIString = uriStr; + + if (!parseUriRef(uriStr, _scheme, _authority, _path, _query, _fragment)) { + reset(); + return; + } + + validate(baseURI); +} + +void daeURI::set(const string& scheme_, + const string& authority_, + const string& path_, + const string& query_, + const string& fragment_, + const daeURI* baseURI) +{ + set(assembleUri(scheme_, authority_, path_, query_, fragment_), baseURI); +} + +void daeURI::setURI(daeString _URIString, const daeURI* baseURI) { + string uriStr = _URIString ? _URIString : ""; + set(uriStr, baseURI); +} + + +const string& daeURI::scheme() const { return _scheme; } +const string& daeURI::authority() const { return _authority; } +const string& daeURI::path() const { return _path; } +const string& daeURI::query() const { return _query; } +const string& daeURI::fragment() const { return _fragment; } +const string& daeURI::id() const { return fragment(); } + + +namespace { + string addSlashToEnd(const string& s) { + return (!s.empty() && s[s.length()-1] != '/') ? s + '/' : s; + } +} + +void daeURI::pathComponents(string& dir, string& baseName, string& ext) const { + parsePath(_path, dir, baseName, ext); +} + +string daeURI::pathDir() const { + string dir, base, ext; + parsePath(_path, dir, base, ext); + return dir; +} + +string daeURI::pathFileBase() const { + string dir, base, ext; + parsePath(_path, dir, base, ext); + return base; +} + +string daeURI::pathExt() const { + string dir, base, ext; + parsePath(_path, dir, base, ext); + return ext; +} + +string daeURI::pathFile() const { + string dir, base, ext; + parsePath(_path, dir, base, ext); + return base + ext; +} + +void daeURI::path(const string& dir, const string& baseName, const string& ext) { + path(addSlashToEnd(dir) + baseName + ext); +} + +void daeURI::pathDir(const string& dir) { + string tmp, base, ext; + parsePath(_path, tmp, base, ext); + path(addSlashToEnd(dir), base, ext); +} + +void daeURI::pathFileBase(const string& baseName) { + string dir, tmp, ext; + parsePath(_path, dir, tmp, ext); + path(dir, baseName, ext); +} + +void daeURI::pathExt(const string& ext) { + string dir, base, tmp; + parsePath(_path, dir, base, tmp); + path(dir, base, ext); +} + +void daeURI::pathFile(const string& file) { + string dir, base, ext; + parsePath(_path, dir, base, ext); + path(dir, file, ""); +} + + +daeString daeURI::getScheme() const { return _scheme.c_str(); } +daeString daeURI::getProtocol() const { return getScheme(); } +daeString daeURI::getAuthority() const { return _authority.c_str(); } +daeString daeURI::getPath() const { return _path.c_str(); } +daeString daeURI::getQuery() const { return _query.c_str(); } +daeString daeURI::getFragment() const { return _fragment.c_str(); } +daeString daeURI::getID() const { return getFragment(); } +daeBool daeURI::getPath(daeChar *dest, daeInt size) const { + if (int(_path.length()) < size) { + strcpy(dest, _path.c_str()); + return true; + } + return false; +} + + +void daeURI::scheme(const string& scheme_) { set(scheme_, _authority, _path, _query, _fragment); }; +void daeURI::authority(const string& authority_) { set(_scheme, authority_, _path, _query, _fragment); } +void daeURI::path(const string& path_) { set(_scheme, _authority, path_, _query, _fragment); } +void daeURI::query(const string& query_) { set(_scheme, _authority, _path, query_, _fragment); } +void daeURI::fragment(const string& fragment_) { set(_scheme, _authority, _path, _query, fragment_); } +void daeURI::id(const string& id) { fragment(id); } + +void +daeURI::print() +{ + fprintf(stderr,"URI(%s)\n",uriString.c_str()); + fprintf(stderr,"scheme = %s\n",_scheme.c_str()); + fprintf(stderr,"authority = %s\n",_authority.c_str()); + fprintf(stderr,"path = %s\n",_path.c_str()); + fprintf(stderr,"query = %s\n",_query.c_str()); + fprintf(stderr,"fragment = %s\n",_fragment.c_str()); + fprintf(stderr,"URI without base = %s\n",originalURIString.c_str()); + fflush(stderr); +} + +namespace { + void normalize(string& path) { + daeURI::normalizeURIPath(const_cast(path.c_str())); + path = path.substr(0, strlen(path.c_str())); + } +} + +void +daeURI::validate(const daeURI* baseURI) +{ + // If no base URI was supplied, use the container's document URI. If there's + // no container or the container doesn't have a doc URI, use the application + // base URI. + if (!baseURI) { + if (!container || !(baseURI = container->getDocumentURI())) + baseURI = &dae->getBaseURI(); + if (this == baseURI) + return; + } + + // This is rewritten according to the updated rfc 3986 + if (!_scheme.empty()) // if defined(R.scheme) then + { + // Everything stays the same except path which we normalize + // T.scheme = R.scheme; + // T.authority = R.authority; + // T.path = remove_dot_segments(R.path); + // T.query = R.query; + normalize(_path); + } + else + { + if (!_authority.empty()) // if defined(R.authority) then + { + // Authority and query stay the same, path is normalized + // T.authority = R.authority; + // T.path = remove_dot_segments(R.path); + // T.query = R.query; + normalize(_path); + } + else + { + if (_path.empty()) // if (R.path == "") then + { + // T.path = Base.path; + _path = baseURI->_path; + + //if defined(R.query) then + // T.query = R.query; + //else + // T.query = Base.query; + //endif; + if (_query.empty()) + _query = baseURI->_query; + } + else + { + if (_path[0] == '/') // if (R.path starts-with "/") then + { + // T.path = remove_dot_segments(R.path); + normalize(_path); + } + else + { + // T.path = merge(Base.path, R.path); + if (!baseURI->_authority.empty() && baseURI->_path.empty()) // authority defined, path empty + _path.insert(0, "/"); + else { + string dir, baseName, ext; + parsePath(baseURI->_path, dir, baseName, ext); + _path = dir + _path; + } + // T.path = remove_dot_segments(T.path); + normalize(_path); + } + // T.query = R.query; + } + // T.authority = Base.authority; + _authority = baseURI->_authority; + } + // T.scheme = Base.scheme; + _scheme = baseURI->_scheme; + } + // T.fragment = R.fragment; + + // Reassemble all this into a string version of the URI + uriString = assembleUri(_scheme, _authority, _path, _query, _fragment); +} + +daeElementRef daeURI::getElement() const { + return internalResolveElement(); +} + +daeElement* daeURI::internalResolveElement() const { + if (uriString.empty()) + return NULL; + + return dae->getURIResolvers().resolveElement(*this); +} + +void daeURI::resolveElement() { } + +void daeURI::setContainer(daeElement* cont) { + container = cont; + // Since we have a new container element, the base URI may have changed. Re-resolve. + set(originalURIString); +} + +daeBool daeURI::isExternalReference() const { + if (uriString.empty()) + return false; + + if (container && container->getDocumentURI()) { + daeURI* docURI = container->getDocumentURI(); + if (_path != docURI->_path || + _scheme != docURI->_scheme || + _authority != docURI->_authority) { + return true; + } + } + + return false; +} + + +daeDocument* daeURI::getReferencedDocument() const { + string doc = assembleUri(_scheme, _authority, _path, "", ""); + return dae->getDatabase()->getDocument(doc.c_str(), true); +} + +daeURI::ResolveState daeURI::getState() const { + return uriString.empty() ? uri_empty : uri_loaded; +} + +void daeURI::setState(ResolveState newState) { } + + +// This code is loosely based on the RFC 2396 normalization code from +// libXML. Specifically it does the RFC steps 6.c->6.g from section 5.2 +// The path is modified in place, there is no error return. +void daeURI::normalizeURIPath(char* path) +{ + char *cur, // location we are currently processing + *out; // Everything from this back we are done with + + // Return if the path pointer is null + + if (path == NULL) return; + + // Skip any initial / characters to get us to the start of the first segment + + for(cur=path; *cur == '/'; cur++); + + // Return if we hit the end of the string + + if (*cur == 0) return; + + // Keep everything we've seen so far. + + out = cur; + + // Analyze each segment in sequence for cases (c) and (d). + + while (*cur != 0) + { + // (c) All occurrences of "./", where "." is a complete path segment, are removed from the buffer string. + + if ((*cur == '.') && (*(cur+1) == '/')) + { + cur += 2; + // If there were multiple slashes, skip them too + while (*cur == '/') cur++; + continue; + } + + // (d) If the buffer string ends with "." as a complete path segment, that "." is removed. + + if ((*cur == '.') && (*(cur+1) == 0)) + break; + + // If we passed the above tests copy the segment to the output side + + while (*cur != '/' && *cur != 0) + { + *(out++) = *(cur++); + } + + if(*cur != 0) + { + // Skip any occurrances of // at the end of the segment + + while ((*cur == '/') && (*(cur+1) == '/')) cur++; + + // Bring the last character in the segment (/ or a null terminator) into the output + + *(out++) = *(cur++); + } + } + + *out = 0; + + // Restart at the beginning of the first segment for the next part + + for(cur=path; *cur == '/'; cur++); + if (*cur == 0) return; + + // Analyze each segment in sequence for cases (e) and (f). + // + // e) All occurrences of "/../", where is a + // complete path segment not equal to "..", are removed from the + // buffer string. Removal of these path segments is performed + // iteratively, removing the leftmost matching pattern on each + // iteration, until no matching pattern remains. + // + // f) If the buffer string ends with "/..", where + // is a complete path segment not equal to "..", that + // "/.." is removed. + // + // To satisfy the "iterative" clause in (e), we need to collapse the + // string every time we find something that needs to be removed. Thus, + // we don't need to keep two pointers into the string: we only need a + // "current position" pointer. + // + while (true) + { + char *segp, *tmp; + + // At the beginning of each iteration of this loop, "cur" points to + // the first character of the segment we want to examine. + + // Find the end of the current segment. + + for(segp = cur;(*segp != '/') && (*segp != 0); ++segp); + + // If this is the last segment, we're done (we need at least two + // segments to meet the criteria for the (e) and (f) cases). + + if (*segp == 0) + break; + + // If the first segment is "..", or if the next segment _isn't_ "..", + // keep this segment and try the next one. + + ++segp; + if (((*cur == '.') && (cur[1] == '.') && (segp == cur+3)) + || ((*segp != '.') || (segp[1] != '.') + || ((segp[2] != '/') && (segp[2] != 0)))) + { + cur = segp; + continue; + } + + // If we get here, remove this segment and the next one and back up + // to the previous segment (if there is one), to implement the + // "iteratively" clause. It's pretty much impossible to back up + // while maintaining two pointers into the buffer, so just compact + // the whole buffer now. + + // If this is the end of the buffer, we're done. + + if (segp[2] == 0) + { + *cur = 0; + break; + } + + // Strings overlap during this copy, but not in a bad way, just avoid using strcpy + + tmp = cur; + segp += 3; + while ((*(tmp++) = *(segp++)) != 0); + + // If there are no previous segments, then keep going from here. + + segp = cur; + while ((segp > path) && (*(--segp) == '/')); + + if (segp == path) + continue; + + // "segp" is pointing to the end of a previous segment; find it's + // start. We need to back up to the previous segment and start + // over with that to handle things like "foo/bar/../..". If we + // don't do this, then on the first pass we'll remove the "bar/..", + // but be pointing at the second ".." so we won't realize we can also + // remove the "foo/..". + + for(cur = segp;(cur > path) && (*(cur-1) != '/'); cur--); + } + + *out = 0; + + // g) If the resulting buffer string still begins with one or more + // complete path segments of "..", then the reference is + // considered to be in error. Implementations may handle this + // error by retaining these components in the resolved path (i.e., + // treating them as part of the final URI), by removing them from + // the resolved path (i.e., discarding relative levels above the + // root), or by avoiding traversal of the reference. + // + // We discard them from the final path. + + if (*path == '/') + { + for(cur=path; (*cur == '/') && (cur[1] == '.') && (cur[2] == '.') && ((cur[3] == '/') || (cur[3] == 0)); cur += 3); + + if (cur != path) + { + for(out=path; *cur != 0; *(out++) = *(cur++)); + + *out = 0; + } + } + return; +} + +// This function will take a resolved URI and create a version of it that is relative to +// another existing URI. The new URI is stored in the "originalURI" +int daeURI::makeRelativeTo(const daeURI* relativeToURI) +{ + // Can only do this function if both URIs have the same scheme and authority + if (_scheme != relativeToURI->_scheme || _authority != relativeToURI->_authority) + return DAE_ERR_INVALID_CALL; + + // advance till we find a segment that doesn't match + const char *this_path = getPath(); + const char *relativeTo_path = relativeToURI->getPath(); + const char *this_slash = this_path; + const char *relativeTo_slash = relativeTo_path; + + while((*this_path == *relativeTo_path) && *this_path) + { + if(*this_path == '/') + { + this_slash = this_path; + relativeTo_slash = relativeTo_path; + } + this_path++; + relativeTo_path++; + } + + // Decide how many ../ segments are needed (Filepath should always end in a /) + int segment_count = 0; + relativeTo_slash++; + while(*relativeTo_slash != 0) + { + if(*relativeTo_slash == '/') + segment_count ++; + relativeTo_slash++; + } + this_slash++; + + string newPath; + for (int i = 0; i < segment_count; i++) + newPath += "../"; + newPath += this_slash; + + set("", "", newPath, _query, _fragment, relativeToURI); + return(DAE_OK); +} + + +daeBool daeURIResolver::_loadExternalDocuments = true; + +daeURIResolver::daeURIResolver(DAE& dae) : dae(&dae) { } + +daeURIResolver::~daeURIResolver() { } + +void daeURIResolver::setAutoLoadExternalDocuments( daeBool load ) +{ + _loadExternalDocuments = load; +} + +daeBool daeURIResolver::getAutoLoadExternalDocuments() +{ + return _loadExternalDocuments; +} + + +daeURIResolverList::daeURIResolverList() { } + +daeURIResolverList::~daeURIResolverList() { + for (size_t i = 0; i < resolvers.getCount(); i++) + delete resolvers[i]; +} + +daeTArray& daeURIResolverList::list() { + return resolvers; +} + +daeElement* daeURIResolverList::resolveElement(const daeURI& uri) { + for (size_t i = 0; i < resolvers.getCount(); i++) + if (daeElement* elt = resolvers[i]->resolveElement(uri)) + return elt; + return NULL; +} + + +// Returns true if parsing succeeded, false otherwise. Parsing can fail if the uri +// reference isn't properly formed. +bool cdom::parseUriRef(const string& uriRef, + string& scheme, + string& authority, + string& path, + string& query, + string& fragment) { + // This regular expression for parsing URI references comes from the URI spec: + // http://tools.ietf.org/html/rfc3986#appendix-B + static pcrecpp::RE re("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"); + string s1, s3, s6, s8; + if (re.FullMatch(uriRef, &s1, &scheme, &s3, &authority, &path, &s6, &query, &s8, &fragment)) + return true; + + return false; +} + +namespace { + string safeSubstr(const string& s, size_t offset, size_t length) { + string result = s.substr(offset, min(length, s.length() - offset)); + result.resize(length, '\0'); + return result; + } +} + +string cdom::assembleUri(const string& scheme, + const string& authority, + const string& path, + const string& query, + const string& fragment, + bool forceLibxmlCompatible) { + string p = safeSubstr(path, 0, 3); + bool libxmlHack = forceLibxmlCompatible && scheme == "file"; + bool uncPath = false; + string uri; + + if (!scheme.empty()) + uri += scheme + ":"; + + if (!authority.empty() || libxmlHack || (p[0] == '/' && p[1] == '/')) + uri += "//"; + if (!authority.empty()) { + if (libxmlHack) { + // We have a UNC path URI of the form file://otherMachine/file.dae. + // Convert it to file://///otherMachine/file.dae, which is how libxml + // does UNC paths. + uri += "///" + authority; + uncPath = true; + } + else { + uri += authority; + } + } + + if (!uncPath && libxmlHack && getSystemType() == Windows) { + // We have to be delicate in how we pass absolute path URIs to libxml on Windows. + // If the path is an absolute path with no drive letter, add an extra slash to + // appease libxml. + if (p[0] == '/' && p[1] != '/' && p[2] != ':') { + uri += "/"; + } + } + uri += path; + + if (!query.empty()) + uri += "?" + query; + if (!fragment.empty()) + uri += "#" + fragment; + + return uri; +} + +string cdom::fixUriForLibxml(const string& uriRef) { + string scheme, authority, path, query, fragment; + cdom::parseUriRef(uriRef, scheme, authority, path, query, fragment); + return assembleUri(scheme, authority, path, query, fragment, true); +} + + +string cdom::nativePathToUri(const string& nativePath, systemType type) { + string uri = nativePath; + + if (type == Windows) { + // Convert "c:\" to "/c:/" + if (uri.length() >= 2 && isalpha(uri[0]) && uri[1] == ':') + uri.insert(0, "/"); + // Convert backslashes to forward slashes + uri = replace(uri, "\\", "/"); + } + + // Convert spaces to %20 + uri = replace(uri, " ", "%20"); + + return uri; +} + +string cdom::filePathToUri(const string& filePath) { + return nativePathToUri(filePath); +} + +string cdom::uriToNativePath(const string& uriRef, systemType type) { + string scheme, authority, path, query, fragment; + parseUriRef(uriRef, scheme, authority, path, query, fragment); + + // Make sure we have a file scheme URI, or that it doesn't have a scheme + if (!scheme.empty() && scheme != "file") + return ""; + + string filePath; + + if (type == Windows) { + if (!authority.empty()) + filePath += string("\\\\") + authority; // UNC path + + // Replace two leading slashes with one leading slash, so that + // ///otherComputer/file.dae becomes //otherComputer/file.dae and + // //folder/file.dae becomes /folder/file.dae + if (path.length() >= 2 && path[0] == '/' && path[1] == '/') + path.erase(0, 1); + + // Convert "/C:/" to "C:/" + if (path.length() >= 3 && path[0] == '/' && path[2] == ':') + path.erase(0, 1); + + // Convert forward slashes to back slashes + path = replace(path, "/", "\\"); + } + + filePath += path; + + // Replace %20 with space + filePath = replace(filePath, "%20", " "); + + return filePath; +} + +string cdom::uriToFilePath(const string& uriRef) { + return uriToNativePath(uriRef); +} diff --git a/src/dae/daeUtils.cpp b/src/dae/daeUtils.cpp new file mode 100644 index 0000000..64187c3 --- /dev/null +++ b/src/dae/daeUtils.cpp @@ -0,0 +1,126 @@ +#include +#include +#include +#include +#include + +#ifdef _WIN32 +#include // for getcwd (windows) +#else +#include // for getcwd (linux) +#endif + +using namespace std; + +cdom::systemType cdom::getSystemType() { +#ifdef WIN32 + return Windows; +#else + return Posix; +#endif +} + +string cdom::replace(const string& s, const string& replace, const string& replaceWith) { + if (replace.empty()) + return s; + + string result; + size_t pos1 = 0, pos2 = s.find(replace); + while (pos2 != string::npos) { + result += s.substr(pos1, pos2-pos1); + result += replaceWith; + pos1 = pos2 + replace.length(); + pos2 = s.find(replace, pos1); + } + + result += s.substr(pos1, s.length()-pos1); + return result; +} + +void cdom::tokenize(const string& s, + const string& separators, + /* out */ list& tokens, + bool separatorsInResult) { + size_t currentIndex = 0, nextTokenIndex = 0; + while (currentIndex < s.length() && + (nextTokenIndex = s.find_first_of(separators, currentIndex)) != string::npos) { + if ((nextTokenIndex - currentIndex) > 0) + tokens.push_back(s.substr(currentIndex, nextTokenIndex-currentIndex)); + if (separatorsInResult) + tokens.push_back(string(1, s[nextTokenIndex])); + currentIndex = nextTokenIndex+1; + } + + if (currentIndex < s.length()) + tokens.push_back(s.substr(currentIndex, s.length()-currentIndex)); +} + +list cdom::tokenize(const string& s, + const string& separators, + bool separatorsInResult) { + list result; + tokenize(s, separators, result, separatorsInResult); + return result; +} + +vector cdom::makeStringArray(const char* s, ...) { + va_list args; + va_start(args, s); + vector result; + while (s) { + result.push_back(s); + s = va_arg(args, const char*); + } + va_end(args); + return result; +} + +list cdom::makeStringList(const char* s, ...) { + va_list args; + va_start(args, s); + list result; + while (s) { + result.push_back(s); + s = va_arg(args, const char*); + } + va_end(args); + return result; +} + +string cdom::getCurrentDir() { +#ifdef __CELLOS_LV2__ + // The PS3 has no getcwd call. + // !!!steveT Should we return app_home instead? + return "/"; +#else + char buffer[1024]; +#ifdef _WIN32 + _getcwd(buffer, 1024); +#else + getcwd(buffer, 1024); +#endif + return buffer; +#endif +} + +string cdom::getCurrentDirAsUri() { + string result = string("file://") + cdom::nativePathToUri(getCurrentDir()); + // Make sure the last char is a / + if (!result.empty() && result[result.length()-1] != '/') + result += "/"; + return result; +} + +int cdom::strcasecmp(const char* str1, const char* str2) { +#ifdef _MSC_VER + return _stricmp(str1, str2); +#else + return ::strcasecmp(str1, str2); +#endif +} + +string cdom::tolower(const string& s) { + string result; + transform(s.begin(), s.end(), back_inserter(result), ::tolower); + return result; +} diff --git a/src/dae/domAny.cpp b/src/dae/domAny.cpp new file mode 100644 index 0000000..793c522 --- /dev/null +++ b/src/dae/domAny.cpp @@ -0,0 +1,111 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +daeElementRef +domAny::create(DAE& dae) +{ + domAnyRef ref = new domAny; + return ref; +} + + +daeMetaElement * +domAny::registerElement(DAE& dae) +{ + daeMetaElement *_Meta = new daeMetaElement(dae); + _Meta->setName( "any" ); + _Meta->registerClass(domAny::create); + _Meta->setIsInnerClass( true ); + + daeMetaCMPolicy *cm = NULL; + cm = new daeMetaSequence( _Meta, cm, 0, 1, 1 ); + + cm = new daeMetaAny( _Meta, cm, 0, 0, -1 ); + cm->getParent()->appendChild( cm ); + cm = cm->getParent(); + + cm->setMaxOrdinal( 0 ); + _Meta->setCMRoot( cm ); + _Meta->setAllowsAny( true ); + + _Meta->addContents(daeOffsetOf(domAny,_contents)); + _Meta->addContentsOrder(daeOffsetOf(domAny,_contentsOrder)); + + //VALUE + { + daeMetaAttribute *ma = new daeMetaAttribute; + ma->setName( "_value" ); + ma->setType( dae.getAtomicTypes().get("xsString")); + ma->setOffset( daeOffsetOf( domAny , _value )); + ma->setContainer( _Meta ); + _Meta->appendAttribute(ma); + } + + _Meta->setElementSize(sizeof(domAny)); + _Meta->validate(); + + return _Meta; +} + +domAny::~domAny() { + // domAny objects own their corresponding daeMetaElement + delete _meta; +} + +// Implementation of daeMetaAttribute that understands how domAny works +class domAnyAttribute : public daeMetaAttribute { +public: + virtual daeChar* getWritableMemory(daeElement* e) { + return (daeChar*)&((domAny*)e)->attrs[_offset]; + } +}; + +daeBool domAny::setAttribute(daeString attrName, daeString attrValue) { + if (_meta == NULL) + return false; + + //if the attribute already exists set it. + if (daeElement::setAttribute(attrName, attrValue)) + return true; + + //else register it and then set it. + attrs.append(""); + daeMetaAttribute *ma = new domAnyAttribute; + ma->setName( attrName ); + ma->setType( getDAE()->getAtomicTypes().get("xsString")); + ma->setOffset((daeInt)attrs.getCount()-1); + ma->setContainer( _meta ); + if (ma->getType()) { + _meta->appendAttribute(ma); + _validAttributeArray.append( true ); + ma->stringToMemory(this, attrValue); + return true; + } + + delete ma; + return false; +} + + diff --git a/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp b/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp new file mode 100644 index 0000000..99b1b8b --- /dev/null +++ b/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp @@ -0,0 +1,530 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +// The user can choose whether or not to include libxml support in the DOM. Supporting libxml will +// require linking against it. By default libxml support is included. +#if defined(DOM_INCLUDE_LIBXML) + +// This is a rework of the XML plugin that contains a complete interface to libxml2 "readXML" +// This is intended to be a seperate plugin but I'm starting out by rewriting it in daeLIBXMLPlugin +// because I'm not sure if all the plugin handling stuff has been tested. Once I get a working +// plugin I'll look into renaming it so the old daeLIBXMLPlugin can coexist with it. +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + + +// Some helper functions for working with libxml +namespace { + daeInt getCurrentLineNumber(xmlTextReaderPtr reader) { +#if LIBXML_VERSION >= 20620 + return xmlTextReaderGetParserLineNumber(reader); +#else + return -1; +#endif + } + + // Return value should be freed by caller with delete[]. Passed in value should not + // be null. + xmlChar* utf8ToLatin1(const xmlChar* utf8) { + int inLen = xmlStrlen(utf8); + int outLen = (inLen+1) * 2; + xmlChar* latin1 = new xmlChar[outLen]; + int numBytes = UTF8Toisolat1(latin1, &outLen, utf8, &inLen); + if (numBytes < 0) + // Failed. Return an empty string instead. + numBytes = 0; + + latin1[numBytes] = '\0'; + return latin1; + } + + // Return value should be freed by caller with delete[]. + xmlChar* latin1ToUtf8(const string& latin1) { + int inLen = (int)latin1.length(); + int outLen = (inLen+1) * 2; + xmlChar* utf8 = new xmlChar[outLen]; + int numBytes = isolat1ToUTF8(utf8, &outLen, (xmlChar*)latin1.c_str(), &inLen); + if (numBytes < 0) + // Failed. Return an empty string instead. + numBytes = 0; + + utf8[numBytes] = '\0'; + return utf8; + } + + typedef pair stringPair; + + // The attributes vector passed in should be empty. If 'encoding' is anything + // other than utf8 the caller should free the returned attribute value + // strings. The 'freeAttrValues' function is provided for that purpose. + void packageCurrentAttributes(xmlTextReaderPtr reader, + DAE::charEncoding encoding, + /* out */ vector& attributes) { + int numAttributes = xmlTextReaderAttributeCount(reader); + if (numAttributes == -1 || numAttributes == 0) + return; + attributes.reserve(numAttributes); + + while (xmlTextReaderMoveToNextAttribute(reader) == 1) { + const xmlChar* xmlName = xmlTextReaderConstName(reader); + const xmlChar* xmlValue = xmlTextReaderConstValue(reader); + if (encoding == DAE::Latin1) + attributes.push_back(stringPair((daeString)xmlName, (daeString)utf8ToLatin1(xmlValue))); + else + attributes.push_back(stringPair((daeString)xmlName, (daeString)xmlValue)); + } + } + + void freeAttrValues(vector& pairs) { + for(size_t i=0, size=pairs.size(); ihandleError((string("Failed to open ") + uri.str() + + " in daeLIBXMLPlugin::readFromFile\n").c_str()); + return NULL; + } + return read(readerHelper.reader); +} + +daeElementRef daeLIBXMLPlugin::readFromMemory(daeString buffer, const daeURI& baseUri) { + xmlTextReaderHelper readerHelper(buffer, baseUri); + if (!readerHelper.reader) { + daeErrorHandler::get()->handleError("Failed to open XML document from memory buffer in " + "daeLIBXMLPlugin::readFromMemory\n"); + return NULL; + } + return read(readerHelper.reader); +} + +daeElementRef daeLIBXMLPlugin::read(_xmlTextReader* reader) { + // Drop everything up to the first element. In the future, we should try to store header comments somewhere. + while(xmlTextReaderNodeType(reader) != XML_READER_TYPE_ELEMENT) + { + if (xmlTextReaderRead(reader) != 1) { + daeErrorHandler::get()->handleError("Error parsing XML in daeLIBXMLPlugin::read\n"); + return NULL; + } + } + + return readElement(reader, NULL); +} + +daeElementRef daeLIBXMLPlugin::readElement(_xmlTextReader* reader, daeElement* parentElement) { + assert(xmlTextReaderNodeType(reader) == XML_READER_TYPE_ELEMENT); + daeString elementName = (daeString)xmlTextReaderConstName(reader); + bool empty = xmlTextReaderIsEmptyElement(reader) != 0; + + vector attributes; + packageCurrentAttributes(reader, dae.getCharEncoding(), /* out */ attributes); + + daeElementRef element = beginReadElement(parentElement, elementName, attributes, getCurrentLineNumber(reader)); + if (dae.getCharEncoding() != DAE::Utf8) + freeAttrValues(attributes); + + if (!element) { + // We couldn't create the element. beginReadElement already printed an error message. Just make sure + // to skip ahead past the bad element. + xmlTextReaderNext(reader); + return NULL; + } + + if (xmlTextReaderRead(reader) != 1 || empty) + return element; + + int nodeType = xmlTextReaderNodeType(reader); + while (nodeType != -1 && nodeType != XML_READER_TYPE_END_ELEMENT) { + if (nodeType == XML_READER_TYPE_ELEMENT) { + element->placeElement(readElement(reader, element)); + } + else if (nodeType == XML_READER_TYPE_TEXT) { + const xmlChar* xmlText = xmlTextReaderConstValue(reader); + if (dae.getCharEncoding() == DAE::Latin1) + xmlText = utf8ToLatin1(xmlText); + readElementText(element, (daeString)xmlText, getCurrentLineNumber(reader)); + if (dae.getCharEncoding() == DAE::Latin1) + delete[] xmlText; + + if (xmlTextReaderRead(reader) != 1) + return NULL; + } + else { + if (xmlTextReaderRead(reader) != 1) + return NULL; + } + + nodeType = xmlTextReaderNodeType(reader); + } + + if (nodeType == XML_READER_TYPE_END_ELEMENT) + xmlTextReaderRead(reader); + + return element; +} + +daeInt daeLIBXMLPlugin::write(const daeURI& name, daeDocument *document, daeBool replace) +{ + // Make sure database and document are both set + if (!database) + return DAE_ERR_INVALID_CALL; + if(!document) + return DAE_ERR_COLLECTION_DOES_NOT_EXIST; + + // Convert the URI to a file path, to see if we're about to overwrite a file + string file = cdom::uriToNativePath(name.str()); + if (file.empty() && saveRawFile) + { + daeErrorHandler::get()->handleError( "can't get path in write\n" ); + return DAE_ERR_BACKEND_IO; + } + + // If replace=false, don't replace existing files + if(!replace) + { + // Using "stat" would be better, but it's not available on all platforms + FILE *tempfd = fopen(file.c_str(), "r"); + if(tempfd != NULL) + { + // File exists, return error + fclose(tempfd); + return DAE_ERR_BACKEND_FILE_EXISTS; + } + fclose(tempfd); + } + if ( saveRawFile ) + { + string rawFilePath = file + ".raw"; + if ( !replace ) + { + rawFile = fopen(rawFilePath.c_str(), "rb" ); + if ( rawFile != NULL ) + { + fclose(rawFile); + return DAE_ERR_BACKEND_FILE_EXISTS; + } + fclose(rawFile); + } + rawFile = fopen(rawFilePath.c_str(), "wb"); + if ( rawFile == NULL ) + { + return DAE_ERR_BACKEND_IO; + } + rawRelPath.set(cdom::nativePathToUri(rawFilePath)); + rawRelPath.makeRelativeTo( &name ); + } + + // Open the file we will write to + writer = xmlNewTextWriterFilename(cdom::fixUriForLibxml(name.str()).c_str(), 0); + if ( !writer ) { + ostringstream msg; + msg << "daeLIBXMLPlugin::write(" << name.str() << ") failed\n"; + daeErrorHandler::get()->handleError(msg.str().c_str()); + return DAE_ERR_BACKEND_IO; + } + xmlTextWriterSetIndentString( writer, (const xmlChar*)"\t" ); // Don't change this to spaces + xmlTextWriterSetIndent( writer, 1 ); // Turns indentation on + xmlTextWriterStartDocument( writer, "1.0", "UTF-8", NULL ); + + writeElement( document->getDomRoot() ); + + xmlTextWriterEndDocument( writer ); + xmlTextWriterFlush( writer ); + xmlFreeTextWriter( writer ); + + if ( saveRawFile && rawFile != NULL ) + { + fclose( rawFile ); + } + + return DAE_OK; +} + +void daeLIBXMLPlugin::writeElement( daeElement* element ) +{ + daeMetaElement* _meta = element->getMeta(); + + //intercept elements for special handling + if ( saveRawFile ) + { + if ( strcmp( element->getTypeName(), "source" ) == 0 ) + { + daeElementRefArray children; + element->getChildren( children ); + bool validArray = false, teqCommon = false; + for ( unsigned int i = 0; i < children.getCount(); i++ ) + { + if ( strcmp( children[i]->getTypeName(), "float_array" ) == 0 || + strcmp( children[i]->getTypeName(), "int_array" ) == 0 ) + { + validArray = true; + } + else if ( strcmp( children[i]->getTypeName(), "technique_common" ) == 0 ) + { + teqCommon = true; + } + } + if ( validArray && teqCommon ) + { + writeRawSource( element ); + return; + } + } + } + + if (!_meta->getIsTransparent() ) { + xmlTextWriterStartElement(writer, (xmlChar*)element->getElementName()); + daeMetaAttributeRefArray& attrs = _meta->getMetaAttributes(); + + int acnt = (int)attrs.getCount(); + + for(int i=0;igetChildren( children ); + for ( size_t x = 0; x < children.getCount(); x++ ) { + writeElement( children.get(x) ); + } + + /*if (_meta->getContents() != NULL) { + daeElementRefArray* era = (daeElementRefArray*)_meta->getContents()->getWritableMemory(element); + int elemCnt = (int)era->getCount(); + for(int i = 0; i < elemCnt; i++) { + daeElementRef elem = (daeElementRef)era->get(i); + if (elem != NULL) { + writeElement( elem ); + } + } + } + else + { + daeMetaElementAttributeArray& children = _meta->getMetaElements(); + int cnt = (int)children.getCount(); + for(int i=0;igetElementType(); + if ( !type->getIsAbstract() ) { + for (int c = 0; c < children[i]->getCount(element); c++ ) { + writeElement( *(daeElementRef*)children[i]->get(element,c) ); + } + } + } + }*/ + if (!_meta->getIsTransparent() ) { + xmlTextWriterEndElement(writer); + } +} + +void daeLIBXMLPlugin::writeAttribute( daeMetaAttribute* attr, daeElement* element) +{ + //don't write if !required and is set && is default + if ( !attr->getIsRequired() ) { + //not required + if ( !element->isAttributeSet( attr->getName() ) ) { + //early out if !value && !required && !set + return; + } + + //is set + //check for default suppression + if (attr->compareToDefault(element) == 0) { + // We match the default value, so exit early + return; + } + } + + xmlTextWriterStartAttribute(writer, (xmlChar*)(daeString)attr->getName()); + ostringstream buffer; + attr->memoryToString(element, buffer); + string str = buffer.str(); + + xmlChar* utf8 = (xmlChar*)str.c_str(); + if (dae.getCharEncoding() == DAE::Latin1) + utf8 = latin1ToUtf8(str); + xmlTextWriterWriteString(writer, utf8); + if (dae.getCharEncoding() == DAE::Latin1) + delete[] utf8; + + xmlTextWriterEndAttribute(writer); +} + +void daeLIBXMLPlugin::writeValue(daeElement* element) { + if (daeMetaAttribute* attr = element->getMeta()->getValueAttribute()) { + ostringstream buffer; + attr->memoryToString(element, buffer); + string s = buffer.str(); + if (!s.empty()) { + xmlChar* str = (xmlChar*)s.c_str(); + if (dae.getCharEncoding() == DAE::Latin1) + str = latin1ToUtf8(s); + xmlTextWriterWriteString(writer, (xmlChar*)s.c_str()); + if (dae.getCharEncoding() == DAE::Latin1) + delete[] str; + } + } +} + +void daeLIBXMLPlugin::writeRawSource( daeElement *src ) +{ + daeElementRef newSrc = src->clone(); + daeElementRef array = NULL; + daeElement *accessor = NULL; + daeElementRefArray children; + newSrc->getChildren( children ); + bool isInt = false; + for ( int i = 0; i < (int)children.getCount(); i++ ) + { + if ( strcmp( children[i]->getTypeName(), "float_array" ) == 0 ) + { + array = children[i]; + newSrc->removeChildElement( array ); + } + else if ( strcmp( children[i]->getTypeName(), "int_array" ) == 0 ) + { + array = children[i]; + isInt = true; + newSrc->removeChildElement( array ); + } + else if ( strcmp( children[i]->getTypeName(), "technique_common" ) == 0 ) + { + children[i]->getChildren( children ); + } + else if ( strcmp( children[i]->getTypeName(), "accessor" ) == 0 ) + { + accessor = children[i]; + } + } + + daeULong *countPtr = (daeULong*)array->getAttributeValue( "count" ); + daeULong count = countPtr != NULL ? *countPtr : 0; + + daeULong *stridePtr = (daeULong*)accessor->getAttributeValue( "stride" ); + daeULong stride = stridePtr != NULL ? *stridePtr : 1; + + children.clear(); + accessor->getChildren( children ); + if ( children.getCount() > stride ) { + *stridePtr = children.getCount(); + } + + daeFixedName newURI; + sprintf( newURI, "%s#%ld", rawRelPath.getOriginalURI(), rawByteCount ); + accessor->setAttribute( "source", newURI ); + + daeArray *valArray = (daeArray*)array->getValuePointer(); + + //TODO: pay attention to precision for the array. + if ( isInt ) + { + for( size_t i = 0; i < count; i++ ) + { + daeInt tmp = (daeInt)*(daeLong*)(valArray->getRaw(i)); + rawByteCount += (unsigned long)(fwrite( &tmp, sizeof(daeInt), 1, rawFile ) * sizeof(daeInt)); + } + } + else + { + for( size_t i = 0; i < count; i++ ) + { + daeFloat tmp = (daeFloat)*(daeDouble*)(valArray->getRaw(i)); + rawByteCount += (unsigned long)(fwrite( &tmp, sizeof(daeFloat), 1, rawFile ) * sizeof(daeFloat)); + } + } + + writeElement( newSrc ); +} + +#endif // DOM_INCLUDE_LIBXML diff --git a/src/modules/STLDatabase/daeSTLDatabase.cpp b/src/modules/STLDatabase/daeSTLDatabase.cpp new file mode 100644 index 0000000..f5fb9bc --- /dev/null +++ b/src/modules/STLDatabase/daeSTLDatabase.cpp @@ -0,0 +1,685 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include + +using namespace std; + +daeSTLDatabase::daeSTLDatabase(DAE& dae) : daeDatabase(dae) +{ } + +daeSTLDatabase::~daeSTLDatabase() +{ + clear(); +} + +daeInt daeSTLDatabase::setMeta(daeMetaElement *_topMeta) +{ + topMeta = _topMeta; + return DAE_OK; +} + +daeBool +daeSTLDatabase::isDocumentLoaded(daeString name) +{ + daeDocument* document = getDocument(name); + if(document) + return(true); + else + return(false); +} + +// Element Types of all Elements +daeUInt daeSTLDatabase::getTypeCount() +{ + return (daeUInt)elements.size(); +} + + +daeString daeSTLDatabase::getTypeName(daeUInt index) +{ + daeUInt count = 0; + + map >::iterator iter = elements.begin(); + map >::iterator end = elements.end(); + while ( iter != end ) + { + if ( count == index ) + { + return (*iter).first.c_str(); + } + ++count; + ++iter; + } + + return NULL; +} + +// Documents +daeInt daeSTLDatabase::insertDocument(const char *name, daeElement* dom, daeDocument** document) +{ + return createDocument( name, dom, document ); +} +daeInt daeSTLDatabase::createDocument(const char *name, daeElement* dom, daeDocument** document) +{ + // If a document already exists with the same name, error + if(isDocumentLoaded(name)) + { + if (document) + *document = NULL; + return DAE_ERR_COLLECTION_ALREADY_EXISTS; + } + + // Make a new document + daeDocument *newDocument = new daeDocument(dae); + newDocument->getDocumentURI()->setURI(name); + newDocument->setDomRoot(dom); + // Push the connection into the database + documents.push_back(newDocument); + + if (document) + *document = newDocument; + + return DAE_OK; +} +// !!!GAC revised version of insertDocument, creates a domCollada and fills it in for you. +daeInt daeSTLDatabase::insertDocument(const char *name, daeDocument** document) +{ + return createDocument( name, document ); +} +daeInt daeSTLDatabase::createDocument(const char *name, daeDocument** document) +{ + + // If a document already exists with the same name, error + if(isDocumentLoaded(name)) + { + if (document) + *document = NULL; + return DAE_ERR_COLLECTION_ALREADY_EXISTS; + } + // Make the new document + daeDocument *newDocument = new daeDocument(dae); + // Make a domCOLLADA to be the root of this new document (this makes a reference so the domCOLLADA won't delete itself + daeElementRef myCOLLADA = topMeta->create(); + myCOLLADA->setDocument(newDocument); + newDocument->getDocumentURI()->setURI(name); + newDocument->setDomRoot(myCOLLADA); + + // Add this document to the list. + documents.push_back(newDocument); + // If the user gave us a place to put the document, send it back to them. + if (document) + *document = newDocument; + + return DAE_OK; +} + +daeInt daeSTLDatabase::insertDocument( daeDocument *c ) { + documents.push_back(c); + insertElement( c, c->getDomRoot() ); + return DAE_OK; +} + +daeInt daeSTLDatabase::removeDocument(daeDocument *document) +{ + vector< daeDocument* >::iterator iter = documents.begin(); + while ( iter != documents.end() ) { + if ( (*iter) == document ) { + //delete all of its children + removeElement( *iter, (*iter)->getDomRoot() ); + delete *iter; // sthomas (see bug 1466019) + iter = documents.erase(iter); + } + else { + iter++; + } + } + return DAE_OK; +} + +daeUInt daeSTLDatabase::getDocumentCount() +{ + return (daeUInt)documents.size(); +} + +daeDocument* daeSTLDatabase::getDocument(daeUInt index) +{ + if (indexgetDocumentURI()->str() == name) + return(document); + } + return(NULL); +} + +daeString daeSTLDatabase::getDocumentName(daeUInt index) +{ + if (indexgetDocumentURI()->getURI(); + else + return NULL; +} + +// Elements +daeInt daeSTLDatabase::insertElement(daeDocument* document,daeElement* element) +{ + insertChildren( document, element ); + + map >::iterator iter = elements.find( string( element->getTypeName() ) ); + if ( iter != elements.end() ) + { + (*iter).second.push_back( element ); + } + else + { + vector< daeElement* > vec; + vec.push_back( element ); + elements.insert( make_pair( string( element->getTypeName() ), vec ) ); + } + + // Insert into the type ID map + typeMap.insert(make_pair(element->typeID(), element)); + + //insert into IDMap if element has an ID. IDMap is used to speed up URI resolution + if ( element->getID() != NULL ) { + elementsIDMap.insert( make_pair( string( element->getID() ), element ) ); + } + + // Insert into sid map if the element has a sid +// string sid = element->getAttribute("sid"); +// if (!sid.empty()) +// sidMap.insert(sidMapPair(sid, element)); + + dae.getSidRefCache().clear(); + + return DAE_OK; +} + +daeInt daeSTLDatabase::insertChildren( daeDocument *c, daeElement *element ) +{ + daeElementRefArray era; + element->getChildren( era ); + for ( unsigned int i = 0; i < era.getCount(); i++ ) { + insertElement( c, era[i] ); + } + return DAE_OK; +} + +daeInt daeSTLDatabase::removeElement(daeDocument* document,daeElement* element) +{ + if ( !element ) { + return DAE_ERR_INVALID_CALL; + } + removeChildren( document, element ); + + map >::iterator iter = elements.find( string( element->getTypeName() ) ); + if ( iter != elements.end() ) + { + vector< daeElement* > &vec = (*iter).second; + vector< daeElement* >::iterator i = vec.begin(); + vector< daeElement* >::iterator end = vec.end(); + while( i != end ) + { + if ( (*i) == element ) + { + vec.erase( i ); + break; + } + ++i; + } + } + + typeMapRange range = typeMap.equal_range(element->typeID()); + for (typeMapIter iter = range.first; iter != range.second; iter++) { + if (iter->second == element) { + typeMap.erase(iter); + break; + } + } + + if ( element->getID() != NULL ) { + idMapRange range = elementsIDMap.equal_range( string( element->getID() ) ); + multimap::iterator iter = range.first; + while( iter != range.second ) { + if ( (*iter).second == element ) { + elementsIDMap.erase( iter ); + break; + } + ++iter; + } + } + +// string sid = element->getAttribute("sid"); +// if (!sid.empty()) { +// pair range = sidMap.equal_range(sid); +// for (sidMapIter iter = range.first; iter != range.second; iter++) { +// if (iter->second == element) { +// sidMap.erase(iter); +// break; +// } +// } +// } + + dae.getSidRefCache().clear(); + + return DAE_OK; +} + +daeInt daeSTLDatabase::removeChildren( daeDocument *c, daeElement *element ) +{ + daeElementRefArray era; + element->getChildren( era ); + for ( unsigned int i = 0; i < era.getCount(); i++ ) { + removeElement( c, era[i] ); + } + return DAE_OK; +} + +daeInt daeSTLDatabase::changeElementID( daeElement* element, daeString newID ) +{ + if ( !element ) { + return DAE_ERR_INVALID_CALL; + } + + // Remove the current entry in the ID map if the element has an ID + if ( element->getID() != NULL ) { + pair< multimap::iterator, multimap::iterator> range; + range = elementsIDMap.equal_range( string( element->getID() ) ); + multimap::iterator iter = range.first; + while( iter != range.second ) { + if ( (*iter).second == element ) { + elementsIDMap.erase( iter ); + break; + } + ++iter; + } + } + + // Add an entry to the ID map if the element will have an ID + if ( newID != NULL ) { + elementsIDMap.insert( make_pair( string( newID ), element ) ); + } + + dae.getSidRefCache().clear(); + + return DAE_OK; +} + +daeInt daeSTLDatabase::changeElementSID(daeElement* element, daeString newSID) { + if (!element) + return DAE_ERR_INVALID_CALL; + +// // Remove the current entry in the sid map if the element has a sid +// string sid = element->getAttribute("sid"); +// if (!sid.empty()) { +// pair range = sidMap.equal_range(sid); +// for (sidMapIter iter = range.first; iter != range.second; iter++) { +// if (iter->second == element) { +// sidMap.erase(iter); +// break; +// } +// } +// } + +// // Add an entry to the sid map if the element will have a sid +// if ( newSID != NULL ) +// sidMap.insert(sidMapPair(newSID, element)); + + dae.getSidRefCache().clear(); + + return DAE_OK; +} + +daeInt daeSTLDatabase::clear() +{ + elements.clear(); + typeMap.clear(); + elementsIDMap.clear(); + sidMap.clear(); + int i; + for (i=0;i<(int)documents.size();i++) + delete documents[i]; + documents.clear(); //this will free the daeElement + dae.getRawRefCache().clear(); + dae.getSidRefCache().clear(); + return DAE_OK; +} + +daeUInt daeSTLDatabase::getElementCount(daeString name,daeString type,daeString file) +{ + // If none of the search keys was specified, return the total element count in the database + if ( !name && !type && !file ) + { + daeUInt count = 0; + map< string, vector< daeElement*> >::iterator iter = elements.begin(); + map< string, vector< daeElement*> >::iterator end = elements.end(); + while( iter != end ) + { + count += (daeUInt)(*iter).second.size(); + ++iter; + } + return count; + } + + if ( name ) + { + // name specified + int count = 0; + if ( file ) + { + // If a document URI was a search key (in file) resolve it to a text URI with no fragment + daeURI tempURI(dae, file,true); + daeDocument *col = getDocument( tempURI.getURI() ); + if ( col == NULL ) { + return 0; + } + // a document was specified + pair< multimap< string, daeElement* >::iterator, multimap< string, daeElement* >::iterator > range; + range = elementsIDMap.equal_range( string( name ) ); + multimap< string, daeElement* >::iterator i = range.first; + while ( i != range.second ) + { + if ( col == (*i).second->getDocument() ) + { + count++; + } + ++i; + } + return count; + } + else + { + //no file specified - just name + return (daeUInt)elementsIDMap.count( string( name ) ); + } + } + + if ( type ) + { + // type specified + map< string, vector< daeElement*> >::iterator iter = elements.find( string( type ) ); + if ( iter == elements.end() ) + { + return 0; + } + + int count = 0; + if ( file ) + { + // If a document URI was a search key (in file) resolve it to a text URI with no fragment + daeURI tempURI(dae, file,true); + daeDocument *col = getDocument( tempURI.getURI() ); + if ( col == NULL ) { + return 0; + } + // a document was specified + vector< daeElement* > &vec = (*iter).second; + vector< daeElement* >::iterator i = vec.begin(); + vector< daeElement* >::iterator end = vec.end(); + while( i != end ) + { + if ( col == (*i)->getDocument() ) + { + ++count; + } + ++i; + } + return count; + } + else + { + //no file specified - just type + return (daeUInt)(*iter).second.size(); + } + } + + //if you get here only a file was specified + daeURI tempURI(dae, file,true); + daeDocument *col = getDocument( tempURI.getURI() ); + if ( col == NULL ) { + return 0; + } + //a document was specified + int count = 0; + map< string, vector< daeElement*> >::iterator iter = elements.begin(); + map< string, vector< daeElement*> >::iterator end = elements.end(); + while( iter != end ) + { + vector< daeElement* > &vec = (*iter).second; + vector< daeElement* >::iterator i = vec.begin(); + vector< daeElement* >::iterator end2 = vec.end(); + while( i != end2 ) + { + if( col == (*i)->getDocument() ) + { + ++count; + } + ++i; + } + ++iter; + } + return count; + +} + +daeInt daeSTLDatabase::getElement(daeElement** pElement,daeInt index,daeString name,daeString type,daeString file) +{ + // If the index is out of range, there can be no match + if ( index < 0 ) + { + return DAE_ERR_QUERY_NO_MATCH; + } + + // If no name, type or file was specified we return the element at "index" - SLOW + if ( !name && !type && !file ) + { + daeUInt count = 0; + map< string, vector< daeElement*> >::iterator iter = elements.begin(); + map< string, vector< daeElement*> >::iterator end = elements.end(); + while( iter != end ) + { + count += (daeUInt)(*iter).second.size(); + if ( (daeInt)count > index ) + { + *pElement = (*iter).second[index - (count - (*iter).second.size())] ; + return DAE_OK; + } + ++iter; + } + return DAE_ERR_QUERY_NO_MATCH; + } + + if ( name ) + { + //name specified + int count = 0; + if ( file ) + { + // If a document URI was a search key (in file) resolve it to a text URI with no fragment + daeURI tempURI(dae, file, true); + daeDocument *col = getDocument( tempURI.getURI() ); + if ( col == NULL ) { + *pElement = NULL; + return DAE_ERR_QUERY_NO_MATCH; + } + //a document was specified + pair< multimap< string, daeElement* >::iterator, multimap< string, daeElement* >::iterator> range; + range = elementsIDMap.equal_range( string( name ) ); + multimap< string, daeElement* >::iterator i = range.first; + while ( i != range.second ) + { + if ( col == (*i).second->getDocument() ) + { + if ( count == index ) + { + *pElement = (*i).second; + return DAE_OK; + } + count++; + } + ++i; + } + *pElement = NULL; + return DAE_ERR_QUERY_NO_MATCH; + } + else + { + //no document specified + multimap< string, daeElement* >::iterator i = elementsIDMap.find( string( name ) ); + if ( index > (daeInt)elementsIDMap.count( string( name ) ) || i == elementsIDMap.end() ) + { + *pElement = NULL; + return DAE_ERR_QUERY_NO_MATCH; + } + for ( int x = 0; x < index; x++ ) + { + ++i; + } + *pElement = i->second; + return DAE_OK; + } + } + + if ( type ) + { + map< string, vector< daeElement*> >::iterator iter = elements.find( string( type ) ); + if ( iter == elements.end() ) + { + *pElement = NULL; + return DAE_ERR_QUERY_NO_MATCH; + } + //type specified + int count = 0; + if ( file ) + { + // If a document URI was a search key (in file) resolve it to a text URI with no fragment + daeURI tempURI(dae, file, true); + daeDocument *col = getDocument( tempURI.getURI() ); + if ( col == NULL ) { + return DAE_ERR_QUERY_NO_MATCH; + } + //a document was specified + // a document was specified + vector< daeElement* > &vec = (*iter).second; + vector< daeElement* >::iterator i = vec.begin(); + vector< daeElement* >::iterator end = vec.end(); + while( i != end ) + { + if ( col == (*i)->getDocument() ) + { + if ( count == index ) + { + *pElement = (*i); + return DAE_OK; + } + ++count; + } + ++i; + } + return DAE_ERR_QUERY_NO_MATCH; + } + else + { + //no document specified + if ( index >= (daeInt)(*iter).second.size() ) + { + *pElement = NULL; + return DAE_ERR_QUERY_NO_MATCH; + } + *pElement = (*iter).second[index]; + return DAE_OK; + } + } + + //if you get here only the file was specified - SLOW + daeURI tempURI(dae, file, true); + daeDocument *col = getDocument( tempURI.getURI() ); + if ( col == NULL ) { + return DAE_ERR_QUERY_NO_MATCH; + } + //a document was specified + int count = 0; + map< string, vector< daeElement*> >::iterator iter = elements.begin(); + map< string, vector< daeElement*> >::iterator end = elements.end(); + while( iter != end ) + { + vector< daeElement* > &vec = (*iter).second; + vector< daeElement* >::iterator i = vec.begin(); + vector< daeElement* >::iterator end2 = vec.end(); + while( i != end2 ) + { + if( col == (*i)->getDocument() ) + { + if( count == index ) + { + *pElement = (*i); + return DAE_OK; + } + ++count; + } + ++i; + } + ++iter; + } + return DAE_ERR_QUERY_NO_MATCH; + +} + +vector daeSTLDatabase::idLookup(const string& id) { + vector matchingElements; + idMapRange range = elementsIDMap.equal_range(id); + for (idMapIter iter = range.first; iter != range.second; iter++) + matchingElements.push_back(iter->second); + return matchingElements; +} + +void daeSTLDatabase::typeLookup(daeInt typeID, + vector& matchingElements, + daeDocument* doc) { + matchingElements.clear(); + typeMapRange range = typeMap.equal_range(typeID); + for (typeMapIter iter = range.first; iter != range.second; iter++) + if (!doc || doc == iter->second->getDocument()) + matchingElements.push_back(iter->second); +} + +void daeSTLDatabase::sidLookup(const string& sid, + vector& matchingElements, + daeDocument* doc) { + matchingElements.clear(); + if (!sid.empty()) { + sidMapRange range = sidMap.equal_range(sid); + for (sidMapIter iter = range.first; iter != range.second; iter++) + if (!doc || doc == iter->second->getDocument()) + matchingElements.push_back(iter->second); + } +} diff --git a/src/modules/stdErrPlugin/stdErrPlugin.cpp b/src/modules/stdErrPlugin/stdErrPlugin.cpp new file mode 100644 index 0000000..ee21f16 --- /dev/null +++ b/src/modules/stdErrPlugin/stdErrPlugin.cpp @@ -0,0 +1,35 @@ +/* + * Copyright 2006 Sony Computer Entertainment Inc. + * + * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this + * file except in compliance with the License. You may obtain a copy of the License at: + * http://research.scea.com/scea_shared_source_license.html + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing permissions and limitations under the + * License. + */ + +#include +#include + +quietErrorHandler quietErrorHandler::theInstance; + +stdErrPlugin::stdErrPlugin() { +} + +stdErrPlugin::~stdErrPlugin() { +} + +void stdErrPlugin::handleError( daeString msg ) { + //fprintf( stderr, "Error: %s\n", msg ); + //fflush( stderr ); + printf( "Error: %s\n", msg ); +} + +void stdErrPlugin::handleWarning( daeString msg ) { + //fprintf( stderr, "Warning: %s\n", msg ); + //fflush( stderr ); + printf( "Warning: %s\n", msg ); +} diff --git a/test/data/Seymour.dae b/test/data/Seymour.dae new file mode 100644 index 0000000..02a2ea3 --- /dev/null +++ b/test/data/Seymour.dae @@ -0,0 +1,2503 @@ + + + + + + gcorson + Maya 7.0 | ColladaMaya v2.03b Jul 27 2006 at 18:43:34 | FCollada v1.13 + Collada Maya Export Options: bakeTransforms=0;exportPolygonMeshes=1;bakeLighting=0;isSampling=0; +curveConstrainSampling=0;exportCameraAsLookat=0; +exportLights=1;exportCameras=1;exportJointsAndSkin=1; +exportAnimations=1;exportTriangles=0;exportInvisibleNodes=0; +exportNormals=1;exportTexCoords=1;exportVertexColors=1;exportTangents=0; +exportTexTangents=0;exportConstraints=1;exportPhysics=1;exportXRefs=1; +dereferenceXRefs=0;cameraXFov=0;cameraYFov=1 + file:///C:/Documents%20and%20Settings/gcorson/My%20Documents/maya/projects/default/untitled + + 2006-08-23T22:34:52Z + 2006-08-23T22:34:52Z + + Y_UP + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -5.89913 0 + + + + + + + + -5.89912 0 2.45797 + + + + + + + + -2.45797 0 5.89912 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 43 0 + + + + + + + + 43 0 -17.9167 + + + + + + + + 17.9167 0 -43 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 15 0 + + + + + + + + 15 0 -6.25 + + + + + + + + 6.25 0 -15 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -10.7011 0 + + + + + + + + -10.7011 0 4.45878 + + + + + + + + -4.45878 0 10.7011 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 14 0 + + + + + + + + 14 0 -5.83333 + + + + + + + + 5.83333 0 -14 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 39.5641 0 + + + + + + + + 39.564 0 -16.485 + + + + + + + + 16.485 0 -39.564 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -15.638 0 + + + + + + + + -15.638 0 6.51582 + + + + + + + + -6.51582 0 15.638 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -3.21795 0 + + + + + + + + -3.21795 0 1.34081 + + + + + + + + -1.34081 0 3.21795 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 71.5531 0 + + + + + + + + 71.553 0 -29.8138 + + + + + + + + 29.8138 0 -71.553 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -37.7059 0 + + + + + + + + -37.7059 0 15.7108 + + + + + + + + -15.7108 0 37.7059 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -13.2479 0 + + + + + + + + -13.2479 0 5.51996 + + + + + + + + -5.51996 0 13.2479 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 20.417 0 + + + + + + + + 20.417 0 -8.50709 + + + + + + + + 8.50709 0 -20.417 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 111.195 0 + + + + + + + + 111.195 0 -46.3313 + + + + + + + + 46.3313 0 -111.195 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 45 0 + + + + + + + + 45 0 -18.75 + + + + + + + + 18.75 0 -45 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -3.04214 0 + + + + + + + + -3.04214 0 1.26756 + + + + + + + + -1.26756 0 3.04214 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 1.33775 43 1.33775 + + + + + + + + 41.6623 0 -17.3593 + + + + + + + + 17.3593 0 -41.6623 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -72.2066 0 + + + + + + + + -72.2065 0 30.0861 + + + + + + + + -30.0861 0 72.2065 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.416667 0.833333 + + + + + + + + 0 -35 0 + + + + + + + + -35 0 14.5833 + + + + + + + + -14.5833 0 35 + + + + + + + + BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.041667 + + + + + + + + -2.12237 -0.149221 -6.01453 -2.12237 -0.182501 -6.01453 + + + + + + + + + + 0 -0.332806 0 0 -0.013867 0 + + + + + + + + + + 0 -0.013867 0 0 -0.332806 0 + + + + + + + + + + BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.041667 + + + + + + + + -2.12237 -0.149221 -6.01453 -2.12237 -0.182501 -6.01453 + + + + + + + + + + 0 -0.332806 0 0 -0.013867 0 + + + + + + + + + + 0 -0.013867 0 0 -0.332806 0 + + + + + + + + + + BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.041667 + + + + + + + + -2.12237 -0.149221 -6.01453 -2.12237 -0.182501 -6.01453 + + + + + + + + + + 0 -0.332806 0 0 -0.013867 0 + + + + + + + + + + 0 -0.013867 0 0 -0.332806 0 + + + + + + + + + + BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.041667 + + + + + + + + -2.12237 -0.149221 -6.01453 -2.12237 -0.182501 -6.01453 + + + + + + + + + + 0 -0.332806 0 0 -0.013867 0 + + + + + + + + + + 0 -0.013867 0 0 -0.332806 0 + + + + + + + + + + BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.041667 + + + + + + + + -2.12237 -0.149221 -6.01453 -2.12237 -0.182501 -6.01453 + + + + + + + + + + 0 -0.332806 0 0 -0.013867 0 + + + + + + + + + + 0 -0.013867 0 0 -0.332806 0 + + + + + + + + + + BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.041667 + + + + + + + + -2.12237 -0.149221 -6.01453 -2.12237 -0.182501 -6.01453 + + + + + + + + + + 0 -0.332806 0 0 -0.013867 0 + + + + + + + + + + 0 -0.013867 0 0 -0.332806 0 + + + + + + + + + + BEZIER BEZIER + + + + + + + + + + + + + + + + + + + + 0 -980 0 + 0.083 + + + + + + + + 1 1 1 + 1 + 0 + 0 + + + + + + + 0.7 0.7 1 + + + + + + + boy_10.tga + + + + + + + + + + + + + + + + + + + + + + file5 + A8R8G8B8 + + + + + file5-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + 0 0 0 1 + + + 0.305882 0.254902 0.254902 1 + + + + + + + 0.306 0.203184 0.234183 1 + + + 5.24 + + + 0 0 0 1 + + + 1 + + + 0 0 0 1 + + + 0 + + + 0 + + + + + + + + + + file5 + A8R8G8B8 + + + + + file5-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + 0 0 0 1 + + + 0.254902 0.254902 0.254902 1 + + + + + + + 0.843137 0.831373 0.894118 1 + + + 14.9285 + + + 0 0 0 1 + + + 1 + + + 0 0 0 1 + + + 0 + + + 0 + + + + + + + + + + file5 + A8R8G8B8 + + + + + file5-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + 0 0 0 1 + + + 0.254902 0.254902 0.254902 1 + + + + + + + 0.9 0.9 0.9 1 + + + 6.49802 + + + 0 0 0 1 + + + 1 + + + 0 0 0 1 + + + 0 + + + 0 + + + + + + + + + + file5 + A8R8G8B8 + + + + + file5-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + 0 0 0 1 + + + 0.254902 0.254902 0.254902 1 + + + + + + + 0.19834 0.19834 0.19834 1 + + + 6.052 + + + 0 0 0 1 + + + 1 + + + 0 0 0 1 + + + 0 + + + 0 + + + + + + + + + + + 0.086003 4.32303 0.106513 -0.08717 4.32303 0.106513 0.086003 4.31111 0.13459 -0.08717 4.31111 0.13459 0.086003 4.43921 0.136517 -0.08717 4.43921 0.136517 0.086003 4.42728 0.164594 -0.08717 4.42728 0.164594 0.154501 4.90081 -1.18654 0.173774 4.83994 -1.20036 0.220657 4.79434 -1.20257 0.28259 4.77623 -1.19257 0.342976 4.79046 -1.17306 0.385634 4.83318 -1.14924 0.399137 4.89301 -1.12751 0.379867 4.95391 -1.1137 0.332984 4.99951 -1.1115 0.271051 5.01762 -1.12149 0.210665 5.0034 -1.14101 0.168004 4.96064 -1.16482 0.167855 4.9165 -1.22996 0.187127 4.85563 -1.24378 0.23401 4.81003 -1.24599 0.295943 4.79192 -1.23599 0.35633 4.80614 -1.21648 0.39899 4.8489 -1.19267 0.412493 4.90873 -1.17094 0.393221 4.9696 -1.15713 0.346337 5.0152 -1.15492 0.282923 5.03484 -1.15711 0.224018 5.01908 -1.18443 0.181358 4.97633 -1.20824 0.195674 4.92104 -1.24071 0.211254 4.87183 -1.25188 0.249156 4.83497 -1.25366 0.299224 4.82033 -1.24558 0.348042 4.83183 -1.22981 0.38253 4.86639 -1.21056 0.393446 4.91476 -1.193 0.377866 4.96397 -1.18183 0.339964 5.00083 -1.18004 0.289896 5.01548 -1.18812 0.241078 5.00397 -1.2039 0.20659 4.96941 -1.22315 0.857501 8.8934 -0.714922 0.933955 8.62923 -0.714922 0.958237 8.63622 -0.72359 0.881305 8.90038 -0.72359 0.9108 8.89029 -0.204844 0.928146 8.61906 -0.199122 0.936054 8.89134 -0.199111 0.856404 8.89654 0.17849 0.87132 8.6243 0.195011 0.880477 8.89648 0.195009 0.779361 8.89721 0.440758 0.779361 8.62496 0.440758 0.801326 8.62496 0.464672 0.801326 8.89721 0.464672 0.941693 8.57848 -0.510925 0.937166 8.76033 -0.512834 0.899636 8.93669 -0.510918 0.958878 8.5887 -0.719256 0.923778 8.76946 -0.725035 0.856621 8.94092 -0.719256 0.892565 8.88996 -0.509493 0.924028 8.62124 -0.509488 0.914302 8.57308 -0.20198 0.948848 8.62531 -0.512362 0.936306 8.7555 -0.198165 0.917226 8.8939 -0.512346 0.924726 8.93616 -0.201976 0.903068 8.6179 -0.204838 0.857873 8.57887 0.186751 0.879902 8.76047 0.197765 0.869958 8.94197 0.186751 0.847448 8.62422 0.178491 0.790344 8.57958 0.452715 0.804987 8.76108 0.468658 0.790344 8.94258 0.452715 0.328897 8.52229 0.83284 0.185647 8.63817 0.85606 0.18194 8.95174 0.85638 0.332671 9.024 0.83472 0.49492 9.02174 0.770793 0.662672 9.01276 0.671276 0.768915 8.93776 0.576458 0.780866 8.61064 0.56261 0.664717 8.47953 0.668995 0.501572 8.46962 0.770401 0.138895 8.84615 0.858806 0.144612 8.67913 0.858867 0.807669 8.70148 0.532638 0.799763 8.87283 0.5419 0.695738 6.64472 -0.905603 0.735323 6.54931 -0.90562 0.695752 6.45378 -0.90562 0.600219 6.41421 -0.90562 0.504679 6.45368 -0.905606 0.465114 6.54929 -0.905616 0.695739 6.66967 -1.023 0.735323 6.58253 -1.06188 0.695752 6.49525 -1.10073 0.600219 6.4591 -1.11683 0.504687 6.49525 -1.10073 0.46511 6.58245 -1.06186 0.695752 6.74035 -1.12012 0.735323 6.67642 -1.19111 0.695752 6.6125 -1.26211 0.600219 6.58602 -1.29152 0.504687 6.6125 -1.26211 0.465116 6.67642 -1.19111 0.695752 6.84429 -1.18013 0.735323 6.81477 -1.27099 0.695752 6.78525 -1.36185 0.600219 6.77302 -1.39948 0.504687 6.78525 -1.36185 0.465116 6.81477 -1.27099 0.695752 6.96366 -1.19268 0.735323 6.97364 -1.28769 0.695752 6.98363 -1.3827 0.600219 6.98776 -1.42205 0.504687 6.98363 -1.3827 0.465116 6.97364 -1.28769 0.695752 7.0778 -1.15559 0.735323 7.12557 -1.23832 0.695752 7.17333 -1.32106 0.600219 7.19312 -1.35532 0.504687 7.17333 -1.32106 0.465116 7.12557 -1.23832 0.695752 7.167 -1.07528 0.735323 7.24428 -1.13143 0.695752 7.32157 -1.18758 0.600219 7.35358 -1.21084 0.504687 7.32157 -1.18758 0.465116 7.24428 -1.13143 0.695752 7.21581 -0.965631 0.735323 7.30926 -0.985494 0.695752 7.4027 -1.00536 0.600219 7.44141 -1.01358 0.504687 7.4027 -1.00536 0.465116 7.30926 -0.985494 0.695752 7.21581 -0.845609 0.735323 7.30926 -0.825747 0.695752 7.4027 -0.805885 0.600219 7.44141 -0.797657 0.504687 7.4027 -0.805885 0.465116 7.30926 -0.825747 0.695752 7.167 -0.735964 0.735323 7.24428 -0.679811 0.695752 7.32157 -0.623658 0.600219 7.35358 -0.600399 0.504687 7.32157 -0.623658 0.465116 7.24428 -0.679811 0.695752 7.0778 -0.655653 0.735323 7.12557 -0.572919 0.695752 7.17333 -0.490186 0.600219 7.19312 -0.455916 0.504687 7.17333 -0.490186 0.465116 7.12557 -0.572919 0.695752 6.96366 -0.618564 0.735323 6.97364 -0.523555 0.695752 6.98363 -0.428545 0.600219 6.98776 -0.389191 0.504687 6.98363 -0.428545 0.465116 6.97364 -0.523555 0.695752 6.84429 -0.63111 0.735323 6.81477 -0.540253 0.695752 6.78525 -0.449396 0.600219 6.77302 -0.411762 0.504687 6.78525 -0.449396 0.465116 6.81477 -0.540253 0.695752 6.74035 -0.691121 0.735323 6.67642 -0.620127 0.695752 6.6125 -0.549132 0.600219 6.58602 -0.519725 0.504687 6.6125 -0.549132 0.465116 6.67642 -0.620127 0.695752 6.6698 -0.788221 0.735323 6.58253 -0.749364 0.695752 6.49525 -0.710508 0.600219 6.4591 -0.694413 0.504687 6.49525 -0.710508 0.465111 6.58245 -0.749356 -0.160944 4.90081 -1.18654 -0.180217 4.83994 -1.20036 -0.2271 4.79434 -1.20257 -0.289033 4.77623 -1.19257 -0.349419 4.79046 -1.17306 -0.392077 4.83318 -1.14924 -0.40558 4.89301 -1.12751 -0.38631 4.95391 -1.1137 -0.339427 4.99951 -1.1115 -0.277494 5.01762 -1.12149 -0.217108 5.0034 -1.14101 -0.174447 4.96064 -1.16482 -0.174298 4.9165 -1.22996 -0.19357 4.85563 -1.24378 -0.240453 4.81003 -1.24599 -0.302386 4.79192 -1.23599 -0.362772 4.80614 -1.21648 -0.405433 4.8489 -1.19267 -0.418936 4.90873 -1.17094 -0.399664 4.9696 -1.15713 -0.35278 5.0152 -1.15492 -0.230461 5.01908 -1.18443 -0.187801 4.97633 -1.20824 -0.202117 4.92104 -1.24071 -0.217697 4.87183 -1.25188 -0.255599 4.83497 -1.25366 -0.305667 4.82033 -1.24558 -0.354485 4.83183 -1.22981 -0.388973 4.86639 -1.21056 -0.399889 4.91476 -1.193 -0.384309 4.96397 -1.18183 -0.346407 5.00083 -1.18004 -0.296339 5.01548 -1.18812 -0.247521 5.00397 -1.2039 -0.213033 4.96941 -1.22315 -0.289208 5.03484 -1.15711 -0.8575 8.8934 -0.714922 -0.933955 8.62923 -0.714922 -0.958237 8.63622 -0.72359 -0.881305 8.90038 -0.72359 -0.903068 8.6179 -0.204838 -0.847448 8.62422 0.178491 -0.779361 8.89721 0.440758 -0.779361 8.62496 0.440758 -0.801326 8.62496 0.464672 -0.801286 8.89677 0.464649 -0.941693 8.57848 -0.510925 -0.937172 8.76039 -0.512837 -0.89965 8.93682 -0.510925 -0.914302 8.57308 -0.20198 -0.936305 8.75548 -0.198165 -0.924726 8.93616 -0.201976 -0.857873 8.57887 0.186751 -0.879897 8.76042 0.197764 -0.869957 8.94196 0.186751 -0.958878 8.5887 -0.719256 -0.923778 8.76946 -0.725035 -0.856621 8.94092 -0.719256 -0.892565 8.88996 -0.509493 -0.924028 8.62124 -0.509488 -0.948848 8.62531 -0.512362 -0.917246 8.89409 -0.512357 -0.9108 8.89029 -0.204844 -0.928146 8.61906 -0.199122 -0.936053 8.89133 -0.199111 -0.856402 8.89653 0.17849 -0.790344 8.57958 0.452715 -0.87132 8.6243 0.195011 -0.804973 8.76093 0.46865 -0.880474 8.89645 0.195008 -0.790344 8.94258 0.452715 -0.328897 8.52229 0.83284 -0.185647 8.63817 0.85606 -0.18194 8.95174 0.85638 -0.332671 9.024 0.83472 -0.49492 9.02174 0.770793 -0.662672 9.01276 0.671276 -0.768915 8.93776 0.576458 -0.780866 8.61064 0.56261 -0.664717 8.47953 0.668995 -0.501572 8.46962 0.770401 -0.138895 8.84615 0.858806 -0.144612 8.67913 0.858867 -0.807669 8.70148 0.532638 -0.799763 8.87283 0.5419 -0.695633 6.64485 -0.90562 -0.735204 6.54931 -0.90562 -0.695633 6.45378 -0.90562 -0.6001 6.41421 -0.90562 -0.504567 6.45378 -0.90562 -0.464997 6.54931 -0.90562 -0.695633 6.6698 -1.02302 -0.735204 6.58253 -1.06188 -0.695633 6.49525 -1.10073 -0.6001 6.4591 -1.11683 -0.504567 6.49525 -1.10073 -0.464997 6.58253 -1.06188 -0.695633 6.74035 -1.12012 -0.735204 6.67642 -1.19111 -0.695633 6.6125 -1.26211 -0.6001 6.58602 -1.29152 -0.504567 6.6125 -1.26211 -0.464997 6.67642 -1.19111 -0.695633 6.84429 -1.18013 -0.735204 6.81477 -1.27099 -0.695633 6.78525 -1.36185 -0.6001 6.77302 -1.39948 -0.504567 6.78525 -1.36185 -0.464997 6.81477 -1.27099 -0.695633 6.96366 -1.19268 -0.735204 6.97364 -1.28769 -0.695633 6.98363 -1.3827 -0.6001 6.98776 -1.42205 -0.504567 6.98363 -1.3827 -0.464997 6.97364 -1.28769 -0.695633 7.0778 -1.15559 -0.735204 7.12557 -1.23832 -0.695633 7.17333 -1.32106 -0.6001 7.19312 -1.35532 -0.504567 7.17333 -1.32106 -0.464997 7.12557 -1.23832 -0.695633 7.167 -1.07528 -0.735204 7.24428 -1.13143 -0.695633 7.32157 -1.18758 -0.6001 7.35358 -1.21084 -0.504567 7.32157 -1.18758 -0.464997 7.24428 -1.13143 -0.695633 7.21581 -0.965631 -0.735204 7.30926 -0.985494 -0.695633 7.4027 -1.00536 -0.6001 7.44141 -1.01358 -0.504567 7.4027 -1.00536 -0.464997 7.30926 -0.985494 -0.695633 7.21581 -0.845609 -0.735204 7.30926 -0.825747 -0.695633 7.4027 -0.805885 -0.6001 7.44141 -0.797657 -0.504567 7.4027 -0.805885 -0.464997 7.30926 -0.825747 -0.695633 7.167 -0.735964 -0.735204 7.24428 -0.679811 -0.695633 7.32157 -0.623658 -0.6001 7.35358 -0.600399 -0.504567 7.32157 -0.623658 -0.464997 7.24428 -0.679811 -0.695633 7.0778 -0.655653 -0.735204 7.12557 -0.572919 -0.695633 7.17334 -0.490186 -0.6001 7.19312 -0.455916 -0.504567 7.17333 -0.490186 -0.464997 7.12557 -0.572919 -0.695633 6.96366 -0.618564 -0.735204 6.97364 -0.523555 -0.695633 6.98363 -0.428545 -0.6001 6.98776 -0.389191 -0.504567 6.98363 -0.428545 -0.464997 6.97364 -0.523555 -0.695633 6.84429 -0.63111 -0.735204 6.81477 -0.540253 -0.695633 6.78525 -0.449396 -0.6001 6.77302 -0.411762 -0.504567 6.78525 -0.449396 -0.464997 6.81477 -0.540253 -0.695633 6.74035 -0.691121 -0.735204 6.67642 -0.620127 -0.695633 6.6125 -0.549132 -0.6001 6.58602 -0.519725 -0.504567 6.6125 -0.549132 -0.464997 6.67642 -0.620127 -0.695633 6.6698 -0.788221 -0.735204 6.58253 -0.749364 -0.695633 6.49525 -0.710508 -0.6001 6.4591 -0.694413 -0.504567 6.49525 -0.710508 -0.464997 6.58253 -0.749364 -0.099499 6.89549 -0.249843 0.098333 6.89549 -0.249843 -0.059145 7.41068 -0.368784 0.057978 7.41068 -0.368784 -0.099499 6.90318 -0.216527 0.098333 6.90318 -0.216527 -0.059145 7.41837 -0.335468 0.057978 7.41837 -0.335468 -0.043612 7.33243 -0.350753 0.042445 7.33243 -0.350753 0.042446 7.3403 -0.317445 -0.043613 7.3403 -0.317445 0.040177 7.39649 -0.365509 0.040177 7.40419 -0.332193 -0.041343 7.39649 -0.365509 -0.041343 7.40419 -0.332193 0.067834 6.94911 -0.22713 -0.069 6.94911 -0.22713 0.061137 7.03323 -0.281677 0.061138 7.0411 -0.248367 -0.062303 7.03323 -0.281677 -0.062305 7.0411 -0.248367 -0.072203 6.93956 -0.261625 0.071877 6.93956 -0.261625 -0.046715 7.51178 -0.398669 -0.063001 7.33761 -0.411134 0.063057 7.33761 -0.411134 0.091014 7.39031 -0.408815 0.045161 7.51182 -0.396167 -0.092395 7.39031 -0.408815 0.08713 7.38667 -0.376795 0.042553 7.50495 -0.364506 -0.043933 7.50495 -0.364506 -0.088511 7.38667 -0.376795 -0.057415 7.33119 -0.382558 0.056035 7.33119 -0.382558 0.058095 7.45114 -0.402495 0.05532 7.44581 -0.370651 -0.059475 7.45114 -0.402495 -0.0567 7.44581 -0.370651 -0.00069 7.31756 -0.416373 -0.00069 7.31659 -0.384075 -0.022368 7.43812 -0.308678 -0.022368 7.43786 -0.333294 -0.022368 7.46411 -0.315533 -0.022368 7.45278 -0.340579 -0.022368 7.47794 -0.336232 0.021197 7.43786 -0.333294 0.021197 7.43812 -0.308678 0.021197 7.46411 -0.315533 0.021197 7.45278 -0.340579 0.021197 7.47794 -0.336232 -0.022368 7.38278 -0.31438 -0.022368 7.37437 -0.343815 -0.022368 7.35099 -0.328421 -0.022368 7.34236 -0.34561 -0.022368 7.34439 -0.378951 -0.022368 7.36899 -0.375729 0.021197 7.38278 -0.31438 0.021197 7.37437 -0.343815 0.021197 7.35099 -0.328421 0.021197 7.34236 -0.34561 0.021197 7.34439 -0.378951 0.021197 7.36899 -0.375729 0.808628 0.019182 0.415937 0.955889 0.019147 1.03768 1.13575 0.019147 1.27319 1.53584 0.019151 1.31024 1.92975 0.019153 1.07476 2.05656 0.019157 0.848504 2.02858 0.019159 0.31817 1.90062 0.019159 -0.228037 1.54899 0.018952 -0.929012 1.11636 0.019155 -1.11875 0.790723 0.018728 -0.867225 0.747924 0.019182 -0.12916 0.862981 -0.051445 0.398353 0.999935 -0.05148 0.980053 1.15614 -0.051484 1.18459 1.5227 -0.05148 1.21598 1.89415 -0.051478 0.993907 2.00112 -0.051474 0.803057 1.97386 -0.051467 0.333814 1.8521 -0.051467 -0.185485 1.51863 -0.05167 -0.850523 1.12607 -0.051468 -1.02389 0.841797 -0.051894 -0.808336 0.804011 -0.051445 -0.131807 1.09113 0.808132 -0.837003 1.38158 0.693938 -0.840215 1.76003 0.491778 0.339787 1.75755 0.328083 1.08111 1.08958 0.381328 1.00535 0.971099 0.473394 0.402957 0.900016 0.663804 -0.805428 1.09275 0.66502 -0.926776 1.41752 0.455008 0.942456 1.46333 0.34308 1.15431 1.31778 0.611714 0.375366 1.19911 0.324016 1.18136 1.82241 0.392031 0.881605 1.52045 0.354533 -0.895272 1.96742 0.265413 0.323177 1.51561 0.216191 1.268 0.986199 0.23143 1.01899 0.856551 0.242106 0.411719 0.818425 0.351139 -0.839363 1.1158 0.355473 -1.06259 1.1509 0.216228 1.24477 2.01224 0.235233 0.852765 1.63889 0.70242 -0.199694 0.910864 0.65536 -0.138748 1.22495 0.855613 -0.165034 1.89146 0.217988 1.06809 1.8396 0.329819 -0.218349 0.80235 0.317165 -0.132884 1.69611 0.69956 0.059195 0.839534 0.568901 -0.299731 1.01055 0.69514 0.063486 1.31303 0.804355 0.176846 0.882394 0.318991 -1.01659 1.33972 0.337483 -1.08749 1.72901 0.240396 -0.72892 0.777839 0.296115 -0.504507 0.779216 0.245298 -0.72514 1.77169 0.547901 -0.283976 1.8163 0.280634 -0.511832 1.09656 0.665183 -0.236407 1.40322 0.69199 -0.174544 1.34365 0.457868 -0.732707 1.03503 0.529708 -0.466635 1.04098 0.442046 -0.700236 1.46461 0.537611 -0.480673 1.60878 0.673248 -0.054269 0.923155 0.555571 -0.318733 1.03428 0.678153 -0.061173 1.31039 0.759853 0.054313 0.946911 0.351938 -0.870381 1.33908 0.367329 -0.921392 1.61792 0.309255 -0.703487 0.872094 0.347573 -0.51173 0.875895 0.310138 -0.698537 1.67321 0.518181 -0.330708 1.05221 1.40114 -0.913037 1.49855 1.0629 -0.196806 1.78637 0.613232 -0.34757 1.12938 1.06503 -0.964986 1.3282 1.34738 -0.394745 1.50503 1.05938 -0.374498 1.69796 0.807051 0.025398 1.28879 1.3962 -0.64427 1.65374 0.6412 -0.701896 1.42961 1.05977 -0.654968 0.82029 2.4541 -0.737869 0.858282 2.35117 -0.321999 1.00176 2.35123 -0.590845 0.852583 2.35881 -0.781782 0.827976 2.4541 -0.350697 0.940471 2.45415 -0.576019 1.25414 0.65589 -1.08499 1.33241 0.416628 -1.14254 1.85735 0.369656 -0.566526 1.76271 0.327948 -0.756073 1.21536 1.08068 -0.037836 1.09816 1.39825 -0.235299 0.995695 2.35124 -0.456715 0.937004 2.45416 -0.461716 1.30445 0.896347 0.159265 0.766755 1.40052 -0.826103 0.916264 1.05953 -0.121776 0.796257 1.05941 -0.295252 0.813186 1.34661 -0.303319 0.800874 1.06402 -0.869703 0.970427 0.793445 0.046072 0.776312 0.637108 -0.354739 0.71428 1.39548 -0.578161 0.719895 1.05972 -0.586102 0.723357 0.641657 -0.651959 0.64685 2.35103 -0.726573 0.658197 2.35102 -0.372258 0.59535 2.351 -0.554639 0.655528 2.45406 -0.697158 0.6118 2.45404 -0.546749 0.642814 2.45403 -0.398251 0.812051 0.650689 -0.988151 0.842785 0.398445 -1.05938 0.728832 0.365655 -0.548576 0.72809 0.328962 -0.742264 0.69393 2.47954 -0.441078 0.6595 2.47956 -0.54568 0.689718 2.47959 -0.65205 0.801379 2.4796 -0.67901 0.883129 2.47965 -0.565934 0.810709 2.47962 -0.410741 0.722239 2.4706 -0.480164 0.699922 2.47059 -0.546475 0.718883 2.47063 -0.613761 0.789209 2.47069 -0.630736 0.841077 2.47072 -0.560089 0.796186 2.47067 -0.46073 0.881311 2.47969 -0.487167 0.840408 2.47072 -0.509176 -0.808628 0.019182 0.415937 -0.955889 0.019147 1.03768 -1.13575 0.019147 1.27319 -1.53584 0.019151 1.31024 -1.92975 0.019153 1.07476 -2.05656 0.019157 0.848504 -2.02858 0.019159 0.31817 -1.90062 0.019159 -0.228037 -1.54899 0.018952 -0.929012 -1.11636 0.019155 -1.11875 -0.790723 0.018728 -0.867225 -0.747924 0.019182 -0.12916 -0.862981 -0.051445 0.398353 -0.999935 -0.05148 0.980053 -1.15614 -0.051484 1.18459 -1.5227 -0.05148 1.21598 -1.89415 -0.051478 0.993907 -2.00112 -0.051474 0.803057 -1.97386 -0.051467 0.333814 -1.8521 -0.051467 -0.185485 -1.51863 -0.05167 -0.850523 -1.12607 -0.051468 -1.02389 -0.841797 -0.051894 -0.808336 -0.804011 -0.051445 -0.131807 -1.09113 0.808132 -0.837003 -1.38158 0.693938 -0.840215 -1.76003 0.491778 0.339787 -1.75755 0.328083 1.08111 -1.46333 0.34308 1.15431 -1.08958 0.381328 1.00535 -0.971099 0.473394 0.402957 -0.900016 0.663804 -0.805428 -1.09275 0.66502 -0.926776 -1.41752 0.455008 0.942456 -1.31778 0.611714 0.375366 -1.19911 0.324016 1.18136 -1.82241 0.392031 0.881605 -1.52045 0.354533 -0.895272 -0.986199 0.23143 1.01899 -0.856551 0.242106 0.411719 -0.818425 0.351139 -0.839363 -1.1509 0.216228 1.24477 -2.01224 0.235233 0.852765 -1.63889 0.70242 -0.199694 -0.910864 0.65536 -0.138748 -1.22495 0.855613 -0.165034 -1.51561 0.216191 1.268 -1.89146 0.217988 1.06809 -1.96742 0.265413 0.323177 -1.8396 0.329819 -0.218349 -1.1158 0.355473 -1.06259 -0.80235 0.317165 -0.132884 -1.69611 0.69956 0.059195 -0.839534 0.568901 -0.299731 -0.989095 0.69514 0.052743 -1.31303 0.804355 0.176846 -0.882394 0.318991 -1.01659 -1.33972 0.337483 -1.08749 -1.72901 0.240396 -0.72892 -0.777839 0.296115 -0.504507 -0.779216 0.245298 -0.72514 -1.77169 0.547901 -0.283976 -1.8163 0.280634 -0.511832 -1.09656 0.665183 -0.236407 -1.40322 0.69199 -0.174544 -1.34365 0.457868 -0.732707 -1.03503 0.529708 -0.466635 -1.04098 0.442046 -0.700236 -1.46461 0.537611 -0.480673 -1.60878 0.673248 -0.054269 -0.923155 0.555571 -0.318733 -1.03428 0.678153 -0.061173 -1.31039 0.759853 0.054313 -0.946911 0.351938 -0.870381 -1.33908 0.367329 -0.921392 -1.61792 0.309255 -0.703487 -0.872094 0.347573 -0.51173 -0.875895 0.310138 -0.698537 -1.67321 0.518181 -0.330708 -1.05221 1.40114 -0.913037 -1.49855 1.0629 -0.196806 -1.78637 0.613232 -0.34757 -1.12938 1.06503 -0.964986 -1.3282 1.34738 -0.394745 -1.50503 1.05938 -0.374498 -1.69796 0.807051 0.025398 -1.28879 1.3962 -0.64427 -1.65374 0.6412 -0.701896 -1.42961 1.05977 -0.654968 -0.82029 2.4541 -0.737869 -0.858282 2.35117 -0.321999 -1.00176 2.35123 -0.590845 -0.852583 2.35881 -0.781782 -0.827976 2.4541 -0.350697 -0.940471 2.45415 -0.576019 -1.25414 0.65589 -1.08499 -1.33241 0.416628 -1.14254 -1.85735 0.369656 -0.566526 -1.76271 0.327948 -0.756073 -1.21536 1.08068 -0.037836 -1.09816 1.39825 -0.235299 -0.995695 2.35124 -0.456715 -0.937004 2.45416 -0.461716 -1.30445 0.896347 0.159265 -0.766755 1.40052 -0.826103 -0.894811 1.05953 -0.132519 -0.796257 1.05941 -0.295252 -0.791733 1.34661 -0.314062 -0.800874 1.06402 -0.869703 -0.948974 0.793445 0.035329 -0.776312 0.637108 -0.354739 -0.71428 1.39548 -0.578161 -0.719895 1.05972 -0.586102 -0.723357 0.641657 -0.651959 -0.64685 2.35103 -0.726573 -0.636744 2.35102 -0.383 -0.59535 2.351 -0.554639 -0.655528 2.45406 -0.697158 -0.6118 2.45404 -0.546749 -0.642814 2.45403 -0.398251 -0.812051 0.650689 -0.988151 -0.842785 0.398445 -1.05938 -0.728832 0.365655 -0.548576 -0.72809 0.328962 -0.742264 -0.69393 2.47954 -0.441078 -0.6595 2.47956 -0.54568 -0.689718 2.47959 -0.65205 -0.801384 2.47962 -0.679015 -0.883129 2.47965 -0.565934 -0.810709 2.47962 -0.410741 -0.722239 2.4706 -0.480164 -0.699922 2.47059 -0.546475 -0.718883 2.47063 -0.613761 -0.789209 2.47069 -0.630736 -0.841077 2.47072 -0.560089 -0.796186 2.47067 -0.46073 -0.881311 2.47969 -0.487167 -0.840408 2.47072 -0.509176 3.70007 6.99503 -0.754209 3.92489 6.99787 -0.759116 4.86515 7.01285 -0.728146 4.86994 7.03316 -0.993665 4.80495 6.98207 -1.26704 4.44856 6.99116 -0.573654 4.40073 6.843 -0.438405 4.24286 6.66628 -0.426032 4.45664 6.74799 -0.360557 4.6162 6.43925 -0.286589 4.70435 6.515 -0.277319 4.18122 6.96713 -1.17052 4.19005 7.06345 -1.10017 4.62507 7.01535 -1.20744 4.69879 6.42888 -0.324766 4.23041 6.94103 -0.555782 4.70378 6.58417 -0.358163 4.59853 6.5507 -0.259719 3.91583 7.0502 -1.06851 4.40881 6.9497 -1.23853 4.60371 6.91303 -1.26556 4.43405 7.04561 -1.15999 4.23217 7.00296 -0.638685 4.66121 7.03049 -0.537521 4.63115 6.41172 -0.334449 4.72723 6.49518 -0.333033 4.66849 6.46908 -0.268637 4.57349 6.90973 -0.522962 4.27235 6.81324 -0.448281 4.39851 6.9238 -0.526151 4.51537 6.7366 -0.448884 4.33728 6.71017 -0.365913 4.36496 6.5909 -0.367047 4.56654 6.69197 -0.31188 4.61658 6.68356 -0.399368 4.46154 6.64915 -0.307159 4.50524 6.48798 -0.29929 4.66805 6.59389 -0.275825 4.0351 6.97216 -1.12749 4.04314 7.05138 -1.06906 4.05041 6.97645 -0.689598 4.68128 7.05291 -1.01512 4.70088 7.0842 -0.776203 4.46536 7.07827 -0.97248 4.47342 7.10279 -0.844492 5.09798 6.95878 -1.13285 5.05262 6.95016 -1.2739 5.29282 6.94874 -1.16009 5.25087 6.93861 -1.30255 5.50686 6.95575 -1.19628 5.47924 6.94564 -1.31003 5.04336 6.86905 -1.31077 5.37581 6.88077 -1.35924 5.43266 6.89634 -1.13425 5.47459 6.89223 -1.32376 5.50943 6.9034 -1.18347 4.78382 6.8728 -1.28402 5.10671 6.87986 -1.0991 5.23979 6.87353 -1.33494 5.29734 6.88732 -1.1283 5.39147 6.94779 -1.32321 5.43279 6.95978 -1.16782 4.85701 6.9139 -1.058 5.14738 7.01119 -0.81222 5.15212 7.00751 -0.981406 5.35135 7.00384 -0.809679 5.35872 7.00539 -0.98002 5.58093 7.01532 -0.81303 5.59053 7.01276 -0.949007 4.96333 6.9404 -1.01506 5.14773 6.9362 -1.02243 5.4861 6.94826 -1.01701 5.47767 6.94695 -0.756675 5.58665 6.95962 -0.964066 5.57764 6.96096 -0.798549 4.87732 6.91391 -1.01297 5.14299 6.92741 -0.775413 5.3482 6.94096 -1.01579 5.3425 6.93781 -0.774273 5.50212 7.0152 -0.977729 5.49221 7.01531 -0.793516 4.87253 6.91791 -0.779755 5.06665 6.96768 -0.488534 5.11447 6.97398 -0.659452 5.26716 6.95914 -0.463675 5.31383 6.96231 -0.633795 5.49175 6.96752 -0.443006 5.52399 6.96712 -0.573759 5.12599 6.89646 -0.70302 5.45545 6.90728 -0.657288 5.3933 6.90573 -0.397841 5.52628 6.91484 -0.589292 5.48949 6.91465 -0.428638 4.8735 6.91713 -0.723617 5.06352 6.88744 -0.451662 5.31813 6.89985 -0.672006 5.26005 6.89646 -0.429162 5.45526 6.97213 -0.614938 5.40583 6.97046 -0.432698 4.79499 7.015 -0.527178 4.79705 6.89329 -0.486356 4.89174 7.03269 -0.80283 4.84631 7.02048 -1.09005 4.51457 6.87907 -0.497485 4.66538 6.90709 -0.505361 4.81992 7.0109 -1.04179 4.84023 7.00792 -0.765413 4.87301 6.91752 -0.751686 4.86717 6.91391 -1.03549 3.9293 6.98268 -1.09272 3.70013 7.08821 -0.976707 3.70015 7.04655 -1.08567 3.90469 7.07665 -0.969067 3.35209 7.04213 -0.697619 3.35209 7.06323 -1.14893 3.35191 7.165 -0.993777 3.49968 7.13227 -0.97745 3.49962 7.05482 -1.11949 3.49966 7.02182 -0.722668 3.41332 7.05364 -0.667705 3.41345 6.87394 -0.646487 3.41336 7.07749 -1.17769 3.41318 7.19243 -1.00337 3.49252 7.15544 -0.984924 3.49252 7.06798 -1.14442 3.49252 7.03069 -0.696011 3.35209 7.13213 -0.808847 3.35205 6.88309 -0.678861 3.49966 7.10193 -0.831264 3.49961 6.88994 -0.70679 3.41329 7.15169 -0.785877 3.49252 6.88165 -0.678042 3.49252 7.11757 -0.811208 3.70011 6.79826 -0.832097 3.92133 6.90318 -1.09589 3.92074 6.81515 -0.992063 3.93304 6.89489 -0.728263 3.92102 6.84822 -1.04579 4.39265 6.82832 -1.24861 4.40742 6.76435 -1.16651 4.50556 6.74614 -0.582586 4.30036 6.6672 -0.584519 4.50221 6.71098 -0.530345 4.63101 6.4146 -0.386402 4.71813 6.48286 -0.39462 4.19496 6.71866 -0.755677 4.18029 6.73278 -0.892938 4.17376 6.75174 -1.09787 4.4955 6.82001 -0.457697 4.51384 6.46045 -0.357213 4.62593 6.4963 -0.46923 3.91786 6.81281 -0.811445 4.61355 6.809 -1.28096 4.39766 6.72134 -0.727023 4.22729 6.69224 -0.636209 4.42924 6.73928 -0.848148 4.17221 6.84416 -1.17957 4.66078 6.80742 -0.539395 4.64063 6.76979 -1.207 4.68529 6.43455 -0.395833 4.24315 6.64541 -0.512881 4.40511 6.67735 -0.576609 4.42004 6.58197 -0.501274 4.37487 6.57163 -0.442239 4.59218 6.65111 -0.492651 4.50529 6.60938 -0.522841 4.55702 6.46539 -0.433694 4.6872 6.54776 -0.447496 4.02479 6.74535 -0.899488 4.02083 6.78577 -1.06216 4.02991 6.86564 -1.13691 5.04765 6.78853 -1.28106 5.27954 6.81969 -1.14433 5.2339 6.80967 -1.30563 5.47352 6.83449 -1.18539 5.44127 6.82799 -1.31668 5.10002 6.79738 -1.11814 5.35568 6.80693 -1.32877 5.40146 6.81715 -1.15041 4.85864 6.78794 -1.07426 4.76641 6.76599 -1.25271 5.14835 6.8554 -0.991567 5.3381 6.87347 -0.800447 5.33937 6.87695 -0.986072 5.5463 6.8927 -0.811685 5.55073 6.89547 -0.962161 5.14876 6.84868 -0.801517 5.46312 6.87441 -0.988769 5.46047 6.87154 -0.785939 4.8789 6.81287 -0.799933 4.88166 6.81399 -0.992343 5.11418 6.81292 -0.670229 5.25613 6.83096 -0.45472 5.29521 6.83266 -0.642167 5.46044 6.84725 -0.444109 5.49186 6.85015 -0.592299 5.06975 6.80721 -0.476317 5.41883 6.83032 -0.630818 5.37657 6.82898 -0.427711 4.78827 6.79244 -0.520654 4.87861 6.78504 -0.713724 4.81439 6.77549 -1.05895 4.81997 6.77499 -1.00621 4.79981 6.77387 -0.806317 4.81872 6.77442 -0.724271 4.59011 6.74793 -0.657681 4.19436 6.79245 -0.938215 4.02017 6.78051 -0.954219 4.59487 6.76239 -0.807773 4.39875 6.7679 -0.924287 4.55994 6.77003 -1.186 4.12347 6.70015 -0.62171 4.37986 6.70768 -0.634596 4.60626 6.81654 -0.54551 4.09912 6.77105 -0.563872 4.0303 6.7447 -0.768116 3.93827 6.80641 -0.899835 3.70011 6.80535 -0.992144 3.70016 6.91944 -1.08743 3.35209 6.74417 -1.04415 3.35209 6.87928 -1.15605 3.35209 6.71669 -0.804376 3.49961 6.74909 -0.8171 3.49964 6.76724 -1.02069 3.49961 6.8957 -1.12581 3.41345 6.68589 -0.788341 3.41332 6.71694 -1.05929 3.41337 6.86962 -1.18573 3.49252 6.88818 -1.15157 3.49252 6.74301 -1.03278 3.49252 6.72251 -0.802719 3.35209 6.71725 -0.924467 3.35209 6.80347 -1.11094 3.35209 6.76311 -0.732403 3.35209 6.97265 -1.1665 3.49962 6.9769 -1.13486 3.4996 6.78872 -0.753898 3.4996 6.7332 -0.918166 3.49963 6.82441 -1.08247 3.41348 6.7383 -0.706959 3.41338 6.68649 -0.923991 3.41334 6.78391 -1.1347 3.41335 6.97509 -1.19748 3.49252 6.97989 -1.16173 3.49252 6.80757 -1.10253 3.49252 6.76725 -0.731248 3.49252 6.7203 -0.919011 4.67851 6.76038 -0.793213 3.70011 6.80171 -0.909445 3.70013 6.86549 -1.04238 4.67706 6.77236 -1.00667 4.58389 6.76641 -0.984812 3.70009 6.90063 -0.746107 3.70015 6.98898 -1.08642 3.7001 7.06007 -0.863923 3.9245 7.05041 -0.854827 4.04728 7.06872 -0.861082 4.22071 7.08934 -0.85743 4.04917 7.07179 -0.960284 4.21014 7.08057 -0.957393 3.34129 7.11068 -0.831097 3.3413 7.02884 -0.726926 3.34129 6.89072 -0.710633 3.34129 7.04718 -1.11906 3.34114 7.13561 -0.984254 3.34129 6.78641 -0.75715 3.34129 6.74608 -0.819686 3.3413 6.74657 -0.924032 3.3413 6.76995 -1.02803 3.34129 6.82148 -1.08606 3.34129 6.88735 -1.12525 3.34129 6.96848 -1.13433 3.36969 7.08936 -0.853216 3.3697 7.01565 -0.756059 3.36969 6.89823 -0.74221 3.36969 7.03123 -1.08938 3.36956 7.10639 -0.974788 3.36969 6.80957 -0.781749 3.36969 6.77529 -0.834905 3.3697 6.77571 -0.923599 3.3697 6.79559 -1.01199 3.36969 6.83939 -1.06132 3.36969 6.89538 -1.09463 3.36969 6.96434 -1.10235 3.42541 7.06118 -0.882461 3.42541 6.99819 -0.794579 3.42541 6.90818 -0.783962 3.42541 7.01014 -1.05012 3.42531 7.06776 -0.962271 3.42541 6.8402 -0.814275 3.42541 6.81392 -0.855028 3.42541 6.81424 -0.923026 3.42541 6.82948 -0.990796 3.42541 6.86306 -1.02861 3.42541 6.90599 -1.05415 3.42541 6.95885 -1.06007 -3.70005 6.995 -0.754207 -3.92487 6.99784 -0.759113 -4.86515 7.01285 -0.728146 -4.86994 7.03316 -0.993665 -4.80495 6.98207 -1.26704 -4.44856 6.99116 -0.573654 -4.40043 6.83558 -0.429316 -4.24286 6.66628 -0.426032 -4.45664 6.74799 -0.360557 -4.6162 6.43925 -0.286589 -4.70435 6.515 -0.277319 -4.18122 6.96713 -1.17052 -4.19005 7.06345 -1.10017 -4.62507 7.01535 -1.20744 -4.69879 6.42888 -0.324766 -4.23041 6.94103 -0.555782 -4.48377 6.80651 -0.460863 -4.70378 6.58417 -0.358163 -4.59853 6.5507 -0.259719 -3.91583 7.0502 -1.06851 -4.4088 6.9497 -1.23853 -4.60371 6.91303 -1.26556 -4.43405 7.04561 -1.15999 -4.23217 7.00296 -0.638685 -4.66121 7.03049 -0.537521 -4.63115 6.41172 -0.334449 -4.72723 6.49518 -0.333033 -4.66849 6.46908 -0.268637 -4.57349 6.90973 -0.522962 -4.27946 6.79926 -0.440159 -4.39851 6.9238 -0.526151 -4.51537 6.7366 -0.448884 -4.33728 6.71017 -0.365913 -4.36496 6.5909 -0.367047 -4.56654 6.69197 -0.31188 -4.61658 6.68356 -0.399368 -4.46154 6.64915 -0.307159 -4.50524 6.48798 -0.29929 -4.66805 6.59389 -0.275825 -4.0351 6.97216 -1.12749 -4.04314 7.05138 -1.06906 -4.05041 6.97645 -0.689598 -4.68128 7.05291 -1.01512 -4.70088 7.0842 -0.776203 -4.46536 7.07827 -0.97248 -4.47342 7.10279 -0.844492 -5.09798 6.95878 -1.13285 -5.05262 6.95016 -1.2739 -5.29282 6.94874 -1.16009 -5.25087 6.93861 -1.30255 -5.50686 6.95575 -1.19628 -5.47924 6.94564 -1.31003 -4.86565 6.87417 -1.28348 -4.92196 6.88004 -1.07202 -5.04336 6.86905 -1.31077 -5.37581 6.88077 -1.35924 -5.43266 6.89634 -1.13425 -5.47459 6.89223 -1.32376 -5.50943 6.9034 -1.18347 -4.78382 6.8728 -1.28402 -4.87364 6.96631 -1.25509 -4.91341 6.97593 -1.10956 -5.10671 6.87986 -1.0991 -5.23979 6.87353 -1.33494 -5.29734 6.88732 -1.1283 -5.39147 6.94779 -1.32321 -5.43279 6.95978 -1.16782 -4.85701 6.9139 -1.058 -5.14738 7.01119 -0.81222 -5.15212 7.00751 -0.981406 -5.35135 7.00384 -0.809679 -5.35872 7.00539 -0.98002 -5.58092 7.01532 -0.81303 -5.59053 7.01276 -0.949007 -4.96333 6.9404 -1.01506 -4.95444 6.92643 -0.780222 -5.14773 6.9362 -1.02243 -5.4861 6.94826 -1.01701 -5.47767 6.94695 -0.756675 -5.58665 6.95962 -0.964066 -5.57764 6.96096 -0.798549 -4.87732 6.91391 -1.01297 -4.96612 7.03103 -0.985362 -4.95813 7.02647 -0.819795 -5.14299 6.92741 -0.775413 -5.3482 6.94096 -1.01579 -5.3425 6.93781 -0.774273 -5.50212 7.0152 -0.977729 -5.49221 7.01531 -0.793516 -4.87253 6.91791 -0.779755 -5.06665 6.96768 -0.488534 -5.11446 6.97398 -0.659452 -5.26716 6.95914 -0.463675 -5.31383 6.96231 -0.633795 -5.49175 6.96752 -0.443006 -5.52399 6.96712 -0.573759 -4.94442 6.9012 -0.717502 -4.87766 6.88706 -0.477173 -5.12599 6.89646 -0.70302 -5.45545 6.90728 -0.657288 -5.3933 6.90573 -0.397841 -5.52628 6.91484 -0.589292 -5.48949 6.91465 -0.428638 -4.8735 6.91713 -0.723617 -4.93421 6.98993 -0.684917 -4.88246 6.9846 -0.515838 -5.06352 6.88744 -0.451662 -5.31813 6.89985 -0.672006 -5.26005 6.89646 -0.429162 -5.45526 6.97213 -0.614938 -5.40583 6.97046 -0.432698 -4.79499 7.015 -0.527178 -4.79704 6.89329 -0.486356 -4.89174 7.03269 -0.80283 -4.84631 7.02048 -1.09005 -4.15755 6.74753 -0.492211 -4.51457 6.87907 -0.497485 -4.66538 6.90709 -0.505361 -4.81992 7.0109 -1.04179 -4.84023 7.00792 -0.765413 -4.87301 6.91752 -0.751686 -4.86717 6.91391 -1.03549 -3.9293 6.98268 -1.09272 -3.70013 7.08821 -0.976707 -3.70015 7.04655 -1.08567 -3.90469 7.07665 -0.969067 -3.35204 7.04202 -0.697608 -3.35209 7.06323 -1.14893 -3.35191 7.165 -0.993777 -3.49968 7.13227 -0.97745 -3.49962 7.05482 -1.11949 -3.49964 7.02179 -0.722665 -3.41332 7.05364 -0.667705 -3.41347 6.87398 -0.64649 -3.41336 7.07749 -1.17769 -3.41318 7.19243 -1.00337 -3.49252 7.15544 -0.984924 -3.49252 7.06798 -1.14442 -3.49249 7.03063 -0.696005 -3.35209 7.13213 -0.808847 -3.35207 6.88311 -0.678864 -3.49963 7.10188 -0.831258 -3.49959 6.8899 -0.706786 -3.41329 7.15169 -0.785877 -3.49247 6.88155 -0.678033 -3.49247 7.11747 -0.811198 -3.70008 6.7982 -0.832089 -3.92133 6.90318 -1.09589 -3.92074 6.81515 -0.992063 -3.93302 6.89485 -0.728258 -3.92102 6.84822 -1.04579 -4.39265 6.82832 -1.24861 -4.40742 6.76435 -1.16651 -4.5099 6.74382 -0.588004 -4.30036 6.6672 -0.584519 -4.50221 6.71098 -0.530345 -4.63101 6.4146 -0.386402 -4.71813 6.48286 -0.39462 -4.19496 6.71866 -0.755677 -4.18029 6.73278 -0.892938 -4.17376 6.75174 -1.09787 -4.55418 6.81486 -0.534451 -4.51384 6.46045 -0.357213 -4.62593 6.4963 -0.46923 -3.91783 6.81276 -0.811439 -4.61355 6.809 -1.28096 -4.39766 6.72134 -0.727023 -4.42924 6.73928 -0.848148 -4.17221 6.84416 -1.17957 -4.66078 6.80742 -0.539395 -4.64063 6.76979 -1.207 -4.68528 6.43455 -0.395833 -4.5115 6.78149 -0.507813 -4.24315 6.64541 -0.512881 -4.40511 6.67735 -0.576609 -4.42004 6.58197 -0.501274 -4.37487 6.57163 -0.442239 -4.59218 6.65111 -0.492651 -4.50529 6.60938 -0.522841 -4.55702 6.46539 -0.433694 -4.6872 6.54776 -0.447496 -4.02479 6.74535 -0.899488 -4.02083 6.78577 -1.06216 -4.02991 6.86564 -1.13691 -5.04765 6.78853 -1.28106 -5.27954 6.81969 -1.14433 -5.2339 6.80967 -1.30563 -5.47352 6.83449 -1.18539 -5.44127 6.82799 -1.31668 -4.87411 6.77384 -1.25845 -4.92503 6.78401 -1.09139 -5.10002 6.79738 -1.11814 -5.35568 6.80693 -1.32877 -5.40146 6.81715 -1.15041 -4.85864 6.78794 -1.07426 -4.76641 6.76599 -1.25271 -5.14835 6.8554 -0.991567 -5.3381 6.87347 -0.800447 -5.33937 6.87695 -0.986072 -5.5463 6.8927 -0.811685 -5.55073 6.89547 -0.962161 -4.96514 6.83872 -0.988902 -4.96428 6.83271 -0.799677 -5.14876 6.84868 -0.801517 -5.46312 6.87441 -0.988769 -5.46047 6.87154 -0.785939 -4.8789 6.81287 -0.799933 -4.88166 6.81399 -0.992343 -5.11418 6.81292 -0.670229 -5.25613 6.83096 -0.45472 -5.29521 6.83266 -0.642167 -5.46044 6.84725 -0.444109 -5.49186 6.85015 -0.592299 -4.93697 6.79761 -0.699461 -4.88717 6.79144 -0.495273 -5.06975 6.80721 -0.476317 -5.41883 6.83032 -0.630818 -5.37657 6.82898 -0.427711 -4.78827 6.79244 -0.520654 -4.87861 6.78504 -0.713724 -4.81439 6.77549 -1.05895 -4.81997 6.77499 -1.00621 -4.79981 6.77387 -0.806317 -4.81872 6.77442 -0.724271 -4.59011 6.74793 -0.657681 -4.19436 6.79245 -0.938215 -4.02017 6.78051 -0.954219 -4.59487 6.76239 -0.807773 -4.39875 6.7679 -0.924287 -4.55994 6.77003 -1.186 -4.16189 6.68488 -0.567173 -4.25608 6.68523 -0.608387 -4.37986 6.70768 -0.634596 -4.60626 6.81654 -0.54551 -4.02864 6.85692 -0.664465 -4.0303 6.7447 -0.768116 -3.9382 6.80628 -0.899818 -3.70011 6.80535 -0.992144 -3.70016 6.91944 -1.08743 -3.35209 6.74417 -1.04415 -3.35209 6.87928 -1.15605 -3.35209 6.71669 -0.804376 -3.49961 6.74909 -0.8171 -3.49964 6.76724 -1.02069 -3.49961 6.8957 -1.12581 -3.41345 6.68589 -0.788341 -3.41332 6.71694 -1.05929 -3.41337 6.86962 -1.18573 -3.49252 6.88818 -1.15157 -3.49252 6.74301 -1.03278 -3.49252 6.72251 -0.802719 -3.35209 6.71725 -0.924467 -3.35209 6.80347 -1.11094 -3.35209 6.76311 -0.732403 -3.35209 6.97265 -1.1665 -3.49962 6.9769 -1.13486 -3.49954 6.7886 -0.753885 -3.4996 6.7332 -0.918166 -3.49963 6.82441 -1.08247 -3.41348 6.7383 -0.706959 -3.41338 6.68649 -0.923991 -3.41334 6.78391 -1.1347 -3.41335 6.97509 -1.19748 -3.49252 6.97989 -1.16173 -3.49252 6.80757 -1.10253 -3.49252 6.76725 -0.731248 -3.49252 6.7203 -0.919011 -4.67851 6.76038 -0.793213 -3.7001 6.8017 -0.909444 -3.70013 6.86549 -1.04238 -4.67706 6.77236 -1.00667 -4.58389 6.76641 -0.984812 -3.70007 6.9006 -0.746104 -3.70015 6.98898 -1.08642 -3.7001 7.06007 -0.863923 -3.92448 7.05037 -0.854824 -4.04728 7.06872 -0.861082 -4.22071 7.08934 -0.85743 -4.04917 7.07179 -0.960284 -4.21014 7.08057 -0.957393 -3.34125 7.1106 -0.831088 -3.34128 7.0288 -0.726921 -3.34126 6.89065 -0.710626 -3.34129 7.04718 -1.11906 -3.34114 7.13561 -0.984254 -3.34129 6.78641 -0.75715 -3.34129 6.74608 -0.819686 -3.3413 6.74657 -0.924032 -3.3413 6.76995 -1.02803 -3.34129 6.82148 -1.08606 -3.34129 6.88735 -1.12525 -3.34129 6.96848 -1.13433 -3.36968 7.08933 -0.853212 -3.3697 7.01565 -0.756059 -3.36969 6.89822 -0.742208 -3.36969 7.03123 -1.08938 -3.36956 7.10639 -0.974788 -3.36965 6.80949 -0.781739 -3.36969 6.77529 -0.834905 -3.3697 6.77571 -0.923599 -3.3697 6.79559 -1.01199 -3.36969 6.83939 -1.06132 -3.36969 6.89538 -1.09463 -3.36969 6.96434 -1.10235 -3.42541 7.06118 -0.882461 -3.42537 6.9981 -0.794569 -3.42541 6.90818 -0.783962 -3.42541 7.01014 -1.05012 -3.42531 7.06776 -0.962271 -3.42539 6.84018 -0.814272 -3.42537 6.81384 -0.855018 -3.42541 6.81424 -0.923026 -3.42541 6.82948 -0.990796 -3.42541 6.86306 -1.02861 -3.42541 6.90599 -1.05415 -3.42541 6.95885 -1.06007 0 7.72039 -1.20918 0 7.51533 -1.22833 0 7.02136 -1.31773 0 5.06406 -1.1509 0 5.8565 -1.10482 0 6.48662 -1.25343 0 4.14294 0.053595 0 4.00645 -0.121723 0 5.42752 -1.08224 0 6.2507 -1.17515 0 4.11624 -1.0625 0 3.94312 -0.53838 0 4.28985 0.104641 0 4.2478 0.077988 0.037521 7.49148 -0.398211 0.22998 7.70855 -1.16449 0.405733 7.66925 -0.996636 0.449516 7.6003 -0.746639 0.379532 7.52983 -0.543301 0.238374 7.50452 -0.445015 0.084913 7.48907 -0.388038 0.37989 7.38783 -0.582349 0.392019 7.48851 -1.04358 0.230007 7.3579 -0.478297 0.222309 7.51056 -1.18825 0.43881 7.44311 -0.811755 0.054083 7.35755 -0.401926 0.091895 7.35749 -0.416701 0.495117 6.45264 -0.342527 0.5813 5.91301 -0.202341 0.628736 5.37833 -0.715291 0.798448 4.80431 -0.22291 0.751949 4.82174 -0.838052 0.222385 7.21524 -0.455387 0.40555 5.37387 0.151308 0.30965 6.28641 -1.1048 0.675704 5.37629 -0.164779 0.503129 4.79564 0.178755 0.506744 5.0003 -1.06861 0.232977 6.86487 -0.286888 0.52976 7.21549 -0.610627 0.284482 7.03332 -1.27866 0.37773 5.42635 -1.00204 0.575667 5.87835 -0.711504 0.248804 6.44154 -0.143684 0.539466 7.04193 -1.17592 0.578218 6.58364 -1.08311 0.485983 6.87297 -0.414938 0.583702 7.28649 -0.884982 0.574711 6.39788 -0.879816 0.307445 6.51121 -1.21377 0.053169 7.21479 -0.389243 0.052005 6.86569 -0.226092 0.055504 5.92745 0.119812 0.056438 5.37339 0.238958 0.06013 4.79804 0.267101 0.053824 6.43997 -0.07703 0.039809 6.86285 -0.233439 0.041813 5.37258 0.21971 0.040086 6.43538 -0.078976 0.039623 7.21275 -0.399637 0.04127 5.92452 0.112111 0.044528 4.79545 0.255596 0.096347 4.30544 0.116519 0.043543 4.28979 0.103515 0.551338 4.41085 -1.14757 0.090329 7.21501 -0.399481 0.093972 5.37322 0.217953 0.099499 4.79685 0.247629 0.090675 6.86489 -0.23748 0.091192 6.44077 -0.087523 0.812961 4.29515 -0.341111 0.527438 4.19575 -1.10147 0.557054 4.26427 0.000449 0.146157 3.82982 -0.54224 0.247595 3.88878 -0.884155 0.416092 3.92553 -0.977555 0.601713 4.00016 -0.987836 0.78665 4.04645 -0.829448 0.815131 4.05821 -0.404319 0.612255 3.99318 -0.092496 0.41225 3.92569 -0.098993 0.254516 3.89346 -0.166521 0.111073 3.87864 -0.53838 0.190557 3.96508 -0.915955 0.343025 4.03027 -1.0379 0.775526 4.29737 -0.881219 0.320894 4.0428 -0.018003 0.190869 3.96062 -0.148374 0.074309 3.91059 -0.53838 0.118808 4.02639 -0.96549 0.255459 4.12796 -1.12122 0.070025 4.25433 0.09917 0.117803 4.11876 0.030226 0.101713 3.99962 -0.133228 0.313922 5.92667 0.042066 0.093321 5.92699 0.103773 0.320933 5.85741 -1.01117 0.778801 4.47044 -0.927161 0.614329 4.96302 -0.963261 0.637989 4.24759 -1.00486 0.656433 4.44196 -1.04868 0.768953 7.22286 -0.921277 0.749073 7.16033 -0.673436 0.579739 6.90672 -0.633708 0.646101 6.68036 -1.09032 0.68411 6.98095 -1.17482 0.587195 6.67552 -0.814437 2.53206 7.09729 -0.982155 2.52142 6.94557 -0.774484 2.5204 6.79153 -0.865213 2.52528 6.8192 -0.993966 2.52492 6.97185 -1.09651 2.22361 6.94438 -0.757206 2.17631 7.10373 -0.972596 2.16993 6.79788 -0.878476 2.17273 6.81832 -1.00171 2.18564 6.97609 -1.09265 0.880359 7.19326 -0.932588 0.882776 7.13876 -0.715091 0.840585 6.75339 -0.846271 0.821914 6.76713 -1.09955 0.84356 6.98093 -1.15557 1.29349 6.75097 -0.88865 2.17632 7.07808 -0.852288 0.863818 6.92699 -0.623075 2.53036 7.08282 -0.864284 3.52645 7.08364 -0.979446 3.51936 6.96094 -1.08492 3.51943 6.81395 -0.989504 3.51638 6.77926 -0.868268 3.51602 6.93698 -0.761988 3.52441 7.07326 -0.868225 2.3204 7.05884 -0.858287 2.35654 6.94422 -0.78521 2.3129 6.79993 -0.862084 2.34448 6.81445 -0.99784 2.35765 6.97549 -1.10953 2.34291 7.09427 -0.977376 0 7.49204 -0.399252 0 9.65927 0.634265 0.854724 9.31534 0.123006 0.539298 9.56922 0.523961 0.356893 7.69058 -0.371544 0.724743 9.46135 0.382398 0.290293 9.64763 0.605587 0.93909 9.18519 -0.129056 0.205756 7.57403 -0.35782 0.080504 7.52 -0.386825 0.57112 7.89574 -0.416746 0.146562 9.65346 0.619927 0.926577 8.95647 -0.380107 0.746841 8.12341 -0.427413 0.772829 8.15628 -0.339395 0.883968 8.57596 -0.119715 0.908972 8.81428 -0.186556 0.850225 8.33951 -0.183176 0 5.12782 -1.14764 0 5.21303 -1.20242 0 5.23923 -1.18122 0 4.40782 -1.2239 0.491709 5.00828 -1.10045 0.248229 5.12077 -1.11529 0.209659 5.12279 -1.14201 0.208228 5.22772 -1.16108 0.437927 5.13462 -1.11293 0.439777 5.11111 -1.13487 0.208975 5.19961 -1.1791 0.552134 4.40707 -1.16922 0.266033 4.40929 -1.21578 0 5.13375 -1.16464 0 5.05039 -1.16544 0 8.96481 -1.63939 0 8.29436 -1.39533 0 9.6959 0.653417 0 9.97887 0.45263 0 8.53914 -1.54699 0 7.99712 -1.24004 0 10.1331 0.162923 0 10.1982 -0.198421 0 10.18 -0.634079 0 10.0358 -1.06648 0 9.73567 -1.39043 0 9.35445 -1.6069 0.530992 7.92055 -0.93185 0.689307 8.96452 -1.33966 0.718896 9.32503 -1.28249 0.702787 9.82845 -0.92714 0.679709 9.95653 -0.302154 0.562435 9.82455 0.354073 0.631237 8.56811 -1.23026 0.706284 9.70427 -1.11471 0.707395 9.90565 -0.701514 0.825866 9.5779 -0.006662 0.321375 9.34876 -1.54356 0.305403 9.72871 -1.32928 0.335785 10.1157 -0.646912 0.32729 10.0895 0.145324 0.312641 8.29703 -1.30198 0.888475 9.6622 -0.745793 0.785234 9.55011 0.237225 0.614197 9.9196 0.066448 0.87972 9.62125 -0.386824 0.337543 8.54649 -1.45345 0.354459 8.96484 -1.54414 0.316263 9.97807 -1.02824 0.351583 10.1336 -0.226579 0.2985 9.94699 0.424878 0.577979 7.88326 -0.639109 0.28268 7.98714 -1.16809 0.585829 8.31086 -1.09366 0.999036 9.25136 -0.486989 0.951238 9.28026 -0.798499 0.241193 7.54972 -0.409238 0.370569 7.6665 -0.38209 0.5975 7.8811 -0.429406 0.976047 9.20006 -0.128738 0.888308 9.34768 0.13604 0.753128 9.49461 0.398096 0.560265 9.60424 0.541541 0.3013 9.68431 0.624538 0.960671 8.95761 -0.389217 0.88578 8.97288 -0.84284 0.945977 9.0183 -0.613742 0.812235 8.81385 -1.01819 0.717953 8.58335 -1.10177 0.657127 8.32482 -1.04031 0.677406 8.14259 -0.83726 0.741909 8.09551 -0.585101 0.792257 8.14487 -0.434003 0.962095 9.00542 -0.616047 0.921331 8.94672 -0.835103 0.870623 8.78622 -0.992556 0.824037 8.56697 -1.04625 0.794057 8.34772 -0.981796 0.788713 8.18722 -0.816465 0.809439 8.12847 -0.594558 0.850672 8.18712 -0.37553 0.901389 8.34772 -0.218082 0.948498 8.56726 -0.163196 0.978317 8.78777 -0.229233 0.982067 8.94385 -0.396509 1.02521 8.83712 -0.624846 0.99823 8.79903 -0.767877 0.965123 8.69424 -0.870679 0.934707 8.55109 -0.905735 0.915132 8.40794 -0.863653 0.911644 8.30315 -0.755708 0.925176 8.26479 -0.610824 0.952103 8.30315 -0.467822 0.98521 8.40794 -0.36502 1.01613 8.55109 -0.329722 1.0357 8.69445 -0.37195 1.03789 8.79869 -0.480106 1.04901 8.65928 -0.628218 1.03791 8.64339 -0.68707 1.02432 8.60053 -0.729407 1.0118 8.5416 -0.743837 1.00374 8.48268 -0.726515 1.0023 8.43955 -0.682083 1.00787 8.42376 -0.622446 1.01896 8.43955 -0.563585 1.03258 8.48268 -0.521269 1.0451 8.5416 -0.506839 1.05316 8.60053 -0.524162 1.0546 8.64366 -0.568593 1.03832 8.53985 -0.626725 0.624281 2.45745 -0.545427 0.663416 2.45745 -0.63191 0.735862 2.45746 -0.715741 0.825674 2.45746 -0.720058 0.89805 2.45747 -0.654294 0.902651 2.45747 -0.489464 0.813593 2.45746 -0.366057 0.723114 2.45746 -0.368196 0.651293 2.45745 -0.42029 0.544813 2.75891 -0.546121 0.586376 2.76936 -0.68872 0.671949 2.78806 -0.784104 0.778736 2.81228 -0.787145 0.865576 2.83203 -0.696425 0.873535 2.83373 -0.469385 0.768297 2.80979 -0.300189 0.661447 2.78547 -0.303146 0.576658 2.76662 -0.35089 0.217465 3.70106 -0.546114 0.326715 3.73128 -0.844917 0.463402 3.75537 -0.93278 0.643802 3.80641 -0.939159 0.79274 3.84923 -0.79874 0.813322 3.87197 -0.414993 0.633354 3.81854 -0.125936 0.45087 3.7631 -0.131069 0.317117 3.72346 -0.193637 0.627821 2.60577 -0.665418 0.587263 2.59722 -0.546121 0.707258 2.62002 -0.759637 0.806091 2.63859 -0.763553 0.886133 2.65371 -0.681693 0.892453 2.65482 -0.476693 0.794779 2.6364 -0.323604 0.695581 2.61768 -0.326269 0.616852 2.60326 -0.373707 0 7.35604 -0.407228 0 5.3706 0.217207 0 6.4308 -0.079374 0 5.92145 0.110989 0 4.79286 0.255271 0 7.21077 -0.399282 0 6.85909 -0.233019 0.038985 7.35418 -0.408022 0.225832 5.03328 -1.15399 0.820594 8.96403 -1.00776 0.850422 9.29913 -1.00238 0.784328 9.68625 -0.956682 -0.037521 7.49148 -0.398211 -0.22998 7.70855 -1.16449 -0.405733 7.66925 -0.996636 -0.449516 7.6003 -0.746639 -0.379532 7.52983 -0.543301 -0.238375 7.50455 -0.445017 -0.084913 7.48907 -0.388038 -0.379892 7.38788 -0.582353 -0.392019 7.48851 -1.04358 -0.23001 7.35801 -0.478304 -0.222309 7.51056 -1.18825 -0.43881 7.44311 -0.811755 -0.054083 7.35755 -0.401926 -0.091897 7.35762 -0.416708 -0.495117 6.45264 -0.342527 -0.628736 5.37833 -0.715291 -0.798448 4.80431 -0.22291 -0.751949 4.82174 -0.838052 -0.222385 7.21524 -0.455387 -0.40555 5.37387 0.151308 -0.30965 6.28641 -1.1048 -0.675704 5.37629 -0.164779 -0.503129 4.79564 0.178755 -0.506744 5.0003 -1.06861 -0.232977 6.86487 -0.286888 -0.52976 7.21549 -0.610627 -0.284482 7.03332 -1.27866 -0.37773 5.42635 -1.00204 -0.575667 5.87835 -0.711504 -0.248805 6.44157 -0.143685 -0.539466 7.04193 -1.17592 -0.578218 6.58364 -1.08311 -0.485983 6.87297 -0.414938 -0.583702 7.28649 -0.884982 -0.574711 6.39788 -0.879816 -0.307445 6.51121 -1.21377 -0.053169 7.21479 -0.389243 -0.052005 6.86567 -0.226092 -0.055504 5.92745 0.119812 -0.056438 5.37339 0.238958 -0.06013 4.79804 0.267101 -0.053824 6.43997 -0.07703 -0.039809 6.86283 -0.233438 -0.041813 5.37258 0.21971 -0.040086 6.43538 -0.078976 -0.039623 7.21275 -0.399637 -0.04127 5.92452 0.112111 -0.044528 4.79545 0.255596 -0.096347 4.30544 0.116519 -0.043543 4.28979 0.103515 -0.551338 4.41085 -1.14757 -0.090329 7.21501 -0.399481 -0.093972 5.37322 0.217953 -0.099499 4.79685 0.247629 -0.090675 6.86489 -0.23748 -0.091192 6.44077 -0.087523 -0.812961 4.29515 -0.341111 -0.527438 4.19575 -1.10147 -0.557054 4.26427 0.000449 -0.146157 3.82982 -0.54224 -0.247595 3.88878 -0.884155 -0.416092 3.92553 -0.977555 -0.601713 4.00016 -0.987836 -0.78665 4.04645 -0.829448 -0.815131 4.05821 -0.404319 -0.612255 3.99318 -0.092496 -0.41225 3.92569 -0.098993 -0.254516 3.89346 -0.166521 -0.111073 3.87864 -0.53838 -0.190557 3.96508 -0.915955 -0.343025 4.03027 -1.0379 -0.775526 4.29737 -0.881219 -0.320894 4.0428 -0.018003 -0.190869 3.96062 -0.148374 -0.074309 3.91059 -0.53838 -0.118808 4.02639 -0.96549 -0.255459 4.12796 -1.12122 -0.070025 4.25433 0.09917 -0.117803 4.11876 0.030226 -0.101713 3.99962 -0.133228 -0.313922 5.92667 0.042066 -0.093321 5.92699 0.103773 -0.5813 5.913 -0.202341 -0.320933 5.85741 -1.01117 -0.778801 4.47044 -0.927161 -0.614329 4.96302 -0.963261 -0.637989 4.24759 -1.00486 -0.656433 4.44196 -1.04868 -0.768953 7.22286 -0.921277 -0.749073 7.16033 -0.673436 -0.579739 6.90672 -0.633708 -0.646101 6.68036 -1.09032 -0.68411 6.98095 -1.17482 -0.587195 6.67552 -0.814437 -2.53206 7.09729 -0.982155 -2.52145 6.94565 -0.774492 -2.5204 6.79153 -0.865213 -2.52528 6.8192 -0.993966 -2.52492 6.97185 -1.09651 -2.22361 6.94438 -0.757206 -2.1763 7.1037 -0.972592 -2.1699 6.79778 -0.878464 -2.17273 6.81832 -1.00171 -2.18565 6.9761 -1.09265 -0.880359 7.19326 -0.932588 -0.882776 7.13876 -0.715091 -0.840585 6.75339 -0.846271 -0.821903 6.76704 -1.09953 -0.84356 6.98093 -1.15557 -1.29349 6.75097 -0.88865 -2.17632 7.07811 -0.852291 -0.863818 6.92699 -0.623075 -2.53032 7.08272 -0.864271 -3.52645 7.08364 -0.979446 -3.51936 6.96094 -1.08492 -3.51943 6.81395 -0.989504 -3.51638 6.77926 -0.868268 -3.51597 6.93688 -0.761977 -3.52438 7.07319 -0.868217 -2.32037 7.05875 -0.858276 -2.35654 6.9442 -0.785208 -2.3129 6.79993 -0.862084 -2.34448 6.81445 -0.99784 -2.35765 6.97549 -1.10953 -2.34291 7.09427 -0.977376 -0.854718 9.31528 0.123006 -0.539298 9.56922 0.523961 -0.35689 7.69051 -0.371541 -0.724725 9.46112 0.382389 -0.290293 9.64763 0.605587 -0.939081 9.18511 -0.129055 -0.205756 7.57403 -0.35782 -0.080504 7.52 -0.386825 -0.57111 7.89562 -0.416739 -0.146562 9.65346 0.619927 -0.926573 8.95644 -0.380105 -0.746818 8.12316 -0.4274 -0.772813 8.15612 -0.339388 -0.883968 8.57596 -0.119715 -0.908972 8.81428 -0.186556 -0.850225 8.33951 -0.183176 -0.491709 5.00828 -1.10045 -0.248229 5.12077 -1.11529 -0.20966 5.12281 -1.14202 -0.208228 5.22772 -1.16108 -0.437927 5.13462 -1.11293 -0.439777 5.11111 -1.13487 -0.208977 5.19965 -1.17911 -0.552134 4.40707 -1.16922 -0.266033 4.40929 -1.21578 -0.530992 7.92055 -0.93185 -0.689307 8.96452 -1.33966 -0.718896 9.32503 -1.28249 -0.70279 9.82848 -0.927143 -0.679716 9.95663 -0.302157 -0.562435 9.82455 0.354073 -0.631237 8.56811 -1.23026 -0.706284 9.70427 -1.11471 -0.707395 9.90565 -0.701514 -0.825866 9.5779 -0.006662 -0.321375 9.34876 -1.54356 -0.305403 9.72871 -1.32928 -0.335785 10.1157 -0.646912 -0.32729 10.0895 0.145324 -0.312641 8.29703 -1.30198 -0.888475 9.6622 -0.745793 -0.785234 9.55011 0.237225 -0.614187 9.91943 0.066447 -0.87972 9.62125 -0.386824 -0.337543 8.54649 -1.45345 -0.354459 8.96484 -1.54414 -0.316263 9.97807 -1.02824 -0.351583 10.1336 -0.226579 -0.2985 9.94699 0.424878 -0.577979 7.88326 -0.639109 -0.28268 7.98714 -1.16809 -0.585829 8.31086 -1.09366 -0.999033 9.25135 -0.486988 -0.951234 9.28026 -0.798496 -0.241193 7.54972 -0.409238 -0.370569 7.6665 -0.38209 -0.5975 7.8811 -0.429406 -0.976039 9.19998 -0.128737 -0.888308 9.34768 0.13604 -0.753111 9.4944 0.398087 -0.560265 9.60424 0.541541 -0.3013 9.68431 0.624538 -0.960667 8.95758 -0.389215 -0.885809 8.97319 -0.842868 -0.945975 9.01828 -0.613741 -0.812235 8.81385 -1.01819 -0.717953 8.58335 -1.10177 -0.657127 8.32482 -1.04031 -0.677406 8.14259 -0.83726 -0.741909 8.09551 -0.585101 -0.792257 8.14487 -0.434003 -0.962095 9.00542 -0.616047 -0.921327 8.94669 -0.8351 -0.870614 8.78613 -0.992546 -0.824037 8.56697 -1.04625 -0.794057 8.34772 -0.981796 -0.788713 8.18722 -0.816465 -0.809417 8.12824 -0.594542 -0.850668 8.18708 -0.375528 -0.901385 8.34768 -0.218081 -0.948498 8.56726 -0.163196 -0.978317 8.78777 -0.229233 -0.982067 8.94385 -0.396509 -1.02525 8.83745 -0.624869 -0.99823 8.79903 -0.767877 -0.96511 8.69413 -0.870667 -0.934707 8.55109 -0.905735 -0.915132 8.40794 -0.863653 -0.911644 8.30315 -0.755708 -0.925163 8.26468 -0.610815 -0.952102 8.30313 -0.467822 -0.98521 8.40794 -0.36502 -1.01613 8.55109 -0.329722 -1.0357 8.69445 -0.37195 -1.0379 8.79876 -0.48011 -1.04903 8.65945 -0.62823 -1.03794 8.64366 -0.687092 -1.02432 8.60053 -0.729407 -1.0118 8.5416 -0.743837 -1.00374 8.48268 -0.726515 -1.0023 8.43955 -0.682083 -1.00787 8.42376 -0.622446 -1.01896 8.43955 -0.563585 -1.03258 8.48268 -0.521269 -1.0451 8.5416 -0.506839 -1.05316 8.60053 -0.524162 -1.0546 8.64366 -0.568593 -1.03832 8.53985 -0.626725 -0.624281 2.45745 -0.545427 -0.663416 2.45745 -0.63191 -0.735862 2.45746 -0.715741 -0.825674 2.45746 -0.720058 -0.89805 2.45747 -0.654294 -0.902651 2.45747 -0.489464 -0.813593 2.45746 -0.366057 -0.723114 2.45746 -0.368196 -0.651293 2.45745 -0.42029 -0.544813 2.75891 -0.546121 -0.586376 2.76936 -0.68872 -0.671949 2.78806 -0.784104 -0.778736 2.81228 -0.787145 -0.865576 2.83203 -0.696425 -0.873535 2.83373 -0.469385 -0.768297 2.80979 -0.300189 -0.661447 2.78547 -0.303146 -0.576658 2.76662 -0.35089 -0.217465 3.70106 -0.546114 -0.326715 3.73128 -0.844917 -0.463402 3.75537 -0.93278 -0.643802 3.80641 -0.939159 -0.79274 3.84923 -0.79874 -0.813322 3.87197 -0.414993 -0.633354 3.81854 -0.125936 -0.45087 3.7631 -0.131069 -0.317117 3.72346 -0.193637 -0.627821 2.60577 -0.665418 -0.587263 2.59722 -0.546121 -0.707258 2.62002 -0.759637 -0.806091 2.63859 -0.763553 -0.886133 2.65371 -0.681693 -0.892453 2.65482 -0.476693 -0.794779 2.6364 -0.323604 -0.695581 2.61768 -0.326269 -0.616852 2.60326 -0.373707 -0.038985 7.35418 -0.408022 -0.225833 5.0333 -1.15399 -0.820582 8.96402 -1.00774 -0.85042 9.29912 -1.00238 -0.784328 9.68625 -0.956682 0.005888 8.63416 0.704395 0.066867 8.62919 0.69545 0.005888 9.29602 0.76722 0.345662 9.30683 0.713057 0.555823 9.3005 0.599275 0.671886 9.1839 0.4744 0.750253 9.04673 0.292539 0.787467 8.82179 0.267917 0.747249 8.61594 0.25269 0.649813 8.56847 0.502273 0.368146 8.54852 0.664719 0.314839 8.56523 0.669104 0.232199 8.58895 0.680736 0.148012 8.61295 0.688646 0.231817 7.50359 -0.412269 0.751307 8.14965 0.193255 0.789972 8.17964 -0.359385 0.710452 8.14895 -0.648848 0.194046 8.32746 0.746308 0.180417 8.33363 0.787095 0.188272 8.01539 0.708999 0.051746 8.05963 0.790596 0.04875 8.14674 0.783298 0.113681 8.03694 0.771376 0.097498 7.99561 0.755427 0.058472 8.11862 0.803732 0.105636 7.92944 0.727005 0.098834 8.10432 0.787801 0.134922 8.06921 0.766248 0.150347 8.09658 0.753984 0.105436 8.12983 0.770515 0.170576 8.0024 0.723873 0.171996 7.97195 0.703409 0.079786 8.05807 0.780929 0.111626 8.02649 0.758693 0.051246 8.03763 0.7594 0.077599 8.03583 0.759037 0.08374 8.02979 0.744822 0.166049 8.01898 0.722025 0.164698 8.02416 0.730935 0.20891 8.01252 0.699312 0.245275 8.01472 0.67382 0.230315 7.93812 0.645282 0.117688 7.86518 0.638144 0.222615 8.55687 0.684297 0.347247 7.62597 -0.577896 0.237341 7.55473 -0.438607 0.258179 9.76226 0.546821 0.287912 7.64135 -0.391893 0.521138 7.86035 -0.442662 0.534533 9.74131 0.380456 0.907376 8.6514 -0.39376 0.941932 9.23979 -0.359 0.920071 8.89943 -0.415072 0.308494 8.53812 0.672274 0.269149 8.44805 0.70248 0.126107 8.58693 0.692824 0.080008 8.78107 0.694926 0.165501 8.64851 0.680967 0.318694 8.57597 0.658451 0.238732 8.6129 0.671539 0.377438 8.56071 0.652015 0.364033 8.53326 0.671661 0.622083 8.59479 0.503187 0.713098 8.65472 0.359945 0.732242 8.78846 0.388834 0.70935 8.89845 0.419177 0.178735 8.4526 0.709574 0.578194 8.22065 0.583353 0.328574 8.45037 0.699963 0.228881 8.22519 0.721097 0.678685 8.54988 0.498893 0.103428 8.47235 0.72925 0.366095 9.08825 0.734746 0.093104 8.88817 0.710487 0.348061 8.05366 0.648413 0.157956 7.7549 0.579348 0.138345 9.01806 0.791465 0.115176 8.30127 0.778591 0.10825 8.32209 0.811635 0.076677 8.31908 0.815883 0.056906 8.29494 0.783721 0.107325 8.42171 0.753686 0.786473 8.58086 0.143376 0.636593 9.00382 0.517414 0.594177 7.87052 -0.221528 0.317861 7.6604 -0.119713 0.276032 7.64471 0.120435 0.334604 7.91356 0.565106 0.05395 8.30168 0.861517 0.124984 8.19817 0.763254 0.037757 8.19944 0.775417 0.144236 8.37349 0.759216 0.547697 7.82849 0.133689 0.490525 7.85138 0.368228 0.070998 8.6995 0.685734 0.061675 8.60386 0.701178 0.255125 7.65442 0.319514 0.059189 8.48447 0.75737 0.112011 8.30804 0.851943 0.048537 8.39275 0.875785 0.128402 8.24953 0.788963 0.183863 8.27438 0.757822 0.128722 8.3697 0.825349 0.077799 8.42464 0.820942 0.169217 8.28745 0.811731 0.037375 8.24235 0.803291 0.564004 9.08043 0.616692 0.716786 9.54209 0.30614 0.911282 9.23735 -0.0961 0.469191 7.82913 -0.598719 0.005888 7.45267 -0.326382 0.005888 8.04458 0.793873 0.005888 8.1379 0.778252 0.005888 8.11344 0.803995 0.005888 7.99312 0.773729 0.005888 7.9197 0.743255 0.005888 8.02735 0.760223 0.005888 8.02478 0.741355 0.005888 7.84236 0.647589 0.005888 8.3556 0.889968 0.005888 7.55307 -0.305626 0.005888 7.50794 -0.375333 -0.00459 9.7695 0.576624 0.005888 7.57035 0.128714 0.005888 7.591 0.325857 0.005888 8.78744 0.706346 0.005888 8.91076 0.731321 0.005888 9.03361 0.784843 0.005888 7.56517 -0.081788 0.005888 8.29628 0.885213 0.005888 8.19518 0.764585 0.005888 8.60338 0.713065 0.005888 8.70387 0.701283 0.005888 8.49335 0.767201 0.005888 7.71726 0.60321 0.005888 8.43287 0.842825 0.005888 8.39813 0.880333 0.005888 8.23852 0.801116 0.240312 8.73161 0.645229 0.162165 8.85276 0.673834 0.142458 8.75996 0.66376 0.148253 8.71293 0.651373 0.181152 8.67094 0.668908 0.241187 8.63371 0.667556 0.324386 8.60054 0.658828 0.394652 8.58381 0.645656 0.606564 8.62643 0.50308 0.666165 8.68691 0.384079 0.689984 8.76787 0.440171 0.283418 8.80027 0.704702 0.27832 8.80979 0.701025 0.335133 8.68858 0.687796 0.393394 8.67155 0.692284 0.393824 8.66019 0.687825 0.41626 8.86175 0.737998 0.413631 8.84756 0.741546 0.412324 8.82651 0.704531 0.606059 8.72377 0.530347 0.601262 8.73493 0.539952 0.568162 8.70162 0.601831 0.575313 8.68782 0.588936 0.543776 8.84747 0.714084 0.52914 8.81011 0.667253 0.569539 8.78567 0.599526 0.41749 8.84745 0.699384 0.550166 8.86305 0.71008 0.539112 8.83509 0.659819 0.565191 8.76609 0.541137 0.585756 8.75758 0.561434 0.61245 8.73683 0.521029 0.619062 8.74779 0.518362 0.595632 8.77276 0.562324 0.582613 8.80404 0.603945 0.630777 8.78624 0.576382 0.615544 8.82735 0.637282 0.606258 8.81596 0.643216 0.622357 8.77275 0.578723 0.598874 8.73306 0.487518 0.592777 8.72308 0.423574 0.602224 8.80031 0.517429 0.576039 8.76422 0.519707 0.328548 8.69798 0.675368 0.327247 8.70086 0.665396 0.257816 8.7184 0.650983 0.204955 8.74028 0.635291 0.200609 8.7279 0.635237 0.206374 8.7211 0.635932 0.203392 8.72552 0.644001 0.206824 8.74135 0.644175 0.185712 8.72299 0.639077 0.209151 8.71869 0.644769 0.199855 8.70227 0.64072 0.242196 8.66195 0.654075 0.249863 8.71397 0.664867 0.293592 8.80898 0.685502 0.232721 8.76018 0.660617 0.290941 8.81542 0.675562 0.399509 8.66219 0.667544 0.337148 8.68909 0.672559 0.321457 8.62676 0.656352 0.388992 8.6112 0.650318 0.375786 8.67881 0.65616 0.384798 8.6844 0.682618 0.400753 8.83777 0.666719 0.40594 8.83251 0.678239 0.512805 8.81168 0.629743 0.508283 8.81811 0.608489 0.543828 8.70539 0.538293 0.548696 8.70732 0.570249 0.576019 8.73164 0.488048 0.579573 8.72956 0.505639 0.553484 8.78988 0.570148 0.549388 8.79458 0.546639 0.232031 8.76114 0.667625 0.227578 8.79414 0.665843 0.284797 8.82261 0.682232 0.263463 8.84942 0.681069 0.222386 8.96921 0.680772 0.411041 8.85838 0.672632 0.522584 8.84146 0.624341 0.565936 8.80242 0.561928 0.558006 8.69294 0.538935 0.57217 8.64446 0.519165 0.633929 8.74892 0.476728 0.615443 8.708 0.411726 0.580534 8.83959 0.55065 0.533978 8.86754 0.606448 0.402041 8.88386 0.666809 0.389353 8.99513 0.659906 0.567558 8.97065 0.604222 0.668695 8.85739 0.481827 0.629635 8.92045 0.538702 0.403183 8.90879 0.678211 0.403286 8.88999 0.678485 0.535325 8.87481 0.617944 0.5417 8.89414 0.618483 0.591601 8.86197 0.565484 0.586722 8.84274 0.563175 0.256166 8.86708 0.693487 0.264622 8.85119 0.693057 0.604095 8.808 0.529009 0.612156 8.82505 0.529953 0.63435 8.7546 0.478758 0.199545 8.74599 0.65406 0.190078 8.76003 0.656804 0.219641 8.81144 0.682937 0.228522 8.79575 0.680226 0.186873 8.74433 0.64972 0.560239 8.76858 0.522704 -0.055091 8.62919 0.69545 -0.318974 9.34174 0.679933 -0.529798 9.32821 0.57297 -0.660327 9.18647 0.467427 -0.738477 9.04673 0.292539 -0.775692 8.82179 0.267917 -0.735473 8.61594 0.25269 -0.638038 8.56847 0.502273 -0.35637 8.54852 0.664719 -0.303063 8.56523 0.669104 -0.220423 8.58895 0.680736 -0.136236 8.61295 0.688646 -0.220041 7.50359 -0.412269 -0.743067 8.14965 0.193292 -0.781731 8.17964 -0.359348 -0.698676 8.14895 -0.648848 -0.18227 8.32746 0.746308 -0.168641 8.33363 0.787095 -0.176496 8.01539 0.708999 -0.039971 8.05963 0.790596 -0.036974 8.14674 0.783298 -0.101906 8.03694 0.771376 -0.085722 7.99561 0.755427 -0.046696 8.11862 0.803732 -0.09386 7.92944 0.727005 -0.087058 8.10432 0.787801 -0.123146 8.06921 0.766248 -0.138572 8.09658 0.753984 -0.093661 8.12983 0.770515 -0.1588 8.0024 0.723873 -0.16022 7.97195 0.703409 -0.06801 8.05807 0.780929 -0.09985 8.02649 0.758693 -0.03947 8.03763 0.7594 -0.065823 8.03583 0.759037 -0.071964 8.02979 0.744822 -0.154273 8.01898 0.722025 -0.152922 8.02416 0.730935 -0.197134 8.01252 0.699312 -0.233499 8.01472 0.67382 -0.21854 7.93812 0.645282 -0.105912 7.86518 0.638144 -0.21084 8.55687 0.684297 -0.335471 7.62597 -0.577896 -0.225565 7.55473 -0.438607 -0.267358 9.76226 0.546821 -0.276137 7.64135 -0.391893 -0.509362 7.86035 -0.442662 -0.543712 9.74131 0.380456 -0.8956 8.6514 -0.39376 -0.930156 9.23979 -0.359 -0.908295 8.89943 -0.415072 -0.296718 8.53812 0.672274 -0.257373 8.44805 0.70248 -0.114331 8.58693 0.692824 -0.068232 8.78107 0.694926 -0.153725 8.64851 0.680967 -0.306915 8.57589 0.658445 -0.226952 8.61272 0.671525 -0.365662 8.56071 0.652015 -0.352257 8.53326 0.671661 -0.610308 8.59479 0.503187 -0.701322 8.65472 0.359945 -0.720466 8.78846 0.388834 -0.697575 8.89845 0.419177 -0.166959 8.4526 0.709574 -0.574631 8.2253 0.603016 -0.316798 8.45037 0.699963 -0.217105 8.22519 0.721097 -0.666909 8.54988 0.498893 -0.091652 8.47235 0.72925 -0.354319 9.08825 0.734746 -0.081329 8.88817 0.710487 -0.337205 8.05268 0.648414 -0.14618 7.7549 0.579348 -0.126569 9.01806 0.791465 -0.1034 8.30127 0.778591 -0.096474 8.32209 0.811635 -0.064901 8.31908 0.815883 -0.045131 8.29494 0.783721 -0.095549 8.42171 0.753686 -0.774697 8.58086 0.143376 -0.624818 9.00382 0.517414 -0.582401 7.87052 -0.221528 -0.306086 7.6604 -0.119713 -0.263964 7.64384 0.120505 -0.326826 7.91438 0.563699 -0.042174 8.30168 0.861517 -0.113209 8.19817 0.763254 -0.025982 8.19944 0.775417 -0.13246 8.37349 0.759216 -0.535852 7.82733 0.134127 -0.478236 7.85299 0.369056 -0.059222 8.6995 0.685734 -0.049899 8.60386 0.701178 -0.243704 7.65309 0.320575 -0.047413 8.48447 0.75737 -0.100235 8.30804 0.851943 -0.036761 8.39275 0.875785 -0.116626 8.24953 0.788963 -0.172087 8.27438 0.757822 -0.116947 8.3697 0.825349 -0.066023 8.42464 0.820942 -0.157441 8.28745 0.811731 -0.025599 8.24235 0.803291 -0.55167 9.08042 0.616559 -0.736118 9.54209 0.30614 -0.899506 9.23735 -0.0961 -0.457415 7.82913 -0.598719 -0.228536 8.73161 0.645229 -0.15039 8.85276 0.673834 -0.130682 8.75996 0.66376 -0.136477 8.71293 0.651373 -0.169376 8.67094 0.668908 -0.229408 8.63362 0.667549 -0.312596 8.60014 0.658797 -0.382866 8.58357 0.645637 -0.594788 8.62643 0.50308 -0.65439 8.68691 0.384079 -0.678209 8.76787 0.440171 -0.271637 8.8001 0.704688 -0.266544 8.80979 0.701025 -0.323358 8.68858 0.687796 -0.381619 8.67158 0.692286 -0.382048 8.66019 0.687825 -0.40448 8.86167 0.737992 -0.401855 8.84756 0.741546 -0.40055 8.82654 0.704533 -0.594283 8.72377 0.530347 -0.589486 8.73493 0.539952 -0.556392 8.70171 0.601837 -0.563539 8.68785 0.588938 -0.532 8.84747 0.714084 -0.517368 8.81017 0.667258 -0.557769 8.78575 0.599532 -0.405715 8.84745 0.699384 -0.538373 8.86277 0.710057 -0.527325 8.8349 0.659805 -0.553415 8.76609 0.541137 -0.57398 8.75758 0.561434 -0.600674 8.73683 0.521029 -0.607286 8.74779 0.518362 -0.583856 8.77276 0.562324 -0.570835 8.804 0.603943 -0.619002 8.78624 0.576382 -0.603757 8.8272 0.63727 -0.594483 8.81598 0.643218 -0.610582 8.77275 0.578723 -0.587088 8.73289 0.487509 -0.581001 8.72308 0.423574 -0.590448 8.80031 0.517429 -0.564244 8.76391 0.519689 -0.316773 8.69801 0.67537 -0.315473 8.70089 0.665398 -0.24604 8.7184 0.650983 -0.193179 8.74028 0.635291 -0.188834 8.7279 0.635237 -0.194599 8.7211 0.635932 -0.191616 8.72552 0.644001 -0.195048 8.74135 0.644175 -0.173937 8.72305 0.63908 -0.197379 8.71886 0.644782 -0.18808 8.70227 0.64072 -0.230423 8.66207 0.654084 -0.238087 8.71397 0.664867 -0.281816 8.80898 0.685502 -0.220946 8.76018 0.660617 -0.279165 8.81542 0.675562 -0.387733 8.66219 0.667544 -0.325372 8.68909 0.672559 -0.309682 8.62676 0.656352 -0.377217 8.6112 0.650318 -0.364014 8.6789 0.656167 -0.373025 8.68445 0.682622 -0.388977 8.83777 0.666719 -0.394164 8.83251 0.678239 -0.501029 8.81168 0.629743 -0.496507 8.81811 0.608489 -0.532052 8.70539 0.538293 -0.53692 8.70732 0.570249 -0.564243 8.73164 0.488048 -0.567797 8.72956 0.505639 -0.541709 8.78988 0.570148 -0.537612 8.79458 0.546639 -0.220255 8.76114 0.667625 -0.215803 8.79414 0.665843 -0.273014 8.8224 0.682216 -0.251685 8.84935 0.681064 -0.21061 8.96921 0.680772 -0.399255 8.85814 0.672614 -0.510803 8.84138 0.624335 -0.554158 8.80238 0.561926 -0.54623 8.69294 0.538935 -0.560394 8.64446 0.519165 -0.622154 8.74892 0.476728 -0.603658 8.70786 0.411719 -0.568758 8.83959 0.55065 -0.5222 8.8675 0.606446 -0.390262 8.88378 0.666803 -0.377577 8.99513 0.659906 -0.555782 8.97065 0.604222 -0.656919 8.85739 0.481827 -0.617859 8.92045 0.538702 -0.391407 8.90879 0.678211 -0.39151 8.88999 0.678485 -0.523549 8.87481 0.617944 -0.529925 8.89414 0.618483 -0.579826 8.86197 0.565484 -0.574946 8.84274 0.563175 -0.244391 8.86708 0.693487 -0.252846 8.85119 0.693057 -0.592319 8.808 0.529009 -0.60038 8.82505 0.529953 -0.622574 8.7546 0.478758 -0.18777 8.74599 0.65406 -0.178302 8.76003 0.656804 -0.207865 8.81144 0.682937 -0.216746 8.79575 0.680226 -0.175098 8.74433 0.64972 -0.548483 8.76889 0.522723 -0.497392 8.50667 0.772997 -0.769492 8.62932 0.566694 -0.759736 8.91569 0.578558 -0.306539 8.98897 0.835575 -0.196521 8.90747 0.856215 -0.251323 8.6449 0.854963 -0.365556 8.55752 0.829729 -0.466478 8.38245 0.725268 -0.288162 8.43827 0.78851 -0.076722 9.05398 0.80484 -0.226019 9.11074 0.79461 -0.789985 9.01052 0.456095 -0.806195 8.52264 0.450152 -0.05334 8.64413 0.763651 -0.000168 9.0298 0.799608 -0.172387 8.73794 0.860693 -0.000168 8.76532 0.875999 -0.80174 8.57412 0.332411 -0.780555 8.95192 0.320639 -0.854999 8.95356 0.338835 -0.862765 8.57754 0.347952 -0.857368 8.65437 0.155474 -0.855414 8.86206 0.145731 -0.900212 8.86132 0.149416 -0.897902 8.65355 0.158083 -0.716422 8.55643 0.599695 -0.76534 8.53568 0.60985 -0.788074 8.71428 0.523863 -0.846808 8.70729 0.525404 -0.782218 8.85156 0.531218 -0.840781 8.85851 0.533056 -0.564566 8.99934 0.715267 -0.59294 9.02965 0.7395 -0.405633 8.99975 0.790579 -0.41009 9.02994 0.823339 -0.632125 8.50723 0.708714 -0.735808 8.56173 0.624533 -0.80852 8.7154 0.547854 -0.802577 8.84933 0.555185 -0.698078 8.97103 0.658953 -0.581227 8.99438 0.741331 -0.419787 8.99438 0.818075 -0.576402 8.38561 0.579149 -0.341882 9.11196 0.695299 -0.518212 9.11213 0.613215 -0.646848 9.0887 0.523117 -0.69975 8.43928 0.490944 -0.918208 8.82487 0.180983 -0.91616 8.69173 0.186239 -0.621322 8.50773 0.696241 -0.614695 8.50043 0.683043 -0.490312 8.499 0.760443 -0.506148 8.47224 0.790056 -0.65005 8.47449 0.703297 -0.722915 8.56217 0.613917 -0.763047 8.62545 0.551882 -0.817864 8.61066 0.556482 -0.79425 8.7158 0.538908 -0.78835 8.8493 0.546156 -0.753358 8.91988 0.563929 -0.807879 8.9356 0.56901 -0.685858 8.96997 0.647643 -0.679391 8.97571 0.633876 -0.72408 9.00129 0.64769 -0.571386 8.99294 0.728144 -0.413586 8.99316 0.803083 -0.29658 8.99629 0.822864 -0.287032 9.02397 0.8597 -0.1819 8.91673 0.842774 -0.158059 8.74329 0.846895 -0.164763 8.94296 0.884975 -0.245303 8.64096 0.841547 -0.135475 8.7307 0.890866 -0.212628 8.61434 0.875101 -0.358964 8.55017 0.816977 -0.349189 8.52579 0.851687 -0.505254 8.50616 0.787233 -0.783275 8.62892 0.576273 -0.368937 8.55702 0.84511 -0.773435 8.916 0.588266 -0.307906 8.98991 0.855281 -0.197987 8.90694 0.877972 -0.249455 8.64334 0.86764 -0.170657 8.73832 0.883684 -0.622413 8.3851 0.627866 -0.151717 8.55038 0.821258 -0.055968 8.60436 0.818416 -0.363772 9.11465 0.76084 -0.561643 9.11432 0.667929 -0.699349 9.0848 0.562946 -0.86082 8.8779 0.421267 -0.868251 8.6654 0.417978 -0.744479 8.44498 0.523958 -0.434522 8.38411 0.664058 -0.28117 8.44309 0.720008 -0.147664 8.56118 0.735426 -0.218944 9.10797 0.725538 -0.082123 9.04557 0.734596 -0.74348 9.03281 0.427923 -0.76632 8.50009 0.424631 -0.000168 8.93805 0.875473 -0.000168 8.62069 0.810841 -0.000168 9.0197 0.730285 -0.908141 8.8114 0.142382 -0.852508 8.8127 0.139971 -0.853425 8.70402 0.14509 -0.906463 8.70267 0.146841 -0.89314 8.86026 0.33856 -0.895417 8.6728 0.342741 -0.849233 8.6285 0.185656 -0.843087 8.88784 0.172941 -0.900054 8.88824 0.180811 -0.89816 8.62874 0.191538 -0.000168 8.66533 0.757284 -0.169466 8.85497 0.858422 -0.154698 8.86404 0.844839 -0.170843 8.85039 0.883613 -0.130588 8.8523 0.891909 -0.000168 8.85724 0.876763 -0.212472 8.94997 0.83281 -0.199131 8.97704 0.872339 -0.226179 8.94202 0.866627 -0.123765 9.07039 0.730074 -0.224762 8.94183 0.845902 -0.124602 9.07599 0.799733 0.497055 8.50667 0.772997 0.769156 8.62932 0.566694 0.7594 8.91569 0.578558 0.306203 8.98897 0.835575 0.196184 8.90747 0.856215 0.250986 8.6449 0.854963 0.365219 8.55752 0.829729 0.466351 8.38197 0.725257 0.287826 8.43827 0.78851 0.076386 9.05398 0.80484 0.225683 9.11074 0.794611 0.789648 9.01052 0.456095 0.805859 8.52264 0.450152 0.053004 8.64413 0.763651 0.172047 8.73776 0.860675 0.801403 8.57412 0.332411 0.780218 8.95192 0.320639 0.854662 8.95356 0.338835 0.862429 8.57754 0.347952 0.857031 8.65437 0.155474 0.855078 8.86206 0.145731 0.899878 8.86134 0.149416 0.897566 8.65355 0.158083 0.716086 8.55643 0.599695 0.765003 8.53568 0.60985 0.787737 8.71428 0.523863 0.846472 8.70729 0.525404 0.781882 8.85156 0.531218 0.840445 8.85851 0.533056 0.56423 8.99934 0.715267 0.592579 9.02928 0.73947 0.405297 8.99975 0.790579 0.409754 9.02994 0.823339 0.631788 8.50723 0.708714 0.735472 8.56173 0.624533 0.808184 8.7154 0.547854 0.802241 8.84933 0.555185 0.697731 8.97089 0.658943 0.580878 8.99418 0.741315 0.41945 8.99438 0.818075 0.57569 8.38534 0.578636 0.341545 9.11196 0.695299 0.517876 9.11213 0.613215 0.646511 9.0887 0.523117 0.699414 8.43928 0.490944 0.917872 8.82487 0.180983 0.915823 8.69173 0.186239 0.620985 8.50773 0.696241 0.614358 8.50043 0.683043 0.489975 8.499 0.760443 0.505812 8.47224 0.790056 0.649759 8.47454 0.703354 0.722578 8.56217 0.613917 0.762711 8.62545 0.551882 0.817528 8.61066 0.556482 0.793913 8.7158 0.538908 0.788014 8.8493 0.546156 0.753021 8.91988 0.563929 0.807543 8.9356 0.56901 0.685521 8.96997 0.647643 0.679054 8.97571 0.633876 0.723735 9.00119 0.647682 0.57105 8.99294 0.728144 0.41325 8.99316 0.803083 0.296244 8.99629 0.822864 0.286696 9.02397 0.8597 0.181564 8.91673 0.842774 0.157723 8.74329 0.846895 0.164427 8.94296 0.884975 0.244967 8.64096 0.841547 0.135139 8.7307 0.890866 0.212292 8.61434 0.875101 0.358628 8.55017 0.816977 0.348852 8.52579 0.851687 0.504917 8.50616 0.787233 0.782938 8.62892 0.576273 0.368601 8.55702 0.84511 0.773084 8.91583 0.588255 0.30757 8.98991 0.855281 0.19765 8.90694 0.877972 0.249119 8.64334 0.86764 0.170321 8.73832 0.883684 0.622255 8.38446 0.627791 0.151381 8.55038 0.821258 0.055631 8.60436 0.818416 0.363436 9.11465 0.76084 0.561306 9.11432 0.667929 0.699013 9.0848 0.562946 0.860483 8.8779 0.421267 0.867914 8.6654 0.417978 0.744131 8.44485 0.52395 0.434341 8.38378 0.663649 0.280833 8.44309 0.720008 0.147328 8.56118 0.735426 0.218607 9.10797 0.725538 0.081786 9.04557 0.734596 0.743143 9.03281 0.427923 0.765984 8.50009 0.424631 0.907805 8.8114 0.142382 0.852171 8.8127 0.139971 0.853089 8.70402 0.14509 0.906126 8.70267 0.146841 0.892803 8.86026 0.33856 0.895081 8.6728 0.342741 0.848896 8.6285 0.185656 0.842751 8.88784 0.172941 0.899719 8.88826 0.180811 0.897824 8.62874 0.191538 0.169129 8.85497 0.858422 0.154362 8.86404 0.844839 0.170507 8.85039 0.883613 0.130251 8.8523 0.891909 0.212136 8.94997 0.83281 0.198795 8.97704 0.872339 0.225842 8.94202 0.866627 0.123429 9.07039 0.730074 0.224426 8.94183 0.845902 0.124266 9.07599 0.799733 0.16505 8.42122 0.729265 0.222379 8.37295 0.729773 -0.151971 8.41823 0.731141 -0.207304 8.36766 0.731699 4.03944 6.87273 -0.636146 4.56192 6.81036 -0.528032 4.51513 6.78542 -0.504035 + + + + + + + + + + 0 -0.920403 -0.39097 0 -0.920403 -0.39097 0 -0.920403 -0.39097 0 -0.920403 -0.39097 0 0.920389 0.391005 0 0.920389 0.391005 0 0.920389 0.391005 0 0.920389 0.391005 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 -0.250052 0.968232 0 -0.250052 0.968232 0 -0.250052 0.968232 0 -0.250052 0.968232 1 0 0 1 0 0 1 0 0 1 0 0 -0.613024 -0.244832 -0.751172 -0.753206 -0.50972 -0.415772 -0.949957 -0.046417 -0.308914 -0.742654 0.175649 -0.646229 -0.296981 -0.563964 -0.77055 -0.358044 -0.837559 -0.412674 0.127094 -0.703151 -0.699589 0.134536 -0.944467 -0.299803 0.553482 -0.622327 -0.553504 0.594451 -0.797205 -0.105325 0.867054 -0.335195 -0.368594 0.893697 -0.432819 0.118206 0.977152 0.083698 -0.195367 0.949965 0.046375 0.308894 0.851079 0.518395 -0.083248 0.753228 0.50969 0.41577 0.524089 0.850302 -0.048131 0.368461 0.81584 0.445691 0.070725 0.99435 -0.079155 -0.170871 0.920406 0.351646 -0.354137 0.892093 -0.280635 -0.594498 0.797193 0.105148 -0.647425 0.59208 -0.479877 -0.893669 0.432801 -0.118488 -0.044665 0.153309 -0.987168 -0.238601 0.303154 -0.922587 0.03749 0.409598 -0.911495 0.003237 0.68334 -0.730093 0.226223 0.594825 -0.771367 0.452299 0.61101 -0.649687 0.42971 0.366546 -0.825223 0.658604 0.201849 -0.724912 0.476953 0.092888 -0.874007 0.412046 -0.152059 -0.898385 0.216 0.057727 -0.974685 -0.033755 -0.099042 -0.994511 -0.889827 -0.449567 -0.078089 0.202069 -0.978754 -0.034762 0.125349 -0.991802 -0.024829 -0.920554 -0.38259 -0.078774 0.994566 0.101302 0.024013 0.995679 -0.067204 0.064087 0.992275 -0.094584 0.080278 0.009932 -0.999948 -0.00241 -0.953803 -0.280617 -0.107305 0.989755 0.136372 -0.042283 0.958985 0.27928 -0.048473 0.94708 0.296761 -0.122363 0.965581 0.239642 -0.101117 0.987581 0.149635 0.047892 0.996006 -0.010822 0.088628 -0.189383 0.980025 0.060696 -0.119455 0.99226 0.033916 -0.979578 0.07574 0.186253 -0.980612 0.148317 0.128072 -0.964467 0.261891 -0.034887 -0.008541 0.99996 -0.002683 0.963822 -0.179833 0.196741 -0.021618 -0.999757 0.004195 -0.947145 -0.2605 -0.187231 0.968614 0.137831 0.206858 0.978605 -0.02355 0.204397 -0.930115 0.304606 -0.205185 0.02186 0.99975 -0.004681 0.951834 -0.177039 0.250337 -0.014965 -0.999887 -0.001189 -0.931958 -0.273058 -0.238525 0.949599 0.149412 0.275567 0.963694 -0.016051 0.266526 -0.912252 0.306915 -0.271291 0.014979 0.999886 0.001719 0.061616 0.00067 0.9981 0.061616 0.00067 0.9981 0.106177 -0.001007 0.994347 0.106177 -0.001007 0.994347 0.253078 -0.001878 0.967444 0.253078 -0.001878 0.967444 0.597866 -0.000462 0.801596 0.437809 0.000501 0.899068 0.437809 0.000501 0.899068 0.597866 -0.000462 0.801596 0.709632 -0.002069 0.704569 0.709632 -0.002069 0.704569 0.745964 -0.001159 0.665985 0.745964 -0.001159 0.665985 1 0.000165 0.000104 0.389789 0.84123 0.374696 0.389757 0.920918 -0.000197 1 0.000208 -4.5e-005 0.709391 -0.643881 -0.286675 0.70939 -0.704816 0 0.000114 -0.913525 -0.406782 0.000235 -1 4e-006 -0.709282 -0.643943 -0.286804 -0.709245 -0.704962 6e-006 -0.926839 0.34298 0.152757 -0.926812 0.375526 -0.000136 1 2e-005 7.2e-005 0.389831 0.616043 0.684488 0.709391 -0.471613 -0.52378 1e-006 -0.669131 -0.743145 -0.709366 -0.471621 -0.523807 -0.926836 0.25113 0.27912 1 0 0 0.389888 0.284562 0.875792 0.709392 -0.2178 -0.670318 0 -0.309017 -0.951056 -0.709391 -0.2178 -0.670319 -0.92684 0.116023 0.35708 1 0 0 0.389889 -0.096256 0.915817 0.709391 0.073673 -0.700954 0 0.104529 -0.994522 -0.709391 0.073673 -0.700954 -0.92684 -0.039246 0.3734 1 0 -1e-006 0.389889 -0.460431 0.79749 0.709391 0.352408 -0.610388 0 0.500001 -0.866025 -0.709391 0.352408 -0.610387 -0.92684 -0.187728 0.325156 1 0 -1e-006 0.389889 -0.744994 0.541268 0.709391 0.570207 -0.41428 0 0.809017 -0.587785 -0.709391 0.570207 -0.41428 -0.92684 -0.30375 0.220687 1 1e-006 0 0.389888 -0.900739 0.191456 0.709391 0.689413 -0.146539 -1e-006 0.978148 -0.207912 -0.709392 0.689412 -0.146539 -0.92684 -0.367252 0.078061 1 1e-006 0 0.389889 -0.900739 -0.191459 0.709391 0.689413 0.146539 -1e-006 0.978148 0.207911 -0.709392 0.689412 0.146539 -0.92684 -0.367251 -0.078062 1 0 0 0.389889 -0.744993 -0.541269 0.709391 0.570207 0.41428 -1e-006 0.809017 0.587785 -0.709392 0.570206 0.414279 -0.92684 -0.303751 -0.220687 1 0 0 0.389889 -0.460432 -0.79749 0.709391 0.352407 0.610388 -1e-006 0.499999 0.866026 -0.709391 0.352407 0.610388 -0.92684 -0.187728 -0.325154 1 0 0 0.389888 -0.096256 -0.915818 0.709391 0.073673 0.700954 0 0.104529 0.994522 -0.709391 0.073673 0.700954 -0.92684 -0.039246 -0.373399 1 0 -1e-006 0.389888 0.284562 -0.875792 0.709392 -0.2178 0.670318 0 -0.309017 0.951057 -0.709391 -0.217799 0.670319 -0.92684 0.116023 -0.35708 1 0 -1e-006 0.389856 0.61613 -0.684395 0.709392 -0.471613 0.523779 1e-006 -0.669131 0.743144 -0.709363 -0.471622 0.52381 -0.926861 0.251153 -0.279018 1 6.3e-005 -7.7e-005 0.389792 0.841197 -0.374766 0.70939 -0.643881 0.286674 0.000121 -0.913524 0.406785 -0.709276 -0.643945 0.286815 -0.926858 0.342918 -0.152782 0.949957 -0.046418 -0.308912 0.753208 -0.509719 -0.415769 0.613027 -0.244832 -0.751169 0.742655 0.175648 -0.646229 0.358045 -0.837557 -0.412676 0.296982 -0.563967 -0.770548 -0.134537 -0.944468 -0.299799 -0.127093 -0.703154 -0.699587 -0.594451 -0.797204 -0.105326 -0.553483 -0.622329 -0.553501 -0.893698 -0.432818 0.118206 -0.867053 -0.335195 -0.368596 -0.949965 0.046376 0.308894 -0.977151 0.083698 -0.195371 -0.753229 0.509691 0.415767 -0.851079 0.518397 -0.083243 -0.368332 0.816026 0.445457 -0.523866 0.850448 -0.047979 0.171236 0.920293 0.351766 -0.070342 0.994394 -0.078951 0.594496 0.797194 0.105145 0.354388 0.892041 -0.280486 0.893668 0.432803 -0.11849 0.647423 0.592081 -0.479879 -0.476955 0.092889 -0.874006 -0.658602 0.201849 -0.724914 -0.42971 0.366546 -0.825223 -0.452302 0.611012 -0.649682 -0.226153 0.59497 -0.771275 -0.003277 0.683336 -0.730097 -0.037491 0.409599 -0.911495 0.238599 0.303154 -0.922588 0.044665 0.153308 -0.987168 0.033755 -0.099045 -0.99451 -0.216001 0.057726 -0.974685 -0.412048 -0.152058 -0.898385 -0.125351 -0.991802 -0.02483 -0.202073 -0.978753 -0.034764 0.889824 -0.449573 -0.078091 0.920553 -0.382593 -0.078775 -0.995677 -0.067232 0.064086 -0.99457 0.101274 0.023976 -0.009931 -0.999948 -0.002411 -0.992272 -0.094607 0.080288 0.953803 -0.280617 -0.107305 -0.95898 0.279279 -0.04858 -0.989764 0.13628 -0.042359 -0.947038 0.296792 -0.122611 -0.965554 0.239715 -0.101207 -0.996004 -0.010836 0.088648 -0.987574 0.149659 0.047968 0.119695 0.992235 0.033798 0.18966 0.980016 0.059986 0.980618 0.14826 0.12809 0.979572 0.075787 0.186264 0.00861 0.99996 -0.00243 0.964489 0.261811 -0.03487 0.021619 -0.999757 0.004199 -0.963823 -0.179821 0.196745 0.947146 -0.2605 -0.187229 -0.978599 -0.023512 0.204428 -0.968648 0.137403 0.206979 -0.022255 0.999743 -0.00432 0.930115 0.304606 -0.205188 0.014966 -0.999887 -0.001182 -0.951836 -0.17702 0.250343 0.931958 -0.273059 -0.238522 -0.963679 -0.015974 0.266584 -0.949662 0.148601 0.27579 -0.015692 0.999874 0.002403 0.912249 0.306915 -0.271302 -0.106176 -0.001007 0.994347 -0.061614 0.00067 0.9981 -0.061614 0.00067 0.9981 -0.106176 -0.001007 0.994347 -0.253078 -0.001878 0.967444 -0.253078 -0.001878 0.967444 -0.597866 -0.000462 0.801596 -0.437809 0.000501 0.899068 -0.437809 0.000501 0.899068 -0.597866 -0.000462 0.801596 -0.709633 -0.002069 0.704569 -0.709633 -0.002069 0.704569 -0.745965 -0.00116 0.665984 -0.745965 -0.00116 0.665984 -0.389888 0.920862 1e-006 -0.389888 0.841249 0.374549 -1 0 0 -1 1e-006 0 -0.70939 -0.643882 -0.286674 -0.70939 -0.704817 0 0 -0.913546 -0.406736 0 -1 0 0.70939 -0.643882 -0.286674 0.70939 -0.704816 0 0.92684 0.342997 0.152712 0.92684 0.375456 1e-006 -0.389888 0.616178 0.684333 -1 0 0 -0.709391 -0.471614 -0.52378 0 -0.669131 -0.743144 0.709391 -0.471614 -0.52378 0.92684 0.25123 0.279018 -0.389888 0.284563 0.875792 -1 0 0 -0.709391 -0.2178 -0.670319 0 -0.309017 -0.951056 0.709391 -0.2178 -0.670319 0.92684 0.116023 0.35708 -0.389888 -0.096256 0.915818 -1 0 0 -0.709391 0.073674 -0.700954 0 0.104529 -0.994522 0.709391 0.073673 -0.700954 0.92684 -0.039246 0.373399 -0.389888 -0.460431 0.79749 -1 0 0 -0.709391 0.352408 -0.610388 0 0.5 -0.866025 0.709391 0.352408 -0.610388 0.92684 -0.187728 0.325155 -0.389888 -0.744994 0.541268 -1 0 0 -0.709393 0.570205 -0.41428 0 0.809015 -0.587788 0.709393 0.570205 -0.41428 0.92684 -0.303751 0.220687 -0.389888 -0.900739 0.191456 -1 0 0 -0.709395 0.689409 -0.146538 0 0.978148 -0.207912 0.709395 0.689409 -0.146538 0.92684 -0.367252 0.078061 -0.389888 -0.900739 -0.191459 -1 0 0 -0.709393 0.689411 0.146541 0 0.978147 0.207915 0.709393 0.689411 0.146541 0.92684 -0.367252 -0.078062 -0.389888 -0.744994 -0.541268 -1 0 0 -0.709391 0.570208 0.41428 0 0.809017 0.587785 0.709391 0.570207 0.41428 0.92684 -0.303751 -0.220687 -0.389889 -0.460431 -0.79749 -1 0 0 -0.70939 0.352408 0.610388 0 0.5 0.866026 0.709391 0.352408 0.610388 0.92684 -0.187728 -0.325155 -0.389888 -0.096256 -0.915818 -1 0 0 -0.70939 0.073673 0.700955 0 0.104529 0.994522 0.709391 0.073673 0.700954 0.92684 -0.039246 -0.3734 -0.389888 0.284563 -0.875792 -1 0 0 -0.709391 -0.217799 0.670319 0 -0.309017 0.951057 0.709391 -0.2178 0.670319 0.92684 0.116023 -0.35708 -0.389889 0.616177 -0.684334 -1 0 0 -0.709391 -0.471613 0.52378 0 -0.669131 0.743145 0.709391 -0.471613 0.523779 0.92684 0.251229 -0.279019 -0.389889 0.841249 -0.374548 -1 1e-006 0 -0.70939 -0.643882 0.286674 1e-006 -0.913546 0.406735 0.709391 -0.643881 0.286674 0.92684 0.342997 -0.152712 0.02126 -0.219673 -0.975342 0.02126 -0.219673 -0.975342 0.02126 -0.219673 -0.975342 0.02126 -0.219673 -0.975342 0.001316 -0.224805 -0.974403 0.001316 -0.224805 -0.974403 0.001316 -0.224805 -0.974403 0.001316 -0.224805 -0.974403 0 -0.224951 -0.97437 0 -0.224951 -0.97437 0 -0.224951 -0.97437 0 -0.224951 -0.97437 0 -0.258292 -0.966067 0 -0.258292 -0.966067 0 -0.258292 -0.966067 0 -0.258292 -0.966067 -0.02103 -0.219734 -0.975333 -0.02103 -0.219734 -0.975333 -0.02103 -0.219734 -0.975333 -0.02103 -0.219734 -0.975333 -0.001317 -0.224806 -0.974403 -0.001317 -0.224806 -0.974403 -0.000658 -0.224886 -0.974385 -0.000658 -0.224886 -0.974385 1e-006 -0.224967 -0.974366 1e-006 -0.224967 -0.974366 -1e-006 -0.974372 0.224945 -1e-006 -0.974372 0.224945 -1e-006 -0.974372 0.224945 -1e-006 -0.974372 0.224945 0.9971 0.074151 -0.017118 0.9971 0.074151 -0.017118 0.9971 0.074151 -0.017118 0.9971 0.074151 -0.017118 4e-006 0.974366 -0.224969 4e-006 0.974366 -0.224969 4e-006 0.974366 -0.224969 4e-006 0.974366 -0.224969 -0.9971 0.07415 -0.01712 -0.9971 0.07415 -0.01712 -0.9971 0.07415 -0.01712 -0.9971 0.07415 -0.01712 -3e-006 0.224947 0.974371 5e-006 0.224947 0.974371 5e-006 0.224947 0.974371 -3e-006 0.224947 0.974371 1e-005 0.224952 0.97437 1e-005 0.224952 0.97437 1e-005 0.224952 0.97437 1e-005 0.224952 0.97437 -3e-006 0.224951 0.97437 -3e-006 0.224951 0.97437 -3e-006 0.224956 0.974369 -3e-006 0.224956 0.974369 1e-006 0.224951 0.97437 1e-006 0.224951 0.97437 1e-006 0.22496 0.974368 1e-006 0.22496 0.974368 3e-006 0.973169 -0.230091 3e-006 0.973169 -0.230091 3e-006 0.973169 -0.230091 3e-006 0.973169 -0.230091 0.999403 -0.033635 0.007876 0.999403 -0.033635 0.007876 0.999403 -0.033635 0.007876 0.999403 -0.033635 0.007876 6e-006 -0.974367 0.224964 6e-006 -0.974367 0.224964 6e-006 -0.974367 0.224964 6e-006 -0.974367 0.224964 -0.999403 -0.033635 0.007874 -0.999403 -0.033635 0.007874 -0.999403 -0.033635 0.007874 -0.999403 -0.033635 0.007874 0 0.963723 -0.266903 0 0.963723 -0.266903 0 0.963723 -0.266903 0 0.963723 -0.266903 0.995307 -0.094039 -0.022829 0.995307 -0.094039 -0.022829 0.995307 -0.094039 -0.022829 0.995307 -0.094039 -0.022829 -2e-006 -0.973219 0.229879 -2e-006 -0.973219 0.229879 -2e-006 -0.973219 0.229879 -2e-006 -0.973219 0.229879 -0.994347 -0.100797 -0.033368 -0.994347 -0.100797 -0.033368 -0.994347 -0.100797 -0.033368 -0.994347 -0.100797 -0.033368 0.933802 0.3296 0.139207 0.933802 0.3296 0.139207 0.876043 0.456476 0.155495 0.876043 0.456476 0.155495 -0.003086 0.979054 0.203577 -0.003086 0.979054 0.203577 -0.003086 0.979054 0.203577 -0.003086 0.979054 0.203577 -0.933716 0.330246 0.138249 -0.933716 0.330246 0.138249 -0.973129 0.197552 0.118294 -0.973129 0.197552 0.118294 -0.86977 -0.490437 0.054515 -0.623451 -0.781628 -0.01911 -0.623451 -0.781628 -0.01911 -0.86977 -0.490437 0.054515 -0.001709 -0.995899 -0.090453 -0.001709 -0.995899 -0.090453 0.625223 -0.780438 -0.003644 0.872686 -0.482169 0.077024 0.872686 -0.482169 0.077024 0.625223 -0.780438 -0.003644 -4e-006 -0.103332 0.994647 -1.4e-005 -0.10333 0.994647 -4e-006 -0.103334 0.994647 1e-006 -0.103337 0.994646 1e-006 -0.103332 0.994647 0 -0.103337 0.994646 0 -0.103337 0.994646 0.973165 0.196231 0.120177 0.973165 0.196231 0.120177 -0.876039 0.456481 0.1555 -0.876039 0.456481 0.1555 0 -0.103346 0.994645 0 -0.103346 0.994645 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 4e-006 0.831409 0.555661 2e-006 0.580842 0.814016 2e-006 0.580842 0.814016 4e-006 0.831409 0.555661 0 0.077529 0.99699 0 0.077529 0.99699 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 -0.979604 0.200937 0 -0.979604 0.200937 0 -0.998155 -0.060713 0 -0.998155 -0.060713 -1e-006 -0.689411 0.72437 -1e-006 -0.689411 0.72437 -1e-006 -0.256408 0.966569 -1e-006 -0.256408 0.966569 0 -0.144477 -0.989508 0 -0.438727 -0.89862 0 -0.438727 -0.89862 0 -0.144477 -0.989508 1e-006 0.170273 -0.985397 1e-006 0.170273 -0.985397 1e-006 0.170273 -0.985397 1e-006 0.170273 -0.985397 0 0.986094 -0.16619 0 0.986094 -0.16619 0 0.706133 -0.708079 0 0.706133 -0.708079 0 0.12986 -0.991532 0 0.12986 -0.991532 0 0.12986 -0.991532 0 0.12986 -0.991532 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 4e-005 -1 6.5e-005 -0.671309 -0.673471 0.309485 -0.671309 -0.673471 0.309485 -0.770171 -0.623775 0.133195 -0.770171 -0.623775 0.133195 -0.321752 -0.777205 0.540766 -0.321752 -0.777205 0.540766 0.136316 -0.799763 0.584634 0.136316 -0.799763 0.584634 0.477278 -0.755083 0.449506 0.477278 -0.755083 0.449506 0.722203 -0.67414 0.154783 0.722203 -0.67414 0.154783 0.777119 -0.619485 -0.111011 0.777119 -0.619485 -0.111011 0.717186 -0.647412 -0.257878 0.717186 -0.647412 -0.257878 0.47977 -0.735532 -0.478344 0.47977 -0.735532 -0.478344 -0.075967 -0.8014 -0.593284 -0.075967 -0.8014 -0.593284 -0.62724 -0.718114 -0.301466 -0.62724 -0.718114 -0.301466 -0.784722 -0.619486 0.021155 -0.784722 -0.619486 0.021155 -0.084507 0.982269 0.167352 0.632173 0.772262 -0.062999 0.472061 0.624003 -0.622719 -0.151565 0.842323 -0.517223 0.105824 0.777812 0.619524 0.017125 0.946839 0.321253 -0.494904 0.778355 0.386307 -0.26313 0.731078 0.629514 -0.03076 0.953764 0.298977 -0.650272 0.707348 0.277138 -0.764931 0.622815 0.164258 -0.732691 0.528219 -0.429126 0.544647 0.82922 0.125518 0.448816 0.853789 0.263834 0.3848 0.747985 0.540784 -0.130422 0.247013 -0.960195 -0.142836 0.435222 -0.888921 0.654158 0.287244 -0.699691 -0.423373 0.409094 0.80833 -0.840792 0.357274 0.406723 0.188184 0.403007 0.895641 -0.932075 0.31173 0.184554 -0.865825 0.223136 -0.447836 0.84497 0.48323 0.229161 0.891925 0.445438 -0.077814 0.607034 0.427846 0.66967 0.897484 0.350014 -0.26835 -0.967559 0.243605 0.066987 -0.8931 0.173642 0.414994 -0.967719 0.188732 0.167034 -0.47374 0.180994 0.861865 0.212397 0.183971 0.959709 0.694494 0.181726 0.696171 0.95289 0.206558 0.222114 0.966006 0.219618 -0.136379 0.928107 0.184788 -0.32322 0.681562 0.155104 -0.715133 -0.123156 0.151316 -0.980783 -0.878925 0.140183 -0.455894 -0.985932 0.162414 0.039482 -0.312559 -0.824378 0.471919 -0.04856 -0.945035 0.323342 -0.130267 -0.893412 0.429937 0.287097 -0.855919 0.43009 0.180041 -0.951879 0.248014 0.17333 -0.935886 0.306716 0.203638 -0.822552 0.53098 0.279139 -0.865972 0.414938 0.521871 -0.767897 0.371462 0.369064 -0.86818 0.331747 0.111959 -0.923663 0.366486 -0.171561 -0.916753 0.360736 -0.012008 -0.946382 0.322826 0.030079 -0.940504 0.338448 -0.186095 -0.928911 0.320146 -0.200393 -0.885492 0.419221 0.343074 -0.920161 0.188692 -0.462937 -0.798586 0.384642 0.551623 -0.828134 0.099531 -0.122174 -0.916544 0.380816 -0.126231 -0.794455 0.59406 0.390053 -0.787584 0.477044 0.307652 -0.947371 0.088536 -0.172252 -0.96236 0.210221 0.515346 -0.852354 0.088939 -0.468198 -0.818194 0.33369 -0.350107 -0.714525 0.605705 0.86145 0.406253 -0.304733 0.860316 0.336747 -0.382698 0.263106 0.206299 -0.942452 0.275452 0.33299 -0.9018 0.839369 0.475419 0.263507 0.841066 0.388988 0.375893 0.837446 0.499324 -0.222172 0.855133 0.506778 -0.109193 0.679362 0.666484 0.307027 0.648157 0.712291 0.26932 0.75752 0.43283 -0.488694 0.793808 0.42201 -0.437924 0.05549 0.640512 0.765941 0.006406 0.693449 0.720477 0.165065 0.38093 0.909751 0.262955 0.318055 -0.910877 0.248895 0.340295 -0.90678 0.753628 0.405512 -0.517305 0.241584 0.294303 -0.924674 0.824208 0.440753 -0.355553 0.610588 0.744424 0.270212 0.177963 0.71008 0.68126 0.22659 0.243371 0.943094 0.207171 0.755209 -0.621884 0.627966 0.752036 -0.200254 0.961158 -0.027976 0.274578 0.961158 -0.027976 0.274578 0.952709 -0.302161 0.032323 0.952709 -0.302161 0.032323 0.757554 0.153798 0.634395 0.757554 0.153798 0.634395 -0.002239 0.174053 0.984734 -0.002239 0.174053 0.984734 0.23098 -0.523252 -0.820278 0.715317 -0.475745 -0.511848 0.715317 -0.475745 -0.511848 0.23098 -0.523252 -0.820278 -0.721264 0.004039 -0.692649 -0.706703 0.127858 -0.695862 -0.710995 0.094375 -0.696835 -0.998098 0.006267 0.061327 -0.996114 -0.076118 0.044312 -0.997997 0.018781 -0.06041 -0.963151 0.012962 0.26865 -0.923238 0.037053 0.382438 -0.682724 0.148019 -0.715527 -0.782298 0.083265 0.617314 -0.628311 0.284758 0.723974 -0.666823 0.300805 0.681809 -0.668392 0.136064 -0.731258 -0.687573 0.038262 0.725106 -0.999779 -0.009044 0.018971 -0.995165 0.022839 -0.095527 -0.817455 0.575913 -0.009567 -0.542359 0.637606 0.547088 -0.525464 0.670183 -0.524158 -0.458576 -0.593861 -0.661088 -0.458576 -0.593861 -0.661088 -0.820654 -0.551938 -0.147958 -0.820654 -0.551938 -0.147958 -0.806102 -0.269191 0.527007 -0.631121 -0.113334 0.76736 -0.631121 -0.113334 0.76736 -0.806102 -0.269191 0.527007 -0.852458 -0.394323 0.343255 -0.852458 -0.394323 0.343255 0.065917 0.995746 0.064387 0.144061 0.989565 -0.002832 0.0653 0.995723 -0.06535 -0.119314 0.9918 -0.045782 -0.133112 0.990133 0.043788 -0.035591 0.995939 0.0827 -0.024669 0.996421 -0.080848 -0.121901 0.992499 -0.009269 -0.070116 0.995128 0.069314 -0.082326 0.993279 -0.081361 0.030692 0.994893 -0.096153 0.098945 0.99456 -0.03255 0.093323 0.994724 0.042604 0.025313 0.994675 0.099906 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 -4e-005 -1 6.5e-005 0.671308 -0.673472 0.309485 0.770171 -0.623775 0.133195 0.770171 -0.623775 0.133195 0.671308 -0.673472 0.309485 0.321752 -0.777205 0.540766 0.321752 -0.777205 0.540766 -0.136316 -0.799763 0.584634 -0.136316 -0.799763 0.584634 -0.477278 -0.755083 0.449506 -0.477278 -0.755083 0.449506 -0.722203 -0.67414 0.154783 -0.722203 -0.67414 0.154783 -0.777118 -0.619487 -0.111011 -0.777118 -0.619487 -0.111011 -0.717186 -0.647412 -0.257878 -0.717186 -0.647412 -0.257878 -0.479771 -0.735532 -0.478344 -0.479771 -0.735532 -0.478344 0.075966 -0.8014 -0.593284 0.075966 -0.8014 -0.593284 0.62724 -0.718114 -0.301466 0.62724 -0.718114 -0.301466 0.784722 -0.619486 0.021155 0.784722 -0.619486 0.021155 0.151565 0.842323 -0.517223 -0.472061 0.624003 -0.622719 -0.632173 0.772262 -0.062999 0.084507 0.982269 0.167352 -0.105824 0.777812 0.619524 0.26313 0.731078 0.629514 0.494904 0.778355 0.386307 -0.017125 0.946839 0.321253 0.03076 0.953764 0.298977 0.650272 0.707348 0.277138 0.732691 0.528219 -0.429126 0.764931 0.622815 0.164258 -0.544647 0.82922 0.125518 -0.448815 0.853789 0.263834 -0.3848 0.747985 0.540784 0.130422 0.247013 -0.960195 -0.654158 0.287244 -0.699691 0.142836 0.435222 -0.888921 0.423373 0.409095 0.80833 0.840792 0.357274 0.406723 -0.188184 0.403007 0.895641 0.932075 0.31173 0.184554 0.865825 0.223136 -0.447836 -0.891925 0.445438 -0.077814 -0.84497 0.48323 0.229161 -0.607034 0.427846 0.66967 -0.897484 0.350014 -0.26835 0.967559 0.243605 0.066987 0.8931 0.173642 0.414994 0.967719 0.188732 0.167034 0.47374 0.180995 0.861865 -0.212397 0.183971 0.95971 -0.694494 0.181726 0.696171 -0.95289 0.206558 0.222114 -0.966006 0.219619 -0.136379 -0.928107 0.184789 -0.32322 -0.681562 0.155104 -0.715133 0.123156 0.151316 -0.980783 0.878925 0.140183 -0.455894 0.985932 0.162414 0.039482 0.312559 -0.824378 0.471919 0.130267 -0.893412 0.429937 0.050057 -0.943928 0.326335 -0.281359 -0.85551 0.434673 -0.188935 -0.819496 0.541046 -0.153548 -0.935052 0.319531 -0.168462 -0.950674 0.26046 -0.279139 -0.865972 0.414938 -0.369064 -0.86818 0.331747 -0.521871 -0.767897 0.371462 -0.111959 -0.923663 0.366486 0.020003 -0.944934 0.326651 0.171561 -0.916753 0.360736 -0.017793 -0.940695 0.338787 0.186095 -0.928911 0.320146 -0.343074 -0.920161 0.188692 0.200393 -0.885492 0.419221 0.462937 -0.798586 0.384642 -0.551623 -0.828134 0.099531 0.122174 -0.916544 0.380816 0.126231 -0.794455 0.59406 -0.390053 -0.787584 0.477044 -0.307652 -0.947371 0.088535 0.172252 -0.96236 0.210221 -0.515346 -0.852354 0.088939 0.468198 -0.818194 0.33369 0.350107 -0.714526 0.605705 -0.837446 0.499324 -0.222172 -0.648157 0.712291 0.26932 -0.679362 0.666484 0.307027 -0.855133 0.506778 -0.109193 -0.75752 0.43283 -0.488695 -0.793808 0.42201 -0.437924 -0.860316 0.336747 -0.382698 -0.839369 0.475419 0.263507 -0.005025 0.693242 0.720687 -0.052242 0.639968 0.766624 -0.157651 0.379968 0.911466 -0.262955 0.318054 -0.910877 -0.753628 0.405512 -0.517305 -0.248895 0.340295 -0.90678 -0.841066 0.388988 0.375893 -0.86145 0.406253 -0.304733 -0.263106 0.206299 -0.942452 -0.241584 0.294303 -0.924674 -0.275452 0.33299 -0.9018 -0.824208 0.440753 -0.355553 -0.610588 0.744424 0.270211 -0.218766 0.236068 0.946791 -0.175175 0.706537 0.685652 -0.627997 0.752007 -0.200262 -0.207188 0.755169 -0.621927 -0.961158 -0.027976 0.274578 -0.952709 -0.302161 0.032323 -0.952709 -0.302161 0.032323 -0.961158 -0.027976 0.274578 -0.757554 0.153798 0.634395 -0.757554 0.153798 0.634395 0.005225 0.173304 0.984855 0.005225 0.173304 0.984855 -0.230979 -0.523253 -0.820277 -0.230979 -0.523253 -0.820277 -0.715317 -0.475745 -0.511848 -0.715317 -0.475745 -0.511848 0.721264 0.004039 -0.692649 0.997027 -0.076322 0.010556 0.998759 -0.006469 0.049373 0.710995 0.094375 -0.696835 0.933427 0.008252 0.358673 0.966897 0.010563 0.254949 0.997997 0.018781 -0.06041 0.682724 0.148019 -0.715527 0.807258 0.061583 0.586978 0.652823 0.272307 0.706874 0.683948 0.298565 0.665639 0.668392 0.136064 -0.731258 0.994006 0.020506 0.107385 0.995165 0.022839 -0.095527 0.999834 0.01191 -0.013777 0.714452 0.053594 0.697629 0.706703 0.127858 -0.695861 0.806318 0.590961 -0.024837 0.545057 0.651833 0.527283 0.52548 0.670152 -0.524181 0.458576 -0.593861 -0.661088 0.820654 -0.551938 -0.147959 0.820654 -0.551938 -0.147959 0.458576 -0.593861 -0.661088 0.810779 -0.277034 0.515645 0.810779 -0.277034 0.515645 0.641491 -0.123084 0.757192 0.641491 -0.123084 0.757192 0.852458 -0.394323 0.343255 0.852458 -0.394323 0.343255 -0.065907 0.995743 0.064434 -0.0653 0.995723 -0.06535 -0.14406 0.989565 -0.00283 0.119314 0.9918 -0.045782 0.024669 0.996421 -0.080849 0.035627 0.99593 0.082784 0.133146 0.990126 0.04384 0.121901 0.992499 -0.009269 0.070116 0.995128 0.069314 0.082361 0.993277 -0.081344 -0.030672 0.994898 -0.096111 -0.09896 0.99456 -0.032521 -0.093323 0.994724 0.042603 -0.025313 0.994675 0.099905 0.003526 0.982785 -0.184721 0.015922 0.908308 0.417998 0.758424 0.593411 0.26955 0.762242 0.638918 -0.103781 -0.022225 0.481657 0.876078 -0.052229 -0.150053 0.987297 0.766456 -0.096977 0.634933 0.780538 0.307134 0.544454 0.125821 0.9176 0.377066 -0.028789 0.939831 0.340424 0.011314 0.999109 -0.040655 0.118081 0.990114 -0.075704 -0.342833 -0.20264 0.91728 -0.172302 0.626087 0.760478 0.106554 0.547338 0.830101 0.100639 -0.272667 0.95683 -0.111054 0.204852 -0.972472 -0.008777 0.739402 -0.673207 -0.104621 0.830187 -0.54758 -0.235877 0.324328 -0.916064 0.025342 0.745309 -0.666237 -4.2e-005 0.798524 -0.601963 0.166127 0.974885 -0.148327 0.429122 0.860446 0.27475 -0.117368 0.860711 -0.49538 -0.030395 0.852631 -0.521628 -0.163235 0.368271 -0.915276 -0.242266 0.366912 -0.898155 0.229672 0.710079 -0.665612 0.673536 0.713622 -0.192595 0.212492 0.971478 0.105254 0.627978 0.70804 -0.322991 0.754856 0.593953 0.27823 0.280987 0.737253 0.614414 -0.665118 0.086531 0.741708 -0.312549 0.711939 0.628853 -0.194415 0.808919 0.554845 -0.098405 0.73799 0.667598 -0.0247 0.995198 0.094714 -0.092166 0.98276 0.160278 -0.077929 0.251171 -0.964801 -0.0645 0.066069 -0.995728 -0.041872 0.717484 0.695315 0.06856 0.771401 0.632645 0.609218 -0.746903 0.266437 0.261668 -0.387686 0.883872 -0.165441 -0.699702 0.695015 -0.097871 -0.978325 0.182489 0.987526 -0.071448 0.140309 0.706041 0.02427 0.707755 0.01875 0.120303 0.99256 -0.161751 -0.017696 0.986673 -0.123194 0.007365 0.992355 -0.297644 0.605882 0.737777 -0.007662 0.661047 0.750305 0.373347 0.302678 0.876925 0.168631 0.695545 0.698413 0.830656 0.541779 0.128399 0.670059 0.389391 0.631977 0.108615 0.631006 0.768137 -0.371155 0.467961 0.802032 -0.377452 0.294435 0.877974 0.63941 0.763527 -0.090454 0.244809 0.716356 0.653378 -0.296964 0.159238 0.941518 -0.677288 -0.397787 0.618907 -0.614449 -0.502705 0.608063 0.871962 0.489374 -0.013967 0.500724 0.441888 0.744319 -0.132679 0.015934 0.991031 -0.489382 -0.548832 0.677708 -0.11015 0.960023 0.257338 -0.043067 0.992459 -0.114766 -0.049978 0.996867 -0.061298 0.047608 0.985411 -0.163396 0.118968 0.621845 -0.774052 0.718553 -0.149673 -0.679176 0.559512 0.603689 -0.567896 0.708883 0.658 0.254011 0.905582 -0.149755 0.396857 0.014877 0.78456 -0.619875 -0.089351 0.010049 -0.99595 0.175054 0.858559 0.481905 0.763648 0.17592 0.621204 0.177227 0.093969 0.979674 -0.090102 0.835924 -0.541398 -0.147026 0.048231 -0.987956 0.033139 0.867962 0.495524 0.095579 0.110525 0.989267 0.050936 0.027565 -0.998321 0.001619 0.826281 -0.563256 0.119521 0.864441 0.488319 0.272285 0.069156 0.959728 0.842917 -0.173313 -0.509366 0.672706 0.622144 -0.400505 0.626265 0.62291 0.468803 0.795637 -0.176217 0.579576 -0.004027 0.181947 -0.9833 0.456324 0.024748 -0.88947 0.039711 0.769783 -0.637069 0.015649 0.098323 -0.995032 0.034944 0.827612 0.560212 0.714211 0.124682 0.688736 0.012037 0.036041 0.999278 -0.018703 0.863819 -0.503455 0.009671 0.060519 -0.99812 -0.060006 0.85531 0.514629 -0.064092 0.062384 0.995992 0.207622 0.024728 -0.977896 0.081784 0.848665 -0.52257 0.019836 0.848922 0.528145 0.11215 0.026973 0.993325 0.937214 -0.151478 -0.314142 0.737375 0.636586 -0.225914 0.563193 0.627495 0.537646 0.717172 -0.141732 0.682331 0.763864 0.053976 -0.643117 0.161716 0.837816 -0.521452 0.168873 0.037803 -0.984913 -0.00033 0.824783 0.565449 -0.109777 0.047554 0.992818 0.049966 0.877026 -0.477837 0.132323 0.067305 -0.988919 -0.105868 0.853079 0.510928 -0.169393 0.078556 0.982413 0.384533 0.029293 -0.922646 0.181524 0.865725 -0.466443 -0.018295 0.850003 0.526459 0.013951 0.042417 0.999003 0.988741 0.112618 -0.098527 0.941274 0.138652 -0.307861 -0.765194 -0.129116 0.630719 0.199914 0.573569 -0.794388 0.197553 0.974065 -0.110318 0.226743 0.895412 0.383178 -0.731668 0.621207 0.280648 -0.744179 0.655639 -0.127808 -0.769687 0.30967 0.558289 -0.770417 -0.094096 0.630558 -0.024063 0.566218 -0.823904 -0.772212 0.357089 -0.525524 0.956232 0.290542 -0.034707 0.968882 0.151899 -0.195433 0.780105 0.36436 -0.508604 0.968615 0.130808 0.211364 0.952841 0.27834 0.120916 0.9725 -0.034375 0.230352 0.236864 -0.270994 0.932983 0.261976 -0.606107 0.751001 0.730716 -0.619439 0.286966 0.146925 -0.888949 0.4338 0.688144 -0.723706 -0.052038 0.15809 -0.986417 -0.044597 -0.01969 -0.890721 -0.454123 -0.003118 -0.636266 -0.771463 0.773414 -0.402397 -0.489804 0.756506 -0.583146 -0.296039 0.096049 -0.330346 -0.93896 0.708544 -0.230251 -0.667046 0.20786 0.032023 -0.977634 0.103067 0.073701 -0.99194 -0.324388 -0.865966 0.380625 -0.230333 -0.970596 -0.069924 -0.507097 -0.848195 0.15303 -0.276561 -0.926577 -0.254892 0.00338 -0.925138 -0.379616 -0.034065 -0.989569 -0.139971 0.018827 -0.879816 -0.474941 -0.119317 -0.609756 -0.783556 -0.206825 -0.388282 -0.898031 -0.0578 -0.759617 0.647797 0.068571 -0.996638 0.044851 0.144152 -0.989504 0.010144 -0.028217 -0.856343 0.515635 0.241503 -0.635502 0.733358 0.242162 -0.958922 0.147734 0.110769 -0.993542 -0.02457 0.004923 -0.959534 -0.281548 -0.225329 -0.939061 -0.259599 -0.340912 -0.850736 -0.400035 -0.164324 -0.934124 -0.316876 0.185293 -0.98249 0.019494 0.02755 -0.999548 -0.012071 -0.064859 -0.975289 -0.2112 0.255155 -0.965392 -0.053986 0.255475 -0.966692 0.015455 0.650803 -0.67013 -0.356904 0.542459 -0.811474 0.217368 -0.294693 -0.316215 -0.901756 -0.083208 -0.954226 -0.287279 -0.368178 -0.280189 -0.886532 -0.026053 -0.932462 -0.360326 0.504859 -0.715713 -0.482568 0.882852 -0.226075 -0.411658 -0.014452 -0.947933 -0.318142 -0.055306 -0.841095 -0.538053 -0.444624 -0.891892 -0.082694 -0.513044 -0.857873 0.02898 0.21538 -0.924213 -0.315345 0.280121 -0.606437 -0.744154 0.605142 -0.794693 0.047596 0.923997 -0.200997 0.325315 0.790528 -0.064075 -0.609064 -0.51457 -0.847944 -0.127312 -0.201283 -0.742235 -0.639197 0.194502 -0.339834 -0.920153 0.601672 0.320647 -0.731557 -0.504795 -0.863099 -0.015578 -0.243466 -0.790558 -0.56191 0.230558 -0.449407 -0.863062 0.752077 0.094953 -0.652199 0.116082 -0.988656 -0.09531 -0.213545 -0.928006 -0.305292 -0.252733 -0.755548 -0.604378 0.077728 -0.967127 -0.242123 0.025161 -0.986619 -0.16109 0.029315 -0.998488 -0.046509 -0.240887 -0.307925 -0.920411 -0.045128 -0.967886 -0.247307 0.654656 -0.714502 0.246804 0.556192 -0.711043 -0.430195 0.003638 -0.830423 -0.557122 0.161469 -0.757579 0.632457 0.519407 -0.826746 0.21612 -0.045406 -0.840799 -0.539441 0.10027 -0.771602 0.628153 0.242211 -0.786198 0.56853 0.108819 -0.83364 -0.541482 0.600801 -0.720051 0.347224 0.617892 -0.716002 -0.324887 0.100937 -0.799578 -0.59202 0.095655 -0.80575 0.584481 0.045299 -0.825436 -0.562676 0.007275 -0.827153 0.56193 0.151217 -0.829967 0.536925 0.189565 -0.820603 -0.539143 0.551964 -0.708622 0.439534 0.668246 -0.720771 -0.184219 0.649398 -0.71977 -0.245384 0.152868 -0.807755 -0.569353 -0.005547 -0.806288 0.591497 0.109332 -0.834419 -0.540177 -0.05625 -0.81719 0.573617 0.092191 -0.821257 0.563061 0.2724 -0.836582 -0.475319 0.581307 -0.472967 0.662106 0.103873 -0.666492 -0.73824 0.702833 -0.451497 -0.549706 0.764429 0.026547 -0.644162 0.774801 -0.202337 -0.598952 -0.00913 -0.318594 -0.947847 -0.023637 0.040631 -0.998895 0.783766 -0.406617 0.46944 -0.043518 -0.651165 0.757688 0.731562 -0.678428 -0.067466 0.76964 -0.613165 0.177998 -0.02871 -0.960036 0.278399 -0.027486 -0.993814 -0.107602 -0.782588 -0.404411 0.473294 -0.772953 -0.610278 0.173503 -0.744546 -0.663286 -0.075511 -0.751677 -0.420373 -0.5082 -0.753764 -0.585306 -0.298758 -0.758014 -0.208175 -0.618125 -0.758204 0.025686 -0.651512 0.967111 0.010236 -0.254148 0.706489 -0.622195 -0.337265 0.975097 -0.146298 0.166679 0.142266 -0.889893 -0.433417 0.22144 0.503373 0.835213 -0.978422 -0.191565 -0.077417 -0.979768 -0.195259 0.043909 -0.981691 -0.095429 -0.164852 -0.980692 0.029158 -0.193373 -0.982233 -0.105539 0.155175 -0.981598 0.124066 -0.145168 -0.980855 0.187135 -0.053885 -0.978118 0.206722 0.023468 -0.979407 0.17974 0.091949 -0.979154 0.129429 0.156544 -0.980037 0.063432 0.188424 -0.980129 -0.00784 0.198207 -0.636725 -0.715231 -0.288143 -0.650973 -0.741762 0.161317 -0.685197 -0.364919 -0.630349 -0.683648 0.107816 -0.721804 -0.69657 -0.404549 0.592563 -0.698789 0.46456 -0.543946 -0.682765 0.702913 -0.199361 -0.643774 0.7603 0.086597 -0.65785 0.671031 0.341982 -0.661976 0.477868 0.577434 -0.67493 0.235937 0.699145 -0.680965 -0.028634 0.731756 -0.572736 -0.799183 0.182427 -0.558768 -0.772776 -0.300991 -0.610266 -0.399988 -0.683802 -0.608884 0.117621 -0.784491 -0.622532 -0.440205 0.647049 -0.625165 0.507096 -0.593315 -0.608009 0.763469 -0.217806 -0.566983 0.818447 0.093139 -0.581521 0.724647 0.369757 -0.586002 0.51654 0.62433 -0.599655 0.255673 0.758318 -0.606179 -0.031244 0.794714 0.322147 -0.224547 0.919674 -0.100656 -0.272635 0.956838 -0.106536 0.547323 0.830113 0.161024 0.604396 0.780242 0.111055 0.204851 -0.972472 0.235878 0.324328 -0.916064 0.104621 0.830187 -0.547581 0.008777 0.739403 -0.673206 0.117367 0.860711 -0.495381 0.242266 0.366912 -0.898155 0.163235 0.368271 -0.915276 0.030395 0.852631 -0.521628 -0.166127 0.974886 -0.148324 -0.673537 0.713623 -0.19259 -0.223293 0.716556 -0.660823 -0.519903 0.818966 0.242891 -0.212493 0.971477 0.105259 -0.754853 0.593953 0.278238 -0.678159 0.671722 -0.298144 -0.293955 0.729463 0.617636 0.320717 0.672406 0.667091 0.652802 0.050724 0.755828 4.2e-005 0.798524 -0.601963 0.077929 0.25117 -0.964801 0.008115 0.057362 -0.99832 -0.132946 0.710772 -0.690745 -0.60922 -0.746902 0.266435 0.09787 -0.978325 0.182489 0.165441 -0.699703 0.695015 -0.261669 -0.387686 0.883872 -0.706042 0.024272 0.707754 -0.987527 -0.071445 0.140308 0.098405 0.737991 0.667597 0.041872 0.717485 0.695314 0.161752 -0.017695 0.986673 -0.003427 0.095774 0.995397 -0.124259 0.752944 0.646247 0.125487 0.016446 0.991959 0.32072 0.59447 0.73739 0.210865 0.791717 0.573341 -0.001065 0.647101 0.762403 -0.376073 0.249891 0.892258 0.368656 0.476282 0.798278 -0.126844 0.635568 0.761554 -0.178178 0.715687 0.675311 0.36518 0.287969 0.885278 -0.639409 0.763527 -0.090454 -0.244809 0.716356 0.653378 -0.798558 0.589479 0.121735 0.296964 0.159238 0.941518 0.614449 -0.502705 0.608063 0.664082 -0.394608 0.635043 -0.871962 0.489375 -0.013968 -0.500724 0.441888 0.744319 0.132679 0.015935 0.991031 0.489382 -0.548831 0.67771 0.043067 0.992458 -0.114768 0.050009 0.996868 -0.061258 -0.047608 0.985411 -0.163396 -0.011302 0.999112 -0.040579 0.110228 0.960005 0.257371 0.028832 0.9398 0.340507 0.0247 0.995198 0.094714 -0.905581 -0.149758 0.396856 -0.708884 0.657997 0.254013 -0.559512 0.603687 -0.567897 -0.718552 -0.149675 -0.679176 0.036247 0.001792 -0.999341 -0.139884 0.734108 -0.664468 0.115389 0.033935 -0.992741 0.025049 0.814009 -0.580312 -0.324038 0.827431 0.458648 -0.122343 0.85699 0.5006 -0.233862 0.092714 0.967839 -0.802003 0.168684 0.573007 -0.156066 0.093739 0.983288 0.147026 0.048232 -0.987956 0.090102 0.835925 -0.541397 -0.033139 0.867962 0.495524 -0.095579 0.110525 0.989267 -0.050936 0.027564 -0.998321 -0.001619 0.826281 -0.563255 -0.119521 0.86444 0.488321 -0.272285 0.069154 0.959728 -0.795638 -0.176216 0.579576 -0.626264 0.622909 0.468804 -0.672705 0.622144 -0.400505 -0.842917 -0.173311 -0.509367 -0.007097 0.093067 -0.995634 -0.470508 0.030685 -0.881862 -0.043679 0.774437 -0.631141 -0.089799 0.923439 -0.373091 -0.008112 0.084001 -0.996433 -0.07571 0.809994 0.581531 -0.02938 0.838677 0.543836 -0.034017 0.053195 0.998005 -0.727099 0.130218 0.674069 -0.000637 0.059237 0.998244 -0.009671 0.060518 -0.99812 0.018703 0.86382 -0.503454 0.060006 0.85531 0.514631 0.064092 0.062385 0.995992 -0.207622 0.024728 -0.977897 -0.081783 0.848666 -0.522569 -0.019836 0.848922 0.528147 -0.11215 0.026973 0.993325 -0.717172 -0.141733 0.682332 -0.563193 0.627495 0.537647 -0.737374 0.636587 -0.225912 -0.937214 -0.151477 -0.314141 -0.20105 0.055572 -0.978003 -0.273573 0.80792 -0.521941 -0.792849 0.057245 -0.606724 -0.150477 0.069868 -0.986142 -0.113408 0.866165 -0.48672 -0.06446 0.798011 0.599186 0.027028 0.830874 0.555804 0.118861 0.06225 0.990958 0.108432 0.07318 0.991407 -0.132323 0.067305 -0.988919 -0.049966 0.877026 -0.477837 0.105869 0.85308 0.510927 0.169394 0.078557 0.982413 -0.384534 0.029293 -0.922646 -0.181525 0.865726 -0.466442 0.018295 0.850002 0.526461 -0.013951 0.042416 0.999003 -0.988741 0.112619 -0.098527 -0.941274 0.138653 -0.307862 0.751778 -0.114991 0.649312 -0.664958 0.422751 0.615722 -0.125788 0.917563 0.377168 -0.226608 0.895396 0.383294 -0.197491 0.974091 -0.110204 -0.118067 0.990123 -0.075612 0.052171 -0.150064 0.987299 0.770213 -0.094229 0.630787 0.769687 0.309551 0.558355 0.022006 0.481566 0.876133 0.744159 0.655662 -0.127806 -0.003689 0.982792 -0.184677 -0.016194 0.908273 0.418063 0.731706 0.621165 0.280643 -0.758313 0.593476 0.269719 -0.952534 0.279152 0.12146 -0.968397 0.131323 0.212042 -0.780416 0.30726 0.544557 -0.118968 0.621845 -0.774051 0.024064 0.566217 -0.823905 0.772212 0.357089 -0.525524 -0.762245 0.63895 -0.103564 -0.780104 0.364363 -0.508604 -0.968881 0.151904 -0.195433 -0.956139 0.29088 -0.034448 -0.972456 -0.034268 0.230555 -0.766401 -0.096938 0.635006 -0.146845 -0.888959 0.433806 -0.294607 -0.846814 0.442847 -0.262056 -0.606098 0.750981 -0.236905 -0.270992 0.932974 -0.157935 -0.986432 -0.044819 -0.277651 -0.958598 -0.06325 -0.09605 -0.330347 -0.93896 -0.103067 0.073701 -0.99194 -0.207861 0.032024 -0.977634 -0.239418 -0.317281 -0.917612 -0.199915 0.573571 -0.794387 0.322459 -0.865594 0.383103 0.230026 -0.970645 -0.070254 0.494901 -0.85297 0.165877 0.029898 -0.98933 -0.142594 -0.00338 -0.925137 -0.379617 0.27612 -0.926663 -0.255056 -0.026501 -0.877958 -0.478004 0.119317 -0.609755 -0.783557 0.206825 -0.388282 -0.898031 0.164324 -0.934123 -0.316877 0.340913 -0.850735 -0.400036 0.225071 -0.939042 -0.259889 -0.004923 -0.959534 -0.281549 0.294693 -0.316214 -0.901757 0.083209 -0.954226 -0.287278 0.057801 -0.759617 0.647797 0.045851 -0.852477 0.52075 -0.144152 -0.989504 0.010145 -0.068571 -0.996638 0.044852 0.064859 -0.975288 -0.211202 -0.02755 -0.999548 -0.012071 -0.185293 -0.98249 0.019492 0.368179 -0.280188 -0.886532 0.026053 -0.932462 -0.360327 -0.504859 -0.715713 -0.482568 -0.882852 -0.226074 -0.411659 -0.627319 -0.775606 0.070045 -0.931103 -0.122919 0.343422 -0.583969 -0.468553 0.662901 0.033818 -0.93811 -0.344683 0.521904 -0.852476 0.030011 0.465259 -0.880005 -0.095528 0.078919 -0.825278 -0.559184 -0.200883 -0.925278 -0.321725 -0.264164 -0.614059 -0.74374 -0.798935 -0.071223 -0.597185 0.51457 -0.847944 -0.127311 0.201283 -0.742235 -0.639197 -0.194502 -0.339834 -0.920153 -0.601672 0.320647 -0.731557 0.504794 -0.863099 -0.015577 0.243466 -0.790558 -0.561909 -0.230557 -0.449408 -0.863062 -0.752077 0.094953 -0.6522 -0.118177 -0.987518 -0.10413 -0.077728 -0.967127 -0.242123 -0.025161 -0.986619 -0.16109 -0.110769 -0.993542 -0.02457 -0.234979 -0.959028 0.15827 0.213338 -0.927904 -0.305746 0.240888 -0.307924 -0.920411 0.252733 -0.755547 -0.60438 0.045128 -0.967885 -0.247308 -0.029315 -0.998488 -0.046508 -0.556191 -0.711043 -0.430196 -0.654655 -0.714503 0.246802 0.007316 -0.816606 -0.57715 -0.518819 -0.825666 0.221589 -0.144658 -0.746923 0.648984 -0.163319 -0.76835 0.618842 0.004148 -0.825739 -0.564037 -0.10027 -0.771603 0.628152 0.045406 -0.840798 -0.539442 -0.108819 -0.833639 -0.541484 -0.242211 -0.7862 0.568528 -0.617893 -0.716 -0.324888 -0.600802 -0.720051 0.347223 -0.125907 -0.77648 -0.617435 -0.676822 -0.647741 -0.349775 -0.575498 -0.787582 0.220262 -0.123323 -0.779538 0.614095 -0.074994 -0.811593 0.579389 -0.074936 -0.807974 -0.584434 -0.007275 -0.827152 0.561931 -0.045299 -0.825436 -0.562676 -0.189565 -0.820603 -0.539143 -0.151217 -0.829967 0.536924 -0.668245 -0.720772 -0.184218 -0.551963 -0.708623 0.439534 -0.139129 -0.77148 -0.620856 -0.659098 -0.708768 -0.251471 0.045802 -0.789729 0.611743 -0.005556 -0.80239 0.596775 -0.150663 -0.81235 -0.563373 0.05625 -0.81719 0.573616 -0.109332 -0.834419 -0.540177 -0.272399 -0.836582 -0.475319 -0.092191 -0.821257 0.563061 -0.255476 -0.966692 0.015456 -0.255155 -0.965392 -0.053985 -0.211384 -0.64173 0.737224 -0.249218 -0.615242 -0.747909 -0.103874 -0.666492 -0.73824 0.043564 -0.651142 0.757705 0.782457 -0.404459 0.473469 0.772954 -0.610278 0.173503 0.02871 -0.960037 0.278397 0.027486 -0.993814 -0.107601 0.744546 -0.663287 -0.07551 0.751679 -0.420369 -0.508201 0.753765 -0.585305 -0.298759 0.019691 -0.890721 -0.454123 0.003119 -0.636265 -0.771464 0.758014 -0.208175 -0.618124 0.009132 -0.318594 -0.947847 0.023637 0.04063 -0.998895 0.758203 0.025685 -0.651512 -0.764429 0.026548 -0.644161 -0.967111 0.010237 -0.254148 -0.966606 -0.083153 -0.242402 -0.774801 -0.202336 -0.598953 -0.773413 -0.402396 -0.489805 -0.965085 -0.165682 -0.202879 -0.756507 -0.583145 -0.29604 -0.731562 -0.678429 -0.067466 -0.943434 -0.330244 -0.029516 -0.9556 -0.262743 -0.133394 -0.975199 -0.145891 0.166439 -0.962122 -0.262213 0.074602 -0.769741 -0.613044 0.177978 -0.783882 -0.406465 0.469378 0.092166 0.98276 0.160278 -0.14219 -0.889818 -0.433596 -0.271929 -0.842041 -0.465856 -0.221369 0.503383 0.835226 0.980724 0.029007 -0.193234 0.981643 -0.095685 -0.16499 0.982233 -0.105538 0.155175 0.979755 -0.19536 0.04376 0.978339 -0.191889 -0.077666 0.98163 0.124031 -0.144981 0.978118 0.206721 0.02347 0.980842 0.187205 -0.053878 0.979153 0.129434 0.156544 0.979407 0.179742 0.09195 0.980129 -0.00784 0.198206 0.980037 0.063432 0.188423 0.683617 0.107778 -0.721839 0.685034 -0.365044 -0.630453 0.696569 -0.404548 0.592564 0.650826 -0.741931 0.161135 0.6364 -0.715423 -0.288384 0.698765 0.464631 -0.543917 0.643707 0.760349 0.086663 0.682652 0.70305 -0.199264 0.661976 0.477869 0.577433 0.657849 0.671031 0.341983 0.680965 -0.028633 0.731756 0.674931 0.235937 0.699144 0.608969 0.117541 -0.784437 0.610449 -0.399852 -0.683718 0.572629 -0.799284 0.182321 0.622532 -0.440204 0.647051 0.558803 -0.7727 -0.301121 0.625183 0.507125 -0.593271 0.566839 0.818532 0.093268 0.607862 0.763638 -0.217626 0.586002 0.516542 0.624329 0.58152 0.724648 0.369756 0.606178 -0.031242 0.794715 0.599655 0.255674 0.758317 0.86012 -0.108783 -0.498358 0.971246 -0.23645 0.027785 0.96501 0.261879 0.013219 0.794683 0.241901 -0.556743 0.387774 0.179817 -0.904045 0.45556 -0.005522 -0.890188 0.290554 -0.027487 0.956464 0.214495 -0.247261 0.944909 0.056475 -0.073425 0.9957 0.185249 -0.01028 0.982638 0.776393 0.124427 0.617844 0.777726 -0.370179 0.508045 0.468358 -0.025768 0.883163 0.460865 -0.425299 0.778925 0 0.147117 -0.989119 0 0.009973 -0.99995 -0.3599 -0.070315 0.930338 -0.43587 -0.003068 0.900004 -0.43587 -0.003068 0.900004 0.327129 0.260177 0.908457 0.289629 0.363585 0.885393 0.39671 0.341869 0.851908 0.404932 0.285877 0.868507 0.759108 0.109435 0.6417 0.581131 0.472129 0.662858 0.441807 0.303922 0.844061 0.893192 0.133737 0.429328 0.497919 -0.569496 -0.654026 0.596392 -0.313839 -0.738797 0.44152 0.270426 -0.855529 0.116394 0.264787 -0.957257 0.473791 0.27868 0.83538 0.900937 0.207223 0.381276 0.501371 0.16368 0.849609 0.930212 0.190811 0.313523 0.462311 -0.318324 -0.82761 0.519527 -0.077654 -0.850918 0 -0.106347 -0.994329 0 -0.285732 -0.95831 0.30784 0.06745 -0.949044 0.350173 -0.284145 -0.892547 0 -0.248558 -0.968617 0 0.036829 -0.999322 0.913503 0.200467 -0.354012 0.934427 0.040077 -0.353893 0.529065 -0.052302 0.846968 0.954099 0.081523 0.288182 0.332572 0.12902 0.934211 0.451446 0.117435 0.884537 0.29765 -0.121167 0.946955 0.243683 -0.114181 0.96311 0.908641 0.208536 -0.36178 0.38244 -0.280737 0.880299 0.978661 -0.030237 0.203246 0.905309 -0.094044 -0.414211 0.917996 0.002004 -0.396583 0.566491 0.189324 -0.802025 0 0.090788 -0.99587 0.952742 -0.192294 -0.235172 0.607681 0.784765 -0.121934 0.555276 0.232927 -0.798382 0.723083 0.245602 -0.645625 0.715927 -0.020332 -0.697879 0.706294 -0.031992 -0.707195 -0.489667 0.329965 0.807062 -0.489667 0.329965 0.807062 -0.548231 0.209343 0.809702 -0.548231 0.209343 0.809702 0.287847 0.255345 0.923008 0.291833 0.330204 0.897663 -0.545323 0.240149 0.803088 -0.545323 0.240149 0.803088 -0.70115 0.090263 0.707277 -0.70115 0.090263 0.707277 0.315475 0.271795 0.909177 -0.641501 -0.103817 0.760064 -0.641501 -0.103817 0.760064 0.07044 -0.313314 0.947034 -0.391545 0.31642 0.864044 -0.391545 0.31642 0.864044 -0.550132 -0.239529 0.799988 -0.026968 -0.370473 0.928452 0 -0.535385 0.844608 0 -0.352976 0.935632 -0.000838 -0.350156 0.936691 0.257854 0.364712 0.894705 0.287052 0.329163 0.899585 0.375138 0.262896 0.888908 -0.467709 -0.715898 -0.518401 -0.602235 -0.542828 -0.585364 -0.822905 -0.568021 -0.013387 -0.642186 -0.766443 -0.012751 -0.049767 -0.598885 -0.799287 -0.147697 -0.432606 -0.889403 0.389989 -0.353359 -0.850321 0.467166 -0.222027 -0.855839 0.692702 -0.17846 -0.698796 0.902319 -0.044097 -0.428807 0.966522 -0.016967 0.256023 0.520907 -0.176001 0.835272 -0.030245 -0.519282 0.854067 -0.102777 -0.368471 0.923941 0.049564 -0.548827 0.834465 -0.416334 -0.761096 0.497393 -0.588802 -0.531557 0.6089 -0.324021 -0.821527 -0.469152 -0.420707 -0.906516 -0.035129 -0.007502 -0.57838 -0.815733 0 -0.50838 0.861133 -0.218559 -0.877653 0.426564 0 -0.753732 -0.657182 1e-006 -0.998577 -0.053327 0 -0.912676 0.408683 0 0.199657 -0.979866 0.393959 0.635743 0.663797 0.251431 0.936037 -0.246205 0.537289 -0.193106 0.820994 0.861264 -0.418888 0.287676 -0.024248 0.029803 0.999262 -0.025738 0.844224 0.535373 0.034703 0.825371 0.563523 0.031002 0.020309 0.999313 0.001578 -0.908017 0.418931 -0.016566 -0.914373 0.404533 -0.000881 -0.843256 -0.537511 0.007226 -0.830686 -0.556694 0.017598 -0.814521 -0.579867 0.016046 0.160039 -0.98698 0.000128 -0.160699 -0.987004 0.057005 0.962641 -0.264714 0.012888 0.995594 -0.092881 -0.010781 0.946289 -0.323142 0.017634 0.083029 -0.996391 0.129272 0.954961 -0.267091 0.138524 0.74386 0.653822 0.109206 0.807419 0.579783 0.115915 -0.219679 0.968661 0.104436 -0.079596 0.991341 0.167281 -0.928654 0.331086 0.051937 -0.957997 0.282038 0.03855 -0.939284 0.340967 0.167034 -0.772151 -0.613093 0.085639 0.227613 -0.969978 0.014206 0.932559 -0.360737 0.009968 0.070172 -0.997485 0.00739 0.863466 0.504353 -0.004694 0.029112 0.999565 -0.011092 -0.92814 0.372066 -0.00328 -0.816278 -0.577649 0.106473 0.055581 -0.992761 0.150041 0.02233 -0.988428 0.169946 -0.102538 -0.980104 0.076645 -0.131968 -0.988286 4.2e-005 0.586713 -0.809795 0.248412 0.586149 -0.771182 0.248412 0.586149 -0.771182 4.2e-005 0.586713 -0.809795 0.670394 0.492776 -0.554747 0.670394 0.492776 -0.554747 -0.094065 0.231239 0.968339 -0.09324 0.183042 0.978674 -0.036153 0.335319 0.941411 -0.065616 0.330129 0.941653 0.930336 0.232084 -0.283922 0.930336 0.232084 -0.283922 0.071499 -0.220882 -0.972676 0.061953 -0.259576 -0.963733 0.039771 -0.433148 -0.900445 4e-006 -0.160442 -0.987045 1.2e-005 0.08867 -0.996061 0.995119 0.008462 -0.098319 0.995119 0.008462 -0.098319 0.993645 -0.098878 0.053787 0 0.178614 0.983919 0 0.025955 0.999663 0 0.326119 0.945329 -1e-006 -0.181781 -0.983339 -1.9e-005 -0.432215 -0.901771 0.917163 0.331409 0.221316 0.979911 0.175342 0.095023 0.893676 0.408705 0.185209 0.859441 0.418269 0.29396 0.647417 0.600003 0.469944 0.699095 0.66739 0.256625 0.696996 0.712572 0.080233 0.914507 0.396025 0.082707 0.997544 0.065605 -0.024526 0.694992 -0.323894 -0.641933 0.412093 -0.369203 -0.832988 0.403863 -0.086399 -0.91073 0.754136 -0.10455 -0.648342 0 -0.082413 -0.996598 0 0.28285 -0.959164 0.370351 0.262543 -0.891017 0.749705 0.168722 -0.639902 0 0.6309 -0.775864 0.316489 0.606142 -0.729676 0.67536 0.492866 -0.548609 0.61307 0.692038 -0.381087 0.300305 0.827669 -0.474111 0 0.862437 -0.506164 0 0.998543 0.053958 0.340782 0.938844 0.049396 0.322079 0.926979 -0.19229 0 0.98171 -0.190385 0.652162 0.74107 -0.159689 0 0.756823 0.653619 0.31082 0.725767 0.613721 0.342952 0.890461 0.299104 0 0.9491 0.314974 0.722398 -0.63173 0.281175 0.412813 -0.618869 0.668271 0.778741 -0.365831 -0.509637 0.440946 -0.265451 -0.857381 0 -0.265596 -0.964084 0.596003 0.538901 0.595287 0.831154 0.406937 0.378926 0 0.592046 0.805904 0.276058 0.584629 0.76289 0 -0.486541 -0.873657 0.410536 -0.454777 -0.790341 0.662288 -0.401755 -0.63243 0 -0.380442 -0.924805 0.991014 -0.133259 -0.011504 0.984493 -0.143637 -0.100711 0.840313 -0.537207 -0.07269 0.817088 -0.552981 -0.163032 0.800104 -0.594884 -0.077118 0.741981 -0.666305 -0.074179 0.909102 0.065889 -0.41133 0.961631 0.048355 -0.27005 0.941316 -0.094522 -0.32402 0.910006 -0.087676 -0.405218 0.907659 -0.102662 -0.406959 0.897364 0.404894 -0.175497 0.850449 0.383046 -0.360572 0.747563 -0.374887 -0.548278 0.805166 -0.447541 -0.38912 0.39225 -0.362468 0.845433 0.39225 -0.362468 0.845433 0.32307 -0.685761 0.652194 0.253259 -0.500204 0.828043 0.315611 -0.175693 0.932481 0.315611 -0.175693 0.932481 0.416957 -0.710382 0.567014 0.416957 -0.710382 0.567014 0.321998 -0.736651 0.594696 0.321998 -0.736651 0.594696 0.350901 -0.626513 0.695953 0.350901 -0.626513 0.695953 0.193497 -0.533398 0.823435 0.193497 -0.533398 0.823435 0.096127 -0.480862 0.871511 0.096127 -0.480862 0.871511 0 -0.468217 0.883613 0 -0.468217 0.883613 0.067423 -0.46715 0.881604 0.162172 -0.474118 0.865397 0.242621 -0.720111 0.650058 0.242621 -0.720111 0.650058 0.811543 -0.277177 -0.514365 0.27043 -0.174461 0.9468 0.27043 -0.174461 0.9468 0.510062 0.320406 -0.798233 0.684542 0.215514 -0.696388 0.623693 -0.124471 -0.771695 0.448762 -0.093531 -0.888743 0.770504 -0.114309 0.627103 0.790572 0.280573 0.544311 0.5422 0.426461 0.723982 0.564918 -0.068451 0.822303 0.922423 0.190634 -0.335848 0.751976 0.475369 -0.456679 0.801281 0.589456 -0.102424 0.960366 0.24566 -0.131715 0.875831 0.042947 -0.480703 0.833006 -0.158459 -0.530086 0.805468 -0.35985 -0.470881 0.584105 -0.458011 -0.67011 0.80056 -0.507278 -0.319018 0.577198 -0.700773 -0.419237 0.819608 -0.561217 -0.115232 0.608554 -0.7892 -0.08262 0.857518 -0.507223 0.085947 0.661664 -0.704802 0.255842 0.903796 -0.361116 0.229669 0.717836 -0.465774 0.517462 0.947181 -0.159524 0.278209 0.974898 0.047313 0.217569 0.978286 0.195262 0.069489 0.79615 0.541936 0.269166 0.967031 0.028929 -0.253011 0.990274 0.016666 -0.138131 0.950959 -0.076982 -0.299586 0.916302 -0.168906 -0.363128 0.918292 -0.263962 -0.295067 0.89789 -0.366833 -0.243366 0.92485 -0.357433 -0.12998 0.930189 -0.366832 -0.013554 0.96393 -0.26446 0.030012 0.980901 -0.16981 0.094852 0.99682 -0.075913 0.024212 0.999247 0.031102 -0.023178 0.975226 -0.173632 -0.137064 0.577188 0.640034 -0.507158 0.614297 0.785876 -0.07098 0.400567 -0.790824 -0.462757 0.407599 -0.497648 -0.765643 0.438176 -0.897158 -0.055758 0.531774 -0.501934 0.682113 0.553508 0.737531 0.386881 0.479439 0.654146 0.585005 0.458148 -0.874626 0.158526 0.49123 -0.794691 0.356594 0.458148 -0.874626 0.158526 -0.712794 -0.370692 -0.59541 -0.91883 -0.393075 -0.035266 -0.249985 -0.268572 -0.930256 0.382358 -0.127267 -0.915208 0.907964 -0.003255 -0.419036 0.96786 0.01907 0.250766 0.495286 -0.100367 0.862913 -0.171894 -0.220208 0.960188 -0.689388 -0.338417 0.640482 -0.798836 -0.27902 -0.532925 -0.955054 -0.290253 -0.060214 -0.344822 -0.21757 -0.913105 0.385745 -0.07767 -0.91933 0.915118 0.047417 -0.400389 0.963749 0.066922 0.25828 0.488309 -0.063038 0.870391 -0.21061 -0.197799 0.95735 -0.750587 -0.283537 0.596847 -0.821919 -0.277187 -0.49761 -0.814818 -0.290254 -0.501821 -0.95648 -0.277727 -0.08952 -0.959327 -0.270698 -0.080091 -0.391452 -0.258594 -0.883116 -0.395963 -0.299993 -0.867881 0.379146 -0.120603 -0.917444 0.369074 -0.176089 -0.912566 0.917433 0.029649 -0.396784 0.916042 -0.011155 -0.400927 0.960996 0.054453 0.271148 0.960356 0.019394 0.278101 0.471115 -0.147637 0.869629 0.477289 -0.095158 0.873579 -0.258595 -0.297769 0.918946 -0.247003 -0.241095 0.938543 -0.781106 -0.324072 0.533714 -0.780424 -0.294093 0.551769 0.004624 -0.004046 0.999981 -0.005268 -0.064971 0.997873 0 -0.064972 0.997887 0 -0.004046 0.999992 0 -0.287459 0.957793 0.016968 -0.287417 0.957655 -0.009698 -0.11365 0.993474 0 -0.113655 0.99352 -0.028649 0.383786 0.922977 -5.2e-005 0.383943 0.923357 -2.2e-005 0.344457 0.938802 -0.042734 0.344141 0.937945 -0.052524 0.27081 0.961199 0 0.271185 0.962527 -0.003889 0.24713 0.968975 -3e-005 0.247129 0.968983 0 0.1273 0.991864 -0.04528 0.12717 0.990847 -0.86012 -0.108783 -0.498358 -0.794683 0.241901 -0.556743 -0.965014 0.261865 0.013206 -0.971245 -0.236454 0.027786 -0.45556 -0.005522 -0.890188 -0.387774 0.179817 -0.904045 -0.290601 -0.027569 0.956447 -0.185341 -0.010319 0.98262 -0.056606 -0.073454 0.995691 -0.214584 -0.247389 0.944856 -0.776406 0.124366 0.617841 -0.777703 -0.370231 0.508042 -0.468356 -0.025877 0.883161 -0.460855 -0.425448 0.778849 0.3599 -0.070315 0.930337 0.43587 -0.003068 0.900005 0.43587 -0.003068 0.900005 -0.327089 0.260159 0.908477 -0.404943 0.285846 0.868512 -0.396707 0.341872 0.851908 -0.28958 0.363591 0.885406 -0.581151 0.472112 0.662853 -0.759109 0.109436 0.641698 -0.893194 0.133736 0.429325 -0.441802 0.303922 0.844063 -0.497882 -0.569539 -0.654017 -0.116385 0.264792 -0.957256 -0.44152 0.270426 -0.855529 -0.596392 -0.313839 -0.738797 -0.900938 0.20722 0.381274 -0.47379 0.278677 0.835382 -0.930212 0.190811 0.313522 -0.501371 0.16368 0.849609 -0.462311 -0.318324 -0.82761 -0.519527 -0.077654 -0.850918 -0.30784 0.06745 -0.949044 -0.350173 -0.284145 -0.892547 -0.934427 0.040077 -0.353893 -0.913503 0.200467 -0.354012 -0.529065 -0.052302 0.846968 -0.954099 0.081523 0.288182 -0.332572 0.12902 0.934211 -0.243683 -0.114181 0.96311 -0.29765 -0.121167 0.946955 -0.451446 0.117435 0.884537 -0.908641 0.208536 -0.36178 -0.978661 -0.030237 0.203246 -0.917997 0.002004 -0.396583 -0.90531 -0.094044 -0.414211 -0.566491 0.189324 -0.802025 -0.952742 -0.192294 -0.235172 -0.607691 0.784755 -0.121948 -0.38244 -0.280738 0.880299 0.489689 0.329958 0.807052 0.548241 0.209331 0.809699 0.548241 0.209331 0.809699 0.489689 0.329958 0.807052 -0.28776 0.255337 0.923037 -0.291805 0.330208 0.897671 0.545323 0.240149 0.803089 0.70115 0.090263 0.707277 0.70115 0.090263 0.707277 0.545323 0.240149 0.803089 -0.31547 0.271793 0.909179 0.641502 -0.103817 0.760064 0.641502 -0.103817 0.760064 0.391556 0.316425 0.864036 0.391556 0.316425 0.864036 0.026969 -0.370474 0.928451 -0.070441 -0.313315 0.947033 0.000838 -0.350156 0.936691 0.550132 -0.239529 0.799988 -0.257767 0.364719 0.894727 -0.375138 0.262896 0.888908 -0.287015 0.32917 0.899594 0.467707 -0.715899 -0.5184 0.642185 -0.766444 -0.01275 0.822905 -0.568021 -0.013386 0.602235 -0.542827 -0.585364 0.049767 -0.598886 -0.799287 0.147697 -0.432606 -0.889403 -0.389989 -0.353359 -0.850321 -0.467166 -0.222027 -0.855839 -0.692702 -0.17846 -0.698796 -0.902319 -0.044097 -0.428807 -0.966522 -0.016967 0.256023 -0.520907 -0.176001 0.835272 0.030245 -0.519282 0.854067 0.102777 -0.368471 0.92394 -0.049564 -0.548827 0.834465 0.416333 -0.761096 0.497393 0.588802 -0.531557 0.6089 0.324021 -0.821527 -0.469152 0.420706 -0.906517 -0.035129 0.007502 -0.57838 -0.815733 0.218559 -0.877653 0.426564 -0.723083 0.245602 -0.645624 -0.555277 0.232927 -0.798381 -0.715927 -0.020332 -0.697879 -0.706294 -0.031992 -0.707195 -0.393959 0.635743 0.663798 -0.251431 0.936037 -0.246204 -0.537289 -0.193106 0.820994 -0.861245 -0.418905 0.287706 0.024243 0.029963 0.999257 -0.031155 0.020476 0.999305 -0.034836 0.82531 0.563605 0.02574 0.844093 0.535578 0.016535 -0.914369 0.404545 -0.001777 -0.908031 0.418899 -0.007226 -0.830686 -0.556694 0.000796 -0.843213 -0.53758 -0.01769 -0.814476 -0.579928 -0.000114 -0.160684 -0.987006 -0.016041 0.160081 -0.986973 -0.138524 0.743884 0.653795 -0.129268 0.954954 -0.267119 -0.085634 0.227646 -0.969971 -0.115903 -0.219661 0.968667 -0.167231 -0.928637 0.331159 -0.166991 -0.772183 -0.613064 -0.013013 0.995624 -0.092539 0.010777 0.946419 -0.322762 -0.057079 0.96264 -0.2647 -0.109353 0.80743 0.57974 -0.10457 -0.079523 0.991333 -0.038692 -0.939283 0.340954 -0.051927 -0.957971 0.282124 -0.017626 0.083039 -0.99639 -0.009968 0.070172 -0.997485 -0.014198 0.932699 -0.360375 -0.007399 0.863328 0.504589 0.004705 0.029211 0.999562 0.011126 -0.928146 0.372051 0.00328 -0.816278 -0.57765 -0.248443 0.586532 -0.77088 -0.248443 0.586532 -0.77088 -0.670442 0.492944 -0.554539 -0.670442 0.492944 -0.554539 0.094064 0.231239 0.968339 0.065616 0.330128 0.941653 0.036152 0.335318 0.941411 0.09324 0.183042 0.978674 -0.930336 0.232084 -0.283922 -0.930336 0.232084 -0.283922 -0.106468 0.055578 -0.992762 -0.150055 0.022329 -0.988425 -0.06195 -0.259552 -0.96374 -0.071498 -0.220866 -0.97268 -0.03978 -0.433117 -0.900459 -0.076644 -0.131971 -0.988286 -0.169952 -0.10254 -0.980103 -0.995119 0.008462 -0.09832 -0.995119 0.008462 -0.09832 -0.993645 -0.098878 0.053784 -0.647483 0.599973 0.469892 -0.699112 0.667363 0.25665 -0.893667 0.408723 0.185213 -0.859456 0.418171 0.294056 -0.697007 0.712553 0.080311 -0.914518 0.395993 0.08274 -0.694996 -0.323889 -0.641932 -0.754143 -0.104551 -0.648335 -0.403863 -0.086399 -0.91073 -0.412093 -0.369203 -0.832988 -0.370351 0.262543 -0.891017 -0.749712 0.168715 -0.639897 -0.316483 0.606136 -0.729684 -0.675368 0.492835 -0.548627 -0.61309 0.692019 -0.381092 -0.300294 0.827673 -0.474111 -0.322037 0.926989 -0.192308 -0.340781 0.938842 0.049445 -0.65215 0.741074 -0.159721 -0.343021 0.890426 0.299129 -0.310871 0.725779 0.61368 -0.722383 -0.631751 0.281164 -0.412819 -0.619006 0.668141 -0.778741 -0.365831 -0.509637 -0.440946 -0.265451 -0.857381 -0.831163 0.406661 0.379202 -0.596062 0.53876 0.595356 -0.276058 0.584629 0.76289 -0.410536 -0.454777 -0.790341 -0.662288 -0.401756 -0.632429 -0.997545 0.06559 -0.024527 -0.984491 -0.143635 -0.100727 -0.991015 -0.133254 -0.011509 -0.979917 0.175316 0.095012 -0.840313 -0.537207 -0.07269 -0.817088 -0.552981 -0.163033 -0.741981 -0.666305 -0.07418 -0.800104 -0.594884 -0.07712 -0.909101 0.06588 -0.411333 -0.90998 -0.087642 -0.405283 -0.941282 -0.094478 -0.324132 -0.961626 0.04835 -0.270069 -0.907613 -0.102583 -0.407081 -0.897377 0.40486 -0.175505 -0.850468 0.383007 -0.360567 -0.747564 -0.374888 -0.548276 -0.805166 -0.447542 -0.389119 -0.392491 -0.362843 0.84516 -0.253307 -0.500318 0.82796 -0.323122 -0.685887 0.652037 -0.392491 -0.362843 0.84516 -0.316301 -0.17634 0.932125 -0.316301 -0.17634 0.932125 -0.417513 -0.710105 0.566952 -0.322309 -0.736506 0.594706 -0.322309 -0.736506 0.594706 -0.417513 -0.710105 0.566952 -0.351118 -0.626328 0.69601 -0.351118 -0.626328 0.69601 -0.193353 -0.533272 0.823551 -0.193353 -0.533272 0.823551 -0.096126 -0.480861 0.871512 -0.096126 -0.480861 0.871512 -0.067424 -0.467154 0.881602 -0.162174 -0.474123 0.865394 -0.24279 -0.720143 0.64996 -0.24279 -0.720143 0.64996 -0.81155 -0.277165 -0.514361 -0.271446 -0.175288 0.946357 -0.271446 -0.175288 0.946357 -0.510985 0.319532 -0.797993 -0.448823 -0.093532 -0.888713 -0.623727 -0.124454 -0.771671 -0.684893 0.215033 -0.696191 -0.770496 -0.114298 0.627114 -0.564887 -0.06844 0.822325 -0.542122 0.426538 0.723995 -0.790535 0.280615 0.544343 -0.922297 0.190673 -0.336173 -0.960334 0.245795 -0.131697 -0.801625 0.589017 -0.102257 -0.752862 0.474157 -0.45648 -0.875771 0.042921 -0.480814 -0.833013 -0.158434 -0.530084 -0.805468 -0.35985 -0.470881 -0.584105 -0.458011 -0.67011 -0.800572 -0.507166 -0.319167 -0.577007 -0.700807 -0.419444 -0.819736 -0.561021 -0.115279 -0.608362 -0.789343 -0.08266 -0.857591 -0.507083 0.08605 -0.66168 -0.704729 0.255999 -0.90381 -0.361089 0.229656 -0.71791 -0.465679 0.517444 -0.947183 -0.159518 0.278205 -0.974892 0.047297 0.217595 -0.978266 0.195275 0.069742 -0.795875 0.542236 0.269374 -0.966973 0.02888 -0.253238 -0.990282 0.016576 -0.138081 -0.950924 -0.077017 -0.299686 -0.916302 -0.168894 -0.363132 -0.918291 -0.263962 -0.295068 -0.897897 -0.366781 -0.24342 -0.924879 -0.357354 -0.129991 -0.930214 -0.366768 -0.013512 -0.963931 -0.264453 0.030014 -0.980901 -0.16981 0.094852 -0.996819 -0.075934 0.024225 -0.999255 0.030979 -0.023008 -0.975224 -0.173649 -0.137059 -0.579742 0.637967 -0.506851 -0.615546 0.784926 -0.070669 -0.4076 -0.497649 -0.765642 -0.400112 -0.790969 -0.462903 -0.437469 -0.897504 -0.055747 -0.531903 -0.5018 0.682112 -0.553012 0.737849 0.386983 -0.479267 0.654276 0.585001 -0.457581 -0.874862 0.158856 -0.457581 -0.874862 0.158856 -0.491107 -0.794697 0.35675 0.91883 -0.393075 -0.035266 0.712794 -0.370692 -0.59541 0.249985 -0.268572 -0.930256 -0.382357 -0.127267 -0.915208 -0.907964 -0.003255 -0.419036 -0.96786 0.01907 0.250766 -0.495286 -0.100367 0.862913 0.171894 -0.220208 0.960188 0.689389 -0.338417 0.640482 0.821919 -0.277187 -0.49761 0.959327 -0.270698 -0.080091 0.95648 -0.277727 -0.08952 0.814818 -0.290254 -0.501822 0.395963 -0.299992 -0.867881 0.391452 -0.258594 -0.883116 -0.369074 -0.176089 -0.912566 -0.379146 -0.120603 -0.917444 -0.916042 -0.011155 -0.400927 -0.917433 0.029649 -0.396784 -0.960356 0.019394 0.278101 -0.960996 0.054453 0.271148 -0.471115 -0.147637 0.869629 -0.477289 -0.095158 0.873579 0.258595 -0.297769 0.918946 0.247003 -0.241095 0.938543 0.781106 -0.324072 0.533714 0.780424 -0.294093 0.551768 0.955054 -0.290253 -0.060214 0.798836 -0.27902 -0.532925 0.344822 -0.21757 -0.913105 -0.385745 -0.07767 -0.91933 -0.915118 0.047417 -0.400389 -0.963749 0.066922 0.25828 -0.488309 -0.063038 0.870391 0.21061 -0.1978 0.95735 0.750587 -0.283537 0.596847 -0.004624 -0.004046 0.999981 0.005268 -0.064971 0.997873 0.028545 0.383785 0.922981 0.04269 0.344145 0.937945 0.052524 0.27081 0.961199 0.003829 0.247124 0.968976 0.009698 -0.11365 0.993474 -0.016968 -0.287417 0.957655 0.04528 0.12717 0.990847 -0.917163 0.331279 0.22151 0.951518 -0.011366 0.307383 0.836531 0.171057 0.520533 0.840239 0.102817 0.532379 0.927175 0.025014 0.373792 0.605919 0.344047 0.717283 0.63368 0.212679 0.743786 0.305993 0.388246 0.869272 0.315147 0.257272 0.913506 0.348769 -0.203162 0.914924 0.649633 0.076483 0.756391 0.039018 -0.435865 0.899166 0.742889 -0.467246 0.479373 0.750786 -0.2465 0.612828 0.309122 -0.381627 0.871094 0.525193 0.636386 0.564965 0.38791 0.41105 0.824963 0.693642 0.511747 0.506927 -1e-006 0.44811 0.893979 -1e-006 0.773784 0.63345 0.408765 0.524816 0.746645 0 0.616459 0.787387 0.22588 0.272654 0.935221 0.156075 0.143157 0.977316 1e-006 0.159608 0.98718 0 0.333679 0.942687 0.639844 -0.629251 0.441182 0.418552 -0.853845 0.309455 0.433046 -0.898877 0.067012 0.72253 -0.675272 0.14818 0.001843 -0.221268 0.975211 0.305855 -0.179381 0.935027 0.316025 -0.501515 0.805364 0.485076 -0.772152 0.410466 0 -0.537398 0.843329 0 -0.697414 0.716668 0.462326 -0.312656 0.82976 0.48315 -0.521656 0.703165 0.683492 -0.239395 0.689586 0.355571 -0.61668 0.702335 0.00111 -0.682965 0.73045 0.002112 -0.964612 0.263665 0.001389 -0.998928 0.046279 0.000347 -0.999733 0.023104 0.459547 -0.888121 -0.007643 0.722376 -0.689215 -0.056167 0.895866 -0.444288 -0.005752 0.916571 -0.327676 0.229185 0.824523 0.033756 0.564821 0.963795 0.010768 0.266429 0.97864 -0.116187 0.169598 0.973632 -0.076267 0.215 0.949761 -0.066977 0.305727 0.935212 0.047872 0.350836 0.698913 0.684238 0.208181 0.631209 0.549198 0.547683 -0.355181 -0.930691 0.087522 -0.391604 -0.445759 0.80495 0.514257 -0.467311 0.719139 0.430013 -0.895699 0.113188 -0.017317 0.259833 0.965498 -0.00859 -0.164365 0.986362 0.2339 -0.396119 0.887908 0 -0.329039 0.944316 0.256472 -0.334241 0.906921 0.838353 0.304752 0.451985 0.899684 0.350177 0.260662 0.412655 0.378691 0.828438 0.210421 0.177442 0.961372 -1e-006 -0.238661 0.971103 0.734161 0.205277 0.6472 0.264901 0.257428 0.929278 0.287465 0.082842 0.954202 0.41942 -0.090436 0.903277 0.540686 -0.15759 0.826332 0.297999 0.34961 0.888239 0.210029 0.287069 0.934601 0.689891 0.348601 0.63445 0.65719 0.277603 0.700741 0.355159 0.311761 0.881287 0.304225 0.428621 0.850724 0.135399 0.132726 0.981861 0.185923 0.190434 0.963933 0.21162 0.232262 0.949353 0.193283 0.266135 0.944359 0.341241 0.161322 0.926029 0.143522 0.223526 0.964073 0 -0.139373 0.99024 0.28844 -0.154925 0.944881 1e-006 -0.005467 0.999985 0.238594 0.087606 0.96716 0.220183 0.292105 0.930695 0.199778 0.337235 0.919979 0.864151 0.036123 0.501934 0.102711 0.202794 0.97382 0.154779 0.14145 0.977771 0.972556 -0.073973 0.220595 0.828955 -0.140315 0.541429 0.818646 -0.019367 0.573972 0.711411 -0.689867 -0.134084 0.775035 -0.604789 -0.183168 0.549292 -0.80253 0.232859 0.638043 -0.765497 -0.083163 0 -0.926816 0.375515 -0.018059 0.358694 0.933281 1e-006 -0.086506 0.996251 0.558582 -0.319108 0.765608 -1e-006 -0.091477 0.995807 0.750857 -0.594056 0.288637 0 0.424727 0.905322 0.056963 0.390265 0.918939 0 -0.56403 0.825755 0.18402 -0.544853 0.81809 0.182074 -0.215875 0.959295 0 -0.182692 0.98317 0.234916 -0.526649 0.816979 0.249263 -0.7941 0.554323 0.491685 -0.341069 0.801198 0.563947 -0.275843 0.778379 0.509907 -0.08846 0.855669 0 0.103214 0.994659 0 -0.379234 0.925301 0.33343 -0.55096 0.765028 0.280524 0.040799 0.95898 0.287295 -0.207096 0.935186 0.115684 -0.504069 0.855881 0.503056 -0.005737 0.864235 0.389029 0.226579 0.892927 0.484696 0.386342 0.784735 0.49258 -0.029675 0.869761 0.508335 -0.427392 0.747617 0.136004 -0.847772 0.512626 0 -0.892183 0.451675 0.45177 -0.481903 0.750782 0.511939 -0.278277 0.8127 0.314478 -0.565521 0.762423 -0.080761 -0.854005 0.513958 0.136031 0.614486 0.777112 -0.062716 -0.89248 0.446705 0 0.553739 0.83269 0.0475 -0.610329 0.790722 0 0.645836 0.763476 -1e-006 -0.922206 0.386699 0.337036 -0.445088 0.829641 0 -0.600333 0.79975 0 -0.787115 0.616806 0 0.572564 0.81986 0.143544 0.566635 0.811369 0.760518 -0.058795 0.64665 0.76425 -0.103865 0.636501 0.602814 -0.161897 0.781284 0.298561 -0.177631 0.937714 0.571854 -0.066993 0.817616 0.28625 -0.421021 0.860699 0.410366 -0.476747 0.777375 0.308345 -0.600487 0.737793 0.264124 -0.546084 0.795004 0.306548 -0.641261 0.70343 0.221273 -0.663923 0.714314 0.618453 -0.353323 0.701911 0.652794 -0.027881 0.757022 0.600327 0.315203 0.73502 0.351526 0.056319 0.934483 0.696058 0.195548 0.690844 0.717534 -0.619218 0.318925 0.099569 -0.855675 0.507845 0.341492 -0.117951 0.932454 0.584692 0.666487 0.462526 0.887401 0.394998 0.237688 0.176039 -0.262341 0.948782 0.284341 -0.478728 0.830644 0.327874 -0.492687 0.806076 0.374475 -0.534153 0.757924 0.42186 -0.516413 0.745219 -0.366839 0.489421 0.791136 0.12865 0.684113 0.717941 -0.652478 0.200009 0.730937 0.145752 -0.224342 0.963549 -0.861579 -0.492994 0.120989 -0.952253 0.259989 0.160064 -0.722958 0.618122 0.308638 -0.662658 -0.714435 0.22465 -0.356813 0.934164 0.004807 -0.253769 0.954664 0.155623 -0.636321 -0.764476 0.10331 -0.364725 -0.928306 -0.072278 -0.44465 -0.879761 -0.168248 -0.741231 -0.671225 0.005818 -0.081378 -0.917016 -0.39046 -0.040325 -0.958028 -0.283823 0.059649 0.990634 -0.122827 0.087073 0.97298 0.213843 -0.273773 -0.776775 0.567158 0.038438 -0.056581 0.997658 0.152364 0.090826 0.984142 0.203304 0.274354 0.939892 0.627187 -0.769638 -0.119555 0.422243 -0.801036 -0.424327 0.423434 -0.85604 -0.296477 0.624869 -0.775656 -0.088863 -0.346867 -0.535384 0.770095 0.027174 0.560043 0.828018 -0.034174 0.209443 0.977224 -0.031584 0.129288 0.991104 0.253767 0.418987 0.87181 0.322207 0.125209 0.938352 0.226308 -0.260081 0.938692 0.583864 0.168123 0.794253 0.042699 -0.070938 0.996566 0.414755 0.901911 0.120557 0.95784 0.217647 -0.187545 0.072641 0.914182 0.39874 0.062911 0.949719 0.306717 -0.037695 -0.406225 0.912995 0.804962 -0.583374 -0.108219 0.804962 -0.583374 -0.108219 0.183703 0.910123 0.371388 0.243488 0.965906 0.08797 0.905239 0.343991 0.249423 0.17098 -0.615436 0.769419 0.310002 -0.65549 0.688645 0.975754 0.089798 0.199602 0.924644 -0.362667 0.11622 0.676347 -0.272636 0.684269 0.235512 0.072726 0.969147 -0.031842 0.017527 0.999339 0.832121 -0.455002 0.317093 0.832121 -0.455002 0.317093 0.755757 -0.282088 0.59098 0.755757 -0.282088 0.59098 -0.070744 0.826224 -0.558882 0.219257 0.834027 -0.506285 0.282562 0.857866 -0.429213 -0.046524 0.839429 -0.541475 0.989347 0.074131 -0.125288 0.989347 0.074131 -0.125288 0.069623 -0.835766 0.544655 -0.157405 -0.881929 0.444325 0.008099 -0.91094 0.412458 -0.095755 -0.947945 0.303696 0.146287 0.960812 -0.235457 -0.066019 0.885042 -0.460806 0.124164 -0.831433 0.541574 0.15578 -0.833177 0.530611 -0.06485 -0.953083 0.295681 -0.206739 -0.893992 0.397538 0.720534 -0.208725 0.661259 0.883454 0.000531 0.468518 0.883454 0.000531 0.468518 0.720534 -0.208725 0.661259 0.519788 -0.845057 -0.125297 0.314267 -0.94126 -0.123558 0.31663 0.941064 -0.118931 -0.017743 0.998269 0.056067 0.31663 0.941064 -0.118931 -0.14111 0.942657 0.302466 -0.095003 0.994948 -0.03246 0.07285 -0.979064 0.190072 -0.167282 -0.976034 -0.139194 0.160772 -0.404015 0.900514 0.160772 -0.404015 0.900514 0.104292 0.847683 0.520151 -0.177263 -0.365651 0.913716 -0.343289 -0.932639 -0.111077 0.110588 0.780687 0.615059 -0.457116 0.883925 0.098597 -0.161438 0.908975 -0.38432 -0.072077 0.220825 0.972647 -0.072077 0.220825 0.972647 -0.469947 0.122748 0.874118 -0.469947 0.122748 0.874118 0.353702 -0.933454 0.059649 0.13345 -0.843274 0.520653 0.478237 0.016709 0.878072 0.478237 0.016709 0.878072 0.102995 0.862083 -0.49619 0.191364 -0.60679 0.771483 0.462836 -0.424104 0.778408 -0.585052 -8.6e-005 0.810996 0.106297 -0.466034 0.878358 0.13945 -0.598159 0.789151 -0.312788 -0.226582 0.922401 -0.312788 -0.226582 0.922401 -0.312788 -0.226582 0.922401 -0.312788 -0.226582 0.922401 -0.312788 -0.226582 0.922401 -0.312788 -0.226582 0.922401 0.531268 -0.066218 0.844612 0.679112 -0.210139 0.703312 0.665265 -0.266248 0.69752 -0.165249 -0.16781 0.971871 -0.10113 -0.415031 0.904169 -0.326487 0.27618 0.903953 -0.603481 0.23421 0.762205 -0.632046 0.170792 0.755876 -0.358717 -0.159802 0.919666 -0.039017 -0.435863 0.899167 -0.309122 -0.381626 0.871094 -0.750786 -0.246498 0.612829 -0.742887 -0.467244 0.479376 -0.525194 0.636388 0.564962 -0.693644 0.511748 0.506924 -0.387912 0.411053 0.824961 -0.225879 0.272653 0.935221 -0.156073 0.143156 0.977316 -0.632756 -0.637772 0.439166 -0.719645 -0.678993 0.145188 -0.432368 -0.899249 0.066399 -0.418013 -0.853598 0.310864 -0.001844 -0.221268 0.975211 -0.316025 -0.501514 0.805364 -0.305854 -0.17938 0.935027 -0.485075 -0.772152 0.410467 -0.823154 0.100923 0.558777 -0.820142 0.055313 0.56948 -0.631557 0.549194 0.547286 -0.698914 0.684239 0.208173 0.391604 -0.445761 0.804949 0.355181 -0.930691 0.087522 -0.430012 -0.8957 0.113188 -0.514257 -0.467312 0.719138 -0.24431 -0.384038 0.890409 -0.256472 -0.334241 0.90692 -0.838354 0.304753 0.451982 -0.899685 0.350178 0.260658 -0.542724 -0.156647 0.825174 -0.412596 -0.091198 0.906338 -0.304205 0.429022 0.850529 -0.355081 0.312704 0.880985 -0.65712 0.277795 0.700731 -0.689891 0.348601 0.634451 -0.210421 0.177442 0.961373 -0.13553 0.132872 0.981823 -0.193482 0.266088 0.944332 -0.212072 0.233072 0.949054 -0.186213 0.1913 0.963706 -0.28844 -0.154925 0.944881 -0.238593 0.087606 0.96716 -0.220424 0.293738 0.930124 -0.199899 0.338365 0.919538 -0.927316 0.012945 0.374054 -0.86386 0.038566 0.502253 -0.973632 -0.076267 0.215 -0.979017 -0.112368 0.169999 -0.964629 0.01768 0.263018 -0.935212 0.047872 0.350837 -0.949761 -0.066977 0.305726 -0.828955 -0.140316 0.541429 -0.818647 -0.019367 0.57397 -0.412938 0.378758 0.828266 -0.408765 0.524816 0.746645 -0.259999 0.271534 0.926644 -0.271957 0.096179 0.957491 -0.147256 0.222584 0.963728 -0.102711 0.202795 0.97382 -0.719862 -0.691679 -0.058134 -0.918293 -0.326785 0.223494 -0.895006 -0.445995 -0.007286 -0.45904 -0.888372 -0.008759 -0.674319 -0.235949 0.69973 -0.572333 0.29581 0.764808 -0.814183 0.125448 0.566893 -0.324908 0.345289 0.88046 -0.770932 -0.608865 -0.18694 -0.709198 -0.691776 -0.135954 -0.638043 -0.765497 -0.083162 -0.549292 -0.80253 0.232861 -0.211538 0.286477 0.934442 -0.154779 0.141449 0.977771 -0.731189 0.226185 0.643586 -0.750857 -0.594056 0.288637 -0.558581 -0.319107 0.76561 -0.056963 0.390265 0.918939 -0.182075 -0.215875 0.959295 -0.184021 -0.544855 0.818089 -0.509906 -0.08846 0.85567 -0.484695 0.386342 0.784736 -0.389028 0.226579 0.892927 -0.502489 -0.005846 0.864564 -0.136004 -0.847778 0.512616 -0.35513 -0.616136 0.703035 -0.314496 -0.565525 0.762413 -0.45066 -0.482596 0.751003 -0.476055 -0.528128 0.703173 -0.492577 -0.029677 0.869763 -0.508335 -0.427393 0.747617 -0.333431 -0.550961 0.765027 -0.280525 0.040797 0.958979 -0.115683 -0.504072 0.855879 0.080757 -0.853996 0.513974 -0.287294 -0.207095 0.935187 -0.234914 -0.52665 0.81698 -0.136031 0.614487 0.777111 0.062713 -0.892464 0.446738 -0.442063 -0.32199 0.837199 -0.510331 -0.279149 0.813411 -0.047502 -0.610307 0.790739 -0.491681 -0.341074 0.801198 -0.337029 -0.445089 0.829643 -0.249262 -0.794099 0.554325 -0.563946 -0.275843 0.77838 -0.143544 0.566633 0.81137 -0.950924 -0.040334 0.306785 -0.972556 -0.073974 0.220594 -0.479281 0.13719 0.866873 -0.348294 0.160193 0.923596 -0.356794 0.33634 0.871535 -0.302295 0.348586 0.88719 -0.760415 -0.058111 0.646832 -0.764249 -0.103865 0.636502 -0.603024 -0.159587 0.781597 -0.571898 -0.065839 0.817679 -0.298838 -0.177171 0.937713 -0.286124 -0.419648 0.861411 -0.264255 -0.544277 0.796198 -0.308989 -0.599491 0.738334 -0.410682 -0.475889 0.777734 -0.221627 -0.66372 0.714393 -0.307019 -0.640846 0.703602 -0.652856 -0.027467 0.756984 -0.618581 -0.353203 0.701858 -0.887294 0.395336 0.237526 -0.584605 0.666415 0.46274 -0.176039 -0.262341 0.948782 -0.284054 -0.478653 0.830785 -0.421571 -0.516363 0.745417 -0.37385 -0.533016 0.759032 -0.327268 -0.491723 0.80691 0.367587 0.491952 0.789217 -0.128398 0.685491 0.71667 0.653036 0.201253 0.730097 -0.145752 -0.224342 0.963549 0.863367 -0.49072 0.117439 0.663981 -0.713676 0.223151 0.723284 0.619024 0.306056 0.952061 0.262306 0.157398 0.253872 0.954697 0.155248 0.356509 0.934278 0.005009 0.636119 -0.7647 0.102892 0.741484 -0.67096 0.003861 0.44465 -0.879758 -0.16826 0.364175 -0.928565 -0.071716 0.081377 -0.917012 -0.39047 0.040051 -0.9579 -0.284294 -0.341433 -0.118403 0.932419 -0.038186 -0.057721 0.997602 0.273808 -0.776789 0.567122 -0.099674 -0.855614 0.507927 -0.203068 0.273109 0.940306 -0.152266 0.090217 0.984213 -0.627183 -0.769639 -0.119571 -0.625119 -0.775218 -0.090902 -0.423649 -0.855167 -0.298682 -0.422244 -0.801037 -0.424323 0.346919 -0.535404 0.770058 0.03202 0.12797 0.991261 0.034408 0.20901 0.977308 -0.027336 0.5636 0.825595 -0.322218 0.125055 0.938369 -0.253582 0.418445 0.872124 -0.226331 -0.260108 0.938679 -0.042766 -0.071258 0.996541 -0.583326 0.170685 0.794101 -0.413764 0.903136 0.114649 -0.956711 0.220451 -0.190013 -0.064871 0.950548 0.303727 -0.073764 0.914714 0.397312 0.037672 -0.406432 0.912904 -0.804962 -0.583371 -0.108234 -0.804962 -0.583371 -0.108234 -0.351467 0.056444 0.934497 -0.600167 0.315423 0.735056 -0.717557 -0.619207 0.318895 -0.696092 0.195451 0.690837 -0.24297 0.965982 0.088563 -0.183095 0.909816 0.372439 -0.905035 0.345634 0.247888 -0.171546 -0.615124 0.769542 -0.310607 -0.655276 0.688576 -0.676679 -0.272352 0.684054 -0.925698 -0.359828 0.116649 -0.974956 0.098844 0.199226 -0.235513 0.072725 0.969146 0.031843 0.017526 0.999339 -0.059657 0.990729 -0.122051 -0.086696 0.972908 0.214323 -0.831633 -0.45575 0.317297 -0.755137 -0.283219 0.591232 -0.755137 -0.283219 0.591232 -0.831633 -0.45575 0.317297 0.070637 0.826576 -0.558375 0.046332 0.840236 -0.540238 -0.282376 0.858201 -0.428666 -0.217475 0.834053 -0.507012 -0.988577 0.082441 -0.126168 -0.988577 0.082441 -0.126168 -0.069111 -0.835689 0.544837 -0.008099 -0.910941 0.412457 0.157567 -0.881752 0.444619 0.095755 -0.947946 0.303694 -0.146586 0.960938 -0.234758 0.065083 0.8858 -0.45948 -0.123402 -0.831572 0.541535 0.206524 -0.893866 0.397934 0.064361 -0.953053 0.295883 -0.155502 -0.833552 0.530105 -0.720576 -0.208297 0.661349 -0.720576 -0.208297 0.661349 -0.883507 0.000442 0.468418 -0.883507 0.000442 0.468418 -0.314435 -0.941237 -0.123303 -0.519816 -0.845061 -0.125156 -0.31663 0.941064 -0.11893 -0.31663 0.941064 -0.11893 0.018021 0.998291 0.055597 0.141693 0.942862 0.301554 0.094882 0.994904 -0.034114 -0.073488 -0.979155 0.189354 0.176964 -0.365037 0.914019 -0.160991 -0.403213 0.900834 -0.160991 -0.403213 0.900834 0.343288 -0.932637 -0.111092 0.167125 -0.976085 -0.139024 -0.109878 0.779742 0.616384 -0.103605 0.847582 0.520453 0.456427 0.884724 0.094541 0.160664 0.90966 -0.383022 0.071922 0.221853 0.972424 0.469644 0.12189 0.874401 0.469644 0.12189 0.874401 0.071922 0.221853 0.972424 -0.354874 -0.933219 0.056278 -0.134067 -0.843504 0.520121 -0.478272 0.01799 0.878028 -0.478272 0.01799 0.878028 -0.100006 0.861884 -0.497146 -0.191364 -0.606782 0.771489 -0.46283 -0.42409 0.778419 0.584707 -0.000614 0.811244 -0.106267 -0.466271 0.878236 -0.139445 -0.598159 0.789152 0.312788 -0.226584 0.922401 0.312788 -0.226584 0.922401 0.312788 -0.226584 0.922401 0.312788 -0.226584 0.922401 0.312788 -0.226584 0.922401 0.312788 -0.226584 0.922401 -0.531268 -0.066218 0.844612 -0.679113 -0.210139 0.703311 -0.665264 -0.266247 0.697522 0.16525 -0.167811 0.97187 0.101132 -0.41503 0.904169 0.408043 0.874729 -0.26144 0.274609 0.960282 -0.049476 -0.045242 0.964638 -0.259665 0.080428 0.877672 -0.472465 0.674461 0.738294 0.004799 0.528255 0.816074 0.234456 0.839511 0.493624 0.227061 0.683678 0.550948 0.478583 0.924296 0.147923 0.351847 0.765806 0.165798 0.621331 0.530507 0.167371 0.830993 0.746567 -0.312423 0.587392 0.514186 -0.317413 0.796782 0.905038 -0.277215 0.32258 0.74232 -0.658184 0.125517 0.585699 -0.726351 0.359681 0.484379 -0.865981 -0.124311 0.342271 -0.935844 0.083939 0.26506 -0.915268 -0.303361 0.147602 -0.984661 -0.093042 0.021296 -0.992251 0.122411 0.046934 -0.983833 -0.172832 -0.044983 -0.997052 0.062165 0.135955 -0.907673 -0.397046 -0.106278 -0.817097 -0.56662 -0.207159 -0.935321 -0.28681 -0.619691 -0.153512 -0.769686 -0.868819 -0.206559 -0.449985 -0.704942 -0.535394 -0.465198 -0.460233 -0.433935 -0.774523 -0.167358 0.985442 -0.029932 -0.466285 0.884053 -0.032076 -0.385566 0.872571 -0.299931 0.122337 0.978606 0.165422 0.339754 0.828437 0.445263 0.465063 0.558175 0.687137 0.379447 -0.733452 0.563975 0.177351 -0.941749 0.285753 -0.286418 -0.957886 0.020494 -0.546648 -0.628193 0.553669 -0.546648 -0.628193 0.553669 -0.251063 -0.644277 0.722408 -0.251063 -0.644277 0.722408 -0.778414 -0.515587 0.35811 -0.778414 -0.515587 0.35811 -0.899582 -0.365054 0.239767 -0.899582 -0.365054 0.239767 0.491556 -0.870807 0.008262 0.491556 -0.870807 0.008262 0.623805 -0.768862 -0.140424 0.623805 -0.768862 -0.140424 0.194843 0.980212 -0.03493 0.026496 0.999124 -0.032393 0.026496 0.999124 -0.032393 0.194843 0.980212 -0.03493 -0.052799 0.996252 -0.068521 -0.052799 0.996252 -0.068521 -0.256532 0.952665 -0.163156 -0.256532 0.952665 -0.163156 -0.382292 -0.87952 -0.283368 -0.131297 -0.983412 -0.125146 -0.131297 -0.983412 -0.125146 -0.382292 -0.87952 -0.283368 0 0.332603 0.943067 0 0.576645 0.816995 0.13765 0.53635 0.832695 0.122941 0.389956 0.912589 0 0.989711 -0.143082 0.382057 0.916236 -0.120596 0.382057 0.916236 -0.120596 0 0.989711 -0.143082 -0.973126 -0.225083 -0.048617 -0.832467 -0.5482 -0.080474 0 0.026775 0.999641 0.098546 0.026644 0.994776 0.21058 -0.262121 0.94178 0 -0.209198 0.977873 -0.050121 0.043454 -0.997797 -0.07469 0.470008 -0.879496 -0.07469 0.470008 -0.879496 -0.050121 0.043454 -0.997797 -0.049909 -0.530798 -0.846028 -0.038952 -0.130297 -0.99071 -0.038952 -0.130297 -0.99071 -0.049909 -0.530798 -0.846028 -0.987586 0.141308 -0.068595 -0.960608 0.10428 -0.2576 -0.95738 -0.142534 -0.251211 -0.986912 -0.147785 -0.064524 -0.069256 0.850197 -0.52189 -0.069256 0.850197 -0.52189 -0.953529 0.289289 -0.084226 -0.935731 0.231566 -0.266055 -0.93205 -0.258297 -0.254098 -0.956299 -0.282226 -0.076424 -0.073436 -0.880103 -0.46907 -0.073436 -0.880103 -0.46907 -0.960051 0.213816 0.180511 -0.969559 -0.133813 0.20506 -0.969559 -0.133813 0.20506 -0.960051 0.213816 0.180511 -0.243272 0.666366 0.704823 -0.424081 0.675252 0.603482 -0.424081 0.675252 0.603482 -0.243272 0.666366 0.704823 -0.530316 -0.745841 -0.403095 -0.340645 -0.618075 -0.70848 -0.689165 0.721889 0.062666 -0.937942 0.342143 0.056592 -0.884171 0.351511 -0.307704 -0.652633 0.722446 -0.228348 0.253087 -0.380446 0.889499 -1e-006 -0.401987 0.915645 -0.559874 0.66079 -0.499897 -0.274134 0.792241 -0.545164 0.409356 0.909673 -0.070158 0.409356 0.909673 -0.070158 -0.643646 -0.764557 -0.034239 -0.711634 0.313507 -0.628722 0.051554 -0.564118 0.824083 0.051554 -0.564118 0.824083 -0.539774 0.145197 0.829194 -0.539774 0.145197 0.829194 -0.452108 0.067717 0.889389 -0.452108 0.067717 0.889389 -0.561229 0.180122 0.807823 -0.561229 0.180122 0.807823 -0.517796 0.046229 0.854254 -0.517796 0.046229 0.854254 -0.545382 0.14984 0.824685 -0.545382 0.14984 0.824685 -0.556864 -0.190866 0.808377 -0.562034 -0.183251 0.806559 -0.562034 -0.183251 0.806559 -0.556864 -0.190866 0.808377 -0.843291 0.483949 0.23378 -0.843291 0.483949 0.23378 -0.486436 -0.103501 0.867564 -0.486436 -0.103501 0.867564 -0.01427 0.596967 0.802139 -0.01427 0.596967 0.802139 0.150612 0.508985 0.847496 0.150612 0.508985 0.847496 -0.200208 -0.000179 0.979753 -0.200691 0.019074 0.979469 -0.200691 0.019074 0.979469 -0.200208 -0.000179 0.979753 0.244918 -0.434275 0.866845 0.244918 -0.434275 0.866845 -0.294283 0.030397 0.955235 -0.294283 0.030397 0.955235 -0.223467 0.018849 0.974529 -0.223467 0.018849 0.974529 -0.245309 0.035581 0.968792 -0.245309 0.035581 0.968792 -0.521699 -0.095171 0.847804 -0.521699 -0.095171 0.847804 -0.658397 0.627618 0.415463 -0.658397 0.627618 0.415463 -0.361373 -0.028758 0.931978 -0.361373 -0.028758 0.931978 -0.229478 -0.01806 0.973146 -0.229478 -0.01806 0.973146 -0.955545 0.190171 0.225319 -0.961326 -0.146794 0.233031 -0.930012 -0.144083 0.33811 -0.92347 0.205121 0.324236 -0.928999 -0.304074 0.210949 -0.897644 -0.307595 0.315626 -0.8796 0.379792 0.286464 -0.912491 0.359878 0.194545 -0.181147 0.904202 -0.386788 -0.181147 0.904202 -0.386788 -0.235083 -0.907324 -0.348568 -0.235083 -0.907324 -0.348568 -0.202153 -0.000539 0.979354 -0.202153 -0.000539 0.979354 0.157348 -0.987458 0.013005 0.157348 -0.987458 0.013005 0.40366 -0.801867 -0.440532 0.40366 -0.801867 -0.440532 0 -0.791036 -0.61177 0 -0.791036 -0.61177 -0.437051 -0.824377 -0.359707 -0.437051 -0.824377 -0.359707 -0.345293 0.886211 -0.308873 -0.345293 0.886211 -0.308873 -0.408042 0.874728 -0.261444 -0.080428 0.877669 -0.472471 0.045242 0.964637 -0.259671 -0.274609 0.960282 -0.049475 0.899629 -0.364936 0.23977 0.779044 -0.514447 0.358378 0.779044 -0.514447 0.358378 0.899629 -0.364936 0.23977 -0.674461 0.738295 0.004799 -0.528255 0.816075 0.234454 -0.683678 0.550947 0.478583 -0.839511 0.493623 0.227062 0.960051 0.213815 0.180512 0.969559 -0.133813 0.205061 0.969559 -0.133813 0.205061 0.960051 0.213815 0.180512 -0.924295 0.147922 0.351848 -0.765807 0.165798 0.62133 -0.530509 0.167372 0.830991 -0.515281 -0.317779 0.795928 -0.746985 -0.312545 0.586796 -0.905039 -0.277218 0.322574 -0.587356 -0.726132 0.357413 -0.742319 -0.658185 0.125516 -0.484381 -0.865984 -0.124286 -0.344936 -0.935192 0.08022 0.243745 0.665942 0.70506 0.424498 0.674273 0.604282 0.424498 0.674273 0.604282 0.243745 0.665942 0.70506 -0.265063 -0.915274 -0.303341 -0.149752 -0.984009 -0.096441 -0.025752 -0.992959 0.115625 0.043431 -0.997281 0.059534 -0.047716 -0.983568 -0.17412 -0.135955 -0.907675 -0.397043 0.207158 -0.935319 -0.286816 0.106276 -0.817095 -0.566622 0.619601 -0.153494 -0.769762 0.460233 -0.433934 -0.774524 0.70494 -0.535392 -0.465203 0.868777 -0.206558 -0.450067 0.883983 0.351945 -0.307748 0.712382 0.314297 -0.627478 0.200207 -0.000179 0.979754 0.200207 -0.000179 0.979754 0.202152 -0.000539 0.979354 0.202152 -0.000539 0.979354 0.167358 0.985441 -0.029939 0.385565 0.872569 -0.299938 0.466285 0.884052 -0.032087 -0.122337 0.978605 0.165428 -0.339754 0.828439 0.44526 -0.465063 0.558176 0.687136 -0.383544 -0.734197 0.560223 -0.183278 -0.942704 0.278782 0.286418 -0.957886 0.020485 0.251465 -0.642397 0.723942 0.547828 -0.62595 0.555041 0.547828 -0.62595 0.555041 0.251465 -0.642397 0.723942 0.381392 -0.878889 -0.28652 0.129576 -0.983092 -0.12938 0.129576 -0.983092 -0.12938 0.381392 -0.878889 -0.28652 -0.492422 -0.87032 0.007973 -0.159461 -0.987141 0.011142 -0.159461 -0.987141 0.011142 -0.492422 -0.87032 0.007973 -0.194843 0.980212 -0.034936 -0.026496 0.999124 -0.03239 -0.026496 0.999124 -0.03239 -0.194843 0.980212 -0.034936 0.052799 0.996252 -0.068513 0.256532 0.952667 -0.163149 0.256532 0.952667 -0.163149 0.052799 0.996252 -0.068513 0.436774 -0.824286 -0.36025 0.436774 -0.824286 -0.36025 -0.12294 0.389957 0.912589 -0.098545 0.026644 0.994776 -0.40366 -0.801866 -0.440532 -0.40366 -0.801866 -0.440532 -0.137649 0.53635 0.832695 -0.382057 0.916236 -0.1206 -0.382057 0.916236 -0.1206 0.937888 0.342589 0.054766 0.97312 -0.225096 -0.048681 0.832466 -0.548199 -0.080483 -0.210581 -0.262122 0.941779 -0.253088 -0.380447 0.889498 0.050109 0.04344 -0.997799 0.074516 0.469992 -0.87952 0.074516 0.469992 -0.87952 0.050109 0.04344 -0.997799 0.038953 -0.130298 -0.990709 0.038953 -0.130298 -0.990709 0.04991 -0.530797 -0.846028 0.04991 -0.530797 -0.846028 0.073436 -0.880101 -0.469072 0.235083 -0.907324 -0.348568 0.235083 -0.907324 -0.348568 0.073436 -0.880101 -0.469072 0.987595 0.141264 -0.068566 0.986912 -0.147785 -0.064524 0.957381 -0.142534 -0.25121 0.960623 0.104222 -0.257567 0.069028 0.850203 -0.52191 0.069028 0.850203 -0.52191 0.181074 0.904217 -0.386786 0.181074 0.904217 -0.386786 0.95356 0.289204 -0.084171 0.912497 0.359851 0.194566 0.955546 0.190157 0.225329 0.935776 0.231453 -0.265994 0.956299 -0.282226 -0.076424 0.961326 -0.146794 0.233031 0.928999 -0.304074 0.210949 0.93205 -0.258298 -0.254097 0.530314 -0.745838 -0.403104 0.340642 -0.618071 -0.708485 0.688965 0.722224 0.060989 0.652485 0.722592 -0.228305 -0.244919 -0.434276 0.866844 -0.051646 -0.563495 0.824504 -0.051646 -0.563495 0.824504 -0.244919 -0.434276 0.866844 0.274134 0.792239 -0.545168 0.560426 0.661445 -0.498411 -0.409355 0.909673 -0.070162 -0.409355 0.909673 -0.070162 0.643646 -0.764556 -0.03425 -0.623805 -0.768862 -0.140424 -0.623805 -0.768862 -0.140424 0.53949 0.146324 0.82918 0.45197 0.068264 0.889417 0.45197 0.068264 0.889417 0.53949 0.146324 0.82918 0.561086 0.180704 0.807792 0.561086 0.180704 0.807792 0.517798 0.04623 0.854253 0.545385 0.14984 0.824684 0.545385 0.14984 0.824684 0.517798 0.04623 0.854253 0.556999 -0.19075 0.808311 0.556999 -0.19075 0.808311 0.562127 -0.183194 0.806507 0.562127 -0.183194 0.806507 0.843257 0.483929 0.233946 0.843257 0.483929 0.233946 0.486483 -0.103503 0.867538 0.486483 -0.103503 0.867538 0.245309 0.035582 0.968792 0.245309 0.035582 0.968792 0.01427 0.596965 0.80214 0.01427 0.596965 0.80214 -0.150612 0.508985 0.847496 -0.150612 0.508985 0.847496 0.200692 0.019074 0.979469 0.200692 0.019074 0.979469 0.294281 0.030397 0.955235 0.294281 0.030397 0.955235 0.223467 0.018848 0.974529 0.223467 0.018848 0.974529 0.521752 -0.095169 0.847772 0.521752 -0.095169 0.847772 0.658355 0.627125 0.416272 0.658355 0.627125 0.416272 0.361407 -0.028704 0.931966 0.361407 -0.028704 0.931966 0.229477 -0.018061 0.973147 0.229477 -0.018061 0.973147 0.345294 0.886214 -0.308865 0.345294 0.886214 -0.308865 0.92347 0.205122 0.324234 0.930012 -0.144083 0.33811 0.897644 -0.307595 0.315627 0.879601 0.379793 0.286461 0.351254 0.337235 0.873438 0.472797 0.137385 0.870396 -0.994006 0.020506 0.107385 + + + + + + + + + + 0.954698 0.784968 0.95237 0.786397 0.931244 0.786397 0.928916 0.784968 0.954698 0.802442 0.928916 0.802442 0.931244 0.800715 0.95237 0.800715 0.234911 0.963878 0.238192 0.961984 0.240815 0.971771 0.237026 0.971771 0.229134 0.9581 0.231028 0.954819 0.221241 0.955985 0.221241 0.952196 0.213348 0.9581 0.211454 0.954819 0.20757 0.963878 0.204289 0.961984 0.205455 0.971771 0.201666 0.971771 0.20757 0.979663 0.204289 0.981558 0.213348 0.985442 0.211454 0.988722 0.221241 0.987556 0.221241 0.991345 0.229134 0.985442 0.231028 0.988722 0.234911 0.979663 0.238192 0.981558 0.232369 0.965319 0.234078 0.971699 0.232369 0.97808 0.227697 0.982751 0.221317 0.984461 0.214936 0.982751 0.210265 0.97808 0.208555 0.971699 0.210265 0.965319 0.214936 0.960647 0.221317 0.958938 0.227697 0.960647 0.187349 0.80804 0.187999 0.809481 0.168654 0.808377 0.168344 0.807154 0.188391 0.814547 0.168858 0.813346 0.139823 0.812644 0.139947 0.807784 0.168784 0.827769 0.188177 0.828837 0.187617 0.842901 0.16854 0.842068 0.139902 0.841648 0.139817 0.827155 0.18697 0.847286 0.168231 0.846668 0.18658 0.848342 0.168028 0.847817 0.140175 0.847451 0.140052 0.846451 0.140097 0.806359 0.102981 0.813239 0.103606 0.80844 0.103073 0.842225 0.102814 0.827721 0.104351 0.848041 0.103727 0.847087 0.104261 0.806849 0.077461 0.813422 0.078451 0.808622 0.079441 0.807294 0.077461 0.842425 0.077131 0.827912 0.079441 0.848246 0.078451 0.847293 0.251847 0.125197 0.252503 0.105459 0.257387 0.100619 0.256942 0.137676 0.27548 0.146219 0.275144 0.086929 0.297576 0.145954 0.298365 0.080705 0.322185 0.144891 0.322542 0.081875 0.346232 0.1081 0.344831 0.12835 0.339448 0.136024 0.341558 0.097365 0.051067 0.962082 0.051068 0.976836 0.044786 0.962083 0.044786 0.976836 0.038504 0.962082 0.038504 0.976836 0.032223 0.962083 0.032223 0.976836 0.025941 0.962082 0.025941 0.976836 0.01966 0.962082 0.01966 0.976836 0.051068 0.947329 0.044786 0.947329 0.038504 0.947329 0.032223 0.947329 0.025941 0.947329 0.01966 0.947329 0.051067 0.932575 0.044786 0.932575 0.038504 0.932575 0.032223 0.932575 0.025941 0.932575 0.01966 0.932575 0.051068 0.917821 0.044786 0.917821 0.038504 0.917821 0.032223 0.917821 0.025941 0.917821 0.01966 0.917821 0.051068 0.903067 0.044786 0.903067 0.038504 0.903067 0.032223 0.903067 0.025941 0.903067 0.01966 0.903067 0.051068 0.888314 0.044786 0.888314 0.038504 0.888314 0.032223 0.888314 0.025941 0.888314 0.01966 0.888314 0.051067 0.87356 0.044786 0.87356 0.038504 0.87356 0.032223 0.87356 0.025941 0.87356 0.01966 0.87356 0.051068 0.858806 0.044786 0.858806 0.038504 0.858806 0.032223 0.858806 0.025941 0.858806 0.01966 0.858806 0.051067 0.844052 0.044786 0.844052 0.038504 0.844052 0.032223 0.844052 0.025941 0.844052 0.01966 0.844052 0.051068 0.829298 0.044786 0.829298 0.038504 0.829298 0.032223 0.829298 0.025941 0.829298 0.01966 0.829298 0.051068 0.814545 0.044786 0.814545 0.038504 0.814545 0.032223 0.814545 0.025941 0.814545 0.01966 0.814545 0.051068 0.799791 0.044786 0.799791 0.038504 0.799791 0.032223 0.799791 0.025941 0.799791 0.01966 0.799791 0.051067 0.785037 0.044786 0.785037 0.038504 0.785037 0.032223 0.785037 0.025941 0.785037 0.01966 0.785037 0.051068 0.770283 0.044786 0.770283 0.038504 0.770283 0.032223 0.770283 0.025941 0.770283 0.01966 0.770283 0.051067 0.755529 0.044786 0.755529 0.038504 0.755529 0.032223 0.755529 0.025941 0.755529 0.01966 0.755529 0.240815 0.971771 0.238192 0.961984 0.234911 0.963878 0.237026 0.971771 0.231028 0.954819 0.229134 0.9581 0.221241 0.952196 0.221241 0.955985 0.211454 0.954819 0.213348 0.9581 0.204289 0.961984 0.20757 0.963878 0.201666 0.971771 0.205455 0.971771 0.204289 0.981558 0.20757 0.979663 0.211454 0.988722 0.213348 0.985442 0.221241 0.991345 0.221241 0.987556 0.231028 0.988722 0.229134 0.985442 0.238192 0.981558 0.234911 0.979663 0.210265 0.965319 0.208555 0.971699 0.210265 0.97808 0.214936 0.982751 0.221317 0.984461 0.227697 0.982751 0.232369 0.97808 0.234078 0.971699 0.232369 0.965319 0.227697 0.960647 0.221317 0.958938 0.214936 0.960647 0.097223 0.758684 0.077878 0.759788 0.078528 0.7582 0.097533 0.75724 0.097019 0.763653 0.077486 0.764854 0.12578 0.75685 0.0777 0.779144 0.097093 0.778076 0.07826 0.793208 0.097337 0.792375 0.097646 0.796975 0.078907 0.797593 0.097849 0.798271 0.079297 0.798797 0.12593 0.758091 0.126054 0.762951 0.161616 0.757562 0.12606 0.777462 0.125975 0.791955 0.125825 0.796758 0.125702 0.797906 0.162271 0.758747 0.162896 0.763546 0.187426 0.758929 0.188416 0.763729 0.186436 0.757749 0.163063 0.778028 0.162804 0.792532 0.188746 0.778219 0.188416 0.792732 0.16215 0.797394 0.161526 0.798532 0.187426 0.7976 0.186436 0.798627 0.257387 0.100619 0.252503 0.105459 0.251847 0.125197 0.256942 0.137676 0.27548 0.146219 0.275144 0.086929 0.297576 0.145954 0.298365 0.080705 0.322185 0.144891 0.322542 0.081875 0.339448 0.136024 0.344831 0.12835 0.346232 0.1081 0.341558 0.097365 0.051067 0.962082 0.051068 0.976836 0.044786 0.962083 0.044786 0.976836 0.038504 0.962082 0.038504 0.976836 0.032223 0.962083 0.032223 0.976836 0.025941 0.962082 0.025941 0.976836 0.01966 0.962082 0.01966 0.976836 0.051068 0.947329 0.044786 0.947329 0.038504 0.947329 0.032223 0.947329 0.025941 0.947329 0.01966 0.947329 0.051067 0.932575 0.044786 0.932575 0.038504 0.932575 0.032223 0.932575 0.025941 0.932575 0.01966 0.932575 0.051068 0.917821 0.044786 0.917821 0.038504 0.917821 0.032223 0.917821 0.025941 0.917821 0.01966 0.917821 0.051068 0.903067 0.044786 0.903067 0.038504 0.903067 0.032223 0.903067 0.025941 0.903067 0.01966 0.903067 0.051068 0.888314 0.044786 0.888314 0.038504 0.888314 0.032223 0.888314 0.025941 0.888314 0.01966 0.888314 0.051067 0.87356 0.044786 0.87356 0.038504 0.87356 0.032223 0.87356 0.025941 0.87356 0.01966 0.87356 0.051068 0.858806 0.044786 0.858806 0.038504 0.858806 0.032223 0.858806 0.025941 0.858806 0.01966 0.858806 0.051067 0.844052 0.044786 0.844052 0.038504 0.844052 0.032223 0.844052 0.025941 0.844052 0.01966 0.844052 0.051068 0.829298 0.044786 0.829298 0.038504 0.829298 0.032223 0.829298 0.025941 0.829298 0.01966 0.829298 0.051068 0.814545 0.044786 0.814545 0.038504 0.814545 0.032223 0.814545 0.025941 0.814545 0.01966 0.814545 0.051068 0.799791 0.044786 0.799791 0.038504 0.799791 0.032223 0.799791 0.025941 0.799791 0.01966 0.799791 0.051067 0.785037 0.044786 0.785037 0.038504 0.785037 0.032223 0.785037 0.025941 0.785037 0.01966 0.785037 0.051068 0.770283 0.044786 0.770283 0.038504 0.770283 0.032223 0.770283 0.025941 0.770283 0.01966 0.770283 0.051067 0.755529 0.044786 0.755529 0.038504 0.755529 0.032223 0.755529 0.025941 0.755529 0.01966 0.755529 0.955191 0.780687 0.950947 0.775432 0.950015 0.764907 0.947414 0.730671 0.949575 0.721738 0.947097 0.723361 0.935437 0.730671 0.932836 0.764907 0.931904 0.775432 0.92766 0.780687 0.933276 0.721738 0.935753 0.723361 0.951205 0.721846 0.981027 0.721846 0.977148 0.724279 0.955084 0.724279 0.974944 0.780783 0.972647 0.77835 0.957288 0.780783 0.959584 0.77835 0.973746 0.729099 0.958485 0.729099 0.970915 0.770157 0.973 0.738754 0.970662 0.776861 0.959232 0.738754 0.961317 0.770157 0.96157 0.776861 0.96374 0.772373 0.968492 0.772373 0.963865 0.774646 0.968366 0.774646 0.961129 0.731319 0.971103 0.731319 0.961617 0.736534 0.970615 0.736534 0.971423 0.814504 0.971423 0.814504 0.974956 0.808345 0.974956 0.808345 0.970036 0.820662 0.960195 0.820662 0.960195 0.820662 0.970036 0.820662 0.958807 0.814504 0.958807 0.814504 0.955274 0.808345 0.958741 0.802459 0.958741 0.802459 0.955274 0.808345 0.965115 0.80098 0.965115 0.80098 0.971489 0.802459 0.971489 0.802459 0.970916 0.803072 0.974123 0.808417 0.970828 0.814233 0.959403 0.814233 0.956108 0.808417 0.959315 0.803072 0.965115 0.801593 0.969476 0.820049 0.960755 0.820049 0.963616 0.794583 0.962829 0.796039 0.961258 0.794593 0.962006 0.793398 0.962829 0.796039 0.961443 0.796944 0.960749 0.794925 0.963616 0.794583 0.962006 0.793398 0.961258 0.794593 0.962829 0.796039 0.960749 0.794925 0.961443 0.796944 0.962829 0.796039 0.964507 0.796138 0.964507 0.795135 0.967238 0.795135 0.967238 0.796138 0.967238 0.793591 0.964507 0.793591 0.963719 0.789097 0.961258 0.787688 0.962829 0.786242 0.960749 0.787356 0.961443 0.785337 0.962829 0.786242 0.958609 0.78732 0.95901 0.785786 0.961443 0.785337 0.960749 0.787356 0.963719 0.789097 0.961547 0.788222 0.962829 0.786242 0.962829 0.786242 0.961443 0.785337 0.960749 0.787356 0.958609 0.78732 0.960749 0.787356 0.961443 0.785337 0.95901 0.785786 0.967238 0.786379 0.964507 0.786379 0.964507 0.784732 0.967238 0.784732 0.967238 0.787383 0.964507 0.787383 0.967238 0.789424 0.964507 0.789424 0.961585 0.789097 0.963923 0.790195 0.963719 0.793184 0.961585 0.793184 0.961585 0.793184 0.963533 0.792182 0.963719 0.789097 0.961585 0.789097 0.967677 0.788012 0.967677 0.787414 0.970531 0.787414 0.970531 0.788012 0.967677 0.787005 0.967677 0.78461 0.970531 0.78461 0.970531 0.787005 0.970531 0.794438 0.967677 0.794438 0.967677 0.794388 0.970531 0.794388 0.970531 0.796832 0.967677 0.796832 0.967677 0.788993 0.970531 0.788993 0.970531 0.792431 0.967677 0.792431 0.085731 0.618849 0.082027 0.653815 0.069606 0.696763 0.047118 0.706421 0.022921 0.689467 0.009905 0.641767 0.009177 0.606571 0.014153 0.575992 0.024213 0.565301 0.05273 0.556512 0.077224 0.563953 0.084878 0.579416 0.089687 0.618522 0.088715 0.576361 0.079901 0.558556 0.053207 0.550256 0.022966 0.559575 0.011041 0.57225 0.005225 0.606768 0.005983 0.643787 0.019712 0.694065 0.046398 0.712665 0.072225 0.701306 0.085883 0.654474 0.853541 0.296385 0.804697 0.294964 0.80267 0.263926 0.962168 0.256941 0.94087 0.257468 0.94469 0.230565 0.960677 0.231205 0.854898 0.262586 0.855926 0.236941 0.897905 0.23305 0.803864 0.241446 0.896846 0.260084 0.895468 0.294592 0.93746 0.290833 0.958272 0.286538 0.793707 0.266543 0.769705 0.273077 0.795893 0.289597 0.771517 0.309855 0.793744 0.241481 0.961042 0.217202 0.944228 0.217178 0.978384 0.256243 0.977061 0.228047 0.89964 0.216839 0.767904 0.228873 0.895358 0.313058 0.936403 0.309061 0.803957 0.314022 0.801037 0.223629 0.857336 0.220334 0.976612 0.291653 0.899956 0.202343 0.944548 0.202267 0.962804 0.203083 0.993413 0.223157 0.993915 0.256466 0.99332 0.295282 0.937198 0.325325 0.963512 0.300852 0.96689 0.313685 0.896987 0.33147 0.853892 0.333143 0.853271 0.315064 0.805724 0.333624 0.747208 0.314374 0.745436 0.277641 0.744845 0.227243 0.798594 0.206977 0.857071 0.203716 0.73222 0.470737 0.695262 0.465657 0.700165 0.447617 0.696196 0.440901 0.68959 0.465128 0.728014 0.500594 0.72656 0.48808 0.703913 0.473927 0.693874 0.480102 0.706437 0.489056 0.725336 0.450989 0.705776 0.457877 0.737824 0.441948 0.717178 0.437159 0.716243 0.429184 0.701856 0.501261 0.744534 0.485332 0.744655 0.459863 0.695781 0.491865 0.750685 0.455787 0.742555 0.433937 0.687701 0.481073 0.698924 0.511128 0.729533 0.511042 0.68976 0.495065 0.752156 0.486584 0.755964 0.472102 0.715109 0.307336 0.687307 0.304522 0.683585 0.226049 0.67503 0.270508 0.666554 0.26944 0.666891 0.243336 0.724794 0.236861 0.698163 0.231589 0.691477 0.272141 0.669326 0.29846 0.655784 0.272314 0.655892 0.254409 0.655165 0.302638 0.719389 0.275685 0.727588 0.214036 0.704441 0.202091 0.70295 0.398867 0.671194 0.395117 0.653011 0.394032 0.696069 0.203546 0.649866 0.403783 0.630951 0.401959 0.633418 0.392233 0.669275 0.405108 0.702046 0.408007 0.682054 0.219806 0.695233 0.195481 0.667262 0.233326 0.655875 0.245541 0.72758 0.206525 0.705092 0.194343 0.622689 0.392384 0.619546 0.401952 0.649688 0.255829 0.648514 0.273449 0.645157 0.303504 0.65024 0.246914 0.577857 0.303055 0.610231 0.299451 0.538485 0.299643 0.555246 0.301911 0.554554 0.270532 0.5792 0.272081 0.576462 0.233313 0.610132 0.273057 0.603979 0.233908 0.586726 0.208326 0.625622 0.273084 0.632126 0.248422 0.553611 0.237228 0.53697 0.23986 0.540606 0.268107 0.537546 0.268151 0.552731 0.208651 0.536184 0.220196 0.534715 0.208578 0.572159 0.204181 0.594585 0.392645 0.576149 0.392142 0.544256 0.388988 0.559052 0.390832 0.576164 0.401523 0.593264 0.402035 0.55987 0.400318 0.546693 0.398759 0.552468 0.200982 0.571932 0.196032 0.611477 0.227493 0.63457 0.23915 0.535086 0.201058 0.551037 0.201287 0.535622 0.208449 0.591035 0.201736 0.654977 0.791285 0.649168 0.780329 0.652071 0.76875 0.667113 0.76408 0.677733 0.77139 0.679249 0.77994 0.670239 0.792807 0.640636 0.780961 0.630621 0.782043 0.636581 0.756167 0.645056 0.762714 0.649872 0.798279 0.643892 0.806513 0.674109 0.800697 0.679703 0.810233 0.688262 0.780127 0.700633 0.780731 0.685748 0.766912 0.696813 0.761571 0.670858 0.744965 0.66882 0.755396 0.085731 0.618849 0.082027 0.653815 0.069606 0.696763 0.047118 0.706421 0.022921 0.689467 0.009905 0.641767 0.009177 0.606571 0.014153 0.575992 0.024213 0.565301 0.05273 0.556512 0.077224 0.563953 0.084878 0.579416 0.089687 0.618522 0.088715 0.576361 0.079901 0.558556 0.053207 0.550256 0.022966 0.559575 0.011041 0.57225 0.005225 0.606768 0.005983 0.643787 0.019712 0.694065 0.046398 0.712665 0.072225 0.701306 0.085883 0.654474 0.853541 0.296385 0.804697 0.294964 0.80267 0.263926 0.94087 0.257468 0.94469 0.230565 0.960677 0.231205 0.962168 0.256941 0.896846 0.260084 0.854898 0.262586 0.855926 0.236941 0.897905 0.23305 0.803864 0.241446 0.895468 0.294592 0.93746 0.290833 0.958272 0.286538 0.793707 0.266543 0.795893 0.289597 0.771517 0.309855 0.793744 0.241481 0.961042 0.217202 0.944228 0.217178 0.977061 0.228047 0.89964 0.216839 0.767904 0.228873 0.936403 0.309061 0.803957 0.314022 0.801037 0.223629 0.857336 0.220334 0.978384 0.256243 0.976612 0.291653 0.769705 0.273077 0.899956 0.202343 0.944548 0.202267 0.962804 0.203083 0.993413 0.223157 0.993915 0.256466 0.99332 0.295282 0.937198 0.325325 0.963512 0.300852 0.96689 0.313685 0.896987 0.33147 0.895358 0.313058 0.853892 0.333143 0.853271 0.315064 0.805724 0.333624 0.747208 0.314374 0.745436 0.277641 0.744845 0.227243 0.798594 0.206977 0.857071 0.203716 0.73222 0.470737 0.695262 0.465657 0.700165 0.447617 0.696196 0.440901 0.68959 0.465128 0.728014 0.500594 0.72656 0.48808 0.703913 0.473927 0.693874 0.480102 0.706437 0.489056 0.725336 0.450989 0.705776 0.457877 0.737824 0.441948 0.717178 0.437159 0.716243 0.429184 0.701856 0.501261 0.744534 0.485332 0.744655 0.459863 0.695781 0.491865 0.750685 0.455787 0.742555 0.433937 0.687701 0.481073 0.698924 0.511128 0.729533 0.511042 0.68976 0.495065 0.752156 0.486584 0.755964 0.472102 0.715109 0.307336 0.687307 0.304522 0.683585 0.226049 0.67503 0.270508 0.666554 0.26944 0.666891 0.243336 0.724794 0.236861 0.698163 0.231589 0.691477 0.272141 0.669326 0.29846 0.655784 0.272314 0.655892 0.254409 0.655165 0.302638 0.719389 0.275685 0.727588 0.214036 0.704441 0.202091 0.70295 0.398867 0.671194 0.395117 0.653011 0.394032 0.696069 0.203546 0.649866 0.403783 0.630951 0.401959 0.633418 0.392233 0.669275 0.405108 0.702046 0.408007 0.682054 0.219806 0.695233 0.195481 0.667262 0.233326 0.655875 0.245541 0.72758 0.206525 0.705092 0.194343 0.622689 0.392384 0.619546 0.401952 0.649688 0.255829 0.648514 0.273449 0.645157 0.303504 0.65024 0.246914 0.577857 0.303055 0.610231 0.299451 0.538485 0.299643 0.555246 0.301911 0.554554 0.270532 0.5792 0.272081 0.576462 0.233313 0.610132 0.273057 0.603979 0.233908 0.586726 0.208326 0.625622 0.273084 0.632126 0.248422 0.553118 0.23725 0.53697 0.23986 0.540606 0.268107 0.537546 0.268151 0.552731 0.208651 0.536184 0.220196 0.534715 0.208578 0.572159 0.204181 0.594585 0.392645 0.576149 0.392142 0.544256 0.388988 0.559052 0.390832 0.576164 0.401523 0.593264 0.402035 0.55987 0.400318 0.546693 0.398759 0.552468 0.200982 0.571932 0.196032 0.611477 0.227493 0.63457 0.23915 0.535086 0.201058 0.551037 0.201287 0.535622 0.208449 0.591035 0.201736 0.654977 0.791285 0.649168 0.780329 0.652071 0.76875 0.667113 0.76408 0.677733 0.77139 0.679249 0.77994 0.670239 0.792807 0.640636 0.780961 0.630621 0.782043 0.636581 0.756167 0.645056 0.762714 0.649872 0.798279 0.643892 0.806513 0.674109 0.800697 0.679703 0.810233 0.688262 0.780127 0.700633 0.780731 0.685748 0.766912 0.696813 0.761571 0.670858 0.744965 0.66882 0.755396 0.854908 0.750746 0.878597 0.748803 0.884221 0.748549 0.880108 0.802633 0.885173 0.802632 0.889775 0.781007 0.893102 0.801714 0.7953 0.854536 0.801598 0.875063 0.80098 0.89403 0.789332 0.828907 0.840991 0.802537 0.844143 0.802375 0.844305 0.815975 0.838428 0.815995 0.818857 0.899863 0.826566 0.880041 0.840331 0.832145 0.832656 0.859008 0.825195 0.857051 0.833762 0.831789 0.852049 0.885992 0.855066 0.906684 0.848655 0.901248 0.842299 0.9042 0.884655 0.887859 0.890445 0.905571 0.885218 0.903159 0.88032 0.908859 0.894485 0.816336 0.901391 0.836237 0.910197 0.859925 0.821153 0.877746 0.813809 0.897586 0.915179 0.883237 0.916675 0.897916 0.984816 0.896863 0.985897 0.886535 0.992242 0.876969 0.993891 0.896854 0.960289 0.898244 0.982018 0.890889 0.920609 0.870215 0.923886 0.883341 0.92652 0.89722 0.914153 0.835932 0.920465 0.854339 0.939762 0.839419 0.937504 0.822159 0.937626 0.852978 0.92682 0.8687 0.937823 0.86601 0.954576 0.861077 0.947727 0.86987 0.955379 0.829441 0.956905 0.844362 0.963957 0.871435 0.956463 0.879768 0.972163 0.845631 0.968406 0.860656 0.960549 0.890776 0.975057 0.883282 0.980238 0.874242 0.985485 0.864182 0.785174 0.812569 0.879399 0.816124 0.880048 0.835165 0.858693 0.816512 0.85923 0.834186 0.857479 0.862231 0.882001 0.862902 0.840594 0.780925 0.857393 0.800657 0.807307 0.97796 0.813819 0.97396 0.828886 0.976862 0.833407 0.981837 0.818188 0.927069 0.836882 0.931888 0.847118 0.907004 0.843723 0.933343 0.812189 0.925965 0.814589 0.948873 0.808626 0.947708 0.833466 0.953315 0.840738 0.954027 0.805543 0.962673 0.811992 0.964337 0.832578 0.968696 0.839529 0.969455 0.854701 0.99041 0.861661 0.985766 0.879632 0.984554 0.886607 0.990256 0.850098 0.916706 0.851124 0.906973 0.856957 0.937658 0.879323 0.936942 0.884761 0.908658 0.886824 0.935698 0.849306 0.93766 0.857338 0.960345 0.850375 0.959528 0.879855 0.959339 0.887306 0.957745 0.850648 0.977454 0.857779 0.976089 0.882127 0.974788 0.890046 0.973123 0.906704 0.983605 0.911214 0.978025 0.928472 0.974334 0.936805 0.97791 0.888283 0.908177 0.899491 0.933151 0.922044 0.927703 0.930669 0.926728 0.892212 0.93462 0.903074 0.955016 0.896083 0.956106 0.925524 0.949694 0.933135 0.948012 0.89986 0.974493 0.905703 0.970525 0.929753 0.964887 0.936876 0.965953 0.885961 0.907866 0.849255 0.90643 0.855932 0.781242 0.876707 0.780755 0.837887 0.76601 0.855717 0.765763 0.878058 0.764056 0.89145 0.764038 0.880662 0.744353 0.886559 0.74429 0.893211 0.744131 0.837013 0.750925 0.836937 0.74429 0.854554 0.745091 0.855492 0.760682 0.892264 0.759517 0.878448 0.760076 0.88375 0.759702 0.883537 0.764006 0.892869 0.748261 0.837517 0.761255 0.717544 0.781037 0.717906 0.763999 0.723682 0.763997 0.73206 0.763997 0.731434 0.780935 0.741784 0.763943 0.740528 0.78086 0.752333 0.751558 0.760445 0.751449 0.766941 0.780582 0.767043 0.76399 0.772637 0.763986 0.779395 0.763991 0.728973 0.802205 0.718197 0.801216 0.741016 0.803198 0.721092 0.81567 0.738827 0.815488 0.737359 0.833024 0.718827 0.832782 0.784172 0.891795 0.789073 0.875945 0.785295 0.853662 0.718156 0.898017 0.729585 0.882264 0.69267 0.880394 0.711576 0.873668 0.694446 0.884912 0.747773 0.834654 0.747673 0.814824 0.7587 0.897507 0.750487 0.881547 0.752842 0.898658 0.752171 0.906085 0.762318 0.814704 0.766846 0.831445 0.77761 0.831174 0.773156 0.85353 0.694704 0.89626 0.778078 0.878537 0.771497 0.814906 0.640607 0.85834 0.638853 0.863395 0.629939 0.861718 0.631515 0.855394 0.639315 0.866809 0.632728 0.867021 0.685092 0.894531 0.685564 0.886612 0.692658 0.866392 0.681109 0.874891 0.690062 0.84532 0.683626 0.837994 0.699315 0.825638 0.673262 0.83144 0.699332 0.852883 0.688879 0.8551 0.669361 0.872517 0.678986 0.864638 0.661046 0.836713 0.670338 0.851693 0.666674 0.845131 0.667373 0.867165 0.670871 0.860904 0.660683 0.872462 0.648121 0.848156 0.643759 0.843926 0.651771 0.854855 0.630876 0.850476 0.651657 0.863152 0.64884 0.867423 0.642782 0.871885 0.714588 0.853951 0.701304 0.836868 0.759788 0.802849 0.751861 0.802001 0.733653 0.856903 0.746676 0.854063 0.732724 0.872853 0.768138 0.80195 0.773028 0.870579 0.77935 0.969568 0.777913 0.980258 0.79471 0.966262 0.799142 0.975894 0.763398 0.90259 0.789822 0.92397 0.760705 0.906941 0.764702 0.932087 0.770546 0.929076 0.793374 0.94418 0.773553 0.948312 0.79709 0.924208 0.800591 0.947729 0.766588 0.951276 0.775905 0.961468 0.795403 0.957131 0.804417 0.964005 0.770372 0.971119 0.731617 0.977158 0.727273 0.984589 0.749321 0.977452 0.752148 0.985394 0.729075 0.904088 0.752665 0.934692 0.758814 0.90723 0.759191 0.914601 0.724857 0.906197 0.723367 0.9353 0.730338 0.934801 0.752711 0.955195 0.729879 0.955258 0.760481 0.935514 0.761074 0.957372 0.722176 0.957237 0.729559 0.968277 0.751901 0.968437 0.760002 0.973915 0.720884 0.9733 0.684664 0.968617 0.679678 0.976118 0.702042 0.971557 0.703408 0.980244 0.717311 0.904726 0.711683 0.930893 0.721975 0.90619 0.68025 0.925952 0.688506 0.926694 0.708447 0.950896 0.685535 0.947054 0.719768 0.932964 0.715392 0.955628 0.677134 0.949123 0.683798 0.959813 0.706034 0.963609 0.713362 0.971816 0.675037 0.964832 0.729335 0.896196 0.759655 0.906715 0.7229 0.906267 0.694017 0.820196 0.684905 0.884602 0.683392 0.881493 0.760203 0.780676 0.760521 0.76399 0.780197 0.781047 0.772962 0.781457 0.77261 0.760048 0.766833 0.760048 0.717587 0.760048 0.723675 0.760048 0.732049 0.760048 0.741783 0.760047 0.717184 0.74568 0.723663 0.745779 0.723664 0.751152 0.717011 0.751485 0.73203 0.746011 0.741775 0.746428 0.741782 0.751392 0.732045 0.751206 0.760167 0.746866 0.752497 0.746864 0.766797 0.746841 0.772481 0.747038 0.772548 0.751288 0.766823 0.751323 0.779392 0.760048 0.760487 0.760048 0.752313 0.760048 0.752301 0.763994 0.779395 0.747339 0.779388 0.751316 0.750444 0.872142 0.751649 0.78078 0.882873 0.7807 0.781152 0.800912 0.782686 0.799551 0.88189 0.740394 0.888096 0.740385 0.893885 0.740456 0.836056 0.740447 0.853943 0.740508 0.716792 0.741852 0.723657 0.741825 0.732026 0.741786 0.741773 0.74172 0.752561 0.741656 0.760055 0.741621 0.766784 0.741597 0.772424 0.741553 0.779388 0.741477 0.881631 0.737588 0.887798 0.737598 0.893573 0.737675 0.836092 0.737503 0.853865 0.737606 0.717102 0.739339 0.723659 0.739307 0.732027 0.739261 0.741774 0.739183 0.752551 0.739106 0.760077 0.739064 0.766787 0.739035 0.772447 0.738991 0.779392 0.738916 0.881815 0.733893 0.888121 0.733931 0.893945 0.734018 0.835238 0.733597 0.853417 0.733765 0.716616 0.736368 0.723655 0.736326 0.732022 0.736267 0.741774 0.736168 0.752549 0.736069 0.760076 0.736015 0.766787 0.735978 0.772444 0.735932 0.779392 0.735861 0.854908 0.750746 0.878597 0.748803 0.884221 0.748549 0.880108 0.802633 0.885173 0.802632 0.889775 0.781007 0.850406 0.801323 0.7953 0.854536 0.801598 0.875063 0.80098 0.89403 0.789332 0.828907 0.840991 0.802537 0.844143 0.802375 0.844305 0.815975 0.838428 0.815995 0.818857 0.899863 0.826566 0.880041 0.840331 0.832145 0.832656 0.859008 0.825195 0.857051 0.833762 0.831789 0.852049 0.885992 0.855066 0.906684 0.848655 0.901248 0.842299 0.9042 0.884655 0.887859 0.890445 0.905571 0.885218 0.903159 0.88032 0.908859 0.894485 0.816336 0.901391 0.836237 0.910197 0.859925 0.821153 0.877746 0.813809 0.897586 0.915179 0.883237 0.916675 0.897916 0.984816 0.896863 0.985897 0.886535 0.992242 0.876969 0.993891 0.896854 0.960289 0.898244 0.982018 0.890889 0.920609 0.870215 0.923886 0.883341 0.92652 0.89722 0.914153 0.835932 0.920465 0.854339 0.942269 0.840096 0.941027 0.823438 0.939283 0.852779 0.92682 0.8687 0.939048 0.86558 0.954576 0.861077 0.947727 0.86987 0.955379 0.829441 0.956905 0.844362 0.963957 0.871435 0.956463 0.879768 0.972163 0.845631 0.968406 0.860656 0.960549 0.890776 0.975057 0.883282 0.980238 0.874242 0.985485 0.864182 0.785174 0.812569 0.879399 0.816124 0.880048 0.835165 0.858693 0.816512 0.85923 0.834186 0.857479 0.862231 0.882001 0.862902 0.840594 0.780925 0.857393 0.800657 0.807307 0.97796 0.813819 0.97396 0.828886 0.976862 0.833407 0.981837 0.814232 0.906013 0.820503 0.907392 0.818188 0.927069 0.839783 0.911592 0.836882 0.931888 0.84615 0.912754 0.847118 0.907004 0.843723 0.933343 0.812189 0.925965 0.814589 0.948873 0.808626 0.947708 0.833466 0.953315 0.840738 0.954027 0.805543 0.962673 0.811992 0.964337 0.832578 0.968696 0.839529 0.969455 0.854701 0.99041 0.861661 0.985766 0.879632 0.984554 0.886607 0.990256 0.850098 0.916706 0.851124 0.906973 0.856256 0.917237 0.856957 0.937658 0.87814 0.916169 0.879323 0.936942 0.885593 0.91542 0.884761 0.908658 0.886824 0.935698 0.849306 0.93766 0.857338 0.960345 0.850375 0.959528 0.879855 0.959339 0.887306 0.957745 0.850648 0.977454 0.857779 0.976089 0.882127 0.974788 0.890046 0.973123 0.906704 0.983605 0.911214 0.978025 0.928472 0.974334 0.936805 0.97791 0.88915 0.914844 0.888283 0.908177 0.895951 0.913385 0.899491 0.933151 0.918258 0.907508 0.922044 0.927703 0.927257 0.906346 0.930669 0.926728 0.892212 0.93462 0.903074 0.955016 0.896083 0.956106 0.925524 0.949694 0.933135 0.948012 0.89986 0.974493 0.905703 0.970525 0.929753 0.964887 0.936876 0.965953 0.885961 0.907866 0.849255 0.90643 0.855932 0.781242 0.876707 0.780755 0.837887 0.76601 0.855717 0.765763 0.878058 0.764056 0.89145 0.764038 0.880662 0.744353 0.886559 0.74429 0.893211 0.744131 0.837013 0.750925 0.836937 0.74429 0.854554 0.745091 0.855492 0.760682 0.892264 0.759517 0.878448 0.760076 0.88375 0.759702 0.883537 0.764006 0.892869 0.748261 0.837517 0.761255 0.717544 0.781037 0.717906 0.763999 0.723682 0.763997 0.73206 0.763997 0.731434 0.780935 0.741784 0.763943 0.740528 0.78086 0.752333 0.751558 0.760445 0.751449 0.766941 0.780582 0.767043 0.76399 0.772637 0.763986 0.779395 0.763991 0.728973 0.802205 0.805203 0.802486 0.741016 0.803198 0.721092 0.81567 0.738827 0.815488 0.737359 0.833024 0.718827 0.832782 0.784172 0.891795 0.789073 0.875945 0.785295 0.853662 0.807366 0.814297 0.718156 0.898017 0.729585 0.882264 0.69267 0.880394 0.711576 0.873668 0.694446 0.884912 0.747773 0.834654 0.747673 0.814824 0.7587 0.897507 0.750487 0.881547 0.752842 0.898658 0.752171 0.906085 0.762318 0.814704 0.766846 0.831445 0.77761 0.831174 0.773156 0.85353 0.694704 0.89626 0.778078 0.878537 0.771497 0.814906 0.640607 0.85834 0.638853 0.863395 0.629939 0.861718 0.631515 0.855394 0.639315 0.866809 0.632728 0.867021 0.685092 0.894531 0.685564 0.886612 0.692658 0.866392 0.691093 0.87641 0.685231 0.872501 0.697311 0.839659 0.690062 0.84532 0.683626 0.837994 0.693513 0.82956 0.673262 0.83144 0.699332 0.852883 0.688879 0.8551 0.669361 0.872517 0.678986 0.864638 0.661046 0.836713 0.670338 0.851693 0.666674 0.845131 0.667373 0.867165 0.670871 0.860904 0.660683 0.872462 0.648121 0.848156 0.643759 0.843926 0.651771 0.854855 0.630876 0.850476 0.651657 0.863152 0.64884 0.867423 0.642782 0.871885 0.714588 0.853951 0.759788 0.802849 0.751861 0.802001 0.733653 0.856903 0.746676 0.854063 0.732724 0.872853 0.768138 0.80195 0.773028 0.870579 0.77935 0.969568 0.777913 0.980258 0.79471 0.966262 0.799142 0.975894 0.763398 0.90259 0.767113 0.910439 0.786983 0.905022 0.789822 0.92397 0.794981 0.90292 0.761597 0.909963 0.760705 0.906941 0.764702 0.932087 0.770546 0.929076 0.793374 0.94418 0.773553 0.948312 0.79709 0.924208 0.800591 0.947729 0.766588 0.951276 0.775905 0.961468 0.795403 0.957131 0.804417 0.964005 0.770372 0.971119 0.731617 0.977158 0.727273 0.984589 0.749321 0.977452 0.752148 0.985394 0.729075 0.904088 0.730097 0.914895 0.752114 0.914975 0.752665 0.934692 0.758814 0.90723 0.759191 0.914601 0.723903 0.913899 0.724857 0.906197 0.723367 0.9353 0.730338 0.934801 0.752711 0.955195 0.729879 0.955258 0.760481 0.935514 0.761074 0.957372 0.722176 0.957237 0.729559 0.968277 0.751901 0.968437 0.760002 0.973915 0.720884 0.9733 0.684664 0.968617 0.679678 0.976118 0.702042 0.971557 0.703408 0.980244 0.691216 0.90712 0.717311 0.904726 0.714446 0.911969 0.711683 0.930893 0.721975 0.90619 0.721717 0.911565 0.683821 0.904035 0.68025 0.925952 0.688506 0.926694 0.708447 0.950896 0.685535 0.947054 0.719768 0.932964 0.715392 0.955628 0.677134 0.949123 0.683798 0.959813 0.706034 0.963609 0.713362 0.971816 0.675037 0.964832 0.729335 0.896196 0.759655 0.906715 0.7229 0.906267 0.684421 0.824949 0.675424 0.875911 0.684905 0.884602 0.683392 0.881493 0.760203 0.780676 0.760521 0.76399 0.780197 0.781047 0.772962 0.781457 0.77261 0.760048 0.766833 0.760048 0.717587 0.760048 0.723675 0.760048 0.732049 0.760048 0.741783 0.760047 0.717184 0.74568 0.723663 0.745779 0.723664 0.751152 0.717011 0.751485 0.73203 0.746011 0.741775 0.746428 0.741782 0.751392 0.732045 0.751206 0.760167 0.746866 0.752497 0.746864 0.766797 0.746841 0.772481 0.747038 0.772548 0.751288 0.766823 0.751323 0.779392 0.760048 0.760487 0.760048 0.752313 0.760048 0.752301 0.763994 0.779395 0.747339 0.779388 0.751316 0.750444 0.872142 0.751649 0.78078 0.882873 0.7807 0.781152 0.800912 0.782686 0.799551 0.88189 0.740394 0.888096 0.740385 0.893885 0.740456 0.836056 0.740447 0.853943 0.740508 0.716792 0.741852 0.723657 0.741825 0.732026 0.741786 0.741773 0.74172 0.752561 0.741656 0.760055 0.741621 0.766784 0.741597 0.772424 0.741553 0.779388 0.741477 0.881631 0.737588 0.887798 0.737598 0.893573 0.737675 0.836092 0.737503 0.853865 0.737606 0.717102 0.739339 0.723659 0.739307 0.732027 0.739261 0.741774 0.739183 0.752551 0.739106 0.760077 0.739064 0.766787 0.739035 0.772447 0.738991 0.779392 0.738916 0.881815 0.733893 0.888121 0.733931 0.893945 0.734018 0.835238 0.733597 0.853417 0.733765 0.716616 0.736368 0.723655 0.736326 0.732022 0.736267 0.741774 0.736168 0.752549 0.736069 0.760076 0.736015 0.766787 0.735978 0.772444 0.735932 0.779392 0.735861 0.225699 0.50998 0.187977 0.50146 0.19568 0.473131 0.228963 0.480137 0.261639 0.483722 0.26313 0.514771 0.074881 0.46017 0.063937 0.487866 0.043976 0.486838 0.054764 0.460078 0.156658 0.464903 0.151077 0.49287 0.108611 0.460375 0.103294 0.489834 0.296178 0.484547 0.296178 0.516148 0.048273 0.459939 0.076229 0.436188 0.096364 0.391334 0.106707 0.43634 0.171295 0.437441 0.206023 0.4479 0.232638 0.418855 0.296178 0.417064 0.091768 0.337468 0.144735 0.340173 0.147245 0.393307 0.218278 0.375526 0.227212 0.360797 0.141631 0.262449 0.094568 0.262593 0.098754 0.192396 0.073581 0.262476 0.067759 0.262444 0.253076 0.32361 0.296178 0.26045 0.296178 0.319525 0.261927 0.418345 0.258815 0.352443 0.296178 0.349579 0.145106 0.194677 0.197748 0.198041 0.198158 0.260973 0.100512 0.14118 0.151452 0.144725 0.071242 0.192131 0.065932 0.192034 0.061395 0.141173 0.066758 0.141133 0.204834 0.150395 0.110093 0.063359 0.157661 0.069356 0.205796 0.072683 0.208558 0.094666 0.24797 0.260037 0.243501 0.20097 0.296178 0.200849 0.210814 0.336332 0.224243 0.153422 0.241723 0.156256 0.060194 0.390972 0.063777 0.391192 0.058076 0.436101 0.052537 0.435904 0.074471 0.391251 0.072327 0.337243 0.064126 0.19204 0.059468 0.140912 0.061826 0.336519 0.064562 0.337083 0.065737 0.262119 0.051663 0.066173 0.044219 0.066694 0.04387 0.061047 0.056479 0.061747 0.060546 0.068065 0.265608 0.033205 0.25411 0.021669 0.26851 0.014135 0.274645 0.020256 0.25185 0.042455 0.23814 0.026554 0.239442 0.062938 0.223976 0.035979 0.224031 0.067907 0.202176 0.040903 0.164278 0.039972 0.129824 0.030049 0.097746 0.035857 0.116277 0.021614 0.064373 0.045119 0.081145 0.025673 0.09307 0.017337 0.068201 0.015513 0.075362 0.009396 0.278432 0.041858 0.281442 0.024265 0.265838 0.055402 0.04387 0.048022 0.064025 0.030474 0.295847 0.053298 0.295847 0.02835 0.042971 0.059651 0.04387 0.031267 0.06153 0.029928 0.04387 0.048022 0.04387 0.023609 0.058867 0.023099 0.04387 0.031267 0.226167 0.091749 0.240608 0.088639 0.296178 0.164041 0.179491 0.428056 0.199187 0.436447 0.172496 0.398707 0.19612 0.373562 0.223646 0.409261 0.839788 0.055869 0.841733 0.092177 0.810798 0.090857 0.795938 0.055862 0.815517 0.056345 0.814984 0.040809 0.808341 0.013425 0.838866 0.012015 0.841903 0.186011 0.811379 0.18742 0.815571 0.161237 0.842179 0.160663 0.790278 0.160747 0.791713 0.134043 0.817039 0.134152 0.814454 0.11043 0.789912 0.109605 0.842299 0.110319 0.599035 0.104913 0.598974 0.081013 0.595741 0.055741 0.594008 0.02005 0.591015 0.017598 0.591413 0.161196 0.594199 0.138248 0.582611 0.103642 0.579266 0.079665 0.570738 0.139042 0.570245 0.054472 0.56218 0.021155 0.565649 0.168108 0.59276 0.184891 0.56752 0.186175 0.661251 0.184753 0.789586 0.090805 0.658214 0.010758 0.787338 0.019525 0.790276 0.184312 0.988923 0.108738 0.988296 0.132656 0.988299 0.090133 0.986377 0.050841 0.838708 0.015218 0.985441 0.008618 0.988777 0.159635 0.988477 0.182614 0.841657 0.133726 0.787239 0.010316 0.807894 0.01642 0.078279 0.965695 0.106556 0.970419 0.13243 0.985043 0.102339 0.98283 0.108296 0.980418 0.132435 0.981432 0.087271 0.976435 0.087157 0.972912 0.092934 0.984865 0.074272 0.96643 0.108264 0.975849 0.132434 0.890756 0.101553 0.891217 0.068903 0.892078 0.064604 0.87876 0.070144 0.867279 0.10229 0.858627 0.13244 0.858011 0.132436 0.98878 0.132464 0.996512 0.091826 0.995239 0.132436 0.977416 0.132436 0.971838 0.16742 0.537617 0.131814 0.538321 0.081934 0.711618 0.107601 0.693519 0.234234 0.907901 0.209714 0.896112 0.205242 0.867593 0.228538 0.876931 0.221327 0.841979 0.199315 0.834949 0.131591 0.750521 0.089925 0.751494 0.227267 0.61333 0.263454 0.609843 0.264748 0.648829 0.230504 0.6516 0.296169 0.648762 0.267683 0.70107 0.224993 0.701075 0.296169 0.702734 0.296169 0.748121 0.262829 0.746909 0.214423 0.744024 0.218787 0.789321 0.218403 0.770805 0.262522 0.75261 0.261327 0.780803 0.296174 0.777581 0.296174 0.747425 0.296174 0.850719 0.25744 0.848347 0.259179 0.812932 0.296174 0.814013 0.21828 0.808331 0.296174 0.918112 0.263282 0.915386 0.260113 0.886024 0.296174 0.888137 0.210169 0.540558 0.118138 0.513971 0.092859 0.497358 0.103381 0.490032 0.151351 0.49321 0.225925 0.510063 0.26338 0.51489 0.257636 0.547109 0.296169 0.547926 0.296169 0.516405 0.234473 0.937331 0.213247 0.925245 0.296174 0.946757 0.262974 0.944324 0.296169 0.573361 0.259577 0.57409 0.219184 0.576618 0.296169 0.608579 0.142245 0.705555 0.1215 0.673145 0.151022 0.6705 0.188393 0.501758 0.154499 0.562159 0.134993 0.568494 0.195318 0.702922 0.177528 0.665948 0.195111 0.661186 0.199132 0.642422 0.172575 0.704327 0.198351 0.804508 0.209813 0.785242 0.195756 0.744651 0.170844 0.745489 0.063789 0.488262 0.20498 0.580862 0.188643 0.566404 0.115061 0.516775 0.084843 0.500216 0.126018 0.540055 0.081125 0.707042 0.10259 0.691816 0.055118 0.730614 0.054092 0.726327 0.232626 0.941979 0.210788 0.930051 0.261949 0.948856 0.296174 0.951272 0.278875 0.950064 0.051256 0.491349 0.043897 0.487023 0.114065 0.673405 0.21168 0.615658 0.128825 0.565659 0.193877 0.639375 0.200646 0.614034 0.10943 0.618073 0.116632 0.643015 0.110595 0.646244 0.103051 0.619266 0.177779 0.658462 0.155392 0.666175 0.155261 0.646907 0.196673 0.589229 0.180638 0.571607 0.154594 0.565888 0.128766 0.573607 0.113137 0.592693 0.133125 0.660123 0.169117 0.641861 0.179299 0.6294 0.18343 0.612854 0.180356 0.596659 0.170063 0.585153 0.154793 0.581419 0.139618 0.586459 0.129541 0.598921 0.126686 0.615467 0.131029 0.631686 0.141364 0.643135 0.160707 0.624442 0.155137 0.626517 0.164811 0.619313 0.16637 0.612503 0.164918 0.605836 0.160748 0.6011 0.154956 0.599563 0.149191 0.601638 0.145094 0.606767 0.143734 0.613577 0.14538 0.620244 0.149546 0.62498 0.15505 0.612833 0.107881 0.591918 0.120743 0.57399 0.596198 0.939528 0.594868 0.919222 0.626942 0.920496 0.626574 0.937539 0.578997 0.94007 0.578285 0.918845 0.562366 0.945785 0.560304 0.921801 0.542953 0.949753 0.542045 0.925799 0.502125 0.954967 0.501165 0.932089 0.456636 0.954872 0.456587 0.932775 0.434506 0.950118 0.43535 0.929196 0.419021 0.94831 0.420735 0.926102 0.386436 0.938632 0.389838 0.921135 0.386804 0.921589 0.592167 0.777847 0.59711 0.759266 0.616783 0.760962 0.618426 0.778729 0.598142 0.75939 0.563286 0.777222 0.562348 0.757249 0.543978 0.777689 0.538926 0.755601 0.525461 0.778936 0.520034 0.754971 0.494024 0.781027 0.49301 0.756553 0.470295 0.75939 0.467883 0.782063 0.457801 0.760985 0.454656 0.781517 0.446173 0.761742 0.443147 0.780681 0.421255 0.778729 0.429854 0.761024 0.587718 0.798383 0.615436 0.799285 0.563596 0.79818 0.545745 0.799205 0.527693 0.800987 0.494379 0.803344 0.465993 0.804002 0.452045 0.802905 0.440263 0.80163 0.418477 0.799156 0.59497 0.777762 0.618426 0.778729 0.416327 0.799285 0.421946 0.778745 0.032234 0.522551 0.032229 0.544509 0.019381 0.544625 0.019381 0.522535 0.032233 0.437401 0.019381 0.436775 0.019381 0.008231 0.03224 0.008247 0.019381 0.363354 0.032233 0.364097 0.032236 0.263966 0.032232 0.498875 0.019381 0.498543 0.019381 0.103044 0.032243 0.103462 0.019381 0.263489 0.019381 0.170514 0.03224 0.170782 0.067714 0.745983 0.060361 0.019526 0.225699 0.50998 0.228963 0.480137 0.19568 0.473131 0.187977 0.50146 0.26313 0.514771 0.261639 0.483722 0.074881 0.46017 0.054764 0.460078 0.043976 0.486838 0.063937 0.487866 0.156658 0.464903 0.151077 0.49287 0.108611 0.460375 0.103294 0.489834 0.048273 0.459939 0.076229 0.436188 0.106707 0.43634 0.096364 0.391334 0.171295 0.437441 0.206023 0.4479 0.232638 0.418855 0.144735 0.340173 0.091768 0.337468 0.147245 0.393307 0.218278 0.375526 0.227212 0.360797 0.094568 0.262593 0.098754 0.192396 0.073581 0.262476 0.067759 0.262444 0.253076 0.32361 0.261927 0.418345 0.258815 0.352443 0.141631 0.262449 0.197748 0.198041 0.145106 0.194677 0.198158 0.260973 0.100512 0.14118 0.151452 0.144725 0.071242 0.192131 0.066758 0.141133 0.061395 0.141173 0.065932 0.192034 0.204834 0.150395 0.110093 0.063359 0.157661 0.069356 0.208558 0.094666 0.205796 0.072683 0.24797 0.260037 0.296178 0.200849 0.243501 0.20097 0.210814 0.336332 0.224243 0.153422 0.241723 0.156256 0.060194 0.390972 0.052537 0.435904 0.058076 0.436101 0.063777 0.391192 0.074471 0.391251 0.072327 0.337243 0.064126 0.19204 0.059468 0.140912 0.064562 0.337083 0.061826 0.336519 0.065737 0.262119 0.051663 0.066173 0.060546 0.068065 0.056479 0.061747 0.265608 0.033205 0.274645 0.020256 0.26851 0.014135 0.25411 0.021669 0.25185 0.042455 0.23814 0.026554 0.239442 0.062938 0.223976 0.035979 0.224031 0.067907 0.202176 0.040903 0.164278 0.039972 0.129824 0.030049 0.097746 0.035857 0.116277 0.021614 0.064373 0.045119 0.081145 0.025673 0.09307 0.017337 0.068201 0.015513 0.075362 0.009396 0.278432 0.041858 0.281442 0.024265 0.265838 0.055402 0.064025 0.030474 0.06153 0.029928 0.058867 0.023099 0.226167 0.091749 0.240608 0.088639 0.296178 0.164041 0.179491 0.428056 0.199187 0.436447 0.172496 0.398707 0.19612 0.373562 0.223646 0.409261 0.839788 0.055869 0.810798 0.090857 0.841733 0.092177 0.795938 0.055862 0.815517 0.056345 0.838866 0.012015 0.808341 0.013425 0.814984 0.040809 0.841903 0.186011 0.842179 0.160663 0.815571 0.161237 0.811379 0.18742 0.790278 0.160747 0.791713 0.134043 0.817039 0.134152 0.814454 0.11043 0.789912 0.109605 0.842299 0.110319 0.599035 0.104913 0.598974 0.081013 0.595741 0.055741 0.658214 0.010758 0.594008 0.02005 0.590859 0.016342 0.591413 0.161196 0.594199 0.138248 0.579266 0.079665 0.582611 0.103642 0.570738 0.139042 0.570245 0.054472 0.56218 0.021155 0.565649 0.168108 0.56752 0.186175 0.59276 0.184891 0.661251 0.184753 0.789586 0.090805 0.787338 0.019525 0.790276 0.184312 0.988296 0.132656 0.988923 0.108738 0.988299 0.090133 0.986377 0.050841 0.985441 0.008618 0.838708 0.015218 0.988477 0.182614 0.988777 0.159635 0.841657 0.133726 0.787239 0.010316 0.807894 0.01642 0.078279 0.965695 0.106556 0.970419 0.108296 0.980418 0.102339 0.98283 0.087157 0.972912 0.087271 0.976435 0.092934 0.984865 0.074272 0.96643 0.108264 0.975849 0.101553 0.891217 0.068903 0.892078 0.064604 0.87876 0.070144 0.867279 0.10229 0.858627 0.091826 0.995239 0.132464 0.996512 0.132436 0.98878 0.16742 0.537617 0.131814 0.538321 0.107601 0.693519 0.081934 0.711618 0.234234 0.907901 0.228538 0.876931 0.205242 0.867593 0.209714 0.896112 0.221327 0.841979 0.199315 0.834949 0.131591 0.750521 0.089925 0.751494 0.227267 0.61333 0.230504 0.6516 0.264748 0.648829 0.263454 0.609843 0.267683 0.70107 0.224993 0.701075 0.262829 0.746909 0.214423 0.744024 0.218787 0.789321 0.261327 0.780803 0.262522 0.75261 0.218403 0.770805 0.259179 0.812932 0.25744 0.848347 0.21828 0.808331 0.260113 0.886024 0.263282 0.915386 0.210169 0.540558 0.118138 0.513971 0.151351 0.49321 0.103381 0.490032 0.092859 0.497358 0.257636 0.547109 0.26338 0.51489 0.225925 0.510063 0.213247 0.925245 0.234473 0.937331 0.262974 0.944324 0.259577 0.57409 0.219184 0.576618 0.142245 0.705555 0.151022 0.6705 0.1215 0.673145 0.188393 0.501758 0.154499 0.562159 0.134993 0.568494 0.195318 0.702922 0.195111 0.661186 0.177528 0.665948 0.199132 0.642422 0.172575 0.704327 0.198351 0.804508 0.209813 0.785242 0.170844 0.745489 0.195756 0.744651 0.063789 0.488262 0.20498 0.580862 0.188643 0.566404 0.084843 0.500216 0.115061 0.516775 0.126018 0.540055 0.10259 0.691816 0.081125 0.707042 0.055118 0.730614 0.054092 0.726327 0.210788 0.930051 0.232626 0.941979 0.261949 0.948856 0.278875 0.950064 0.043897 0.487023 0.051256 0.491349 0.114065 0.673405 0.21168 0.615658 0.128825 0.565659 0.200646 0.614034 0.193877 0.639375 0.10943 0.618073 0.103051 0.619266 0.110595 0.646244 0.116632 0.643015 0.155261 0.646907 0.155392 0.666175 0.177779 0.658462 0.196673 0.589229 0.180638 0.571607 0.154594 0.565888 0.128766 0.573607 0.113137 0.592693 0.133125 0.660123 0.169117 0.641861 0.179299 0.6294 0.18343 0.612854 0.180356 0.596659 0.170063 0.585153 0.154793 0.581419 0.139618 0.586459 0.129541 0.598921 0.126686 0.615467 0.131029 0.631686 0.141364 0.643135 0.160707 0.624442 0.155137 0.626517 0.164811 0.619313 0.16637 0.612503 0.164918 0.605836 0.160748 0.6011 0.154956 0.599563 0.149191 0.601638 0.145094 0.606767 0.143734 0.613577 0.14538 0.620244 0.149546 0.62498 0.15505 0.612833 0.107881 0.591918 0.120743 0.57399 0.596198 0.939528 0.626574 0.937539 0.626942 0.920496 0.594868 0.919222 0.578997 0.94007 0.578285 0.918845 0.562366 0.945785 0.560304 0.921801 0.542953 0.949753 0.542045 0.925799 0.502125 0.954967 0.501165 0.932089 0.456636 0.954872 0.456587 0.932775 0.434506 0.950118 0.43535 0.929196 0.419021 0.94831 0.420735 0.926102 0.386436 0.938632 0.389838 0.921135 0.386804 0.921589 0.592167 0.777847 0.618426 0.778729 0.616783 0.760962 0.59711 0.759266 0.598142 0.75939 0.562348 0.757249 0.563286 0.777222 0.538926 0.755601 0.543978 0.777689 0.520034 0.754971 0.525461 0.778936 0.494024 0.781027 0.49301 0.756553 0.470295 0.75939 0.467883 0.782063 0.457801 0.760985 0.454656 0.781517 0.446173 0.761742 0.443147 0.780681 0.429854 0.761024 0.421255 0.778729 0.615436 0.799285 0.587718 0.798383 0.563596 0.79818 0.545745 0.799205 0.527693 0.800987 0.494379 0.803344 0.465993 0.804002 0.452045 0.802905 0.440263 0.80163 0.418477 0.799156 0.618426 0.778729 0.59497 0.777762 0.416327 0.799285 0.421946 0.778745 0.032234 0.522551 0.032229 0.544509 0.032233 0.437401 0.03224 0.008247 0.032233 0.364097 0.032236 0.263966 0.032232 0.498875 0.032243 0.103462 0.03224 0.170782 0.067714 0.745983 0.060361 0.019526 0.577064 0.63949 0.528387 0.700601 0.399347 0.6689 0.446046 0.639981 0.448412 0.664554 0.335676 0.509172 0.35083 0.509962 0.343446 0.514197 0.327767 0.536704 0.316918 0.533448 0.328699 0.520973 0.33697 0.525876 0.308693 0.534258 0.312605 0.538502 0.338305 0.561453 0.340164 0.565445 0.32816 0.566253 0.326909 0.56151 0.433963 0.41715 0.394288 0.389935 0.458073 0.411129 0.344635 0.528183 0.322039 0.498985 0.338633 0.498985 0.323268 0.507862 0.320007 0.516283 0.306719 0.517604 0.313449 0.504678 0.409948 0.38331 0.383093 0.357886 0.44567 0.374029 0.505164 0.401646 0.467293 0.623771 0.48042 0.652054 0.516477 0.542368 0.33723 0.533604 0.328103 0.513874 0.327282 0.515514 0.328743 0.516523 0.329381 0.514606 0.350567 0.634077 0.331438 0.667212 0.326907 0.635587 0.346647 0.378497 0.358177 0.369834 0.329897 0.613121 0.347559 0.609062 0.346119 0.520023 0.355343 0.51904 0.398883 0.644797 0.330969 0.543939 0.341512 0.541077 0.315417 0.497353 0.466669 0.543854 0.361736 0.500628 0.464552 0.551222 0.459735 0.555442 0.398211 0.552711 0.401012 0.55552 0.350724 0.558711 0.355546 0.562983 0.371474 0.55921 0.360011 0.568665 0.357763 0.538219 0.330296 0.591694 0.34493 0.590636 0.329494 0.577661 0.342865 0.576712 0.389294 0.557695 0.387457 0.555325 0.488043 0.602845 0.509286 0.62255 0.395098 0.548446 0.385588 0.550927 0.602425 0.570849 0.60711 0.638659 0.594416 0.530593 0.493364 0.583571 0.515009 0.584576 0.484446 0.56282 0.499871 0.552315 0.438241 0.499582 0.374224 0.536997 0.386688 0.536033 0.563137 0.453229 0.499622 0.472837 0.469495 0.742643 0.369658 0.752449 0.573468 0.436037 0.511924 0.390668 0.403136 0.346906 0.464436 0.359781 0.427647 0.749793 0.516261 0.378946 0.408755 0.336644 0.307182 0.527609 0.320351 0.545475 0.368896 0.553986 0.373875 0.562848 0.457998 0.343273 0.49199 0.35015 0.311181 0.472302 0.319999 0.474429 0.313998 0.487114 0.32161 0.489041 0.335094 0.470912 0.341585 0.468286 0.321139 0.485267 0.311303 0.484098 0.333949 0.451181 0.313874 0.449611 0.32983 0.48251 0.337926 0.476058 0.3423 0.480189 0.332998 0.486077 0.348411 0.465816 0.34541 0.46354 0.350743 0.457278 0.321081 0.470562 0.313962 0.468101 0.354973 0.464736 0.327026 0.473417 0.354342 0.416706 0.321355 0.43298 0.389517 0.438865 0.36453 0.450104 0.34324 0.437061 0.365872 0.464012 0.387925 0.469909 0.312226 0.46298 0.328001 0.470606 0.335738 0.468985 0.33218 0.462401 0.315628 0.466919 0.332325 0.467929 0.344505 0.466359 0.323457 0.410492 0.410599 0.326314 0.460925 0.332685 0.462827 0.61079 0.474243 0.598315 0.446177 0.62134 0.408546 0.626534 0.408567 0.608681 0.408971 0.605909 0.43421 0.60276 0.436114 0.605431 0.447705 0.595607 0.449039 0.599473 0.480597 0.581965 0.474067 0.568828 0.455357 0.559831 0.446128 0.572722 0.449805 0.563995 0.434094 0.6005 0.447166 0.592909 0.40935 0.604553 0.375381 0.62206 0.375776 0.591457 0.386089 0.599934 0.384128 0.602717 0.374652 0.594144 0.386616 0.598433 0.375507 0.587587 0.363113 0.602148 0.422421 0.270823 0.42618 0.266721 0.425781 0.268776 0.422141 0.273039 0.375474 0.354062 0.370232 0.343308 0.369391 0.336312 0.375074 0.349708 0.419251 0.276268 0.411904 0.280501 0.412309 0.278168 0.419828 0.273653 0.39803 0.278543 0.397935 0.277149 0.349468 0.332184 0.349263 0.3264 0.403565 0.562629 0.404722 0.57182 0.393137 0.57609 0.39076 0.565033 0.390683 0.560812 0.375002 0.566148 0.381349 0.260601 0.386135 0.268901 0.386048 0.269886 0.381273 0.261267 0.378059 0.579365 0.372418 0.579143 0.369169 0.575812 0.376833 0.570298 0.364335 0.572003 0.360464 0.578029 0.358981 0.586271 0.371522 0.580171 0.36848 0.580812 0.334633 0.358829 0.334196 0.358696 0.334164 0.357731 0.334572 0.357542 0.33751 0.347877 0.371736 0.583492 0.333827 0.357889 0.333865 0.358648 0.403126 0.558444 0.333419 0.358349 0.333379 0.357825 0.344365 0.335484 0.34467 0.338103 0.338853 0.350574 0.455225 0.586249 0.45786 0.589336 0.464378 0.581218 0.458939 0.577547 0.457465 0.575946 0.461812 0.571847 0.408458 0.614691 0.382475 0.609464 0.42642 0.281621 0.427245 0.282578 0.42229 0.289682 0.421182 0.289134 0.426609 0.3078 0.423715 0.312712 0.41999 0.308148 0.421613 0.300936 0.429162 0.273872 0.428482 0.273194 0.423515 0.276384 0.428003 0.267788 0.428618 0.26844 0.42379 0.319459 0.42027 0.314388 0.412249 0.309747 0.412355 0.304494 0.410797 0.297033 0.410868 0.293346 0.411948 0.285665 0.419672 0.280432 0.371315 0.326146 0.377071 0.340392 0.375735 0.340939 0.369888 0.326903 0.374566 0.294225 0.379505 0.287979 0.382515 0.296046 0.378487 0.304436 0.376619 0.350252 0.39744 0.309719 0.397587 0.281573 0.395753 0.286514 0.396006 0.286943 0.395294 0.305006 0.397933 0.313018 0.348875 0.305776 0.349494 0.302783 0.349594 0.321786 0.348245 0.320414 0.344416 0.330946 0.33843 0.299505 0.338512 0.297086 0.384498 0.323428 0.383041 0.322166 0.383697 0.270448 0.384202 0.2708 0.380595 0.331176 0.411524 0.294062 0.428585 0.3165 0.428097 0.322124 0.460174 0.592638 0.465599 0.589184 0.327535 0.291495 0.366491 0.58405 0.37139 0.587789 0.376688 0.58738 0.37252 0.582914 0.372313 0.581517 0.372798 0.580115 0.378399 0.580357 0.378394 0.582427 0.438442 0.61119 0.453261 0.60374 0.461528 0.59547 0.370682 0.597246 0.367078 0.587799 0.577064 0.63949 0.528387 0.700601 0.399347 0.6689 0.448412 0.664554 0.446046 0.639981 0.335676 0.509172 0.343446 0.514197 0.35083 0.509962 0.327767 0.536704 0.33697 0.525876 0.328699 0.520973 0.316918 0.533448 0.338305 0.561453 0.340164 0.565445 0.433963 0.41715 0.458073 0.411129 0.394288 0.389935 0.344635 0.528183 0.322039 0.498985 0.323268 0.507862 0.338633 0.498985 0.320007 0.516283 0.409948 0.38331 0.44567 0.374029 0.505164 0.401646 0.48042 0.652054 0.467293 0.623771 0.516477 0.542368 0.33723 0.533604 0.328103 0.513874 0.327282 0.515514 0.328743 0.516523 0.329381 0.514606 0.350567 0.634077 0.347559 0.609062 0.346119 0.520023 0.355343 0.51904 0.398883 0.644797 0.341512 0.541077 0.330969 0.543939 0.466669 0.543854 0.361736 0.500628 0.464552 0.551222 0.459735 0.555442 0.398211 0.552711 0.401012 0.55552 0.350724 0.558711 0.355546 0.562983 0.360011 0.568665 0.371474 0.55921 0.357763 0.538219 0.34493 0.590636 0.342865 0.576712 0.389294 0.557695 0.387457 0.555325 0.509286 0.62255 0.488043 0.602845 0.395098 0.548446 0.385588 0.550927 0.60711 0.638659 0.602425 0.570849 0.594416 0.530593 0.515009 0.584576 0.493364 0.583571 0.499871 0.552315 0.484446 0.56282 0.438241 0.499582 0.374224 0.536997 0.386688 0.536033 0.563137 0.453229 0.499622 0.472837 0.469495 0.742643 0.573468 0.436037 0.511924 0.390668 0.464436 0.359781 0.427647 0.749793 0.516261 0.378946 0.368896 0.553986 0.373875 0.562848 0.49199 0.35015 0.457998 0.343273 0.319999 0.474429 0.32161 0.489041 0.341585 0.468286 0.335094 0.470912 0.321139 0.485267 0.333949 0.451181 0.32983 0.48251 0.337926 0.476058 0.332998 0.486077 0.3423 0.480189 0.350743 0.457278 0.34541 0.46354 0.348411 0.465816 0.321081 0.470562 0.354973 0.464736 0.327026 0.473417 0.354342 0.416706 0.389517 0.438865 0.34324 0.437061 0.36453 0.450104 0.365872 0.464012 0.387925 0.469909 0.328001 0.470606 0.335738 0.468985 0.33218 0.462401 0.332325 0.467929 0.344505 0.466359 0.460925 0.332685 0.462827 0.61079 0.474243 0.598315 0.446177 0.62134 0.408546 0.626534 0.408971 0.605909 0.408567 0.608681 0.436114 0.605431 0.43421 0.60276 0.449039 0.599473 0.447705 0.595607 0.474067 0.568828 0.480597 0.581965 0.455357 0.559831 0.446128 0.572722 0.449805 0.563995 0.447166 0.592909 0.434094 0.6005 0.40935 0.604553 0.375381 0.62206 0.375776 0.591457 0.374652 0.594144 0.384128 0.602717 0.386089 0.599934 0.386616 0.598433 0.375507 0.587587 0.363113 0.602148 0.422421 0.270823 0.422141 0.273039 0.425781 0.268776 0.42618 0.266721 0.375474 0.354062 0.375074 0.349708 0.369391 0.336312 0.370232 0.343308 0.419251 0.276268 0.419828 0.273653 0.412309 0.278168 0.411904 0.280501 0.39803 0.278543 0.397935 0.277149 0.349263 0.3264 0.349468 0.332184 0.403565 0.562629 0.39076 0.565033 0.393137 0.57609 0.404722 0.57182 0.375002 0.566148 0.390683 0.560812 0.381349 0.260601 0.381273 0.261267 0.386048 0.269886 0.386135 0.268901 0.378059 0.579365 0.376833 0.570298 0.369169 0.575812 0.372418 0.579143 0.360464 0.578029 0.364335 0.572003 0.358981 0.586271 0.36848 0.580812 0.371522 0.580171 0.334633 0.358829 0.334572 0.357542 0.334164 0.357731 0.334196 0.358696 0.33751 0.347877 0.371736 0.583492 0.333827 0.357889 0.333865 0.358648 0.403126 0.558444 0.333379 0.357825 0.333419 0.358349 0.338853 0.350574 0.34467 0.338103 0.344365 0.335484 0.455225 0.586249 0.45786 0.589336 0.464378 0.581218 0.461812 0.571847 0.457465 0.575946 0.458939 0.577547 0.408458 0.614691 0.382475 0.609464 0.42642 0.281621 0.421182 0.289134 0.42229 0.289682 0.427245 0.282578 0.426609 0.3078 0.421613 0.300936 0.41999 0.308148 0.423715 0.312712 0.429162 0.273872 0.428482 0.273194 0.423515 0.276384 0.428003 0.267788 0.428618 0.26844 0.42027 0.314388 0.42379 0.319459 0.412249 0.309747 0.412355 0.304494 0.410797 0.297033 0.419672 0.280432 0.411948 0.285665 0.410868 0.293346 0.371315 0.326146 0.369888 0.326903 0.375735 0.340939 0.377071 0.340392 0.374566 0.294225 0.378487 0.304436 0.382515 0.296046 0.379505 0.287979 0.376619 0.350252 0.39744 0.309719 0.397587 0.281573 0.395753 0.286514 0.396006 0.286943 0.395294 0.305006 0.397933 0.313018 0.349494 0.302783 0.348875 0.305776 0.348245 0.320414 0.349594 0.321786 0.344416 0.330946 0.33843 0.299505 0.338512 0.297086 0.383041 0.322166 0.384498 0.323428 0.384202 0.2708 0.383697 0.270448 0.380595 0.331176 0.411524 0.294062 0.428585 0.3165 0.428097 0.322124 0.460174 0.592638 0.465599 0.589184 0.327535 0.291495 0.366491 0.58405 0.37139 0.587789 0.376688 0.58738 0.378394 0.582427 0.378399 0.580357 0.372798 0.580115 0.372313 0.581517 0.37252 0.582914 0.438442 0.61119 0.453261 0.60374 0.461528 0.59547 0.370682 0.597246 0.367078 0.587799 0.840248 0.360848 0.826156 0.360931 0.827184 0.362415 0.839683 0.362523 0.842694 0.355834 0.867445 0.368426 0.858872 0.361467 0.851848 0.366827 0.85347 0.365483 0.858371 0.372134 0.860483 0.371244 0.872201 0.377826 0.871233 0.390463 0.862115 0.378965 0.864347 0.378993 0.867665 0.378504 0.86349 0.389275 0.866734 0.389794 0.861177 0.389523 0.856848 0.394779 0.858942 0.395459 0.85255 0.404493 0.848235 0.40026 0.847094 0.399094 0.817919 0.407336 0.834868 0.407218 0.834462 0.400904 0.833832 0.402299 0.833979 0.40423 0.819909 0.402378 0.818627 0.404315 0.820386 0.400933 0.812226 0.40067 0.810549 0.401609 0.795909 0.39928 0.802676 0.390491 0.800206 0.390353 0.802 0.39489 0.804436 0.394554 0.802849 0.381204 0.80077 0.380001 0.797276 0.379578 0.825484 0.358728 0.813062 0.363395 0.814905 0.365234 0.841041 0.358648 0.855642 0.363723 0.863389 0.370025 0.861713 0.396608 0.849874 0.401948 0.808298 0.40343 0.846868 0.34656 0.826522 0.346554 0.804352 0.414903 0.817779 0.415561 0.837764 0.415424 0.858305 0.412974 0.907898 0.409386 0.91578 0.392999 0.916417 0.374105 0.908766 0.357807 0.865749 0.351845 0.828509 0.340141 0.811473 0.346359 0.798562 0.35332 0.847493 0.340315 0.820898 0.424339 0.807184 0.423867 0.843969 0.424355 0.865963 0.345985 0.91056 0.352576 0.783083 0.398877 0.790131 0.367597 0.783083 0.369368 0.791311 0.410019 0.783083 0.407853 0.783083 0.415794 0.793012 0.419068 0.797139 0.390578 0.798682 0.395942 0.783083 0.391206 0.783083 0.382532 0.793758 0.390785 0.794081 0.379164 0.94952 0.396533 0.952567 0.389949 0.943132 0.387193 0.942245 0.392761 0.952069 0.375452 0.948605 0.368828 0.941214 0.371506 0.942614 0.37701 0.92661 0.358134 0.939289 0.388363 0.938697 0.3761 0.945383 0.399975 0.93879 0.395375 0.937617 0.36911 0.944531 0.36538 0.804674 0.398165 0.806606 0.397117 0.803454 0.371134 0.806182 0.372429 0.809882 0.351742 0.797696 0.362224 0.80843 0.373334 0.816321 0.366351 0.795795 0.412165 0.797362 0.421798 0.801989 0.399664 0.825381 0.355809 0.81156 0.360666 0.865701 0.398248 0.806681 0.406439 0.799848 0.4027 0.801048 0.368551 0.921439 0.403088 0.923665 0.391731 0.923513 0.374405 0.92127 0.363055 0.925942 0.408533 0.783083 0.364285 0.789806 0.360884 0.883039 0.41495 0.864401 0.421575 0.827184 0.362415 0.826156 0.360931 0.840248 0.360848 0.839683 0.362523 0.842694 0.355834 0.867445 0.368426 0.858872 0.361467 0.851848 0.366827 0.85347 0.365483 0.860483 0.371244 0.858371 0.372134 0.872201 0.377826 0.871233 0.390463 0.862115 0.378965 0.864347 0.378993 0.867665 0.378504 0.866734 0.389794 0.86349 0.389275 0.861177 0.389523 0.858942 0.395459 0.856848 0.394779 0.85255 0.404493 0.848235 0.40026 0.847094 0.399094 0.817919 0.407336 0.834868 0.407218 0.834462 0.400904 0.833832 0.402299 0.833979 0.40423 0.818627 0.404315 0.819909 0.402378 0.820386 0.400933 0.810549 0.401609 0.812226 0.40067 0.795909 0.39928 0.802676 0.390491 0.804436 0.394554 0.802 0.39489 0.800206 0.390353 0.80077 0.380001 0.802849 0.381204 0.797276 0.379578 0.825484 0.358728 0.814905 0.365234 0.813062 0.363395 0.841041 0.358648 0.855642 0.363723 0.863389 0.370025 0.861713 0.396608 0.849874 0.401948 0.808298 0.40343 0.826522 0.346554 0.846868 0.34656 0.817779 0.415561 0.804352 0.414903 0.837764 0.415424 0.907898 0.409386 0.858305 0.412974 0.91578 0.392999 0.875717 0.357549 0.916417 0.374105 0.865749 0.351845 0.811473 0.346359 0.828509 0.340141 0.798562 0.35332 0.847493 0.340315 0.820898 0.424339 0.807184 0.423867 0.843969 0.424355 0.865963 0.345985 0.87751 0.352318 0.783083 0.398877 0.790131 0.367597 0.783083 0.369368 0.791311 0.410019 0.783083 0.407853 0.783083 0.415794 0.793012 0.419068 0.798682 0.395942 0.797139 0.390578 0.783083 0.391206 0.783083 0.382532 0.793758 0.390785 0.794081 0.379164 0.952567 0.389949 0.94952 0.396533 0.942245 0.392761 0.943132 0.387193 0.952069 0.375452 0.948605 0.368828 0.942614 0.37701 0.941214 0.371506 0.92661 0.358134 0.939289 0.388363 0.938697 0.3761 0.945383 0.399975 0.93879 0.395375 0.937617 0.36911 0.944531 0.36538 0.804674 0.398165 0.806606 0.397117 0.803454 0.371134 0.806182 0.372429 0.797696 0.362224 0.809882 0.351742 0.816321 0.366351 0.80843 0.373334 0.795795 0.412165 0.797362 0.421798 0.801989 0.399664 0.825381 0.355809 0.81156 0.360666 0.865701 0.398248 0.806681 0.406439 0.799848 0.4027 0.801048 0.368551 0.921439 0.403088 0.923665 0.391731 0.923513 0.374405 0.92127 0.363055 0.925942 0.408533 0.783083 0.364285 0.789806 0.360884 0.916089 0.415209 0.864401 0.421575 0.916089 0.415209 0.875717 0.357549 0.883368 0.373847 0.88273 0.392741 0.87751 0.352318 0.874848 0.409128 0.883039 0.41495 0.908766 0.357807 0.883368 0.373847 0.88273 0.392741 0.91056 0.352576 0.874848 0.409128 0.352556 0.534238 0.362466 0.525815 0.35206 0.533859 0.361637 0.525026 0.706107 0.810706 0.90909 0.81478 0.686889 0.877642 0.685166 0.871905 + + + + + + + + + + + + + + + 4 4 4 4 4 4 3 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 3 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 5 3 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 3 4 4 3 3 3 4 4 4 4 4 3 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 3 4 4 6 4 4 4 4 4 3 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 5 3 3 5 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 5 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 3 4 4 3 3 3 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 3 4 4 6 4 4 4 4 4 3 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 3 4 4 +

45 56 44 61 57 45 58 58 46 65 59 47 46 60 48 67 61 49 58 58 46 61 57 45 49 62 50 66 63 51 58 58 46 67 61 49 71 64 64 65 59 47 58 58 46 66 63 51 59 65 52 46 60 48 62 66 53 47 67 54 67 61 49 46 60 48 59 65 52 49 62 50 47 67 54 69 68 55 59 65 52 50 69 56 68 70 57 49 62 50 59 65 52 69 68 55 47 67 54 63 71 58 60 72 59 69 68 55 44 73 60 64 74 61 60 72 59 63 71 58 48 75 62 70 76 63 60 72 59 64 74 61 50 69 56 69 68 55 60 72 59 70 76 63 52 77 65 72 78 66 66 63 51 49 62 50 75 79 71 71 64 64 66 63 51 72 78 66 53 80 67 73 81 68 68 70 57 50 69 56 52 77 65 49 62 50 68 70 57 73 81 68 51 82 69 74 83 70 70 76 63 48 75 62 53 80 67 50 69 56 70 76 63 74 83 70 56 84 72 76 85 73 72 78 66 52 77 65 55 86 74 75 79 71 72 78 66 76 85 73 57 87 75 77 88 76 73 81 68 53 80 67 56 84 72 52 77 65 73 81 68 77 88 76 54 89 77 78 90 78 74 83 70 51 82 69 57 87 75 53 80 67 74 83 70 78 90 78 229 231 225 238 232 226 220 233 227 242 234 228 229 231 225 243 235 229 221 236 230 238 232 226 229 231 225 232 237 240 246 238 241 243 235 229 229 231 225 242 234 228 223 239 231 232 237 240 239 240 232 221 236 230 230 241 233 222 242 234 230 241 233 221 236 230 243 235 229 246 238 241 230 241 233 244 243 235 222 242 234 230 241 233 246 238 241 233 244 243 247 245 244 244 243 235 231 246 236 240 247 237 222 242 234 244 243 235 231 246 236 241 248 238 219 249 239 240 247 237 231 246 236 234 250 245 245 251 246 241 248 238 231 246 236 244 243 235 247 245 244 234 250 245 232 237 240 235 252 247 250 253 248 246 238 241 232 237 240 223 239 231 224 254 242 235 252 247 233 244 243 236 255 252 252 256 253 247 245 244 233 244 243 246 238 241 250 253 248 236 255 252 234 250 245 237 257 256 248 258 257 245 251 246 234 250 245 247 245 244 252 256 253 237 257 256 235 252 247 249 259 249 227 260 250 250 253 248 235 252 247 224 254 242 226 261 251 249 259 249 236 255 252 251 262 254 228 263 255 252 256 253 236 255 252 250 253 248 227 260 250 251 262 254 237 257 256 253 264 258 225 265 259 248 258 257 237 257 256 252 256 253 228 263 255 253 264 258 2008 2240 2404 2007 2241 2405 1904 2242 2437 1905 2243 2475 1949 2244 2490 1903 2245 2408 1904 2242 2437 2007 2241 2405 1946 2246 2496 1902 2247 2406 1903 2245 2408 1949 2244 2490 1902 2247 2406 1972 2248 2453 2006 2249 2407 1903 2245 2408 2000 2250 2409 2001 2251 2410 2004 2252 2411 1998 2253 2414 2003 2254 2412 1999 2255 2413 1998 2253 2414 2002 2256 2415 2036 2257 2416 1999 2255 2413 2003 2254 2412 2035 2258 2417 2035 2258 2417 2003 2254 2412 1997 2259 2454 2033 2260 2500 1995 2261 2418 1900 2262 2419 1899 2263 2420 2031 2264 2421 1993 2265 2422 1996 2266 2423 1986 2267 2432 1992 2268 2424 1990 2269 2426 1989 2270 2427 2000 2250 2409 2005 2271 2428 2005 2271 2428 1988 2272 2429 2029 2273 2430 2037 2274 2431 1974 2275 2532 1987 2276 2528 1993 2265 2422 1967 2277 2485 1975 2278 2526 2034 2279 2540 2024 2280 2447 1996 2266 2423 1987 2276 2528 1975 2278 2526 1996 2266 2423 1993 2265 2422 2023 2281 2448 2028 2282 2433 1985 2283 2434 1986 2267 2432 1985 2283 2434 1984 2284 2435 1992 2268 2424 1986 2267 2432 1992 2268 2424 1984 2284 2435 1915 2285 2488 1914 2286 2489 2006 2249 2407 1983 2287 2436 1904 2242 2437 1903 2245 2408 1982 2288 2438 1950 2289 2480 1952 2290 2478 1906 2291 2482 1907 2292 2484 2002 2256 2415 1991 2293 2425 1981 2294 2439 2003 2254 2412 2000 2250 2409 1998 2253 2414 1978 2295 2442 1977 2296 2443 1988 2272 2429 2005 2271 2428 1980 2297 2440 1979 2298 2441 1998 2253 2414 1988 2272 2429 1979 2298 2441 1978 2295 2442 2000 2250 2409 1977 2296 2443 1980 2297 2440 2005 2271 2428 1979 2298 2441 1980 2297 2440 1977 2296 2443 1978 2295 2442 1901 2299 2445 2027 2300 2446 1976 2301 2444 1972 2248 2453 1902 2247 2406 2024 2280 2447 2023 2281 2448 1986 2267 2432 1996 2266 2423 1976 2301 2444 2027 2300 2446 2026 2302 2449 1973 2303 2450 1918 2304 2451 1917 2305 2452 1991 2293 2425 2002 2256 2415 1997 2259 2454 1971 2306 2455 1955 2307 2463 1995 2261 2418 2005 2271 2428 2037 2274 2431 2030 2308 2456 1990 2269 2426 1970 2309 2457 1961 2310 2476 1968 2311 2487 1967 2277 2485 2000 2250 2409 1989 2270 2427 1969 2312 2458 2001 2313 2410 1969 2312 2458 1974 2275 2532 1967 2277 2485 1968 2311 2487 1971 2306 2455 2612 2314 3214 1966 2315 2467 1908 2316 2459 1962 2317 2460 1960 2318 2462 1909 2319 2461 1955 2307 2463 1912 2320 2464 1900 2262 2419 1995 2261 2418 1912 2320 2464 1911 2321 2465 1959 2322 2502 1957 2323 2466 2612 2314 3214 2613 2324 3215 1954 2325 2486 1966 2315 2467 1973 2303 2450 2026 2302 2449 2025 2326 2468 1956 2327 2469 2025 2326 2468 2032 2328 2470 1994 2329 2471 1956 2327 2469 1958 2330 2472 1910 2331 2473 1909 2319 2461 1960 2318 2462 1904 2242 2437 1983 2287 2436 1965 2332 2474 1905 2243 2475 1997 2259 2454 1995 2261 2418 2031 2264 2421 2033 2260 2500 1961 2310 2476 1953 2333 2477 1954 2325 2486 1968 2311 2487 1943 2334 2501 1955 2307 2463 1971 2306 2455 1966 2315 2467 1952 2290 2478 1951 2335 2479 2008 2240 2404 1905 2243 2475 1906 2291 2482 1965 2332 2474 1964 2336 2481 1906 2291 2482 1905 2243 2475 1964 2336 2481 1963 2337 2483 1907 2292 2484 1906 2291 2482 1943 2334 2501 1966 2315 2467 1954 2325 2486 1953 2333 2477 1982 2288 2438 1970 2309 2457 1967 2277 2485 1914 2286 2489 1915 2285 2488 1950 2289 2480 1982 2288 2438 1914 2286 2489 1992 2268 2424 1914 2286 2489 1967 2277 2485 1993 2265 2422 1948 2338 2493 1916 2339 2492 1915 2285 2488 1984 2284 2435 1948 2338 2493 1984 2284 2435 1985 2283 2434 1947 2340 2495 2009 2341 2497 2020 2342 2494 1947 2340 2495 1985 2283 2434 2028 2282 2433 1901 2299 2445 1902 2247 2406 1946 2246 2496 2022 2343 2491 2020 2342 2494 2021 2344 2498 1945 2345 2503 1947 2340 2495 2019 2346 2499 2029 2273 2430 1988 2272 2429 1998 2253 2414 2003 2254 2412 1981 2294 2439 1971 2306 2455 1997 2259 2454 1959 2322 2502 1911 2321 2465 1910 2331 2473 1958 2330 2472 2613 2324 3215 1969 2312 2458 1968 2311 2487 1954 2325 2486 2019 2346 2499 1998 2253 2414 1999 2255 2413 2036 2257 2416 1963 2337 2483 1962 2317 2460 1908 2316 2459 1907 2292 2484 1947 2340 2495 1945 2345 2503 1944 2347 2504 1990 2269 2426 2030 2308 2456 2012 2348 2507 1921 2349 2508 2011 2350 2505 1920 2351 2506 1924 2352 2511 2013 2353 2512 1922 2354 2509 1938 2355 2510 1919 2356 2519 1939 2357 2524 1927 2358 2516 2014 2359 2533 2015 2360 2514 1925 2361 2513 1923 2362 2536 1926 2363 2515 1924 2352 2511 1920 2351 2506 1932 2364 2525 1927 2358 2516 1928 2365 2517 1929 2366 2518 1926 2367 2515 1990 2269 2426 1921 2349 2508 1929 2366 2518 1989 2270 2427 1919 2356 2519 1930 2368 2520 1931 2369 2521 1939 2357 2524 1934 2370 2522 1920 2351 2506 2011 2350 2505 2016 2371 2523 1939 2357 2524 1931 2369 2521 1941 2372 2529 1940 2373 2531 1926 2363 2515 1932 2364 2525 1922 2354 2509 1927 2358 2516 1928 2365 2517 1927 2358 2516 1939 2357 2524 1940 2373 2531 1975 2278 2526 1987 2276 2528 1941 2372 2529 1942 2374 2530 1940 2373 2531 1941 2372 2529 1987 2276 2528 1974 2275 2532 1940 2373 2531 1974 2275 2532 1969 2312 2458 1928 2365 2517 1930 2368 2520 1923 2362 2536 1925 2361 2513 1931 2369 2521 1931 2369 2521 1925 2361 2513 1942 2374 2530 1941 2372 2529 1932 2364 2525 1920 2351 2506 1934 2370 2522 1935 2375 2534 1928 2365 2517 1969 2312 2458 1989 2270 2427 1929 2366 2518 1924 2376 2511 1926 2367 2515 1929 2366 2518 1921 2349 2508 1922 2354 2509 1932 2364 2525 1935 2375 2534 1933 2377 2535 2017 2378 2537 2014 2359 2533 1923 2362 2536 1936 2379 2538 2012 2348 2507 2013 2380 2512 1924 2376 2511 1921 2349 2508 1933 2377 2535 1935 2375 2534 1936 2379 2538 2017 2381 2537 1936 2379 2538 1935 2375 2534 1934 2370 2522 2016 2371 2523 1919 2356 2519 1937 2382 2539 1930 2368 2520 1922 2354 2509 1933 2377 2535 1938 2355 2510 1923 2362 2536 1930 2368 2520 1937 2382 2539 1936 2379 2538 1937 2382 2539 1938 2355 2510 1933 2377 2535 1936 2379 2538 1919 2356 2519 1938 2355 2510 1937 2382 2539 2018 2383 2527 1942 2374 2530 1925 2361 2513 2015 2384 2514 2004 2252 2411 1918 2304 2451 2002 2256 2415 1998 2253 2414 2001 2251 2410 1917 2305 2452 1918 2304 2451 2004 2252 2411 2021 2344 2498 2010 2385 2541 1913 2386 2542 1945 2345 2503 2034 2279 2540 1975 2278 2526 1942 2374 2530 2018 2383 2527 1955 2307 2463 1943 2334 2501 1911 2321 2465 1912 2320 2464 1910 2331 2473 1911 2321 2465 1943 2334 2501 1953 2333 2477 1909 2319 2461 1910 2331 2473 1953 2333 2477 1961 2310 2476 1908 2316 2459 1909 2319 2461 1961 2310 2476 1970 2309 2457 1907 2292 2484 1908 2316 2459 1970 2309 2457 1982 2288 2438 1900 2262 2419 1912 2320 2464 1957 2323 2466 1994 2329 2471 1899 2263 2420 1900 2262 2419 1994 2329 2471 2032 2328 2470 2131 2387 2543 2130 2388 2544 1965 2332 2474 1983 2287 2436 2006 2389 2407 1972 2248 2453 2128 2390 2546 2129 2391 2545 2127 2392 2548 2126 2393 2549 2134 2394 2550 2133 2395 2547 2126 2393 2549 2125 2396 2551 2137 2397 2552 2134 2394 2550 1964 2336 2481 2048 2398 2553 2047 2399 2554 1963 2337 2483 1960 2318 2462 1962 2317 2460 2046 2400 2555 2045 2401 2612 2122 2402 2557 2121 2403 2556 2097 2404 2586 2100 2405 2585 2126 2393 2549 2119 2406 2558 2120 2407 2559 2125 2396 2551 2117 2408 2561 2128 2390 2546 1972 2248 2453 1976 2301 2444 2114 2409 2562 2116 2410 2563 2139 2411 2564 2146 2412 2565 2115 2413 2566 2118 2414 2560 2127 2392 2548 2116 2410 2563 2114 2409 2562 2113 2415 2567 2115 2413 2566 2116 2410 2563 2039 2416 2568 2117 2408 2561 1976 2301 2444 1973 2303 2450 2148 2417 2569 2109 2418 2570 2110 2419 2571 2067 2420 2572 2109 2418 2573 2107 2421 2574 2108 2422 2575 2110 2419 2576 2111 2423 2577 2105 2424 2578 2106 2425 2579 2112 2426 2580 2103 2427 2582 2106 2425 2579 2105 2424 2578 2104 2428 2581 2107 2421 2574 2101 2429 2583 2102 2430 2584 2108 2422 2575 2100 2405 2585 2097 2404 2586 2098 2431 2587 2099 2432 2588 1959 2322 2502 1958 2330 2472 2044 2433 2589 2043 2434 2590 2095 2435 2591 2096 2436 2592 2094 2437 2593 2113 2438 2594 2093 2439 2595 2090 2440 2596 2091 2441 2597 2092 2442 2598 1957 2323 2466 2042 2443 2599 2041 2444 2600 1994 2329 2471 2041 2444 2600 2040 2445 2601 1956 2327 2469 1994 2329 2471 2091 2441 2597 2090 2440 2596 2087 2446 2602 2089 2447 2603 2086 2448 2604 2085 2449 2605 2087 2446 2606 2090 2440 2607 2090 2440 2607 2093 2450 2608 2083 2451 2617 2086 2448 2604 2088 2452 2609 2113 2415 2567 2114 2409 2562 2088 2453 2610 2087 2446 2606 2085 2449 2605 2084 2454 2611 2087 2446 2602 2088 2452 2609 2089 2447 2603 2127 2392 2548 2118 2414 2560 2119 2406 2558 2126 2393 2549 2094 2437 2593 2096 2436 2592 2103 2427 2582 2104 2428 2581 2088 2453 2610 2084 2454 2611 2095 2435 2613 2113 2438 2614 2093 2450 2608 2081 2455 2615 2082 2456 2616 2083 2451 2617 1956 2327 2469 2040 2445 2601 2039 2416 2568 1973 2303 2450 2092 2442 2598 2099 2432 2588 2098 2431 2587 2093 2439 2595 2045 2401 2612 2044 2433 2589 1958 2330 2472 1960 2318 2462 2131 2387 2543 1983 2287 2436 2006 2389 2407 2129 2391 2545 2080 2457 2618 2079 2458 2619 2125 2396 2551 2120 2407 2559 2123 2459 2620 2077 2460 2621 2078 2461 2622 2124 2462 2623 2077 2460 2621 2123 2459 2620 2079 2458 2619 2080 2457 2618 2132 2463 2624 2128 2390 2546 2117 2408 2561 2138 2464 2625 2078 2461 2622 2121 2403 2556 2122 2402 2557 2124 2462 2623 2101 2429 2583 2082 2456 2616 2081 2455 2615 2102 2430 2584 2076 2465 2626 2073 2466 2627 2074 2467 2628 2075 2468 2629 2073 2469 2630 2071 2470 2631 2072 2471 2632 2074 2472 2633 2070 2473 2634 2073 2466 2627 2076 2465 2626 2069 2474 2635 2076 2475 2626 2068 2476 2636 2069 2477 2635 2067 2420 2572 2110 2419 2571 2078 2478 2637 2069 2477 2635 2068 2476 2636 2077 2460 2638 2070 2473 2634 2069 2474 2635 2078 2461 2637 2071 2470 2631 2080 2457 2639 2120 2407 2640 2072 2471 2632 2119 2406 2641 2066 2479 2642 2072 2471 2632 2120 2407 2640 2066 2479 2642 2065 2480 2643 2074 2472 2633 2072 2471 2632 2075 2481 2629 2061 2482 2644 2062 2483 2645 2063 2484 2646 2063 2484 2646 2062 2483 2645 2105 2424 2578 2111 2423 2577 2060 2485 2647 2057 2486 2648 2058 2487 2649 2059 2488 2650 2121 2403 2651 2078 2461 2652 2057 2489 2653 2060 2490 2654 2078 2491 2655 2110 2419 2576 2058 2492 2649 2057 2493 2648 2108 2422 2575 2059 2494 2650 2058 2492 2649 2110 2419 2576 2118 2414 2661 2064 2495 2656 2066 2479 2642 2119 2406 2641 2062 2483 2645 2056 2496 2657 2104 2428 2581 2105 2424 2578 2053 2497 2662 2097 2404 2663 2121 2403 2651 2060 2490 2654 2052 2498 2664 2053 2499 2665 2060 2485 2647 2059 2488 2650 2108 2422 2575 2102 2430 2584 2052 2500 2664 2059 2494 2650 2051 2501 2666 2053 2499 2665 2052 2498 2664 2051 2502 2667 2098 2431 2668 2097 2404 2663 2053 2497 2662 2093 2450 2608 2051 2503 2666 2081 2455 2615 2052 2500 2664 2102 2430 2584 2081 2455 2615 2051 2503 2666 2064 2495 2656 2118 2414 2661 2115 2413 2669 2050 2504 2670 2064 2495 2656 2050 2504 2670 2054 2505 2660 2055 2506 2658 2054 2507 2659 2050 2508 2671 2049 2509 2672 2094 2437 2593 2104 2428 2581 2056 2496 2657 2049 2510 2672 2049 2510 2672 2056 2496 2657 2055 2511 2658 2049 2510 2672 2113 2438 2594 2094 2437 2593 2113 2415 2673 2050 2504 2670 2115 2413 2669 2064 2495 2656 2054 2505 2660 2065 2480 2643 2066 2479 2642 2054 2507 2659 2055 2506 2658 2061 2512 2644 2065 2513 2674 2065 2513 2674 2061 2512 2644 2075 2468 2629 2074 2467 2628 2070 2514 2675 2077 2460 2676 2080 2457 2639 2071 2470 2631 2063 2484 2646 2068 2476 2636 2076 2475 2626 2075 2481 2629 2071 2470 2631 2073 2469 2630 2070 2514 2675 2047 2399 2554 2046 2400 2555 1962 2317 2460 1963 2337 2483 2042 2443 2599 1957 2323 2466 1959 2322 2502 2043 2434 2590 2061 2482 2644 2055 2511 2658 2056 2496 2657 2062 2483 2645 2111 2423 2577 2067 2420 2572 2068 2476 2636 2063 2484 2646 1964 2336 2481 1965 2332 2474 2130 2388 2544 2048 2398 2553 2140 2515 2677 2079 2458 2619 2123 2459 2620 2142 2516 2678 2113 2517 2594 2049 2509 2672 2050 2508 2671 2093 2439 2679 2098 2431 2668 2051 2502 2667 2047 2399 2554 2048 2398 2553 2123 2459 2620 2124 2462 2623 2124 2462 2623 2122 2402 2557 2046 2400 2555 2047 2399 2554 2045 2401 2612 2046 2400 2555 2122 2402 2557 2100 2405 2585 2100 2405 2585 2099 2432 2588 2044 2433 2589 2045 2401 2612 2043 2434 2590 2044 2433 2589 2099 2432 2588 2092 2442 2598 2091 2441 2597 2042 2443 2599 2043 2434 2590 2092 2442 2598 2041 2444 2600 2042 2443 2599 2091 2441 2597 2089 2447 2603 2089 2447 2603 2088 2452 2609 2147 2518 2680 2143 2519 2681 2088 2452 2609 2114 2409 2562 2146 2412 2565 2133 2395 2547 2132 2463 2624 2138 2464 2625 2139 2411 2564 2095 2520 2682 2084 2521 2683 2085 2522 2684 2086 2523 2685 2083 2524 2686 2038 2525 2687 2129 2391 2545 2128 2390 2546 2132 2463 2624 2135 2526 2688 2136 2527 2689 2131 2387 2543 2129 2391 2545 2135 2526 2688 2131 2387 2543 2136 2527 2689 2141 2528 2690 2130 2388 2544 2142 2516 2678 2048 2398 2553 2130 2388 2544 2141 2528 2690 2145 2529 2691 2039 2416 2568 2040 2445 2601 2144 2530 2692 2142 2516 2678 2123 2459 2620 2048 2398 2553 2144 2530 2692 2147 2518 2680 2088 2452 2609 2143 2519 2681 2039 2416 2568 2145 2529 2691 2138 2464 2625 2117 2408 2561 2125 2396 2551 2079 2458 2619 2140 2515 2677 2137 2397 2552 2116 2410 2563 2127 2392 2548 2133 2395 2547 2139 2411 2564 2132 2463 2624 2133 2395 2547 2134 2394 2550 2135 2526 2688 2135 2526 2688 2134 2394 2550 2137 2397 2552 2136 2527 2689 2136 2527 2689 2137 2397 2552 2140 2515 2677 2141 2528 2690 2139 2411 2564 2138 2464 2625 2145 2529 2691 2146 2412 2565 2141 2528 2690 2140 2515 2677 2142 2516 2678 2144 2530 2692 2143 2519 2681 2146 2412 2565 2145 2529 2691 2144 2530 2692 2040 2445 2601 2147 2518 2680 2089 2447 2603 2147 2518 2680 2040 2445 2601 2041 2444 2600 2112 2426 2580 2148 2417 2569 2067 2420 2572 2111 2423 2577 2150 2531 2695 2151 2532 2696 2254 2533 2697 2220 2534 2730 2248 2535 2698 2246 2536 2703 2252 2537 2699 2249 2538 2700 2251 2539 2701 2250 2540 2702 2246 2536 2703 2247 2541 2704 2036 2257 2416 2035 2258 2417 2251 2539 2701 2247 2541 2704 2243 2542 2705 2031 2264 2421 1899 2263 2420 2149 2543 2706 2241 2544 2707 2240 2545 2708 2234 2546 2715 2244 2547 2709 2238 2548 2711 2253 2549 2712 2248 2535 2698 2237 2550 2713 2253 2549 2712 2037 2274 2431 2029 2273 2430 2236 2551 2714 2254 2533 2697 2151 2532 2696 2152 2552 2718 2231 2553 2719 2250 2540 2702 2251 2539 2701 2229 2554 2721 2239 2555 2710 2225 2556 2725 2226 2557 2724 2246 2536 2703 2248 2535 2698 2236 2551 2714 2227 2558 2723 2228 2559 2722 2253 2549 2712 2246 2536 2703 2226 2557 2724 2227 2558 2723 2236 2551 2714 2227 2558 2723 2226 2557 2724 2225 2556 2725 2228 2559 2722 2224 2560 2726 2221 2561 2727 2026 2302 2449 2027 2300 2446 2166 2562 2728 2250 2540 2702 2239 2555 2710 2165 2563 2729 2150 2531 2695 2220 2534 2730 2224 2560 2726 2027 2300 2446 1901 2299 2445 2253 2549 2712 2238 2548 2711 2030 2308 2456 2037 2274 2431 2248 2535 2698 2249 2564 2700 2217 2565 2734 2237 2550 2713 2157 2566 2737 2208 2567 2738 2210 2568 2736 2156 2569 2735 2203 2570 2739 2243 2542 2705 2149 2543 2706 2160 2571 2740 2160 2571 2740 2205 2572 2741 2207 2573 2771 2159 2574 2742 2221 2561 2727 2204 2575 2744 2025 2326 2468 2026 2302 2449 2025 2326 2468 2204 2575 2744 2242 2576 2745 2032 2328 2470 2206 2577 2746 2208 2567 2738 2157 2566 2737 2158 2578 2747 2152 2552 2718 2153 2579 2748 2213 2580 2749 2231 2553 2719 2200 2581 2753 2198 2582 2754 2230 2583 2720 2155 2584 2757 2154 2585 2755 2213 2580 2749 2153 2579 2748 2154 2585 2755 2212 2586 2756 2212 2586 2756 2154 2585 2755 2155 2584 2757 2211 2587 2758 2243 2542 2705 2203 2570 2739 2219 2588 2731 2245 2589 2732 2209 2590 2750 2216 2591 2761 2202 2592 2760 2201 2593 2751 2232 2594 2717 2240 2545 2708 2162 2595 2763 2163 2596 2762 2233 2597 2716 2234 2546 2715 2240 2545 2708 2232 2594 2717 2162 2595 2763 2240 2545 2708 2241 2544 2707 2215 2598 2759 2197 2599 2764 2255 2600 2694 2152 2552 2718 2151 2532 2696 2194 2601 2768 2197 2599 2764 2151 2532 2696 2150 2531 2695 2150 2531 2695 1901 2299 2445 2022 2343 2491 2194 2601 2768 2164 2602 2765 2196 2603 2766 2232 2594 2717 2163 2596 2762 2196 2603 2766 2257 2604 2769 2195 2605 2767 2233 2597 2716 2232 2594 2717 2019 2346 2499 2246 2536 2703 2236 2551 2714 2029 2273 2430 2243 2542 2705 2245 2589 2732 2033 2260 2500 2031 2264 2421 2214 2606 2743 2219 2588 2731 2203 2570 2739 2191 2607 2770 2207 2573 2771 2206 2577 2746 2158 2578 2747 2159 2574 2742 2215 2598 2759 2216 2591 2761 2209 2590 2750 2218 2608 2733 2214 2606 2743 2191 2607 2770 2201 2593 2751 2202 2592 2760 2019 2346 2499 2036 2257 2416 2247 2541 2704 2246 2536 2703 2211 2587 2758 2155 2584 2757 2156 2569 2735 2210 2568 2736 2195 2605 2767 2192 2609 2772 2193 2610 2773 2169 2611 2775 2012 2348 2507 2030 2308 2456 2238 2548 2711 2011 2350 2505 2013 2353 2512 2172 2612 2778 2168 2613 2774 2175 2614 2781 2174 2615 2780 2177 2616 2782 2176 2617 2783 2182 2618 2787 2016 2371 2523 2011 2350 2505 2168 2613 2774 2223 2619 2790 2190 2620 2792 2189 2621 2793 2235 2622 2791 2178 2623 2785 2179 2624 2784 2173 2625 2779 2171 2626 2798 2180 2627 2789 2183 2628 2796 2182 2618 2787 2168 2613 2774 2169 2611 2775 2238 2548 2711 2237 2550 2713 2177 2616 2782 2174 2629 2780 2175 2614 2781 2170 2630 2777 2180 2627 2789 2172 2631 2778 2169 2611 2775 2177 2616 2782 2174 2615 2780 2174 2629 2780 2180 2627 2789 2168 2613 2774 2172 2612 2778 2170 2630 2777 2181 2632 2797 2183 2628 2796 2180 2627 2789 2222 2633 2795 2188 2634 2794 2176 2617 2783 2217 2565 2734 2235 2622 2791 2189 2621 2793 2188 2634 2794 2222 2633 2795 2012 2348 2507 2169 2611 2775 2172 2631 2778 2013 2380 2512 2217 2565 2734 2176 2617 2783 2177 2616 2782 2237 2550 2713 2181 2632 2797 2184 2635 2799 2183 2628 2796 2017 2381 2537 2016 2371 2523 2182 2618 2787 2183 2628 2796 2184 2635 2799 2167 2636 2786 2178 2623 2785 2185 2637 2800 2170 2630 2777 2186 2638 2776 2181 2632 2797 2170 2630 2777 2175 2614 2781 2187 2639 2788 2167 2636 2786 2186 2638 2776 2171 2626 2798 2184 2635 2799 2185 2637 2800 2178 2623 2785 2185 2637 2800 2184 2635 2799 2181 2632 2797 2186 2638 2776 2167 2636 2786 2185 2637 2800 2186 2638 2776 2167 2636 2786 2187 2639 2788 2179 2624 2784 2178 2623 2785 2176 2617 2783 2188 2634 2794 2187 2639 2788 2175 2614 2781 2187 2639 2788 2188 2634 2794 2189 2621 2793 2179 2624 2784 2179 2624 2784 2189 2621 2793 2190 2620 2792 2173 2625 2779 2225 2556 2725 2248 2535 2698 2253 2549 2712 2228 2559 2722 2252 2537 2699 2246 2536 2703 2250 2540 2702 2166 2562 2728 2249 2538 2700 2252 2537 2699 2166 2562 2728 2165 2563 2729 2198 2582 2754 2163 2596 2762 2162 2595 2763 2230 2583 2720 2230 2583 2720 2162 2595 2763 2215 2598 2759 2218 2608 2733 2021 2344 2498 2193 2610 2773 2161 2640 2801 2010 2385 2541 2020 2342 2494 2195 2605 2767 2193 2610 2773 2021 2344 2498 2020 2342 2494 2028 2282 2433 2233 2597 2716 2195 2605 2767 2244 2547 2709 2234 2546 2715 2023 2281 2448 2024 2280 2447 2034 2279 2540 2018 2383 2527 2190 2620 2792 2223 2619 2790 2018 2383 2527 2015 2384 2514 2173 2625 2779 2190 2620 2792 2014 2359 2533 2171 2626 2798 2173 2625 2779 2015 2360 2514 2017 2378 2537 2184 2635 2799 2171 2626 2798 2014 2359 2533 2203 2570 2739 2160 2571 2740 2159 2574 2742 2191 2607 2770 2158 2578 2747 2201 2593 2751 2191 2607 2770 2159 2574 2742 2157 2566 2737 2209 2590 2750 2201 2593 2751 2158 2578 2747 2157 2566 2737 2156 2569 2735 2218 2608 2733 2209 2590 2750 2155 2584 2757 2230 2583 2720 2218 2608 2733 2156 2569 2735 2200 2581 2753 2154 2585 2755 2153 2579 2748 2256 2641 2693 2199 2642 2752 2256 2641 2693 2153 2579 2748 2152 2552 2718 2255 2600 2694 2149 2543 2706 2242 2576 2745 2205 2572 2741 2160 2571 2740 1899 2263 2420 2032 2328 2470 2242 2576 2745 2149 2543 2706 2223 2619 2790 2244 2547 2709 2024 2280 2447 2034 2279 2540 2235 2622 2791 2241 2544 2707 2244 2547 2709 2223 2619 2790 2222 2633 2795 2215 2598 2759 2241 2544 2707 2235 2622 2791 2217 2565 2734 2216 2591 2761 2215 2598 2759 2222 2633 2795 2165 2643 2729 2615 2644 3217 2217 2565 2734 2249 2564 2700 2239 2645 2710 2614 2646 3216 2615 2644 3217 2165 2643 2729 2229 2554 2721 2219 2588 2731 2614 2646 3216 2239 2645 2710 2251 2539 2701 2245 2589 2732 2219 2588 2731 2229 2554 2721 2035 2258 2417 2033 2260 2500 2245 2589 2732 2251 2539 2701 2351 2647 2802 2231 2553 2719 2213 2580 2749 2350 2648 2803 2254 2649 2697 2349 2650 2804 2348 2651 2805 2220 2534 2730 2347 2652 2806 2353 2653 2807 2354 2654 2808 2346 2655 2809 2346 2655 2809 2354 2654 2808 2357 2656 2810 2345 2657 2811 2212 2586 2756 2211 2587 2758 2267 2658 2812 2268 2659 2813 2346 2655 2809 2345 2657 2811 2340 2660 2817 2339 2661 2818 2337 2662 2820 2224 2560 2726 2220 2534 2730 2348 2651 2805 2334 2663 2821 2366 2664 2822 2359 2665 2823 2336 2666 2824 2335 2667 2825 2336 2666 2824 2347 2652 2806 2338 2668 2819 2334 2663 2821 2336 2666 2824 2335 2667 2825 2333 2669 2826 2259 2670 2827 2221 2561 2727 2224 2560 2726 2337 2662 2820 2368 2671 2828 2287 2672 2829 2330 2673 2830 2329 2674 2831 2329 2674 2832 2330 2673 2833 2328 2675 2834 2327 2676 2835 2331 2677 2836 2332 2678 2837 2326 2679 2838 2325 2680 2839 2323 2681 2841 2324 2682 2840 2325 2680 2839 2326 2679 2838 2320 2683 2844 2319 2684 2845 2318 2685 2846 2317 2686 2847 2207 2573 2771 2263 2687 2848 2264 2688 2849 2206 2577 2746 2315 2689 2850 2333 2690 2851 2314 2691 2852 2316 2692 2853 2313 2693 2854 2312 2694 2855 2311 2695 2856 2310 2696 2857 2205 2572 2741 2242 2576 2745 2261 2697 2858 2262 2698 2859 2261 2697 2858 2242 2576 2745 2204 2575 2744 2260 2699 2860 2311 2695 2856 2309 2700 2861 2307 2701 2862 2310 2696 2857 2306 2702 2863 2310 2696 2864 2307 2701 2865 2305 2703 2866 2310 2696 2864 2306 2702 2863 2303 2704 2874 2313 2705 2867 2308 2706 2868 2334 2663 2821 2333 2669 2826 2308 2707 2869 2304 2708 2870 2305 2703 2866 2307 2701 2865 2307 2701 2862 2309 2700 2861 2308 2706 2868 2347 2652 2806 2346 2655 2809 2339 2661 2818 2338 2668 2819 2210 2568 2736 2208 2567 2738 2265 2709 2871 2266 2710 2814 2320 2683 2844 2317 2686 2847 2341 2711 2815 2342 2712 2816 2314 2691 2852 2324 2682 2840 2323 2681 2841 2316 2692 2853 2308 2707 2869 2333 2690 2872 2315 2689 2873 2304 2708 2870 2313 2705 2867 2303 2704 2874 2302 2713 2875 2301 2714 2876 2204 2575 2744 2221 2561 2727 2259 2670 2827 2260 2699 2860 2312 2694 2855 2313 2693 2854 2318 2685 2846 2319 2684 2845 2265 2709 2871 2208 2567 2738 2206 2577 2746 2264 2688 2849 2351 2647 2802 2349 2650 2804 2254 2649 2697 2231 2553 2719 2300 2715 2877 2340 2660 2817 2345 2657 2811 2299 2716 2878 2343 2717 2879 2344 2718 2880 2298 2719 2881 2297 2720 2882 2297 2720 2882 2300 2715 2877 2299 2716 2878 2343 2717 2879 2352 2721 2883 2358 2722 2884 2337 2662 2820 2348 2651 2805 2298 2719 2881 2344 2718 2880 2342 2712 2816 2341 2711 2815 2321 2723 2843 2327 2676 2835 2328 2675 2834 2322 2724 2842 2321 2723 2843 2322 2724 2842 2301 2714 2876 2302 2713 2875 2296 2725 2885 2295 2726 2886 2294 2727 2887 2293 2728 2888 2293 2729 2889 2294 2730 2890 2292 2731 2891 2291 2732 2892 2290 2733 2893 2289 2734 2894 2296 2725 2885 2293 2728 2888 2296 2735 2885 2289 2736 2894 2288 2737 2895 2287 2672 2829 2288 2737 2895 2289 2736 2894 2298 2738 2896 2330 2673 2830 2297 2720 2897 2298 2719 2896 2289 2734 2894 2290 2733 2893 2291 2732 2892 2292 2731 2891 2340 2660 2898 2300 2715 2899 2339 2661 2900 2340 2660 2898 2292 2731 2891 2286 2739 2901 2286 2739 2901 2292 2731 2891 2294 2730 2890 2285 2740 2902 2295 2741 2886 2283 2742 2903 2282 2743 2904 2281 2744 2905 2283 2742 2903 2331 2677 2836 2325 2680 2839 2282 2743 2904 2280 2745 2906 2279 2746 2907 2278 2747 2908 2277 2748 2909 2341 2711 2910 2280 2749 2911 2277 2750 2912 2298 2719 2913 2298 2751 2914 2277 2752 2909 2278 2753 2908 2330 2673 2833 2328 2675 2834 2330 2673 2833 2278 2753 2908 2279 2754 2907 2338 2668 2920 2339 2661 2900 2286 2739 2901 2284 2755 2915 2282 2743 2904 2325 2680 2839 2324 2682 2840 2276 2756 2916 2271 2757 2925 2272 2758 2924 2273 2759 2923 2271 2760 2926 2273 2761 2922 2317 2686 2921 2318 2685 2927 2313 2705 2867 2301 2714 2876 2271 2762 2925 2272 2763 2924 2271 2762 2925 2301 2714 2876 2322 2724 2842 2284 2755 2915 2270 2764 2928 2335 2667 2929 2338 2668 2920 2284 2755 2915 2274 2765 2919 2270 2764 2928 2275 2766 2917 2269 2767 2930 2270 2768 2931 2274 2769 2918 2314 2691 2852 2269 2770 2930 2276 2756 2916 2324 2682 2840 2269 2770 2930 2275 2771 2917 2276 2756 2916 2269 2770 2930 2314 2691 2852 2333 2690 2851 2333 2669 2932 2335 2667 2929 2270 2764 2928 2284 2755 2915 2286 2739 2901 2285 2740 2902 2274 2765 2919 2274 2769 2918 2285 2772 2933 2281 2773 2905 2275 2766 2917 2285 2772 2933 2294 2727 2887 2295 2726 2886 2281 2773 2905 2290 2774 2934 2291 2732 2892 2300 2715 2899 2297 2720 2935 2283 2742 2903 2295 2741 2886 2296 2735 2885 2288 2737 2895 2291 2732 2892 2290 2774 2934 2293 2729 2889 2322 2724 2842 2328 2675 2834 2279 2754 2907 2272 2763 2924 2272 2758 2924 2279 2746 2907 2280 2745 2906 2273 2759 2923 2273 2761 2922 2280 2749 2911 2341 2711 2910 2317 2686 2921 2267 2658 2812 2211 2587 2758 2210 2568 2736 2266 2710 2814 2262 2698 2859 2263 2687 2848 2207 2573 2771 2205 2572 2741 2281 2744 2905 2282 2743 2904 2276 2756 2916 2275 2771 2917 2331 2677 2836 2283 2742 2903 2288 2737 2895 2287 2672 2829 2212 2586 2756 2268 2659 2813 2350 2648 2803 2213 2580 2749 2360 2775 2936 2362 2776 2937 2343 2717 2879 2299 2716 2878 2333 2777 2851 2270 2768 2931 2269 2767 2930 2313 2693 2938 2271 2760 2926 2318 2685 2927 2267 2658 2812 2344 2718 2880 2343 2717 2879 2268 2659 2813 2344 2718 2880 2267 2658 2812 2266 2710 2814 2342 2712 2816 2266 2710 2814 2265 2709 2871 2320 2683 2844 2342 2712 2816 2320 2683 2844 2265 2709 2871 2264 2688 2849 2319 2684 2845 2263 2687 2848 2312 2694 2855 2319 2684 2845 2264 2688 2849 2311 2695 2856 2312 2694 2855 2263 2687 2848 2262 2698 2859 2261 2697 2858 2309 2700 2861 2311 2695 2856 2262 2698 2859 2309 2700 2861 2367 2778 2939 2308 2706 2868 2363 2779 2940 2366 2664 2822 2334 2663 2821 2308 2706 2868 2353 2653 2807 2359 2665 2823 2358 2722 2884 2352 2721 2883 2315 2780 2941 2258 2781 2942 2303 2782 2943 2306 2783 2944 2305 2784 2945 2304 2785 2946 2349 2650 2804 2355 2786 2947 2352 2721 2883 2348 2651 2805 2356 2787 2948 2355 2786 2947 2349 2650 2804 2351 2647 2802 2351 2647 2802 2350 2648 2803 2361 2788 2949 2356 2787 2948 2362 2776 2937 2361 2788 2949 2350 2648 2803 2268 2659 2813 2365 2789 2950 2364 2790 2951 2260 2699 2860 2259 2670 2827 2362 2776 2937 2268 2659 2813 2343 2717 2879 2364 2790 2951 2363 2779 2940 2308 2706 2868 2367 2778 2939 2259 2670 2827 2337 2662 2820 2358 2722 2884 2365 2789 2950 2345 2657 2811 2357 2656 2810 2360 2775 2936 2299 2716 2878 2336 2666 2824 2359 2665 2823 2353 2653 2807 2347 2652 2806 2352 2721 2883 2355 2786 2947 2354 2654 2808 2353 2653 2807 2355 2786 2947 2356 2787 2948 2357 2656 2810 2354 2654 2808 2356 2787 2948 2361 2788 2949 2360 2775 2936 2357 2656 2810 2359 2665 2823 2366 2664 2822 2365 2789 2950 2358 2722 2884 2361 2788 2949 2362 2776 2937 2360 2775 2936 2364 2790 2951 2365 2789 2950 2366 2664 2822 2363 2779 2940 2364 2790 2951 2367 2778 2939 2260 2699 2860 2309 2700 2861 2261 2697 2858 2260 2699 2860 2367 2778 2939 2332 2678 2837 2331 2677 2836 2287 2672 2829 2368 2671 2828 2028 2282 2433 2023 2281 2448 2234 2546 2715 2233 2597 2716 1981 2294 2439 1991 3156 2425 2612 2314 3214 1971 2306 2455 1991 3156 2425 1917 3157 2452 2613 2324 3215 2612 2314 3214 1917 3157 2452 2001 2313 2410 1969 2312 2458 2613 2324 3215 2614 2646 3216 2219 2588 2731 2214 2606 2743 2615 2644 3217 2614 2646 3216 2214 2606 2743 2202 2592 2760 2217 2565 2734 2615 2644 3217 2202 2592 2760 2216 2591 2761

+ + + + + + 4 4 4 4 4 4 4 4 4 4 4 4 +

89 91 79 90 92 80 80 93 81 81 94 82 80 93 81 79 95 84 82 96 83 81 94 82 84 97 87 83 98 85 88 99 86 87 100 88 85 101 91 84 97 87 87 100 88 86 102 92 91 103 89 92 104 90 85 101 91 86 102 92 83 98 85 82 96 83 79 95 84 88 99 86 255 266 260 265 267 261 264 268 262 256 269 263 256 269 263 257 270 264 254 271 265 255 266 260 262 272 269 263 273 267 258 274 266 259 275 268 261 276 273 262 272 269 259 275 268 260 277 270 260 277 270 267 278 271 266 279 272 261 276 273 263 273 267 254 271 265 257 270 264 258 274 266

+
+ + + + + 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 3 4 3 4 4 3 3 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 12 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 3 4 4 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 12 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 3 4 4 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 3 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 3 3 4 4 3 5 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 4 3 3 +

0 0 0 2 1 1 3 2 2 1 3 3 4 4 4 5 5 5 7 6 6 6 7 7 1 8 3 3 9 2 7 10 6 5 11 5 3 12 2 2 13 1 6 14 7 7 15 6 2 16 1 0 17 0 4 18 4 6 19 7 21 20 8 9 21 9 8 22 10 8 22 10 20 23 11 21 20 8 22 24 12 10 25 13 9 21 9 9 21 9 21 20 8 22 24 12 23 26 14 11 27 15 10 25 13 10 25 13 22 24 12 23 26 14 24 28 16 12 29 17 11 27 15 11 27 15 23 26 14 24 28 16 25 30 18 13 31 19 12 29 17 12 29 17 24 28 16 25 30 18 26 32 20 14 33 21 13 31 19 13 31 19 25 30 18 26 32 20 27 34 22 15 35 23 14 33 21 14 33 21 26 32 20 27 34 22 28 36 24 16 37 25 15 35 23 15 35 23 27 34 22 28 36 24 29 38 26 17 39 27 16 37 25 16 37 25 28 36 24 29 38 26 30 40 28 18 41 29 17 39 27 17 39 27 29 38 26 30 40 28 31 42 30 19 43 31 18 41 29 18 41 29 30 40 28 31 42 30 20 23 11 8 22 10 19 43 31 19 43 31 31 42 30 20 23 11 33 44 32 32 45 33 43 46 34 43 46 34 42 47 35 41 48 36 41 48 36 40 49 37 39 50 38 43 46 34 41 48 36 39 50 38 39 50 38 38 51 39 37 52 40 37 52 40 36 53 41 35 54 42 39 50 38 37 52 40 35 54 42 43 46 34 39 50 38 35 54 42 33 44 32 43 46 34 35 54 42 33 44 32 35 54 42 34 55 43 33 44 32 21 20 8 20 23 11 20 23 11 32 45 33 33 44 32 34 55 43 22 24 12 21 20 8 21 20 8 33 44 32 34 55 43 35 54 42 23 26 14 22 24 12 22 24 12 34 55 43 35 54 42 36 53 41 24 28 16 23 26 14 23 26 14 35 54 42 36 53 41 37 52 40 25 30 18 24 28 16 24 28 16 36 53 41 37 52 40 38 51 39 26 32 20 25 30 18 25 30 18 37 52 40 38 51 39 39 50 38 27 34 22 26 32 20 26 32 20 38 51 39 39 50 38 40 49 37 28 36 24 27 34 22 27 34 22 39 50 38 40 49 37 41 48 36 29 38 26 28 36 24 28 36 24 40 49 37 41 48 36 42 47 35 30 40 28 29 38 26 29 38 26 41 48 36 42 47 35 43 46 34 31 42 30 30 40 28 30 40 28 42 47 35 43 46 34 32 45 33 20 23 11 31 42 30 31 42 30 43 46 34 32 45 33 100 105 95 99 106 93 93 107 94 94 108 96 101 109 97 100 105 95 94 108 96 95 110 98 102 111 99 101 109 97 95 110 98 96 112 100 103 113 101 102 111 99 96 112 100 97 114 102 104 115 103 103 113 101 97 114 102 98 116 104 104 115 103 98 116 104 93 107 94 99 106 93 106 117 106 105 118 105 99 106 93 100 105 95 107 119 107 106 117 106 100 105 95 101 109 97 108 120 108 107 119 107 101 109 97 102 111 99 109 121 109 108 120 108 102 111 99 103 113 101 110 122 110 109 121 109 103 113 101 104 115 103 110 122 110 104 115 103 99 106 93 105 118 105 112 123 112 111 124 111 105 118 105 106 117 106 113 125 113 112 123 112 106 117 106 107 119 107 114 126 114 113 125 113 107 119 107 108 120 108 115 127 115 114 126 114 108 120 108 109 121 109 116 128 116 115 127 115 109 121 109 110 122 110 116 128 116 110 122 110 105 118 105 111 124 111 118 129 118 117 130 117 111 124 111 112 123 112 119 131 119 118 129 118 112 123 112 113 125 113 120 132 120 119 131 119 113 125 113 114 126 114 121 133 121 120 132 120 114 126 114 115 127 115 122 134 122 121 133 121 115 127 115 116 128 116 122 134 122 116 128 116 111 124 111 117 130 117 124 135 124 123 136 123 117 130 117 118 129 118 125 137 125 124 135 124 118 129 118 119 131 119 126 138 126 125 137 125 119 131 119 120 132 120 127 139 127 126 138 126 120 132 120 121 133 121 128 140 128 127 139 127 121 133 121 122 134 122 128 140 128 122 134 122 117 130 117 123 136 123 130 141 130 129 142 129 123 136 123 124 135 124 131 143 131 130 141 130 124 135 124 125 137 125 132 144 132 131 143 131 125 137 125 126 138 126 133 145 133 132 144 132 126 138 126 127 139 127 134 146 134 133 145 133 127 139 127 128 140 128 134 146 134 128 140 128 123 136 123 129 142 129 136 147 136 135 148 135 129 142 129 130 141 130 137 149 137 136 147 136 130 141 130 131 143 131 138 150 138 137 149 137 131 143 131 132 144 132 139 151 139 138 150 138 132 144 132 133 145 133 140 152 140 139 151 139 133 145 133 134 146 134 140 152 140 134 146 134 129 142 129 135 148 135 142 153 142 141 154 141 135 148 135 136 147 136 143 155 143 142 153 142 136 147 136 137 149 137 144 156 144 143 155 143 137 149 137 138 150 138 145 157 145 144 156 144 138 150 138 139 151 139 146 158 146 145 157 145 139 151 139 140 152 140 146 158 146 140 152 140 135 148 135 141 154 141 148 159 148 147 160 147 141 154 141 142 153 142 149 161 149 148 159 148 142 153 142 143 155 143 150 162 150 149 161 149 143 155 143 144 156 144 151 163 151 150 162 150 144 156 144 145 157 145 152 164 152 151 163 151 145 157 145 146 158 146 152 164 152 146 158 146 141 154 141 147 160 147 154 165 154 153 166 153 147 160 147 148 159 148 155 167 155 154 165 154 148 159 148 149 161 149 156 168 156 155 167 155 149 161 149 150 162 150 157 169 157 156 168 156 150 162 150 151 163 151 158 170 158 157 169 157 151 163 151 152 164 152 158 170 158 152 164 152 147 160 147 153 166 153 160 171 160 159 172 159 153 166 153 154 165 154 161 173 161 160 171 160 154 165 154 155 167 155 162 174 162 161 173 161 155 167 155 156 168 156 163 175 163 162 174 162 156 168 156 157 169 157 164 176 164 163 175 163 157 169 157 158 170 158 164 176 164 158 170 158 153 166 153 159 172 159 166 177 166 165 178 165 159 172 159 160 171 160 167 179 167 166 177 166 160 171 160 161 173 161 168 180 168 167 179 167 161 173 161 162 174 162 169 181 169 168 180 168 162 174 162 163 175 163 170 182 170 169 181 169 163 175 163 164 176 164 170 182 170 164 176 164 159 172 159 165 178 165 172 183 172 171 184 171 165 178 165 166 177 166 173 185 173 172 183 172 166 177 166 167 179 167 174 186 174 173 185 173 167 179 167 168 180 168 175 187 175 174 186 174 168 180 168 169 181 169 176 188 176 175 187 175 169 181 169 170 182 170 176 188 176 170 182 170 165 178 165 171 184 171 178 189 178 177 190 177 171 184 171 172 183 172 179 191 179 178 189 178 172 183 172 173 185 173 180 192 180 179 191 179 173 185 173 174 186 174 181 193 181 180 192 180 174 186 174 175 187 175 182 194 182 181 193 181 175 187 175 176 188 176 182 194 182 176 188 176 171 184 171 177 190 177 94 108 184 93 107 183 177 190 177 178 189 178 95 110 185 94 108 184 178 189 178 179 191 179 96 112 186 95 110 185 179 191 179 180 192 180 97 114 187 96 112 186 180 192 180 181 193 181 98 116 188 97 114 187 181 193 181 182 194 182 93 107 183 98 116 188 182 194 182 177 190 177 183 195 189 184 196 190 196 197 191 196 197 191 195 198 192 183 195 189 184 196 190 185 199 193 197 200 194 197 200 194 196 197 191 184 196 190 185 199 193 186 201 195 198 202 196 198 202 196 197 200 194 185 199 193 186 201 195 187 203 197 199 204 198 199 204 198 198 202 196 186 201 195 187 203 197 188 205 199 200 206 200 200 206 200 199 204 198 187 203 197 188 205 199 189 207 201 201 208 202 201 208 202 200 206 200 188 205 199 189 207 201 190 209 203 202 210 204 202 210 204 201 208 202 189 207 201 190 209 203 191 211 205 203 212 206 203 212 206 202 210 204 190 209 203 191 211 205 192 213 207 218 214 208 218 214 208 203 212 206 191 211 205 192 213 207 193 215 209 204 216 210 204 216 210 218 214 208 192 213 207 193 215 209 194 217 211 205 218 212 205 218 212 204 216 210 193 215 209 194 217 211 183 195 189 195 198 192 195 198 192 205 218 212 194 217 211 211 219 213 212 220 214 213 221 215 213 221 215 214 222 216 215 223 217 215 223 217 216 224 218 217 225 219 213 221 215 215 223 217 217 225 219 217 225 219 206 226 220 207 227 221 207 227 221 208 228 222 209 229 223 217 225 219 207 227 221 209 229 223 213 221 215 217 225 219 209 229 223 211 219 213 213 221 215 209 229 223 211 219 213 209 229 223 210 230 224 195 198 192 196 197 191 207 227 221 207 227 221 206 226 220 195 198 192 196 197 191 197 200 194 208 228 222 208 228 222 207 227 221 196 197 191 197 200 194 198 202 196 209 229 223 209 229 223 208 228 222 197 200 194 198 202 196 199 204 198 210 230 224 210 230 224 209 229 223 198 202 196 199 204 198 200 206 200 211 219 213 211 219 213 210 230 224 199 204 198 200 206 200 201 208 202 212 220 214 212 220 214 211 219 213 200 206 200 201 208 202 202 210 204 213 221 215 213 221 215 212 220 214 201 208 202 202 210 204 203 212 206 214 222 216 214 222 216 213 221 215 202 210 204 203 212 206 218 214 208 215 223 217 215 223 217 214 222 216 203 212 206 218 214 208 204 216 210 216 224 218 216 224 218 215 223 217 218 214 208 204 216 210 205 218 212 217 225 219 217 225 219 216 224 218 204 216 210 205 218 212 195 198 192 206 226 220 206 226 220 217 225 219 205 218 212 268 280 275 274 281 274 275 282 276 269 283 277 269 283 277 275 282 276 276 284 278 270 285 279 270 285 279 276 284 278 277 286 280 271 287 281 271 287 281 277 286 280 278 288 282 272 289 283 272 289 283 278 288 282 279 290 284 273 291 285 273 291 285 279 290 284 274 281 274 268 280 275 274 281 274 280 292 286 281 293 287 275 282 276 275 282 276 281 293 287 282 294 288 276 284 278 276 284 278 282 294 288 283 295 289 277 286 280 277 286 280 283 295 289 284 296 290 278 288 282 278 288 282 284 296 290 285 297 291 279 290 284 274 281 274 279 290 284 285 297 291 280 292 286 280 292 286 286 298 292 287 299 293 281 293 287 281 293 287 287 299 293 288 300 294 282 294 288 282 294 288 288 300 294 289 301 295 283 295 289 283 295 289 289 301 295 290 302 296 284 296 290 284 296 290 290 302 296 291 303 297 285 297 291 280 292 286 285 297 291 291 303 297 286 298 292 286 298 292 292 304 298 293 305 299 287 299 293 287 299 293 293 305 299 294 306 300 288 300 294 288 300 294 294 306 300 295 307 301 289 301 295 289 301 295 295 307 301 296 308 302 290 302 296 290 302 296 296 308 302 297 309 303 291 303 297 286 298 292 291 303 297 297 309 303 292 304 298 292 304 298 298 310 304 299 311 305 293 305 299 293 305 299 299 311 305 300 312 306 294 306 300 294 306 300 300 312 306 301 313 307 295 307 301 295 307 301 301 313 307 302 314 308 296 308 302 296 308 302 302 314 308 303 315 309 297 309 303 292 304 298 297 309 303 303 315 309 298 310 304 298 310 304 304 316 310 305 317 311 299 311 305 299 311 305 305 317 311 306 318 312 300 312 306 300 312 306 306 318 312 307 319 313 301 313 307 301 313 307 307 319 313 308 320 314 302 314 308 302 314 308 308 320 314 309 321 315 303 315 309 298 310 304 303 315 309 309 321 315 304 316 310 304 316 310 310 322 316 311 323 317 305 317 311 305 317 311 311 323 317 312 324 318 306 318 312 306 318 312 312 324 318 313 325 319 307 319 313 307 319 313 313 325 319 314 326 320 308 320 314 308 320 314 314 326 320 315 327 321 309 321 315 304 316 310 309 321 315 315 327 321 310 322 316 310 322 316 316 328 322 317 329 323 311 323 317 311 323 317 317 329 323 318 330 324 312 324 318 312 324 318 318 330 324 319 331 325 313 325 319 313 325 319 319 331 325 320 332 326 314 326 320 314 326 320 320 332 326 321 333 327 315 327 321 310 322 316 315 327 321 321 333 327 316 328 322 316 328 322 322 334 328 323 335 329 317 329 323 317 329 323 323 335 329 324 336 330 318 330 324 318 330 324 324 336 330 325 337 331 319 331 325 319 331 325 325 337 331 326 338 332 320 332 326 320 332 326 326 338 332 327 339 333 321 333 327 316 328 322 321 333 327 327 339 333 322 334 328 322 334 328 328 340 334 329 341 335 323 335 329 323 335 329 329 341 335 330 342 336 324 336 330 324 336 330 330 342 336 331 343 337 325 337 331 325 337 331 331 343 337 332 344 338 326 338 332 326 338 332 332 344 338 333 345 339 327 339 333 322 334 328 327 339 333 333 345 339 328 340 334 328 340 334 334 346 340 335 347 341 329 341 335 329 341 335 335 347 341 336 348 342 330 342 336 330 342 336 336 348 342 337 349 343 331 343 337 331 343 337 337 349 343 338 350 344 332 344 338 332 344 338 338 350 344 339 351 345 333 345 339 328 340 334 333 345 339 339 351 345 334 346 340 334 346 340 340 352 346 341 353 347 335 347 341 335 347 341 341 353 347 342 354 348 336 348 342 336 348 342 342 354 348 343 355 349 337 349 343 337 349 343 343 355 349 344 356 350 338 350 344 338 350 344 344 356 350 345 357 351 339 351 345 334 346 340 339 351 345 345 357 351 340 352 346 340 352 346 346 358 352 347 359 353 341 353 347 341 353 347 347 359 353 348 360 354 342 354 348 342 354 348 348 360 354 349 361 355 343 355 349 343 355 349 349 361 355 350 362 356 344 356 350 344 356 350 350 362 356 351 363 357 345 357 351 340 352 346 345 357 351 351 363 357 346 358 352 346 358 352 352 364 358 353 365 359 347 359 353 347 359 353 353 365 359 354 366 360 348 360 354 348 360 354 354 366 360 355 367 361 349 361 355 349 361 355 355 367 361 356 368 362 350 362 356 350 362 356 356 368 362 357 369 363 351 363 357 346 358 352 351 363 357 357 369 363 352 364 358 352 364 358 268 280 364 269 283 365 353 365 359 353 365 359 269 283 365 270 285 366 354 366 360 354 366 360 270 285 366 271 287 367 355 367 361 355 367 361 271 287 367 272 289 368 356 368 362 356 368 362 272 289 368 273 291 369 357 369 363 352 364 358 357 369 363 273 291 369 268 280 364 359 370 370 381 371 371 376 372 372 367 373 373 361 374 374 359 375 370 367 376 373 370 377 375 366 378 376 367 379 373 376 380 372 378 381 377 380 382 378 381 383 371 359 384 370 358 385 379 378 386 377 380 387 378 358 388 379 366 389 376 366 390 376 358 391 379 360 392 380 372 393 381 370 394 375 372 393 381 360 392 380 361 395 374 358 396 382 359 397 383 363 398 384 362 399 385 359 400 383 361 401 386 365 402 387 363 403 384 361 404 386 360 405 388 364 406 389 365 407 387 360 408 388 358 409 382 362 410 385 364 411 389 362 412 385 363 413 384 374 414 390 375 415 391 368 416 392 377 417 393 374 414 390 363 413 384 365 418 387 371 419 394 362 412 385 375 415 391 379 420 395 369 421 396 373 422 397 364 423 389 379 420 395 377 424 393 368 425 392 369 421 396 364 423 389 373 422 397 371 426 394 365 427 387 366 428 398 369 429 396 368 430 392 367 431 399 372 432 400 373 433 397 369 434 396 366 435 398 373 436 397 372 437 400 370 438 401 371 439 394 367 440 399 368 441 392 371 442 394 370 443 401 380 444 402 375 445 391 374 446 390 381 447 403 378 448 404 379 449 395 375 450 391 380 451 402 379 452 395 378 453 404 376 454 405 377 455 393 381 456 403 374 457 390 377 458 393 376 459 405 394 460 406 395 461 407 388 462 408 385 463 409 386 464 410 382 465 411 390 466 412 389 467 413 396 468 414 397 469 415 390 470 412 382 471 411 387 472 416 383 473 417 392 474 418 391 475 419 398 476 420 399 477 421 392 474 418 383 473 417 384 478 422 385 479 409 388 480 408 393 481 423 393 482 424 388 483 425 395 484 426 395 484 426 397 485 427 391 486 428 393 482 424 391 486 428 392 487 429 399 488 430 393 482 424 386 489 410 389 490 413 395 461 407 394 460 406 387 491 416 391 492 419 397 469 415 396 468 414 389 493 431 390 494 432 397 485 427 395 484 426 384 478 422 393 481 423 399 477 421 398 476 420 400 495 433 402 496 434 403 497 435 401 498 436 402 496 437 404 499 438 403 497 439 406 500 440 405 501 441 408 502 442 407 503 443 408 502 444 409 504 445 407 503 446 404 505 447 402 506 448 407 507 449 409 508 450 402 506 448 400 509 452 406 510 451 407 507 449 410 511 453 411 512 454 412 513 455 411 512 456 413 514 457 412 513 458 415 515 459 414 516 460 413 514 461 411 512 462 417 517 464 416 518 463 418 519 465 418 519 466 419 520 467 417 517 468 421 521 469 417 517 470 419 520 471 420 522 472 419 523 473 413 524 474 414 525 475 420 526 476 418 527 477 412 528 478 413 524 474 419 523 473 410 529 480 412 528 478 418 527 477 416 530 479 411 512 481 410 511 482 400 495 483 401 498 484 405 501 485 406 500 486 416 518 487 417 517 488 406 510 451 400 509 452 410 529 480 416 530 479 401 531 489 403 532 490 408 533 491 405 534 492 403 535 493 404 536 494 409 537 495 408 538 496 421 539 497 415 540 498 411 541 499 417 542 500 420 543 501 414 544 502 415 545 498 421 546 497 401 531 503 405 534 504 417 542 505 411 541 506 434 547 507 445 548 508 444 549 509 443 550 510 442 551 511 441 552 512 440 553 513 439 554 514 438 555 515 437 556 516 436 557 517 435 558 518 435 559 518 423 560 520 422 561 519 434 562 507 436 563 517 424 564 521 423 560 520 435 559 518 437 565 516 425 566 522 424 564 521 436 563 517 438 567 515 426 568 523 425 566 522 437 565 516 439 569 514 427 570 524 426 568 523 438 567 515 440 571 513 428 572 525 427 570 524 439 569 514 441 573 512 429 574 526 428 572 525 440 571 513 429 574 526 441 573 512 442 575 511 430 576 527 443 577 510 431 578 528 430 576 527 442 575 511 444 579 509 432 580 529 431 578 528 443 577 510 432 580 529 444 579 509 445 581 508 433 582 530 434 562 507 422 561 519 433 582 530 445 581 508 470 583 538 468 584 531 447 585 532 446 586 533 455 587 534 454 588 535 450 589 536 457 590 537 456 591 542 451 592 540 450 589 536 454 588 535 469 593 539 470 583 538 446 586 533 452 594 541 448 595 543 456 591 542 454 588 535 458 596 544 449 597 545 458 596 544 454 588 535 455 587 534 465 598 547 453 599 546 447 585 548 459 600 549 453 599 546 452 594 550 446 586 533 466 601 551 457 590 537 450 589 536 462 602 552 461 603 553 455 587 534 457 590 537 466 601 554 462 602 552 450 589 536 451 592 540 463 604 555 464 605 556 452 594 550 453 599 546 465 598 547 458 596 544 467 606 558 460 607 557 448 595 543 467 606 558 458 596 544 449 597 545 471 608 570 471 608 562 449 597 545 455 587 534 461 603 553 459 600 559 447 585 532 468 584 531 472 609 574 469 593 539 452 594 541 464 605 560 473 610 561 469 593 539 473 610 561 463 604 555 451 592 540 456 591 542 448 595 543 468 584 531 470 583 538 472 609 574 468 584 531 448 595 543 460 607 557 456 591 542 470 583 538 469 593 539 451 592 540 423 611 564 462 602 552 463 604 555 422 612 563 424 613 565 466 601 551 462 602 552 423 611 564 425 614 567 461 603 553 466 601 554 424 613 566 426 615 568 471 608 562 461 603 553 425 614 567 427 616 569 467 606 558 471 608 570 426 615 571 428 617 572 460 607 557 467 606 558 427 616 569 429 618 573 472 609 574 460 607 557 428 617 572 459 600 559 472 609 574 429 618 573 430 619 575 431 620 577 465 598 547 459 600 549 430 619 576 432 621 578 464 605 556 465 598 547 431 620 577 473 610 561 464 605 560 432 621 579 433 622 580 422 612 563 463 604 555 473 610 561 433 622 580 453 599 546 446 586 533 447 585 548 500 623 598 486 624 591 490 625 581 492 626 582 493 627 583 476 628 584 475 629 585 488 630 588 492 626 582 498 631 589 489 632 590 490 625 581 486 624 591 485 633 592 486 624 591 500 623 598 491 634 593 494 635 594 485 633 592 492 626 582 488 630 588 490 625 581 494 635 594 477 636 595 476 628 584 494 635 594 476 628 584 493 627 583 486 624 591 496 637 586 487 638 587 489 632 590 495 639 596 487 638 587 496 637 586 497 640 597 497 640 597 500 623 598 490 625 581 487 638 587 489 632 590 498 631 589 499 641 599 495 639 596 489 632 590 487 638 587 490 625 581 488 630 588 474 642 601 491 634 593 500 623 598 483 643 600 491 634 593 474 642 601 477 636 595 494 635 594 493 627 583 492 626 582 485 633 592 486 624 591 475 629 585 481 644 602 498 631 589 492 626 582 478 645 603 479 646 604 496 637 586 495 639 596 495 639 596 499 641 599 482 647 605 478 645 603 480 648 606 497 640 597 496 637 586 479 646 604 480 648 606 484 649 607 500 623 598 497 640 597 481 644 602 482 647 605 499 641 599 498 631 589 500 623 598 484 649 607 483 643 600 513 650 625 508 651 609 501 652 608 514 653 624 505 654 617 508 651 609 513 650 625 523 655 626 503 656 610 506 657 611 502 658 612 507 659 613 509 660 615 510 661 616 506 657 611 503 656 610 508 651 609 505 654 617 506 657 611 510 661 616 502 658 612 521 662 618 525 663 619 507 659 613 505 654 617 522 664 620 521 662 618 502 658 612 518 665 622 517 666 614 509 660 615 520 667 623 501 652 608 508 651 609 510 661 616 504 668 621 510 661 616 509 660 615 517 666 614 504 668 621 520 667 623 509 660 615 503 656 610 519 669 627 524 670 628 515 671 629 512 672 630 523 655 626 513 650 625 514 653 624 511 673 632 516 674 631 503 675 610 483 676 633 484 677 634 519 678 627 503 675 610 507 679 613 474 680 635 483 676 633 474 680 635 507 679 613 525 681 619 477 682 636 518 683 622 520 684 623 480 685 638 479 686 637 480 685 638 520 684 623 519 678 627 484 677 634 505 654 617 523 655 626 512 672 630 522 664 620 523 655 626 513 650 625 516 674 631 524 670 628 514 653 667 501 652 647 526 687 648 536 688 668 526 687 648 530 689 649 534 690 650 533 691 645 534 690 650 535 692 651 532 693 653 528 694 652 530 689 649 542 695 657 535 692 651 534 690 650 528 694 652 529 696 646 534 690 650 527 697 655 528 694 652 532 693 653 531 698 656 527 697 655 531 698 656 525 663 641 521 662 642 522 664 643 529 696 646 527 697 655 521 662 642 517 666 658 542 695 657 530 689 649 504 668 659 526 687 648 501 652 647 504 668 660 530 689 649 543 699 661 542 695 657 517 666 662 518 665 663 537 700 665 538 701 666 533 691 645 529 696 646 522 664 643 512 672 639 537 700 665 529 696 646 533 691 645 538 701 666 536 688 668 526 687 648 542 695 657 543 699 661 545 702 664 535 692 651 540 703 669 538 701 666 537 700 665 541 704 670 537 700 665 512 672 639 515 671 640 541 704 670 536 688 668 539 705 671 511 673 672 514 653 667 539 705 671 536 688 668 538 701 666 540 703 669 543 706 661 478 707 673 482 708 674 545 709 664 475 710 675 476 711 676 531 712 656 532 713 653 476 711 676 477 682 644 525 681 641 531 712 656 479 686 677 478 707 678 543 706 661 518 683 679 475 710 675 532 713 653 544 714 654 481 715 680 544 714 654 545 709 664 482 708 674 481 715 680 554 716 681 553 717 682 552 718 683 559 719 685 556 720 686 555 721 687 557 722 684 552 718 683 557 722 684 555 721 687 554 716 681 547 723 688 540 703 689 541 704 690 546 724 691 548 725 692 539 705 693 540 703 689 547 723 688 549 726 694 511 673 695 539 705 693 548 725 692 550 727 696 516 674 697 511 673 695 549 726 694 550 727 696 558 728 698 524 670 699 516 674 697 546 724 691 541 704 690 515 671 700 551 729 701 553 717 682 547 723 688 546 724 691 552 718 683 554 716 681 548 725 692 547 723 688 553 717 682 555 721 687 549 726 694 548 725 692 554 716 681 556 720 686 550 727 696 549 726 694 555 721 687 556 720 686 559 719 685 558 728 698 550 727 696 552 718 683 546 724 691 551 729 701 557 722 684 551 729 701 515 671 700 524 670 699 558 728 698 557 722 684 551 729 701 558 728 698 559 719 685 506 657 611 505 654 617 502 658 612 528 694 652 527 697 655 529 696 646 572 730 702 573 731 713 574 732 712 575 733 711 576 734 710 577 735 709 578 736 708 579 737 707 580 738 706 581 739 705 582 740 704 583 741 703 573 742 713 572 743 702 560 744 714 561 745 715 574 746 712 573 742 713 561 745 715 562 747 716 575 748 711 574 746 712 562 747 716 563 749 717 576 750 710 575 748 711 563 749 717 564 751 718 577 752 709 576 750 710 564 751 718 565 753 719 578 754 708 577 752 709 565 753 719 566 755 720 579 756 707 578 754 708 566 755 720 567 757 721 568 758 722 580 759 706 579 756 707 567 757 721 581 760 705 580 759 706 568 758 722 569 761 723 582 762 704 581 760 705 569 761 723 570 763 724 571 764 725 583 765 703 582 762 704 570 763 724 572 743 702 583 765 703 571 764 725 560 744 714 584 766 728 585 767 727 603 768 726 605 769 734 588 770 732 595 771 731 589 772 730 593 773 729 594 774 733 593 773 729 589 772 730 590 775 736 591 776 737 584 766 728 605 769 734 604 777 735 586 778 738 596 779 739 593 773 729 594 774 733 587 780 740 588 770 732 593 773 729 596 779 739 610 781 756 597 782 743 585 767 742 592 783 741 592 783 741 584 766 728 591 776 744 601 784 745 598 785 746 589 772 730 595 771 731 606 786 754 601 784 747 595 771 731 588 770 732 598 785 746 599 787 748 590 775 736 589 772 730 600 788 749 610 781 756 592 783 741 591 776 744 596 779 739 586 778 738 608 789 767 602 790 750 602 790 750 607 791 764 587 780 740 596 779 739 607 791 755 606 786 754 588 770 732 587 780 740 609 792 769 603 768 726 585 767 727 597 782 751 604 777 735 590 775 736 599 787 748 611 793 753 594 774 733 605 769 734 603 768 726 586 778 738 609 792 769 608 789 767 586 778 738 603 768 726 594 774 733 590 775 736 604 777 735 605 769 734 591 776 737 604 777 735 611 793 753 600 788 752 561 794 758 560 795 757 599 787 748 598 785 746 562 796 759 561 794 758 598 785 746 601 784 745 563 797 761 562 796 760 601 784 747 606 786 754 564 798 762 563 797 761 606 786 754 607 791 755 565 799 763 564 798 765 607 791 764 602 790 750 566 800 766 565 799 763 602 790 750 608 789 767 567 801 768 566 800 766 608 789 767 609 792 769 609 792 769 597 782 751 568 802 770 567 801 768 569 803 772 568 802 771 597 782 743 610 781 756 570 804 773 569 803 772 610 781 756 600 788 749 600 788 752 611 793 753 571 805 775 570 804 774 560 795 757 571 805 775 611 793 753 599 787 748 592 783 741 585 767 742 584 766 728 638 806 793 628 807 776 624 808 786 630 809 777 613 810 780 614 811 779 631 812 778 626 813 783 627 814 785 636 815 784 630 809 777 628 807 776 623 816 787 624 808 786 624 808 786 632 817 789 629 818 788 638 806 793 623 816 787 628 807 776 626 813 783 630 809 777 632 817 789 614 811 779 615 819 790 632 817 789 624 808 786 631 812 778 614 811 779 634 820 781 633 821 791 627 814 785 625 822 782 625 822 782 635 823 792 634 820 781 635 823 792 625 822 782 628 807 776 638 806 793 627 814 785 633 821 791 637 824 794 636 815 784 627 814 785 626 813 783 628 807 776 625 822 782 612 825 796 621 826 795 638 806 793 629 818 788 629 818 788 632 817 789 615 819 790 612 825 796 631 812 778 624 808 786 623 816 787 630 809 777 613 810 780 630 809 777 636 815 784 619 827 797 616 828 798 633 821 791 634 820 781 617 829 799 633 821 791 616 828 798 620 830 800 637 824 794 618 831 801 617 829 799 634 820 781 635 823 792 618 831 801 635 823 792 638 806 793 622 832 802 619 827 797 636 815 784 637 824 794 620 830 800 638 806 793 621 826 795 622 832 802 641 833 805 645 834 808 640 835 807 644 836 806 647 837 810 641 833 805 644 836 806 648 838 811 646 839 804 648 838 811 644 836 806 643 840 812 640 835 807 645 834 808 663 841 814 659 842 813 643 840 812 640 835 807 659 842 813 660 843 815 656 844 817 658 845 818 647 837 810 655 846 809 661 847 821 651 848 820 646 839 804 643 840 812 639 849 803 642 850 816 648 838 811 646 839 804 646 839 804 651 848 820 652 851 819 639 849 803 648 838 811 642 850 816 655 846 809 647 837 810 658 845 818 657 852 822 641 833 805 647 837 810 662 853 823 661 847 821 650 854 825 653 855 824 651 848 820 654 856 826 649 857 827 652 851 819 641 858 805 657 859 822 622 860 829 621 861 828 641 858 805 621 861 828 612 862 830 645 863 808 612 862 830 615 864 831 663 865 814 645 863 808 656 866 817 617 867 832 618 868 833 658 869 818 618 868 833 622 860 829 657 859 822 658 869 818 661 847 821 643 840 812 660 843 815 650 854 825 661 847 821 662 853 823 654 856 826 651 848 820 664 870 843 671 871 840 672 872 845 668 873 844 672 872 845 666 874 847 670 875 848 673 876 846 668 873 844 672 872 845 673 876 846 680 877 852 667 878 841 672 872 845 671 871 840 665 879 850 669 880 851 670 875 848 666 874 847 665 879 850 659 842 837 663 841 836 669 880 851 660 843 838 659 842 837 665 879 850 667 878 841 655 846 853 642 850 854 668 873 844 680 877 852 664 870 843 668 873 844 642 850 855 639 849 842 681 881 856 656 844 858 655 846 857 680 877 852 682 882 849 683 883 859 673 876 846 670 875 848 667 878 841 671 871 840 676 884 861 675 885 860 639 849 842 652 851 862 674 886 863 664 870 843 650 854 834 660 843 838 667 878 841 675 885 860 676 884 861 671 871 840 664 870 843 674 886 863 680 877 852 673 876 846 683 883 859 681 881 856 678 887 864 679 888 865 675 885 860 676 884 861 675 885 860 679 888 865 653 855 835 650 854 834 674 886 863 652 851 862 649 857 867 677 889 866 677 889 866 678 887 864 676 884 861 674 886 863 681 890 856 683 891 859 620 892 869 616 893 868 613 894 870 670 895 848 669 896 851 614 897 871 614 897 871 669 896 851 663 865 836 615 864 839 617 867 872 656 866 874 681 890 856 616 893 873 613 894 870 619 898 875 682 899 849 670 895 848 682 899 849 619 898 875 620 892 869 683 891 859 692 900 876 690 901 878 691 902 877 697 903 880 695 904 879 693 905 882 694 906 881 690 901 878 692 900 876 693 905 882 695 904 879 685 907 883 684 908 886 679 888 885 678 887 884 686 909 887 685 907 883 678 887 884 677 889 888 687 910 889 686 909 887 677 889 888 649 857 890 688 911 891 687 910 889 649 857 890 654 856 892 688 911 891 654 856 892 662 853 894 696 912 893 684 908 886 689 913 896 653 855 895 679 888 885 691 902 877 690 901 878 684 908 886 685 907 883 692 900 876 691 902 877 685 907 883 686 909 887 693 905 882 692 900 876 686 909 887 687 910 889 694 906 881 693 905 882 687 910 889 688 911 891 694 906 881 688 911 891 696 912 893 697 903 880 690 901 878 695 904 879 689 913 896 684 908 886 689 913 896 696 912 893 662 853 894 653 855 895 695 904 879 697 903 880 696 912 893 689 913 896 644 836 806 640 835 807 643 840 812 666 874 847 667 878 841 665 879 850 820 914 897 828 915 898 830 916 1039 821 917 1037 817 918 899 818 919 1042 829 920 1038 823 921 1040 952 922 1026 953 923 900 810 924 969 808 925 1025 834 926 903 699 927 901 698 928 1219 950 929 902 807 930 908 716 931 909 737 932 910 736 933 911 702 934 912 711 935 913 739 936 918 800 937 921 710 938 914 719 939 915 717 940 916 709 941 917 739 936 918 701 942 919 803 943 920 803 943 920 800 937 921 739 936 918 740 944 922 700 945 923 804 946 924 804 946 924 799 947 925 740 944 922 834 926 903 2616 948 3219 738 949 926 699 927 901 720 950 927 703 951 928 742 952 967 955 953 963 711 935 913 718 954 929 717 940 916 719 939 915 711 935 913 702 934 912 754 955 930 718 954 929 703 951 928 721 956 931 740 944 922 742 952 967 721 956 931 797 957 932 700 945 923 740 944 922 712 958 933 724 959 934 707 960 935 722 961 936 712 958 933 723 962 937 708 963 938 724 959 934 703 951 928 725 964 939 802 965 940 721 956 931 802 965 940 798 966 941 797 957 932 721 956 931 713 967 942 727 968 943 703 951 928 720 950 927 801 969 947 725 964 939 703 951 928 727 968 943 706 970 949 728 971 950 846 972 948 704 973 946 726 974 944 729 975 952 706 970 949 704 973 946 732 976 954 728 971 950 706 970 949 731 977 953 733 978 956 731 977 953 706 970 949 729 975 952 733 978 956 729 975 952 705 979 951 730 980 955 714 981 957 732 976 954 731 977 953 735 982 958 714 981 957 735 982 958 708 963 938 723 962 937 715 983 959 735 982 958 731 977 953 733 978 956 715 983 959 733 978 956 730 980 955 734 984 960 715 983 959 734 984 960 707 960 935 724 959 934 715 983 959 724 959 934 708 963 938 735 982 958 710 938 914 709 941 917 736 933 911 737 932 910 738 949 926 720 950 927 955 953 963 954 985 962 2616 948 3219 713 967 942 720 950 927 738 949 926 954 985 962 955 953 963 957 986 965 956 987 964 710 938 914 737 932 910 956 987 964 957 986 965 719 939 915 710 938 914 957 986 965 741 988 966 711 935 913 719 939 915 741 988 966 739 936 918 741 988 966 742 952 967 740 944 922 739 936 918 716 931 909 809 989 968 808 925 1025 810 924 969 701 942 919 739 936 918 740 944 922 799 947 925 752 990 970 748 991 971 747 992 972 753 993 973 754 955 930 702 934 912 744 994 974 749 995 978 702 934 912 800 937 921 743 996 975 744 994 974 743 996 975 800 937 921 760 997 976 755 998 977 749 995 978 744 994 974 746 999 979 756 1000 980 744 994 974 743 996 975 745 1001 981 746 999 979 755 998 977 757 1002 982 745 1001 981 743 996 975 750 1003 983 756 1000 980 746 999 979 758 1004 984 750 1003 983 758 1004 984 748 991 971 752 990 970 758 1004 984 746 999 979 745 1001 981 759 1005 985 758 1004 984 759 1005 985 747 992 972 748 991 971 751 1006 986 759 1005 985 745 1001 981 757 1002 982 751 1006 986 753 993 973 747 992 972 759 1005 985 771 1007 987 766 1008 988 765 1009 989 772 1010 990 767 1011 991 773 1012 992 701 942 919 767 1011 991 701 942 919 762 1013 993 762 1013 993 768 1014 997 767 1011 991 701 942 919 799 947 925 761 1015 994 762 1013 993 761 1015 994 799 947 925 779 1016 995 774 1017 996 768 1014 997 762 1013 993 764 1018 998 775 1019 999 762 1013 993 761 1015 994 763 1020 1000 764 1018 998 774 1017 996 776 1021 1001 763 1020 1000 761 1015 994 769 1022 1002 775 1019 999 764 1018 998 777 1023 1003 769 1022 1002 777 1023 1003 766 1008 988 771 1007 987 777 1023 1003 764 1018 998 763 1020 1000 778 1024 1004 777 1023 1003 778 1024 1004 765 1009 989 766 1008 988 770 1025 1005 778 1024 1004 763 1020 1000 776 1021 1001 770 1025 1005 772 1010 990 765 1009 989 778 1024 1004 789 1026 1006 785 1027 1007 784 1028 1008 790 1029 1009 791 1030 1010 700 945 923 781 1031 1011 786 1032 1014 700 945 923 797 957 932 780 1033 1012 781 1031 1011 780 1033 1012 797 957 932 798 966 941 792 1034 1013 786 1032 1014 781 1031 1011 783 1035 1015 793 1036 1016 781 1031 1011 780 1033 1012 782 1037 1017 783 1035 1015 792 1034 1013 794 1038 1018 782 1037 1017 780 1033 1012 787 1039 1019 793 1036 1016 783 1035 1015 795 1040 1020 787 1039 1019 795 1040 1020 785 1027 1007 789 1026 1006 795 1040 1020 783 1035 1015 782 1037 1017 796 1041 1021 795 1040 1020 796 1041 1021 784 1028 1008 785 1027 1007 788 1042 1022 796 1041 1021 782 1037 1017 794 1038 1018 788 1042 1022 790 1029 1009 784 1028 1008 796 1041 1021 804 946 924 700 945 923 805 1043 1023 779 1016 995 700 945 923 791 1030 1010 805 1043 1023 760 997 976 800 937 921 803 943 920 806 1044 1024 705 979 951 729 975 952 726 974 944 912 1045 945 713 967 942 2616 948 3219 912 1045 945 726 974 944 727 968 943 713 967 942 726 974 944 704 973 946 846 972 948 801 969 947 727 968 943 704 973 946 803 943 920 701 942 919 773 1012 992 806 1044 1024 779 1016 995 799 947 925 804 946 924 737 932 910 716 931 909 810 924 969 956 987 964 808 925 1025 809 989 968 815 1046 1027 814 1047 1028 952 922 1026 808 925 1025 814 1047 1028 826 1048 1029 824 1049 1031 828 915 898 820 914 897 813 1050 1036 818 919 1042 817 918 899 811 1051 1032 825 1052 1033 819 1053 1034 812 1054 1035 813 1050 1036 820 914 897 821 917 1037 814 1055 1028 815 1056 1027 822 1057 1043 830 916 1039 823 921 1040 816 1058 1041 826 1059 1029 828 915 898 824 1049 1031 811 1051 1032 817 918 899 826 1059 1029 814 1055 1028 821 917 1037 830 916 1039 823 921 1040 829 920 1038 827 1060 1030 816 1058 1041 828 915 898 817 918 899 823 921 1040 830 916 1039 821 917 1037 822 1057 1043 819 1053 1034 820 914 897 950 929 1044 827 1061 1045 934 1062 1046 920 1063 1047 831 1064 1048 831 1064 1048 920 1063 1047 935 1065 1049 946 1066 1050 924 1067 1051 939 1068 1052 942 1069 1212 927 1070 1213 916 1071 1053 922 1072 1054 933 1073 1055 951 1074 1190 809 989 1189 951 1074 1190 933 1073 1055 815 1046 1056 831 1064 1048 849 1075 1057 834 926 1058 950 929 1044 914 1076 1059 849 1075 1057 831 1064 1048 946 1066 1050 913 1077 1060 866 1078 1061 844 1079 1062 843 1080 1063 878 1081 1064 850 1082 1065 718 954 905 754 955 906 836 1083 1066 717 940 904 718 954 905 850 1082 1065 855 1084 1071 945 1085 1068 902 1086 1067 897 1087 1082 855 1084 1071 911 1088 1069 903 1089 1070 906 1090 1122 945 1085 1068 904 1091 1072 905 1092 1073 867 1093 1078 845 1094 1079 899 1095 1074 948 1096 1075 856 1097 1083 878 1081 1064 901 1098 1181 900 1099 1076 888 1100 1077 887 1101 1147 854 1102 1080 836 1083 1066 837 1103 1081 845 1094 1079 868 1104 1084 736 933 961 709 941 907 854 1102 1080 836 1083 1066 854 1102 1080 709 941 907 717 940 904 841 1105 1085 857 1106 1086 712 958 1087 722 961 1088 842 1107 1089 723 962 1090 712 958 1087 857 1106 1086 897 1087 1082 798 966 1091 802 965 1092 855 1084 1071 852 1108 1117 839 1109 1095 858 1110 1096 909 1111 1097 858 1110 1096 705 979 1098 912 1045 1184 909 1111 1097 910 1112 1099 859 1113 1100 839 1109 1095 852 1108 1117 838 1114 1093 2618 1115 3221 728 971 1101 840 1116 1102 705 979 1098 858 1110 1096 861 1117 1105 730 980 1103 839 1109 1095 860 1118 1104 861 1117 1105 858 1110 1096 839 1109 1095 859 1113 1100 863 1119 1107 860 1118 1104 840 1116 1102 862 1120 1106 863 1119 1107 859 1113 1100 840 1116 1102 728 971 1101 732 976 1108 862 1120 1106 730 980 1103 861 1117 1105 847 1121 1109 734 984 1110 860 1118 1104 864 1122 1111 847 1121 1109 861 1117 1105 841 1105 1085 722 961 1088 847 1121 1109 864 1122 1111 707 960 1112 734 984 1110 847 1121 1109 722 961 1088 860 1118 1104 863 1119 1107 848 1123 1113 864 1122 1111 862 1120 1106 865 1124 1114 848 1123 1113 863 1119 1107 842 1107 1089 857 1106 1086 848 1123 1113 865 1124 1114 841 1105 1085 864 1122 1111 848 1123 1113 857 1106 1086 862 1120 1106 732 976 1108 714 981 1115 865 1124 1114 842 1107 1089 865 1124 1114 714 981 1115 723 962 1090 851 1125 1116 910 1112 1099 852 1108 1117 843 1080 1063 833 1126 1119 835 1127 1118 867 1093 1078 905 1092 1073 843 1080 1063 844 1079 1062 853 1128 1120 851 1125 1116 853 1128 1120 844 1079 1062 904 1091 1072 907 1129 1121 906 1090 1122 903 1089 1070 851 1125 1116 853 1128 1120 906 1090 1122 853 1128 1120 907 1129 1121 949 1130 1217 849 1075 1057 914 1076 1059 866 1078 1061 913 1077 1060 914 1076 1059 833 1126 1119 905 1092 1073 866 1078 1061 868 1104 1084 854 1102 1080 845 1094 1079 867 1093 1078 850 1082 1065 878 1081 1064 856 1097 1083 867 1093 1078 835 1127 1118 832 1131 1123 868 1104 1084 908 1132 1124 850 1082 1065 856 1097 1083 752 990 1128 753 993 1126 872 1133 1125 873 1134 1127 878 1081 1064 869 1135 1130 874 1136 1133 877 1137 1129 869 1135 1130 878 1081 1064 754 955 906 749 995 1136 755 998 1132 760 997 1131 877 1137 1129 874 1136 1133 874 1136 1133 869 1135 1130 871 1138 1134 870 1139 1135 871 1138 1134 869 1135 1130 749 995 1136 756 1000 1137 870 1139 1135 757 1002 1138 755 998 1132 874 1136 1133 876 1140 1139 870 1139 1135 871 1138 1134 875 1141 1140 876 1140 1139 875 1141 1140 873 1134 1127 872 1133 1125 871 1138 1134 756 1000 1137 750 1003 1141 875 1141 1140 875 1141 1140 750 1003 1141 752 990 1128 873 1134 1127 870 1139 1135 876 1140 1139 751 1006 1142 757 1002 1138 753 993 1126 751 1006 1142 876 1140 1139 872 1133 1125 771 1007 1146 772 1010 1144 882 1142 1143 883 1143 1145 888 1100 1077 879 1144 1148 884 1145 1153 887 1101 1147 879 1144 1148 888 1100 1077 773 1012 1149 767 1011 1150 768 1014 1156 774 1017 1152 779 1016 1151 887 1101 1147 884 1145 1153 884 1145 1153 879 1144 1148 881 1146 1154 880 1147 1155 881 1146 1154 879 1144 1148 768 1014 1156 775 1019 1157 880 1147 1155 776 1021 1158 774 1017 1152 884 1145 1153 886 1148 1159 880 1147 1155 881 1146 1154 885 1149 1160 886 1148 1159 885 1149 1160 883 1143 1145 882 1142 1143 881 1146 1154 775 1019 1157 769 1022 1161 885 1149 1160 885 1149 1160 769 1022 1161 771 1007 1146 883 1143 1145 880 1147 1155 886 1148 1159 770 1025 1162 776 1021 1158 772 1010 1144 770 1025 1162 886 1148 1159 882 1142 1143 789 1026 1166 790 1029 1164 892 1150 1163 893 1151 1165 898 1152 1167 889 1153 1168 894 1154 1171 897 1087 1082 889 1153 1168 898 1152 1167 791 1030 1169 786 1032 1174 792 1034 1170 798 966 1091 897 1087 1082 894 1154 1171 894 1154 1171 889 1153 1168 891 1155 1172 890 1156 1173 891 1155 1172 889 1153 1168 786 1032 1174 793 1036 1175 890 1156 1173 794 1038 1176 792 1034 1170 894 1154 1171 896 1157 1177 890 1156 1173 891 1155 1172 895 1158 1178 896 1157 1177 895 1158 1178 893 1151 1165 892 1150 1163 891 1155 1172 793 1036 1175 787 1039 1179 895 1158 1178 895 1158 1178 787 1039 1179 789 1026 1166 893 1151 1165 890 1156 1173 896 1157 1177 788 1042 1180 794 1038 1176 790 1029 1164 788 1042 1180 896 1157 1177 892 1150 1163 851 1125 1116 903 1089 1070 838 1114 1093 910 1112 1099 899 1095 1074 878 1081 1064 877 1137 1129 900 1099 1076 899 1095 1074 877 1137 1129 888 1100 1077 902 1086 1067 901 1098 1181 887 1101 1147 898 1152 1167 897 1087 1082 902 1086 1067 898 1152 1167 806 1044 1182 773 1012 1149 888 1100 1077 806 1044 1182 888 1100 1077 877 1137 1129 760 997 1131 898 1152 1167 887 1101 1147 779 1016 1151 805 1043 1183 898 1152 1167 805 1043 1183 791 1030 1169 905 1092 1073 904 1091 1072 844 1079 1062 866 1078 1061 907 1129 1121 904 1091 1072 845 1094 1079 837 1103 1081 859 1113 1100 910 1112 1099 838 1114 1093 840 1116 1102 725 964 1185 911 1088 1069 855 1084 1071 802 965 1092 911 1088 1069 725 964 1185 801 969 1186 2617 1159 3220 834 926 1058 849 1075 1057 913 1077 1060 2616 948 3218 838 1114 1093 903 1089 1070 911 1088 1069 2617 1159 3220 843 1080 1063 852 1108 1117 909 1111 1097 913 1077 1060 916 1071 1053 947 1160 1187 936 1161 1188 922 1072 1054 916 1071 1053 832 1131 1123 835 1127 1118 947 1160 1187 941 1162 1191 926 1163 1192 925 1164 1210 940 1165 1209 943 1166 1194 829 920 1193 818 919 1200 937 1167 1199 944 1168 1196 928 1169 1195 923 1170 1204 938 1171 1203 825 1052 1197 931 1172 1198 937 1167 1199 818 919 1200 919 1173 1201 929 1174 1202 938 1171 1203 923 1170 1204 930 1175 1205 939 1068 1052 924 1067 1051 917 1176 1206 918 1177 1207 932 1178 1208 940 1165 1209 925 1164 1210 815 1056 1056 933 1179 1055 941 1162 1191 822 1057 1211 922 1072 1054 936 1161 1188 942 1069 1212 926 1163 1192 927 1070 1213 921 1180 1214 935 1065 1049 944 1168 1196 934 1181 1046 943 1166 1194 928 1169 1195 920 1063 1047 917 1176 1206 924 1067 1051 938 1171 1203 929 1174 1202 918 1177 1207 925 1164 1210 939 1068 1052 930 1175 1205 931 1172 1198 919 1173 1201 923 1170 1204 937 1167 1199 812 1054 1215 819 1053 1216 940 1165 1209 932 1178 1208 922 1072 1054 926 1163 1192 941 1162 1191 933 1179 1055 827 1060 1045 829 920 1193 943 1166 1194 934 1181 1046 936 1161 1188 921 1180 1214 927 1070 1213 942 1069 1212 943 1166 1194 937 1167 1199 923 1170 1204 928 1169 1195 944 1168 1196 938 1171 1203 924 1067 1051 927 1070 1213 939 1068 1052 925 1164 1210 926 1163 1192 942 1069 1212 941 1162 1191 940 1165 1209 819 1053 1216 822 1057 1211 928 1169 1195 944 1168 1196 935 1065 1049 920 1063 1047 900 1099 1076 948 1096 1075 899 1095 1074 945 1085 1068 906 1090 1122 949 1130 1217 948 1096 1075 901 1098 1181 945 1085 1068 948 1096 1075 900 1099 1076 915 1182 1218 946 1066 1050 935 1065 1049 921 1180 1214 914 1076 1059 946 1066 1050 915 1182 1218 833 1126 1119 947 1160 1187 835 1127 1118 833 1126 1119 915 1182 1218 936 1161 1188 947 1160 1187 915 1182 1218 921 1180 1214 901 1098 1181 902 1086 1067 945 1085 1068 949 1130 1217 907 1129 1121 837 1103 1081 908 1132 1124 856 1097 1083 948 1096 1075 949 1130 1217 908 1132 1124 827 1061 1030 950 929 902 698 928 1219 816 1183 1041 699 927 901 738 949 926 954 985 962 953 923 900 736 933 961 868 1104 1084 832 1131 1123 807 930 1220 807 930 1220 832 1131 1123 916 1071 1053 951 1074 1190 809 989 1189 716 931 1221 807 930 1220 951 1074 1190 698 928 1219 952 922 1026 826 1048 1029 816 1183 1041 699 927 901 953 923 900 952 922 1026 698 928 1219 954 985 962 956 987 964 810 924 969 953 923 900 741 988 966 957 986 965 955 953 963 742 952 967 836 1083 1066 850 1082 1065 908 1132 1124 837 1103 1081 958 1184 1222 824 1049 1031 813 1050 1036 962 1185 1226 825 1052 1033 811 1051 1032 959 1186 1223 960 1187 1224 811 1051 1032 824 1049 1031 958 1184 1222 959 1186 1223 962 1185 1226 813 1050 1036 812 1054 1035 961 1188 1225 931 1172 1198 825 1052 1197 960 1187 1227 963 1189 1228 929 1174 1202 919 1173 1201 964 1190 1229 965 1191 1230 930 1175 1205 917 1176 1206 966 1192 1231 967 1193 1232 932 1178 1208 918 1177 1207 968 1194 1233 969 1195 1234 917 1176 1206 929 1174 1202 965 1191 1230 966 1192 1231 918 1177 1207 930 1175 1205 967 1193 1232 968 1194 1233 919 1173 1201 931 1172 1198 963 1189 1228 964 1190 1229 812 1054 1215 932 1178 1208 969 1195 1234 961 1188 1235 970 1196 1236 958 1184 1222 962 1185 1226 974 1197 1240 960 1187 1224 959 1186 1223 971 1198 1237 972 1199 1238 959 1186 1223 958 1184 1222 970 1196 1236 971 1198 1237 974 1197 1240 962 1185 1226 961 1188 1225 973 1200 1239 963 1189 1228 960 1187 1227 972 1199 1241 975 1201 1242 965 1191 1230 964 1190 1229 976 1202 1243 977 1203 1244 967 1193 1232 966 1192 1231 978 1204 1245 979 1205 1246 969 1195 1234 968 1194 1233 980 1206 1247 981 1207 1248 966 1192 1231 965 1191 1230 977 1203 1244 978 1204 1245 968 1194 1233 967 1193 1232 979 1205 1246 980 1206 1247 964 1190 1229 963 1189 1228 975 1201 1242 976 1202 1243 961 1188 1235 969 1195 1234 981 1207 1248 973 1200 1249 986 1208 1254 982 1209 1250 970 1196 1236 974 1197 1240 972 1199 1238 971 1198 1237 983 1210 1251 984 1211 1252 971 1198 1237 970 1196 1236 982 1209 1250 983 1210 1251 985 1212 1253 986 1208 1254 974 1197 1240 973 1200 1239 975 1201 1242 972 1199 1241 984 1211 1255 987 1213 1256 977 1203 1244 976 1202 1243 988 1214 1257 989 1215 1258 979 1205 1246 978 1204 1245 990 1216 1259 991 1217 1260 981 1207 1248 980 1206 1247 992 1218 1261 993 1219 1262 978 1204 1245 977 1203 1244 989 1215 1258 990 1216 1259 980 1206 1247 979 1205 1246 991 1217 1260 992 1218 1261 976 1202 1243 975 1201 1242 987 1213 1256 988 1214 1257 973 1200 1249 981 1207 1248 993 1219 1262 985 1212 1263 1143 1220 1270 1266 1221 1269 994 1222 1611 995 1223 1268 1116 1224 1275 1033 1225 1278 1034 1226 1277 1013 1227 1276 1006 1228 1281 1005 1229 1284 1014 1230 1283 1016 1231 1282 1036 1232 1285 1112 1233 1287 997 1234 1286 1112 1233 1287 1036 1232 1285 1108 1235 1288 1037 1236 1289 1113 1237 1291 996 1238 1290 1113 1237 1291 1037 1236 1289 1107 1239 1292 1143 1220 1270 995 1223 1268 1035 1240 1293 1228 1241 1445 1007 1242 1280 1016 1231 1282 1014 1230 1283 1015 1243 1296 1007 1242 1280 1015 1243 1296 1053 1244 1297 998 1245 1279 1008 1246 1300 1019 1247 1303 1003 1248 1302 1021 1249 1301 1008 1246 1300 1021 1249 1301 1004 1250 1305 1020 1251 1304 999 1252 1295 1018 1253 1298 1111 1254 1307 1022 1255 1306 1111 1254 1307 1018 1253 1298 1105 1256 1299 1106 1257 1308 1009 1258 1309 1017 1259 1294 999 1252 1295 1024 1260 1310 1110 1261 1314 1024 1260 1310 999 1252 1295 1022 1255 1306 1023 1262 1311 1000 1263 1313 1002 1264 1316 1026 1265 1319 1029 1266 1321 1028 1267 1320 1002 1264 1316 1025 1268 1317 1030 1269 1323 1026 1265 1319 1002 1264 1316 1028 1267 1320 1030 1269 1323 1027 1270 1322 1001 1271 1318 1026 1265 1319 1011 1272 1324 1032 1273 1325 1028 1267 1320 1029 1266 1321 1011 1272 1324 1020 1251 1304 1004 1250 1305 1032 1273 1325 1012 1274 1326 1030 1269 1323 1028 1267 1320 1032 1273 1325 1012 1274 1326 1031 1275 1327 1027 1270 1322 1030 1269 1323 1012 1274 1326 1021 1249 1301 1003 1248 1302 1031 1275 1327 1012 1274 1326 1032 1273 1325 1004 1250 1305 1021 1249 1301 1006 1228 1281 1034 1226 1277 1033 1225 1278 1005 1229 1284 1228 1241 1445 1035 1240 1293 1017 1259 1294 1009 1258 1309 1006 1228 1281 1273 1276 1332 1272 1277 1331 1034 1226 1277 1007 1242 1280 1036 1232 1285 1038 1278 1333 1016 1231 1282 1272 1277 1331 1119 1279 1336 1013 1227 1276 1034 1226 1277 1270 1280 1329 1269 1281 1267 1119 1279 1336 1272 1277 1331 1039 1282 1334 1038 1278 1333 1036 1232 1285 1037 1236 1289 999 1252 1295 1039 1282 1334 1037 1236 1289 1018 1253 1298 1018 1253 1298 1037 1236 1289 996 1238 1290 1105 1256 1299 1052 1283 1340 1044 1284 1339 1045 1285 1338 1051 1286 1337 1046 1287 1341 1054 1288 1342 998 1245 1279 1053 1244 1297 1046 1287 1341 1048 1289 1349 1041 1290 1343 1054 1288 1342 1055 1291 1344 1108 1235 1288 998 1245 1279 1054 1288 1342 1055 1291 1344 1054 1288 1342 1041 1290 1343 1040 1292 1345 1047 1293 1346 1061 1294 1347 1108 1235 1288 1055 1291 1344 1047 1293 1346 1055 1291 1344 1040 1292 1345 1056 1295 1348 1048 1289 1349 1057 1296 1351 1043 1297 1350 1041 1290 1343 1040 1292 1345 1041 1290 1343 1043 1297 1350 1042 1298 1352 1056 1295 1348 1040 1292 1345 1042 1298 1352 1058 1299 1353 1049 1300 1354 1059 1301 1355 1043 1297 1350 1057 1296 1351 1049 1300 1354 1051 1286 1337 1045 1285 1338 1059 1301 1355 1060 1302 1356 1042 1298 1352 1043 1297 1350 1059 1301 1355 1060 1302 1356 1059 1301 1355 1045 1285 1338 1044 1284 1339 1050 1303 1357 1058 1299 1353 1042 1298 1352 1060 1302 1356 1050 1303 1357 1060 1302 1356 1044 1284 1339 1052 1283 1340 1074 1304 1361 1066 1305 1360 1067 1306 1359 1073 1307 1358 1068 1308 1362 997 1234 1286 1075 1309 1363 1068 1308 1362 1063 1310 1365 1076 1311 1364 997 1234 1286 1063 1310 1365 1068 1308 1362 1070 1312 1371 1077 1313 1366 1107 1239 1292 997 1234 1286 1076 1311 1364 1077 1313 1366 1076 1311 1364 1063 1310 1365 1062 1314 1367 1069 1315 1368 1083 1316 1369 1107 1239 1292 1077 1313 1366 1069 1315 1368 1077 1313 1366 1062 1314 1367 1078 1317 1370 1070 1312 1371 1079 1318 1373 1065 1319 1372 1063 1310 1365 1062 1314 1367 1063 1310 1365 1065 1319 1372 1064 1320 1374 1078 1317 1370 1062 1314 1367 1064 1320 1374 1080 1321 1375 1071 1322 1376 1081 1323 1377 1065 1319 1372 1079 1318 1373 1071 1322 1376 1073 1307 1358 1067 1306 1359 1081 1323 1377 1082 1324 1378 1064 1320 1374 1065 1319 1372 1081 1323 1377 1082 1324 1378 1081 1323 1377 1067 1306 1359 1066 1305 1360 1072 1325 1379 1080 1321 1375 1064 1320 1374 1082 1324 1378 1072 1325 1379 1082 1324 1378 1066 1305 1360 1074 1304 1361 1096 1326 1383 1088 1327 1382 1089 1328 1381 1095 1329 1380 1090 1330 1384 1098 1331 1386 996 1238 1290 1097 1332 1385 1090 1330 1384 1092 1333 1392 1085 1334 1387 1098 1331 1386 1099 1335 1388 1105 1256 1299 996 1238 1290 1098 1331 1386 1099 1335 1388 1098 1331 1386 1085 1334 1387 1084 1336 1389 1091 1337 1390 1106 1257 1308 1105 1256 1299 1099 1335 1388 1091 1337 1390 1099 1335 1388 1084 1336 1389 1100 1338 1391 1092 1333 1392 1101 1339 1394 1087 1340 1393 1085 1334 1387 1084 1336 1389 1085 1334 1387 1087 1340 1393 1086 1341 1395 1100 1338 1391 1084 1336 1389 1086 1341 1395 1102 1342 1396 1093 1343 1397 1103 1344 1398 1087 1340 1393 1101 1339 1394 1093 1343 1397 1095 1329 1380 1089 1328 1381 1103 1344 1398 1104 1345 1399 1086 1341 1395 1087 1340 1393 1103 1344 1398 1104 1345 1399 1103 1344 1398 1089 1328 1381 1088 1327 1382 1094 1346 1400 1102 1342 1396 1086 1341 1395 1104 1345 1399 1094 1346 1400 1104 1345 1399 1088 1327 1382 1096 1326 1383 997 1234 1286 1107 1239 1292 1037 1236 1289 1036 1232 1285 998 1245 1279 1108 1235 1288 1036 1232 1285 1007 1242 1280 1113 1237 1291 1083 1316 1369 1114 1347 1401 996 1238 1290 996 1238 1290 1114 1347 1401 1097 1332 1385 1061 1294 1347 1115 1348 1402 1112 1233 1287 1108 1235 1288 1228 1241 1445 1009 1258 1309 1023 1262 1311 1109 1349 1312 1023 1262 1311 1009 1258 1309 1024 1260 1310 1000 1263 1313 1000 1263 1313 1024 1260 1310 1110 1261 1314 1010 1350 1315 1112 1233 1287 1115 1348 1402 1075 1309 1363 997 1234 1286 1083 1316 1369 1113 1237 1291 1107 1239 1292 1268 1351 1404 1135 1352 1407 1123 1353 1406 1117 1354 1403 1127 1355 1420 1134 1356 1411 1120 1357 1410 1126 1358 1266 1122 1359 1414 1129 1360 1264 1137 1361 1265 1133 1362 1409 1139 1363 1417 1135 1364 1407 1125 1365 1419 1132 1366 1418 1268 1351 1404 1117 1354 1403 1119 1279 1336 1269 1281 1267 1013 1227 1276 1119 1279 1336 1117 1354 1403 1118 1367 1335 1137 1361 1265 1126 1358 1266 1120 1357 1410 1133 1362 1409 1128 1368 1412 1129 1360 1264 1122 1359 1414 1121 1369 1413 1130 1370 1415 1131 1371 1421 1124 1372 1405 1123 1373 1406 1123 1373 1406 1135 1364 1407 1139 1363 1417 1130 1370 1415 1132 1366 1418 1125 1365 1419 1136 1374 1408 1138 1375 1416 1126 1358 1266 1132 1366 1418 1138 1375 1416 1127 1355 1420 1137 1361 1265 1139 1363 1417 1132 1366 1418 1126 1358 1266 1128 1368 1412 1131 1371 1421 1130 1370 1415 1129 1360 1264 1266 1221 1422 1140 1376 1426 1236 1377 1425 1250 1378 1424 1136 1379 1423 1140 1376 1426 1262 1380 1428 1251 1381 1427 1236 1377 1425 1232 1382 1431 1267 1383 1582 1249 1384 1433 1238 1385 1432 1118 1367 1581 1124 1386 1434 1249 1384 1433 1267 1383 1582 1140 1376 1426 1266 1221 1422 1143 1220 1436 1158 1387 1435 1230 1388 1437 1262 1380 1428 1140 1376 1426 1158 1387 1435 1229 1389 1438 1152 1390 1441 1153 1391 1440 1175 1392 1439 1189 1393 1442 1053 1244 1273 1015 1243 1272 1159 1394 1443 1145 1395 1444 1159 1394 1443 1015 1243 1272 1014 1230 1271 1154 1396 1458 1176 1397 1457 1220 1398 1452 1219 1399 1451 1162 1400 1459 1154 1396 1458 1146 1401 1460 1145 1395 1444 1163 1402 1450 1212 1403 1461 1217 1404 1446 1261 1405 1447 1189 1393 1442 1164 1406 1462 1264 1407 1454 1214 1408 1453 1177 1409 1463 1162 1400 1459 1005 1229 1274 1033 1225 1328 1145 1395 1444 1014 1230 1271 1005 1229 1274 1162 1400 1459 1150 1410 1464 1019 1247 1467 1008 1246 1466 1165 1411 1465 1151 1412 1468 1165 1411 1465 1008 1246 1466 1020 1251 1469 1212 1403 1461 1163 1402 1450 1111 1254 1471 1106 1257 1470 1147 1413 1472 1166 1414 1474 1155 1415 1473 1225 1416 1475 1224 1417 1478 1167 1418 1477 1148 1419 1476 1167 1418 1477 1224 1417 1478 1109 1349 1575 1001 1271 1479 1226 1420 1480 1225 1416 1475 1148 1419 1476 1168 1421 1481 1147 1413 1472 1149 1422 1483 1025 1268 1482 1166 1414 1474 1001 1271 1479 1027 1270 1484 1170 1423 1486 1167 1418 1477 1148 1419 1476 1167 1418 1477 1170 1423 1486 1169 1424 1485 1148 1419 1476 1169 1424 1485 1172 1425 1488 1168 1421 1481 1149 1422 1483 1168 1421 1481 1172 1425 1488 1171 1426 1487 1149 1422 1483 1171 1426 1487 1029 1266 1489 1025 1268 1482 1027 1270 1484 1031 1275 1491 1156 1427 1490 1170 1423 1486 1169 1424 1485 1170 1423 1486 1156 1427 1490 1173 1428 1492 1150 1410 1464 1173 1428 1492 1156 1427 1490 1019 1247 1467 1003 1248 1493 1019 1247 1467 1156 1427 1490 1031 1275 1491 1169 1424 1485 1173 1428 1492 1157 1429 1494 1172 1425 1488 1171 1426 1487 1172 1425 1488 1157 1429 1494 1174 1430 1495 1151 1412 1468 1174 1430 1495 1157 1429 1494 1165 1411 1465 1150 1410 1464 1165 1411 1465 1157 1429 1494 1173 1428 1492 1171 1426 1487 1174 1430 1495 1011 1272 1496 1029 1266 1489 1151 1412 1468 1020 1251 1469 1011 1272 1496 1174 1430 1495 1152 1390 1441 1160 1431 1497 1161 1432 1500 1153 1391 1440 1161 1432 1500 1222 1433 1501 1219 1399 1451 1153 1391 1440 1221 1434 1502 1161 1432 1500 1160 1431 1497 1218 1435 1449 1158 1387 1435 1229 1389 1438 1175 1392 1439 1230 1388 1437 1230 1388 1437 1175 1392 1439 1220 1398 1452 1142 1436 1499 1177 1409 1463 1176 1397 1457 1154 1396 1458 1162 1400 1459 1159 1394 1443 1164 1406 1462 1189 1393 1442 1176 1397 1457 1177 1409 1463 1141 1437 1503 1144 1438 1498 1264 1407 1454 1164 1406 1462 1223 1439 1504 1265 1440 1609 1223 1439 1504 1164 1406 1462 1159 1394 1443 1223 1439 1504 1146 1401 1460 1222 1433 1501 1265 1440 1609 1052 1283 1506 1051 1286 1508 1182 1441 1507 1181 1442 1505 1183 1443 1511 1189 1393 1442 1188 1444 1509 1184 1445 1510 1183 1443 1511 1184 1445 1510 1185 1446 1517 1178 1447 1512 1189 1393 1442 1183 1443 1511 1046 1287 1513 1053 1244 1273 1178 1447 1512 1048 1289 1520 1046 1287 1513 1183 1443 1511 1188 1444 1509 1061 1294 1515 1047 1293 1514 1184 1445 1510 1185 1446 1517 1184 1445 1510 1047 1293 1514 1056 1295 1516 1178 1447 1512 1185 1446 1517 1179 1448 1519 1180 1449 1518 1180 1449 1518 1057 1296 1521 1048 1289 1520 1178 1447 1512 1179 1448 1519 1185 1446 1517 1056 1295 1516 1058 1299 1522 1186 1450 1524 1180 1449 1518 1179 1448 1519 1187 1451 1523 1186 1450 1524 1187 1451 1523 1181 1442 1505 1182 1441 1507 1180 1449 1518 1186 1450 1524 1049 1300 1525 1057 1296 1521 1186 1450 1524 1182 1441 1507 1051 1286 1508 1049 1300 1525 1179 1448 1519 1058 1299 1522 1050 1303 1526 1187 1451 1523 1052 1283 1506 1181 1442 1505 1187 1451 1523 1050 1303 1526 1074 1304 1528 1073 1307 1530 1194 1452 1529 1193 1453 1527 1195 1454 1533 1201 1455 1456 1200 1456 1531 1196 1457 1532 1195 1454 1533 1196 1457 1532 1197 1458 1540 1190 1459 1534 1201 1455 1456 1195 1454 1533 1068 1308 1536 1075 1309 1535 1190 1459 1534 1070 1312 1543 1068 1308 1536 1195 1454 1533 1200 1456 1531 1083 1316 1538 1069 1315 1537 1196 1457 1532 1197 1458 1540 1196 1457 1532 1069 1315 1537 1078 1317 1539 1190 1459 1534 1197 1458 1540 1191 1460 1542 1192 1461 1541 1192 1461 1541 1079 1318 1544 1070 1312 1543 1190 1459 1534 1191 1460 1542 1197 1458 1540 1078 1317 1539 1080 1321 1545 1198 1462 1547 1192 1461 1541 1191 1460 1542 1199 1463 1546 1198 1462 1547 1199 1463 1546 1193 1453 1527 1194 1452 1529 1192 1461 1541 1198 1462 1547 1071 1322 1548 1079 1318 1544 1198 1462 1547 1194 1452 1529 1073 1307 1530 1071 1322 1548 1191 1460 1542 1080 1321 1545 1072 1325 1549 1199 1463 1546 1074 1304 1528 1193 1453 1527 1199 1463 1546 1072 1325 1549 1096 1326 1551 1095 1329 1553 1206 1464 1552 1205 1465 1550 1207 1466 1556 1213 1467 1555 1212 1403 1461 1208 1468 1554 1207 1466 1556 1208 1468 1554 1209 1469 1562 1202 1470 1557 1213 1467 1555 1207 1466 1556 1090 1330 1559 1097 1332 1558 1202 1470 1557 1092 1333 1565 1090 1330 1559 1207 1466 1556 1212 1403 1461 1106 1257 1470 1091 1337 1560 1208 1468 1554 1209 1469 1562 1208 1468 1554 1091 1337 1560 1100 1338 1561 1202 1470 1557 1209 1469 1562 1203 1471 1564 1204 1472 1563 1204 1472 1563 1101 1339 1566 1092 1333 1565 1202 1470 1557 1203 1471 1564 1209 1469 1562 1100 1338 1561 1102 1342 1567 1210 1473 1569 1204 1472 1563 1203 1471 1564 1211 1474 1568 1210 1473 1569 1211 1474 1568 1205 1465 1550 1206 1464 1552 1204 1472 1563 1210 1473 1569 1093 1343 1570 1101 1339 1566 1210 1473 1569 1206 1464 1552 1095 1329 1553 1093 1343 1570 1203 1471 1564 1102 1342 1567 1094 1346 1571 1211 1474 1568 1096 1326 1551 1205 1465 1550 1211 1474 1568 1094 1346 1571 1160 1431 1497 1226 1420 1480 1147 1413 1472 1218 1435 1449 1189 1393 1442 1214 1408 1453 1188 1444 1509 1215 1475 1455 1201 1455 1456 1188 1444 1509 1214 1408 1453 1217 1404 1446 1213 1467 1555 1200 1456 1531 1216 1476 1572 1217 1404 1446 1212 1403 1461 1213 1467 1555 1115 1348 1573 1201 1455 1456 1075 1309 1535 1115 1348 1573 1061 1294 1515 1188 1444 1509 1201 1455 1456 1213 1467 1555 1114 1347 1574 1083 1316 1538 1200 1456 1531 1213 1467 1555 1097 1332 1558 1114 1347 1574 1163 1402 1450 1261 1405 1447 1221 1434 1502 1218 1435 1449 1227 1477 1448 1220 1398 1452 1175 1392 1439 1153 1391 1440 1219 1399 1451 1225 1416 1475 1226 1420 1480 1160 1431 1497 1152 1390 1441 1168 1421 1481 1149 1422 1483 1147 1413 1472 1226 1420 1480 1010 1350 1576 1166 1414 1474 1025 1268 1482 1022 1255 1577 1111 1254 1471 1163 1402 1450 1227 1477 1448 1227 1477 1448 1155 1415 1473 1110 1261 1578 1022 1255 1577 1158 1387 1435 1143 1220 1436 1228 1241 1445 1229 1389 1438 1147 1413 1472 1155 1415 1473 1227 1477 1448 1218 1435 1449 1155 1415 1473 1166 1414 1474 1010 1350 1576 1110 1261 1578 1225 1416 1475 1152 1390 1441 1229 1389 1438 1224 1417 1478 1224 1417 1478 1229 1389 1438 1228 1241 1445 1109 1349 1575 1232 1382 1431 1238 1385 1432 1252 1478 1580 1263 1479 1579 1232 1382 1431 1263 1479 1579 1144 1438 1498 1141 1437 1503 1134 1356 1589 1127 1355 1592 1253 1480 1591 1247 1481 1590 1235 1482 1593 1239 1483 1596 1254 1484 1595 1245 1485 1594 1246 1486 1597 1233 1487 1598 1240 1488 1429 1255 1489 1430 1234 1490 1599 1241 1491 1602 1256 1492 1601 1248 1493 1600 1124 1372 1434 1131 1371 1603 1257 1494 1583 1249 1495 1433 1238 1496 1432 1242 1497 1584 1258 1498 1604 1252 1499 1580 1243 1500 1605 1260 1501 1588 1251 1502 1427 1237 1503 1606 1250 1504 1424 1236 1505 1425 1244 1506 1587 1259 1507 1586 1233 1487 1598 1245 1485 1594 1254 1484 1595 1240 1488 1429 1234 1490 1599 1246 1486 1597 1255 1489 1430 1241 1491 1602 1247 1481 1590 1253 1480 1591 1239 1483 1596 1235 1482 1593 1121 1369 1607 1248 1493 1600 1256 1492 1601 1128 1368 1608 1238 1496 1432 1249 1495 1433 1257 1494 1583 1242 1497 1584 1136 1374 1423 1250 1504 1424 1259 1507 1586 1138 1375 1585 1252 1499 1580 1258 1498 1604 1243 1500 1605 1237 1503 1606 1259 1507 1586 1253 1480 1591 1127 1355 1592 1138 1375 1585 1260 1501 1588 1254 1484 1595 1239 1483 1596 1244 1506 1587 1259 1507 1586 1244 1506 1587 1239 1483 1596 1253 1480 1591 1240 1488 1429 1243 1500 1605 1258 1498 1604 1255 1489 1430 1260 1501 1588 1243 1500 1605 1240 1488 1429 1254 1484 1595 1257 1494 1583 1256 1492 1601 1241 1491 1602 1242 1497 1584 1255 1489 1430 1258 1498 1604 1242 1497 1584 1241 1491 1602 1257 1494 1583 1131 1371 1603 1128 1368 1608 1256 1492 1601 1002 1264 1316 1000 1263 1313 1010 1350 1315 1025 1268 1317 1039 1282 1334 1271 1508 1330 1273 1276 1332 1038 1278 1333 1038 1278 1333 1273 1276 1332 1006 1228 1281 1016 1231 1282 1137 1361 1265 1129 1360 1264 1130 1370 1415 1139 1363 1417 1244 1506 1587 1236 1505 1425 1251 1502 1427 1260 1501 1588 1216 1476 1572 1200 1456 1531 1201 1455 1456 1215 1475 1455 1222 1433 1501 1146 1401 1460 1154 1396 1458 1219 1399 1451 1216 1476 1572 1215 1475 1455 1264 1407 1454 1261 1405 1447 1215 1475 1455 1214 1408 1453 1264 1407 1454 1221 1434 1502 1265 1440 1609 1222 1433 1501 1161 1432 1500 1261 1405 1447 1264 1407 1454 1265 1440 1609 1221 1434 1502 1231 1509 1610 1237 1510 1606 1251 1381 1427 1262 1380 1428 1230 1388 1437 1142 1436 1499 1231 1509 1610 1262 1380 1428 1263 1479 1579 1231 1509 1610 1142 1436 1499 1144 1438 1498 1252 1478 1580 1237 1510 1606 1231 1509 1610 1263 1479 1579 1216 1476 1572 1261 1405 1447 1217 1404 1446 1136 1379 1408 1125 1511 1419 994 1222 1611 1266 1221 1269 1033 1225 1328 1116 1224 1612 1141 1437 1503 1177 1409 1463 1116 1224 1612 1267 1383 1582 1232 1382 1431 1141 1437 1503 1118 1367 1581 1267 1383 1582 1116 1224 1612 1013 1227 1613 1118 1367 1335 1117 1354 1403 1123 1353 1406 1124 1386 1405 994 1222 1611 1125 1511 1419 1135 1352 1407 1268 1351 1404 995 1223 1268 994 1222 1611 1268 1351 1404 1269 1281 1267 995 1223 1268 1269 1281 1267 1270 1280 1329 1035 1240 1293 1035 1240 1293 1270 1280 1329 1271 1508 1330 1017 1259 1294 1017 1259 1294 1271 1508 1330 1039 1282 1334 999 1252 1295 1270 1280 1329 1272 1277 1331 1273 1276 1332 1271 1508 1330 1142 1436 1499 1220 1398 1452 1176 1397 1457 1144 1438 1498 1145 1395 1444 1146 1401 1460 1223 1439 1504 1159 1394 1443 1134 1356 1411 1276 1512 1616 1275 1513 1615 1120 1357 1410 1277 1514 1617 1121 1369 1413 1122 1359 1414 1278 1515 1618 1120 1357 1410 1275 1513 1615 1274 1516 1614 1133 1362 1409 1278 1515 1618 1122 1359 1414 1133 1362 1409 1274 1516 1614 1247 1481 1590 1279 1517 1620 1276 1512 1619 1134 1356 1589 1245 1485 1594 1281 1518 1622 1280 1519 1621 1235 1482 1593 1246 1486 1597 1283 1520 1624 1282 1521 1623 1233 1487 1598 1248 1493 1600 1285 1522 1626 1284 1523 1625 1234 1490 1599 1233 1487 1598 1282 1521 1623 1281 1518 1622 1245 1485 1594 1234 1490 1599 1284 1523 1625 1283 1520 1624 1246 1486 1597 1235 1482 1593 1280 1519 1621 1279 1517 1620 1247 1481 1590 1121 1369 1607 1277 1514 1627 1285 1522 1626 1248 1493 1600 1276 1512 1616 1288 1524 1630 1287 1525 1629 1275 1513 1615 1289 1526 1631 1277 1514 1617 1278 1515 1618 1290 1527 1632 1275 1513 1615 1287 1525 1629 1286 1528 1628 1274 1516 1614 1290 1527 1632 1278 1515 1618 1274 1516 1614 1286 1528 1628 1279 1517 1620 1291 1529 1634 1288 1524 1633 1276 1512 1619 1281 1518 1622 1293 1530 1636 1292 1531 1635 1280 1519 1621 1283 1520 1624 1295 1532 1638 1294 1533 1637 1282 1521 1623 1285 1522 1626 1297 1534 1640 1296 1535 1639 1284 1523 1625 1282 1521 1623 1294 1533 1637 1293 1530 1636 1281 1518 1622 1284 1523 1625 1296 1535 1639 1295 1532 1638 1283 1520 1624 1280 1519 1621 1292 1531 1635 1291 1529 1634 1279 1517 1620 1277 1514 1627 1289 1526 1641 1297 1534 1640 1285 1522 1626 1288 1524 1630 1300 1536 1644 1299 1537 1643 1287 1525 1629 1302 1538 1646 1301 1539 1645 1289 1526 1631 1290 1527 1632 1287 1525 1629 1299 1537 1643 1298 1540 1642 1286 1528 1628 1298 1540 1642 1302 1538 1646 1290 1527 1632 1286 1528 1628 1291 1529 1634 1303 1541 1648 1300 1536 1647 1288 1524 1633 1293 1530 1636 1305 1542 1650 1304 1543 1649 1292 1531 1635 1295 1532 1638 1307 1544 1652 1306 1545 1651 1294 1533 1637 1297 1534 1640 1309 1546 1654 1308 1547 1653 1296 1535 1639 1294 1533 1637 1306 1545 1651 1305 1542 1650 1293 1530 1636 1296 1535 1639 1308 1547 1653 1307 1544 1652 1295 1532 1638 1292 1531 1635 1304 1543 1649 1303 1541 1648 1291 1529 1634 1289 1526 1641 1301 1539 1655 1309 1546 1654 1297 1534 1640 2419 2791 2955 2418 2792 2952 2369 2793 2953 2420 2794 2954 2394 2795 2959 2423 2796 2960 2418 2792 2952 2419 2791 2955 2394 2795 2959 2424 2797 2961 2370 2798 2962 2423 2796 2960 2396 2799 2965 2426 2800 2966 2370 2798 2962 2424 2797 2961 2406 2801 2967 2426 2800 2966 2427 2802 2968 2407 2803 2969 2398 2804 2970 2428 2805 2971 2371 2806 2972 2427 2802 2968 2431 2807 2975 2430 2808 2974 2371 2806 2972 2428 2805 2971 2400 2809 2978 2433 2810 2979 2430 2808 2974 2431 2807 2975 2409 2811 2980 2433 2810 2979 2434 2812 2981 2410 2813 2982 2402 2814 2983 2435 2815 2984 2372 2816 2985 2434 2812 2981 2484 2817 2987 2483 2818 2988 2373 2819 2989 2437 2820 2990 2445 2821 2994 2447 2822 2995 2375 2823 2996 2369 2793 2953 2404 2824 2997 2445 2821 2994 2369 2793 2953 2418 2792 2952 2405 2825 2998 2423 2796 2960 2370 2798 2962 2446 2826 2999 2405 2825 2998 2404 2824 2997 2418 2792 2952 2423 2796 2960 2406 2801 2967 2446 2826 2999 2370 2798 2962 2426 2800 2966 2407 2803 2969 2427 2802 2968 2371 2806 2972 2448 2827 3000 2408 2828 3001 2448 2827 3000 2371 2806 2972 2430 2808 2974 2409 2811 2980 2408 2828 3001 2430 2808 2974 2433 2810 2979 2410 2813 2982 2434 2812 2981 2372 2816 2985 2449 2829 3002 2422 2830 2956 2453 2831 3003 2376 2832 3004 2421 2833 3062 2395 2834 2958 2461 2835 3013 2453 2831 3003 2422 2830 2956 2425 2836 2957 2381 2837 3203 2461 2835 3013 2395 2834 2958 2377 2838 3055 2463 2839 3015 2464 2840 3016 2454 2841 3056 2465 2842 3019 2412 2843 3018 2456 2844 3006 2379 2845 3005 2457 2846 3007 2413 2847 3020 2414 2848 3076 2458 2849 3008 2415 2850 3021 2411 2851 3017 2453 2852 3003 2461 2853 3013 2469 2854 3023 2383 2855 3027 2378 2856 3026 2439 2857 2986 2471 2858 3028 2466 2859 3029 2378 2860 3026 2383 2861 3027 2483 2818 2988 2485 2862 3030 2450 2863 3031 2373 2819 2989 2487 2864 3032 2486 2865 3034 2441 2866 3035 2385 2867 3033 2469 2854 3023 2439 2857 2986 2486 2865 3034 2487 2864 3032 2472 2868 3038 2392 2869 3039 2391 2870 3036 2473 2871 3037 2393 2872 3042 2475 2873 3043 2474 2874 3040 2390 2875 3041 2416 2876 3045 2472 2877 3038 2475 2878 3043 2417 2879 3046 2480 2880 3048 2479 2881 3047 2391 2870 3036 2392 2869 3039 2416 2876 3045 2480 2882 3048 2392 2883 3039 2472 2877 3038 2417 2879 3046 2475 2878 3043 2393 2884 3042 2481 2885 3049 2478 2886 3050 2481 2887 3049 2393 2872 3042 2390 2875 3041 2459 2888 3205 2460 2889 3204 2397 2890 2963 2399 2891 2964 2456 2892 3006 2457 2893 3007 2401 2894 2977 2403 2895 2976 2492 2896 3051 2372 2816 2985 2435 2815 2984 2488 2897 3052 2451 2898 3053 2452 2899 2993 2384 2900 2992 2374 2901 3054 2455 2902 3024 2470 2903 3025 2385 2867 3033 2441 2866 3035 2375 2823 2996 2374 2901 3054 2440 2904 3057 2443 2905 3058 2491 2906 3060 2465 2842 3019 2379 2845 3005 2493 2907 3059 2398 2804 2970 2427 2802 2968 2426 2800 2966 2396 2799 2965 2402 2814 2983 2434 2812 2981 2433 2810 2979 2400 2809 2978 2492 2896 3051 2490 2908 3061 2449 2829 3002 2372 2816 2985 2384 2900 2992 2438 2909 2991 2440 2904 3057 2374 2901 3054 2447 2822 2995 2451 2898 3053 2374 2901 3054 2375 2823 2996 2443 2905 3058 2420 2794 2954 2369 2793 2953 2375 2823 2996 2376 2832 3004 2377 2910 3055 2444 2911 3063 2421 2833 3062 2457 2846 3007 2456 2844 3006 2412 2843 3018 2413 2847 3020 2474 2874 3040 2475 2873 3043 2472 2868 3038 2473 2871 3037 2404 2912 2997 2422 2913 2956 2421 2914 3062 2445 2915 2994 2405 2916 2998 2395 2917 2958 2422 2913 2956 2404 2912 2997 2406 2918 2967 2397 2919 2963 2425 2920 2957 2446 2921 2999 2448 2922 3000 2408 2923 3001 2432 2924 2973 2429 2925 3064 2459 2888 3205 2399 2891 2964 2429 2926 3064 2380 2927 3207 2408 2923 3001 2409 2928 2980 2401 2929 2977 2432 2924 2973 2456 2892 3006 2403 2895 2976 2436 2930 3065 2379 2931 3005 2493 2932 3059 2489 2933 3066 2439 2857 2986 2378 2856 3026 2452 2934 2993 2451 2935 3053 2442 2936 3067 2441 2937 3035 2442 2938 3067 2444 2911 3063 2377 2910 3055 2454 2939 3056 2451 2935 3053 2447 2940 2995 2444 2941 3063 2442 2936 3067 2442 2938 3067 2454 2939 3056 2455 2902 3024 2441 2866 3035 2447 2940 2995 2445 2915 2994 2421 2914 3062 2444 2941 3063 2489 2942 3066 2490 2943 3061 2450 2944 3031 2439 2945 2986 2405 2916 2998 2446 2921 2999 2425 2920 2957 2395 2917 2958 2425 2836 2957 2397 2890 2963 2460 2889 3204 2381 2837 3203 2406 2918 2967 2407 2946 2969 2399 2947 2964 2397 2919 2963 2448 2922 3000 2429 2925 3064 2399 2947 2964 2407 2946 2969 2380 2927 3207 2429 2926 3064 2432 2948 2973 2458 2949 3008 2432 2948 2973 2401 2894 2977 2457 2893 3007 2458 2949 3008 2409 2928 2980 2410 2950 2982 2403 2951 2976 2401 2929 2977 2410 2950 2982 2449 2952 3002 2436 2953 3065 2403 2951 2976 2476 2954 3069 2477 2955 3070 2460 2956 3011 2459 2957 3010 2389 2958 3071 2381 2959 3012 2460 2956 3011 2477 2955 3070 2417 2879 3046 2477 2955 3070 2476 2954 3069 2416 2876 3045 2481 2885 3049 2389 2958 3071 2477 2955 3070 2417 2879 3046 2476 2954 3069 2459 2957 3010 2380 2960 3009 2388 2961 3068 2480 2880 3048 2388 2962 3068 2387 2963 3072 2479 2881 3047 2416 2876 3045 2476 2954 3069 2388 2961 3068 2480 2882 3048 2478 2886 3050 2386 2964 3044 2389 2965 3071 2481 2887 3049 2486 2966 3034 2485 2967 3030 2452 2934 2993 2441 2937 3035 2384 2900 2992 2483 2818 2988 2484 2817 2987 2438 2909 2991 2452 2899 2993 2485 2862 3030 2483 2818 2988 2384 2900 2992 2462 2968 3014 2376 2969 3004 2453 2852 3003 2411 2851 3017 2377 2838 3055 2376 2969 3004 2462 2968 3014 2463 2839 3015 2455 2970 3024 2382 2971 3074 2482 2972 3073 2470 2973 3025 2488 2897 3052 2437 2820 2990 2373 2819 2989 2492 2896 3051 2489 2942 3066 2436 2953 3065 2449 2952 3002 2490 2943 3061 2373 2819 2989 2450 2863 3031 2490 2908 3061 2492 2896 3051 2493 2932 3059 2379 2931 3005 2436 2930 3065 2489 2933 3066 2378 2860 3026 2466 2859 3029 2491 2906 3060 2493 2907 3059 2381 2974 3012 2389 2965 3071 2386 2964 3044 2468 2975 3022 2415 2850 3021 2461 2853 3013 2381 2974 3203 2468 2975 3206 2454 2841 3056 2464 2840 3016 2382 2971 3074 2455 2970 3024 2467 2976 3202 2387 2963 3072 2388 2962 3068 2380 2977 3009 2414 2848 3076 2467 2976 3075 2380 2977 3207 2458 2849 3008 2450 2944 3031 2485 2967 3030 2486 2966 3034 2439 2945 2986 2542 2978 3080 2543 2979 3077 2494 2980 3078 2541 2981 3079 2548 2982 3082 2518 2983 3083 2584 2984 3138 2506 2985 3136 2517 2986 3084 2542 2978 3080 2541 2981 3079 2546 2987 3085 2517 2986 3084 2546 2987 3085 2495 2988 3086 2547 2989 3087 2522 2990 3089 2520 2991 3088 2583 2992 3210 2582 2993 3211 2519 2994 3090 2547 2989 3087 2495 2988 3086 2549 2995 3091 2529 2996 3092 2530 2997 3093 2550 2998 3094 2549 2995 3091 2521 2999 3095 2550 2998 3094 2496 3000 3096 2551 3001 3097 2554 3002 3100 2551 3001 3097 2496 3000 3096 2553 3003 3099 2526 3004 3101 2524 3005 3102 2580 3006 3132 2579 3007 3130 2523 3008 3103 2554 3002 3100 2553 3003 3099 2556 3009 3104 2532 3010 3105 2533 3011 3106 2557 3012 3107 2556 3009 3104 2525 3013 3108 2557 3012 3107 2497 3014 3109 2558 3015 3110 2603 3016 3112 2560 3017 3113 2498 3018 3114 2602 3019 3115 2508 3020 3116 2561 3021 3117 2603 3016 3112 2602 3019 3115 2564 3022 3160 2575 3023 3118 2604 3024 3156 2605 3025 3159 2568 3026 3119 2494 2980 3078 2500 3027 3120 2570 3028 3121 2527 3029 3122 2541 2981 3079 2494 2980 3078 2568 3026 3119 2528 3030 3123 2569 3031 3124 2495 2988 3086 2546 2987 3085 2528 3030 3123 2546 2987 3085 2541 2981 3079 2527 3029 3122 2529 2996 3092 2549 2995 3091 2495 2988 3086 2569 3031 3124 2530 2997 3093 2571 3032 3125 2496 3000 3096 2550 2998 3094 2531 3033 3126 2553 3003 3099 2496 3000 3096 2571 3032 3125 2532 3010 3105 2556 3009 3104 2553 3003 3099 2531 3033 3126 2533 3011 3106 2572 3034 3127 2497 3014 3109 2557 3012 3107 2501 3035 3128 2576 3036 3129 2545 3037 3081 2544 3038 3187 2545 3037 3081 2576 3036 3129 2584 2984 3138 2518 2983 3083 2584 3039 3138 2576 3040 3129 2534 3041 3142 2538 3042 3146 2586 3043 3139 2585 3044 3140 2501 3045 3128 2502 3046 3181 2504 3047 3131 2579 3048 3130 2535 3049 3143 2588 3050 3144 2580 3051 3132 2581 3052 3134 2537 3053 3201 2536 3054 3145 2585 3044 3140 2534 3041 3142 2576 3040 3129 2501 3045 3128 2584 3039 3138 2538 3042 3146 2591 3055 3147 2506 3056 3136 2562 3057 3111 2469 2854 3148 2487 2864 3157 2605 3058 3159 2470 2973 3150 2482 2972 3198 2507 3059 3199 2578 3060 3149 2562 3057 3111 2503 3061 3151 2383 2855 3152 2469 2854 3148 2589 3062 3154 2471 2858 3153 2383 2861 3152 2503 3063 3151 2575 3064 3118 2508 3020 3116 2602 3019 3115 2604 3065 3156 2602 3019 3115 2498 3018 3114 2573 3066 3155 2604 3065 3156 2487 2864 3157 2385 2867 3158 2564 3067 3160 2605 3058 3159 2564 3067 3160 2385 2867 3158 2470 2903 3150 2578 3068 3149 2593 3069 3161 2514 3070 3162 2515 3071 3163 2592 3072 3164 2594 3073 3165 2593 3069 3161 2592 3072 3164 2595 3074 3167 2513 3075 3166 2594 3073 3165 2595 3074 3167 2516 3076 3168 2601 3077 3174 2512 3078 3196 2509 3079 3169 2598 3080 3175 2539 3081 3170 2540 3082 3171 2595 3083 3167 2592 3084 3164 2600 3085 3173 2599 3086 3172 2510 3087 3197 2511 3088 3193 2599 3086 3172 2600 3085 3173 2515 3071 3163 2514 3070 3162 2539 3081 3170 2600 3089 3173 2511 3090 3193 2596 3091 3194 2539 3081 3170 2592 3084 3164 2515 3092 3163 2600 3089 3173 2601 3093 3174 2540 3082 3171 2597 3094 3195 2512 3095 3196 2540 3082 3171 2601 3093 3174 2516 3096 3168 2595 3083 3167 2601 3077 3174 2598 3080 3175 2513 3075 3166 2516 3076 3168 2610 3097 3176 2606 3098 3177 2558 3015 3110 2497 3014 3109 2574 3099 3178 2499 3100 3179 2508 3020 3116 2575 3064 3118 2577 3101 3180 2502 3102 3181 2567 3103 3188 2565 3104 3192 2500 3027 3120 2566 3105 3182 2563 3106 3183 2499 3100 3179 2611 3107 3184 2504 3047 3131 2588 3050 3144 2609 3108 3185 2521 2999 3095 2519 2994 3090 2549 2995 3091 2550 2998 3094 2525 3013 3108 2523 3008 3103 2556 3009 3104 2557 3012 3107 2610 3097 3176 2497 3014 3109 2572 3034 3127 2608 3109 3186 2508 3020 3116 2499 3100 3179 2563 3106 3183 2561 3021 3117 2570 3028 3121 2500 3027 3120 2499 3100 3179 2574 3099 3178 2566 3105 3182 2500 3027 3120 2494 2980 3078 2543 2979 3077 2502 3102 3181 2501 3035 3128 2544 3038 3187 2567 3103 3188 2586 3043 3139 2502 3046 3181 2577 3110 3180 2587 3111 3141 2580 3051 3132 2536 3054 3145 2535 3049 3143 2579 3048 3130 2540 3082 3171 2539 3081 3170 2596 3091 3194 2597 3094 3195 2527 3112 3122 2568 3113 3119 2544 3114 3187 2545 3115 3081 2528 3116 3123 2527 3112 3122 2545 3115 3081 2518 3117 3083 2529 3118 3092 2569 3119 3124 2548 3120 3082 2520 3121 3088 2571 3122 3125 2552 3123 3189 2555 3124 3098 2531 3125 3126 2552 3126 3189 2522 2990 3089 2582 2993 3211 2505 3127 3213 2531 3125 3126 2555 3124 3098 2524 3128 3102 2532 3129 3105 2573 3130 3155 2562 3131 3111 2605 3025 3159 2604 3024 3156 2504 3132 3131 2559 3133 3190 2526 3004 3101 2579 3007 3130 2562 3057 3111 2607 3134 3191 2611 3135 3184 2503 3061 3151 2575 3023 3118 2564 3022 3160 2565 3136 3192 2574 3137 3178 2574 3137 3178 2565 3136 3192 2567 3138 3188 2570 3139 3121 2578 3068 3149 2577 3101 3180 2565 3104 3192 2564 3067 3160 2570 3139 3121 2567 3138 3188 2544 3114 3187 2568 3113 3119 2607 3140 3191 2562 3131 3111 2573 3130 3155 2608 3141 3186 2528 3116 3123 2518 3117 3083 2548 3120 3082 2569 3119 3124 2583 2992 3210 2520 2991 3088 2548 2982 3082 2506 2985 3136 2529 3118 3092 2520 3121 3088 2522 3142 3089 2530 3143 3093 2571 3122 3125 2530 3143 3093 2522 3142 3089 2552 3123 3189 2581 3144 3134 2555 3145 3098 2552 3126 3189 2505 3127 3213 2580 3006 3132 2524 3005 3102 2555 3145 3098 2581 3144 3134 2532 3129 3105 2524 3128 3102 2526 3146 3101 2533 3147 3106 2533 3147 3106 2526 3146 3101 2559 3148 3190 2572 3149 3127 2505 3150 3133 2511 3088 3193 2510 3087 3197 2590 3151 3200 2596 3091 3194 2582 3152 3135 2583 3153 3137 2597 3094 3195 2512 3095 3196 2597 3094 3195 2583 3153 3137 2506 3154 3209 2596 3091 3194 2511 3090 3193 2505 3155 3133 2582 3152 3135 2591 3055 3212 2509 3079 3169 2512 3078 3196 2506 3056 3209 2606 3098 3177 2610 3097 3176 2498 3018 3114 2560 3017 3113 2607 3140 3191 2608 3141 3186 2572 3149 3127 2559 3148 3190 2498 3018 3114 2610 3097 3176 2608 3109 3186 2573 3066 3155 2504 3132 3131 2611 3135 3184 2607 3134 3191 2559 3133 3190 2589 3062 3154 2503 3063 3151 2611 3107 3184 2609 3108 3185 2577 3110 3180 2578 3060 3149 2507 3059 3199 2587 3111 3141 2537 3053 3201 2581 3052 3134 2505 3150 3213 2590 3151 3208 544 3158 654 532 693 653 535 692 651 545 702 664 666 874 847 672 872 845 667 878 841 534 690 650 529 696 646 533 691 645 1001 1271 1318 1109 1349 1312 1023 1262 1311 1026 1265 1319 2616 948 3218 913 1077 1060 909 1111 1097 912 1045 1184 2617 1159 3220 801 969 1186 846 972 1094 2618 1115 3221 838 1114 1093 2617 1159 3220 2618 1115 3221 728 971 1101 2618 1115 3221 846 972 1094

+
+ + + + + 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 3 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 3 4 4 4 4 3 3 4 4 3 3 4 4 3 4 4 4 4 3 4 4 4 4 4 4 3 3 4 4 4 4 4 4 6 4 4 5 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 3 4 4 4 4 4 4 4 4 5 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 3 3 3 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 3 4 4 4 4 3 4 4 4 4 3 3 4 4 3 3 4 4 3 4 4 4 3 4 4 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 6 4 4 4 4 4 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 3 4 4 4 4 4 4 4 4 4 5 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 3 3 4 4 3 4 4 3 3 +

1326 1548 1656 1327 1549 1657 1335 1550 1658 1332 1551 1659 1332 1551 1659 1334 1552 1660 1325 1553 1661 1326 1548 1656 1337 1554 1662 1330 1555 1663 1324 1556 1664 1336 1557 1665 1331 1558 1666 1335 1550 1658 1327 1549 1657 1328 1559 1667 1333 1560 1668 1331 1558 1666 1328 1559 1667 1329 1561 1669 1334 1552 1660 1311 1562 1670 1310 1563 1671 1325 1553 1661 1324 1564 1664 1620 1565 1672 1336 1566 1665 1330 1555 1663 1337 1554 1662 1333 1560 1668 1329 1561 1669 1376 1567 1673 1379 1568 1720 1349 1569 1674 1343 1570 1675 1343 1570 1675 1349 1569 1674 1357 1571 1682 1350 1572 1676 1349 1569 1674 1354 1573 1680 1338 1574 1681 1357 1571 1682 1415 1575 1683 1356 1576 1684 1355 1577 1678 1416 1578 1772 1338 1574 1681 1354 1573 1680 1405 1579 1686 1339 1580 1685 1339 1580 1685 1405 1579 1686 1344 1581 1687 1346 1582 1696 1345 1583 1690 1407 1584 1710 1314 1585 1691 1319 1586 1692 1351 1587 1693 1360 1588 1694 1315 1589 1695 1312 1590 1679 1339 1580 1685 1346 1582 1696 1340 1591 1697 1353 1592 1698 1347 1593 1699 1341 1594 1700 1346 1582 1696 1344 1581 1687 1377 1595 1701 1364 1596 1702 1365 1597 1703 1378 1598 1704 1341 1594 1700 1342 1599 1705 1340 1591 1697 1346 1582 1696 1383 1600 1706 1381 1601 1707 1341 1594 1700 1347 1593 1699 1381 1601 1707 1396 1602 1708 1408 1603 1709 1381 1601 1707 1408 1603 1709 1342 1599 1705 1341 1594 1700 1407 1584 1710 1352 1604 1711 1318 1605 1712 1314 1585 1691 1353 1592 1698 1359 1606 1713 1338 1574 1681 1339 1580 1685 1332 1551 1659 1335 1550 1658 1358 1607 1677 1355 1577 1678 1343 1570 1675 1350 1572 1676 1331 1558 1666 1333 1560 1668 1351 1587 1693 1312 1590 1679 1311 1562 1670 1334 1552 1660 1331 1558 1666 1350 1572 1676 1358 1607 1677 1335 1550 1658 1345 1583 1690 1359 1606 1713 1353 1592 1698 1407 1584 1710 1360 1588 1694 1345 1583 1690 1319 1586 1692 1315 1589 1695 1356 1576 1684 1359 1606 1713 1345 1583 1690 1360 1588 1694 1348 1608 1715 1409 1609 1714 1411 1610 1765 1375 1611 1766 1367 1612 1716 1362 1613 1717 1361 1614 1718 1370 1615 1719 1376 1567 1673 1337 1554 1662 1336 1557 1665 1361 1616 1718 1380 1617 1721 1354 1573 1680 1349 1569 1674 1379 1568 1720 1363 1618 1689 1371 1619 1726 1368 1620 1722 1364 1621 1702 1406 1622 1688 1405 1579 1686 1354 1573 1680 1380 1617 1721 1365 1623 1703 1364 1621 1702 1368 1620 1722 1372 1624 1723 1383 1600 1706 1347 1593 1699 1378 1598 1704 1373 1625 1731 1367 1612 1716 1369 1626 1724 1366 1627 1725 1362 1613 1717 1365 1623 1703 1372 1624 1723 1374 1628 1727 1369 1626 1724 1371 1619 1726 1363 1618 1689 1366 1627 1725 1620 1565 1672 1370 1615 1719 1361 1614 1718 1336 1566 1665 1374 1629 1727 1322 1630 1728 1323 1631 1729 1374 1629 1727 1323 1631 1729 1402 1632 1730 1373 1625 1731 1379 1568 1720 1376 1567 1673 1361 1616 1718 1362 1633 1717 1337 1554 1662 1376 1567 1673 1343 1570 1675 1333 1560 1668 1344 1581 1687 1377 1595 1701 1378 1598 1704 1347 1593 1699 1406 1622 1688 1380 1617 1721 1366 1634 1725 1363 1635 1689 1378 1598 1704 1365 1597 1703 1374 1629 1727 1373 1625 1731 1380 1617 1721 1379 1568 1720 1362 1633 1717 1366 1634 1725 1394 1636 1732 1385 1637 1733 1384 1638 1734 1393 1639 1735 1395 1640 1736 1386 1641 1737 1385 1637 1733 1394 1636 1732 1382 1642 1738 1387 1643 1739 1386 1641 1737 1395 1640 1736 1387 1643 1739 1382 1642 1738 1410 1644 1740 1387 1643 1739 1410 1644 1740 1396 1602 1708 1388 1645 1741 1381 1601 1707 1389 1646 1742 1388 1645 1741 1396 1602 1708 1390 1647 1743 1389 1646 1742 1381 1601 1707 1383 1600 1706 1397 1648 1744 1391 1649 1745 1390 1647 1743 1383 1600 1706 1397 1648 1744 1383 1600 1706 1403 1650 1746 1398 1651 1747 1392 1652 1748 1391 1649 1745 1397 1648 1744 1393 1639 1749 1384 1638 1750 1392 1652 1748 1398 1651 1747 1400 1653 1751 1394 1636 1732 1393 1639 1735 1399 1654 1752 1401 1655 1753 1395 1640 1736 1394 1636 1732 1400 1653 1751 1395 1640 1736 1401 1655 1753 1382 1642 1738 1403 1650 1746 1402 1632 1730 1316 1656 1754 1404 1657 1755 1398 1651 1747 1397 1648 1744 1403 1650 1746 1320 1658 1756 1400 1653 1751 1399 1654 1752 1321 1659 1757 1400 1653 1751 1320 1658 1756 1401 1655 1753 1402 1632 1730 1323 1631 1758 1316 1656 1754 1317 1660 1759 1404 1657 1760 1403 1650 1746 1316 1656 1761 1321 1659 1762 1399 1654 1763 1404 1657 1755 1317 1660 1764 1383 1600 1706 1373 1625 1731 1402 1632 1730 1342 1599 1705 1408 1603 1709 1411 1610 1765 1409 1609 1714 1377 1595 1701 1344 1581 1687 1405 1579 1686 1406 1622 1688 1363 1635 1689 1364 1596 1702 1377 1595 1701 1406 1622 1688 1353 1592 1698 1340 1591 1697 1352 1604 1711 1407 1584 1710 1409 1609 1714 1348 1608 1715 1352 1604 1711 1409 1609 1714 1352 1604 1711 1340 1591 1697 1342 1599 1705 1410 1644 1740 1382 1642 1738 1375 1611 1766 1411 1610 1765 1396 1602 1708 1410 1644 1740 1411 1610 1765 1408 1603 1709 1313 1661 1767 1318 1605 1712 1352 1604 1711 1348 1608 1715 1413 1662 1768 1412 1663 1769 1358 1607 1677 1350 1572 1676 1414 1664 1770 1413 1662 1768 1350 1572 1676 1357 1571 1682 1357 1571 1682 1417 1665 1771 1414 1664 1770 1359 1606 1713 1417 1665 1771 1338 1574 1681 1358 1607 1677 1412 1663 1769 1416 1578 1772 1355 1577 1678 1356 1576 1684 1415 1575 1683 1417 1665 1771 1359 1606 1713 1419 1666 1773 1436 1667 1774 1443 1668 1775 1444 1669 1777 1419 1666 1773 1444 1669 1778 1445 1670 1779 1420 1671 1780 1420 1671 1781 1445 1670 1782 1446 1672 1783 1421 1673 1784 1426 1674 1785 1427 1675 1786 1447 1676 1787 1446 1672 1783 1424 1677 1789 1448 1678 1788 1418 1679 1790 1422 1680 1819 1447 1676 1787 1427 1675 1786 1428 1681 1791 1429 1682 1792 1434 1683 1807 1424 1677 1789 1429 1682 1792 1435 1684 1793 1423 1685 1776 1434 1683 1807 1435 1684 1793 1430 1686 1794 1433 1687 1808 1425 1688 1809 1423 1685 1776 1431 1689 1796 1432 1690 1797 1427 1675 1786 1426 1674 1785 1432 1690 1797 1428 1681 1791 1424 1677 1789 1427 1675 1786 1429 1682 1792 1428 1681 1791 1412 1663 1798 1413 1662 1799 1412 1663 1798 1428 1681 1791 1432 1690 1797 1416 1578 1800 1435 1684 1793 1429 1682 1792 1413 1662 1799 1414 1664 1801 1417 1665 1802 1430 1686 1795 1435 1684 1793 1414 1664 1801 1416 1578 1800 1432 1690 1797 1431 1689 1796 1415 1575 1803 1436 1667 1774 1418 1679 1790 1448 1678 1788 1443 1668 1775 1415 1575 1803 1431 1689 1796 1430 1686 1804 1417 1665 1805 1433 1687 1806 1430 1686 1804 1431 1689 1796 1426 1674 1785 1425 1688 1810 1422 1680 1819 1418 1679 1790 1437 1691 1811 1438 1692 1812 1418 1679 1790 1436 1667 1774 1442 1693 1813 1437 1691 1811 1436 1667 1774 1419 1666 1773 1441 1694 1814 1442 1693 1813 1419 1666 1773 1420 1671 1815 1440 1695 1816 1441 1694 1814 1420 1671 1781 1421 1673 1784 1439 1696 1817 1440 1695 1818 1421 1673 1784 1422 1680 1819 1438 1692 1812 1439 1696 1817 1444 1669 1777 1443 1668 1775 1434 1683 1807 1423 1685 1776 1443 1668 1775 1448 1678 1788 1424 1677 1789 1434 1683 1807 1425 1688 1820 1445 1670 1821 1444 1669 1777 1423 1685 1776 1445 1670 1782 1425 1688 1810 1426 1674 1785 1446 1672 1783 1446 1672 1783 1447 1676 1787 1422 1680 1819 1421 1673 1784 1621 1697 1823 1471 1698 1822 1478 1699 1835 1479 1700 1834 1469 1701 1824 1474 1702 1825 1477 1703 1826 1468 1704 1827 1474 1702 1825 1475 1705 1828 1476 1706 1829 1477 1703 1826 1472 1707 1830 1348 1708 1831 1475 1709 1828 1474 1710 1825 1348 1711 1831 1471 1712 1822 1476 1706 1829 1475 1705 1828 1621 1697 1823 1473 1713 1832 1476 1714 1829 1471 1698 1822 1473 1713 1832 1477 1715 1826 1476 1714 1829 1621 1697 1823 1479 1700 1834 1470 1716 1833 1481 1717 1844 1478 1718 1835 1471 1712 1822 1348 1711 1831 1375 1719 1836 1375 1719 1836 1382 1720 1837 1478 1718 1835 1401 1655 1838 1320 1658 1839 1470 1716 1833 1479 1700 1834 1382 1642 1837 1401 1655 1838 1479 1700 1834 1478 1699 1835 1472 1707 1830 1467 1721 1840 1313 1722 1841 1348 1708 1842 1472 1707 1830 1474 1710 1825 1469 1723 1824 1467 1721 1840 1477 1715 1826 1473 1713 1832 1480 1724 1843 1468 1725 1827 1481 1717 1844 1480 1724 1843 1473 1713 1832 1621 1697 1823 1527 1726 1847 1526 1727 1848 1503 1728 1856 1510 1729 2051 1499 1730 1849 1510 1729 1850 1503 1728 1851 1511 1731 1852 1498 1732 1853 1511 1731 1852 1503 1728 1851 1512 1733 1854 1521 1734 1901 1512 1733 1855 1503 1728 1856 1526 1727 1848 1500 1735 1857 1513 1736 1858 1514 1737 1859 1495 1738 1860 1482 1739 1861 1493 1740 1864 1504 1741 1862 1514 1737 1859 1495 1738 1860 1514 1737 1859 1504 1741 1862 1496 1742 1863 1493 1740 1864 1492 1743 1865 1505 1744 1866 1504 1741 1862 1496 1742 1863 1504 1741 1862 1505 1744 1866 1501 1745 1867 1497 1746 1868 1501 1745 1869 1505 1744 1870 1515 1747 1871 1491 1748 1872 1515 1747 1871 1505 1744 1870 1492 1743 1873 1489 1749 1874 1516 1750 1875 1506 1751 1876 1490 1752 1877 1491 1748 1872 1490 1752 1877 1506 1751 1876 1515 1747 1871 1497 1746 1868 1515 1747 1871 1506 1751 1876 1502 1753 1878 1498 1732 1853 1502 1753 1878 1506 1751 1876 1516 1750 1875 1485 1754 1879 1517 1755 1880 1507 1756 1881 1488 1757 1882 1489 1749 1874 1488 1757 1882 1507 1756 1881 1516 1750 1875 1498 1732 1853 1516 1750 1875 1507 1756 1881 1511 1731 1852 1499 1730 1849 1511 1731 1852 1507 1756 1881 1517 1755 1880 1524 1758 1884 1523 1759 1885 1329 1561 1886 1328 1559 1887 1494 1760 1883 1326 1548 1888 1325 1553 1889 1519 1761 1890 1487 1762 1891 1519 1761 1890 1325 1553 1889 1310 1563 1892 1499 1730 1849 1529 1763 1893 1528 1764 1894 1510 1729 1850 1485 1754 1879 1484 1765 1895 1530 1766 1896 1517 1755 1880 1499 1730 1849 1517 1755 1880 1530 1766 1896 1529 1763 1893 1487 1762 1891 1483 1767 1897 1508 1768 1898 1519 1761 1890 1494 1760 1883 1519 1761 1890 1508 1768 1898 1520 1769 1899 1500 1735 1857 1520 1769 1899 1508 1768 1898 1513 1736 1858 1486 1770 1900 1513 1736 1858 1508 1768 1898 1483 1767 1897 1521 1734 1901 1526 1727 1848 1531 1771 1902 1533 1772 1903 1494 1760 1883 1518 1773 1845 1327 1549 1904 1326 1548 1888 1524 1758 1884 1328 1559 1887 1327 1549 1904 1518 1773 1845 1538 1774 1905 1539 1775 1906 1525 1776 1846 1518 1773 1845 1623 1777 1907 1522 1778 1911 1532 1779 1908 1622 1780 1909 1622 1780 1909 1532 1779 1908 1534 1781 1910 1498 1732 1853 1512 1733 1854 1509 1782 1912 1502 1753 1878 1497 1746 1868 1502 1753 1878 1509 1782 1912 1624 1783 1913 1623 1777 1907 1624 1783 1914 1509 1782 1915 1522 1778 1911 1486 1770 1900 1482 1739 1861 1514 1737 1859 1513 1736 1858 1330 1555 1916 1329 1561 1886 1523 1759 1885 1509 1782 1915 1512 1733 1855 1521 1734 1901 1522 1778 1911 1536 1784 1917 1537 1785 1918 1494 1760 1883 1520 1769 1899 1524 1786 1884 1453 1787 1919 1457 1788 1920 1523 1789 1885 1525 1790 1846 1459 1791 1921 1453 1787 1919 1524 1786 1884 1527 1792 1847 1451 1793 1922 1456 1794 1923 1526 1795 1848 1528 1796 1924 1454 1797 1925 1451 1793 1922 1527 1792 1847 1529 1798 1893 1452 1799 1926 1454 1797 1927 1528 1796 1894 1530 1800 1896 1455 1801 1928 1452 1799 1926 1529 1798 1893 1484 1802 1895 1450 1803 1929 1460 1804 1930 1455 1801 1928 1530 1800 1896 1330 1555 1916 1523 1789 1885 1458 1805 1931 1324 1556 1932 1523 1789 1885 1457 1788 1920 1458 1805 1931 1456 1794 1923 1461 1806 1933 1531 1807 1902 1526 1795 1848 1518 1773 1845 1525 1776 1846 1524 1758 1884 1521 1734 1901 1533 1772 1903 1532 1779 1908 1522 1778 1911 1535 1808 1934 1536 1784 1917 1520 1769 1899 1500 1735 1857 1537 1785 1918 1538 1774 1905 1518 1773 1845 1494 1760 1883 1525 1790 1846 1539 1809 1906 1462 1810 1935 1459 1791 1921 1534 1811 1910 1542 1812 1936 1543 1813 1937 1535 1814 1934 1549 1815 1938 1550 1816 1939 1465 1817 1940 1464 1818 1941 1553 1819 1951 1541 1820 1942 1540 1821 1943 1552 1822 1944 1554 1823 1952 1542 1812 1936 1541 1820 1942 1553 1819 1951 1555 1824 1953 1543 1813 1937 1542 1812 1936 1554 1823 1952 1556 1825 1954 1544 1826 1945 1543 1813 1937 1555 1824 1953 1557 1827 1955 1545 1828 1946 1544 1826 1945 1556 1825 1954 1558 1829 1956 1546 1830 1947 1545 1828 1946 1557 1827 1955 1559 1831 1957 1547 1832 1948 1546 1830 1947 1558 1829 1956 1560 1833 1958 1548 1834 1949 1547 1832 1948 1559 1831 1957 1561 1835 1959 1549 1815 1938 1548 1834 1949 1560 1833 1958 1562 1836 1960 1550 1816 1939 1549 1815 1938 1561 1835 1959 1563 1837 1961 1551 1838 1950 1550 1816 1939 1562 1836 1960 1552 1822 1944 1540 1821 1943 1551 1838 1950 1563 1837 1961 1565 1839 1962 1553 1819 1951 1552 1822 1944 1564 1840 1963 1566 1841 1964 1554 1823 1952 1553 1819 1951 1565 1839 1962 1567 1842 1965 1555 1824 1953 1554 1823 1952 1566 1841 1964 1568 1843 1966 1556 1825 1954 1555 1824 1953 1567 1842 1965 1569 1844 1967 1557 1827 1955 1556 1825 1954 1568 1843 1966 1570 1845 1968 1558 1829 1956 1557 1827 1955 1569 1844 1967 1571 1846 1969 1559 1831 1957 1558 1829 1956 1570 1845 1968 1572 1847 1970 1560 1833 1958 1559 1831 1957 1571 1846 1969 1573 1848 1971 1561 1835 1959 1560 1833 1958 1572 1847 1970 1574 1849 1972 1562 1836 1960 1561 1835 1959 1573 1848 1971 1575 1850 1973 1563 1837 1961 1562 1836 1960 1574 1849 1972 1564 1840 1963 1552 1822 1944 1563 1837 1961 1575 1850 1973 1565 1839 1962 1564 1840 1963 1576 1851 1974 1566 1841 1964 1567 1842 1965 1566 1841 1964 1576 1851 1974 1568 1843 1966 1569 1844 1967 1568 1843 1966 1576 1851 1974 1570 1845 1968 1571 1846 1969 1570 1845 1968 1576 1851 1974 1572 1847 1970 1573 1848 1971 1572 1847 1970 1576 1851 1974 1574 1849 1972 1575 1850 1973 1574 1849 1972 1576 1851 1974 1564 1840 1963 1541 1820 1942 1542 1812 1936 1534 1811 1910 1532 1852 1908 1540 1821 1943 1541 1820 1942 1532 1852 1908 1533 1853 1903 1544 1826 1945 1545 1828 1946 1537 1854 1918 1536 1855 1917 1546 1830 1947 1538 1856 1905 1537 1854 1918 1545 1828 1946 1549 1815 1938 1464 1818 1941 1466 1857 1975 1548 1834 1949 1540 1821 1943 1533 1853 1903 1531 1858 1902 1551 1838 1950 1550 1816 1939 1551 1838 1950 1531 1858 1902 1461 1859 1933 1465 1817 1940 1544 1826 1945 1536 1855 1917 1535 1814 1934 1543 1813 1937 1539 1860 1906 1538 1856 1905 1546 1830 1947 1547 1832 1948 1463 1861 1976 1462 1862 1935 1463 1861 1976 1547 1832 1948 1548 1834 1949 1466 1857 1975 1385 1637 1977 1596 1863 1978 1595 1864 1979 1384 1638 1980 1386 1641 1981 1597 1865 1982 1596 1863 1978 1385 1637 1977 1387 1643 1983 1598 1866 1984 1597 1865 1982 1386 1641 1981 1388 1645 1985 1599 1867 1986 1598 1866 1984 1387 1643 1983 1389 1646 1987 1600 1868 1988 1599 1867 1986 1388 1645 1985 1390 1647 1989 1601 1869 1990 1600 1868 1988 1389 1646 1987 1391 1649 1991 1602 1870 1992 1601 1869 1990 1390 1647 1989 1392 1652 1993 1603 1871 1994 1602 1870 1992 1391 1649 1991 1384 1638 1995 1595 1864 1996 1603 1871 1994 1392 1652 1993 1595 1864 1979 1596 1863 1978 1587 1872 2019 1586 1873 2020 1596 1863 1978 1597 1865 1982 1588 1874 2021 1587 1872 2019 1597 1865 1982 1598 1866 1984 1589 1875 2022 1588 1874 2021 1598 1866 1984 1599 1867 1986 1590 1876 2023 1589 1875 2022 1599 1867 1986 1600 1868 1988 1591 1877 2024 1590 1876 2023 1600 1868 1988 1601 1869 1990 1592 1878 2025 1591 1877 2024 1601 1869 1990 1602 1870 1992 1593 1879 2026 1592 1878 2025 1602 1870 1992 1603 1871 1994 1594 1880 2027 1593 1879 2026 1603 1871 1994 1595 1864 1997 1586 1873 2028 1594 1880 2027 1604 1881 1998 1578 1882 1999 1577 1883 2000 1605 1884 2001 1578 1882 2002 1604 1881 1998 1606 1885 2003 1579 1886 2004 1579 1886 2004 1606 1885 2003 1607 1887 2005 1580 1888 2006 1580 1888 2006 1607 1887 2005 1608 1889 2007 1581 1890 2008 1581 1890 2008 1608 1889 2007 1609 1891 2009 1582 1892 2010 1583 1893 2011 1582 1892 2010 1609 1891 2009 1610 1894 2012 1584 1895 2013 1583 1893 2011 1610 1894 2012 1611 1896 2014 1585 1897 2015 1584 1895 2013 1611 1896 2014 1612 1898 2016 1585 1897 2015 1612 1898 2016 1605 1884 2017 1577 1883 2018 1587 1872 2019 1604 1881 2029 1605 1884 2030 1586 1873 2020 1588 1874 2021 1606 1885 2003 1604 1881 1998 1587 1872 2019 1586 1873 2031 1605 1884 2032 1612 1898 2016 1594 1880 2027 1589 1875 2022 1607 1887 2005 1606 1885 2003 1588 1874 2021 1590 1876 2023 1608 1889 2007 1607 1887 2005 1589 1875 2022 1591 1877 2024 1609 1891 2009 1608 1889 2007 1590 1876 2023 1610 1894 2012 1609 1891 2009 1591 1877 2024 1592 1878 2025 1611 1896 2014 1610 1894 2012 1592 1878 2025 1593 1879 2026 1612 1898 2016 1611 1896 2014 1593 1879 2026 1594 1880 2027 1620 1899 2033 1324 1900 2034 1449 1901 2035 1613 1902 2036 1322 1903 2039 1374 1904 2040 1372 1905 2047 1617 1906 2046 1367 1907 2037 1619 1908 2038 1615 1909 2041 1369 1910 2042 1371 1911 2043 1369 1910 2042 1615 1909 2041 1616 1912 2048 1370 1913 2044 1620 1899 2033 1613 1902 2036 1618 1914 2045 1619 1908 2038 1367 1907 2037 1370 1913 2044 1618 1914 2045 1371 1911 2043 1616 1912 2048 1614 1915 2049 1368 1916 2050 1372 1905 2047 1368 1916 2050 1614 1915 2049 1617 1906 2046 1332 1551 1659 1355 1577 1678 1351 1587 1693 1334 1552 1660 1355 1577 1678 1356 1576 1684 1360 1588 1694 1351 1587 1693 1495 1738 1860 1622 1780 1909 1534 1781 1910 1535 1808 1934 1500 1735 1857 1496 1742 1863 1623 1777 1907 1622 1780 1909 1495 1738 1860 1496 1742 1863 1501 1745 1867 1624 1783 1914 1623 1777 1907 1497 1746 1868 1624 1783 1913 1501 1745 1869 1527 1726 1847 1510 1729 2051 1528 1764 1924 1403 1650 1746 1383 1600 1706 1402 1632 1730 1399 1654 2052 1393 1639 1749 1398 1651 1747 1404 1657 1755 1627 1917 2053 1633 1918 2054 1636 1919 2055 1628 1920 2056 1633 1918 2054 1627 1917 2053 1626 1921 2057 1635 1922 2058 1638 1923 2059 1637 1924 2060 1625 1925 2061 1631 1926 2062 1632 1927 2063 1629 1928 2064 1628 1920 2056 1636 1919 2055 1634 1929 2065 1630 1930 2066 1629 1928 2064 1632 1927 2063 1635 1922 2058 1626 1921 2057 1310 1563 1671 1311 1562 1670 1625 1931 2061 1637 1932 2060 1894 1933 2067 1631 1926 2062 1630 1930 2066 1634 1929 2065 1638 1923 2059 1676 1934 2068 1643 1935 2069 1649 1936 2070 1679 1937 2111 1643 1935 2069 1650 1938 2071 1657 1939 2076 1649 1936 2070 1649 1936 2070 1657 1939 2076 1639 1940 2074 1654 1941 2075 1716 1942 2077 1717 1943 2153 1655 1944 2073 1656 1945 2078 1639 1940 2074 1707 1946 2086 1705 1947 2079 1654 1941 2075 1707 1946 2086 1646 1948 2088 1644 1949 2080 1705 1947 2079 1645 1950 2083 1319 1586 1692 1314 1585 1691 1708 1951 2101 1651 1952 2084 1312 1590 1679 1315 1589 1695 1660 1953 2085 1707 1946 2086 1653 1954 2089 1640 1955 2087 1646 1948 2088 1647 1956 2090 1644 1949 2080 1646 1948 2088 1641 1957 2091 1677 1958 2092 1678 1959 2093 1665 1960 2094 1664 1961 2095 1641 1957 2091 1646 1948 2088 1640 1955 2087 1642 1962 2096 1681 1963 2098 1709 1964 2099 1696 1965 2100 1708 1951 2101 1314 1585 1691 1318 1605 2102 1652 1966 2103 1653 1954 2089 1707 1946 2086 1639 1940 2074 1659 1967 2104 1633 1918 2054 1655 1944 2073 1658 1968 2072 1636 1919 2055 1643 1935 2069 1634 1929 2065 1632 1927 2063 1650 1938 2071 1651 1952 2084 1635 1922 2058 1311 1562 1670 1312 1590 1679 1632 1927 2063 1636 1919 2055 1658 1968 2072 1650 1938 2071 1645 1950 2083 1708 1951 2101 1653 1954 2089 1659 1967 2104 1660 1953 2085 1315 1589 1695 1319 1586 1692 1645 1950 2083 1656 1945 2078 1660 1953 2085 1645 1950 2083 1659 1967 2104 1681 1963 2098 1641 1957 2091 1642 1962 2096 1709 1964 2099 1647 1956 2090 1641 1957 2091 1681 1963 2098 1683 1969 2097 1667 1970 2107 1670 1971 2108 1661 1972 2109 1662 1973 2110 1676 1934 2068 1661 1974 2109 1637 1924 2060 1638 1923 2059 1680 1975 2112 1679 1937 2111 1649 1936 2070 1654 1941 2075 1663 1976 2082 1664 1977 2095 1668 1978 2113 1671 1979 2117 1706 1980 2081 1680 1975 2112 1654 1941 2075 1705 1947 2079 1665 1981 2094 1672 1982 2114 1668 1978 2113 1664 1977 2095 1667 1970 2107 1662 1973 2110 1666 1983 2115 1669 1984 2116 1669 1984 2116 1666 1983 2115 1663 1976 2082 1671 1979 2117 1894 1933 2067 1637 1932 2060 1661 1972 2109 1670 1971 2108 1674 1985 2118 1323 1631 1729 1322 1630 1728 1674 1985 2118 1673 1986 2119 1702 1987 2120 1323 1631 1729 1674 1988 2118 1672 1982 2114 1665 1981 2094 1679 1937 2111 1662 1989 2110 1661 1974 2109 1676 1934 2068 1638 1923 2059 1634 1929 2065 1643 1935 2069 1676 1934 2068 1644 1949 2080 1647 1956 2090 1678 1959 2093 1677 1958 2092 1706 1980 2081 1663 1990 2082 1666 1991 2115 1680 1975 2112 1680 1975 2112 1666 1991 2115 1662 1989 2110 1679 1937 2111 1678 1959 2093 1673 1986 2119 1674 1985 2118 1665 1960 2094 1694 1992 2121 1693 1993 2122 1684 1994 2123 1685 1995 2124 1695 1996 2125 1694 1992 2121 1685 1995 2124 1686 1997 2126 1682 1998 2127 1695 1996 2125 1686 1997 2126 1687 1999 2128 1687 1999 2128 1711 2000 2129 1682 1998 2127 1687 1999 2128 1688 2001 2130 1696 1965 2100 1711 2000 2129 1681 1963 2098 1696 1965 2100 1688 2001 2130 1689 2002 2131 1690 2003 2132 1683 1969 2097 1681 1963 2098 1689 2002 2131 1697 2004 2133 1683 1969 2097 1690 2003 2132 1691 2005 2134 1697 2004 2133 1703 2006 2135 1683 1969 2097 1698 2007 2136 1697 2004 2133 1691 2005 2134 1692 2008 2137 1693 1993 2138 1698 2007 2136 1692 2008 2137 1684 1994 2139 1700 2009 2140 1699 2010 2141 1693 1993 2122 1694 1992 2121 1701 2011 2142 1700 2009 2140 1694 1992 2121 1695 1996 2125 1695 1996 2125 1682 1998 2127 1701 2011 2142 1703 2006 2135 1316 1656 1754 1702 1987 2120 1704 2012 2143 1703 2006 2135 1697 2004 2133 1698 2007 2136 1320 1658 1756 1321 1659 1757 1699 2010 2141 1700 2009 2140 1700 2009 2140 1701 2011 2142 1320 1658 1756 1702 1987 2120 1316 1656 1754 1323 1631 1758 1317 1660 1759 1316 1656 1761 1703 2006 2135 1704 2012 2144 1321 1659 1762 1317 1660 1764 1704 2012 2143 1699 2010 2145 1683 1969 2097 1702 1987 2120 1673 1986 2119 1677 1958 2092 1706 1980 2081 1705 1947 2079 1644 1949 2080 1663 1990 2082 1706 1980 2081 1677 1958 2092 1664 1961 2095 1653 1954 2089 1708 1951 2101 1652 1966 2103 1640 1955 2087 1710 2013 2105 1652 1966 2103 1648 2014 2106 1710 2013 2105 1642 1962 2096 1640 1955 2087 1652 1966 2103 1711 2000 2129 1712 2015 2146 1675 2016 2147 1682 1998 2127 1709 1964 2099 1642 1962 2096 1710 2013 2105 1712 2015 2146 1675 2016 2147 1712 2015 2146 1710 2013 2105 1648 2014 2106 1696 1965 2100 1709 1964 2099 1712 2015 2146 1711 2000 2129 1313 1661 2148 1648 2014 2106 1652 1966 2103 1318 1605 2102 1714 2017 2149 1650 1938 2071 1658 1968 2072 1713 2018 2150 1715 2019 2151 1657 1939 2076 1650 1938 2071 1714 2017 2149 1657 1939 2076 1715 2019 2151 1718 2020 2152 1659 1967 2104 1639 1940 2074 1718 2020 2152 1658 1968 2072 1655 1944 2073 1717 1943 2153 1713 2018 2150 1656 1945 2078 1659 1967 2104 1718 2020 2152 1716 1942 2077 1720 2021 2154 1745 2022 2158 1744 2023 2155 1737 2024 2156 1720 2021 2154 1721 2025 2159 1746 2026 2160 1745 2022 2161 1721 2025 2162 1722 2027 2163 1747 2028 2164 1746 2026 2165 1727 2029 2166 1747 2028 2164 1748 2030 2168 1728 2031 2167 1730 2032 2173 1714 2017 2180 1713 2018 2181 1729 2033 2172 1713 2018 2181 1717 1943 2182 1733 2034 2179 1729 2033 2172 1736 2035 2174 1715 2019 2183 1714 2017 2180 1730 2032 2173 1718 2020 2184 1715 2019 2183 1736 2035 2174 1731 2036 2177 1717 1943 2182 1716 1942 2185 1732 2037 2178 1733 2034 2179 1737 2024 2156 1744 2023 2155 1749 2038 2169 1719 2039 2171 1716 1942 2185 1718 2020 2186 1731 2036 2187 1732 2037 2178 1729 2033 2172 1725 2040 2170 1735 2041 2189 1730 2032 2173 1733 2034 2179 1728 2031 2167 1725 2040 2170 1729 2033 2172 1736 2035 2174 1724 2042 2157 1726 2043 2190 1734 2044 2175 1731 2036 2176 1734 2044 2188 1726 2043 2191 1727 2029 2166 1732 2037 2178 1731 2036 2187 1732 2037 2178 1727 2029 2166 1728 2031 2167 1733 2034 2179 1730 2032 2173 1735 2041 2189 1724 2042 2157 1736 2035 2174 1723 2045 2200 1739 2046 2192 1738 2047 2193 1719 2039 2171 1719 2039 2171 1738 2047 2193 1743 2048 2194 1737 2024 2156 1737 2024 2156 1743 2048 2194 1742 2049 2195 1720 2021 2154 1720 2021 2154 1742 2049 2195 1741 2050 2196 1721 2025 2197 1721 2025 2162 1741 2050 2198 1740 2051 2199 1722 2027 2163 1722 2027 2163 1740 2051 2199 1739 2046 2192 1723 2045 2200 1745 2022 2158 1724 2042 2157 1735 2041 2189 1744 2023 2155 1744 2023 2155 1735 2041 2189 1725 2040 2170 1749 2038 2169 1726 2043 2201 1724 2042 2157 1745 2022 2158 1746 2026 2202 1746 2026 2165 1747 2028 2164 1727 2029 2166 1726 2043 2191 1747 2028 2164 1722 2027 2163 1723 2045 2200 1748 2030 2168 1725 2040 2170 1728 2031 2167 1748 2030 2168 1723 2045 2200 1719 2039 2171 1749 2038 2169 1469 1701 1824 1468 1704 1827 1772 2052 2205 1769 2053 2206 1769 2053 2206 1772 2052 2205 1771 2054 2207 1770 2055 2208 1767 2056 2209 1769 2057 2206 1770 2058 2208 1648 2059 2210 1648 2060 2210 1770 2055 2208 1771 2054 2207 1766 2061 2203 1895 2062 2204 1766 2063 2203 1771 2064 2207 1768 2065 2211 1768 2065 2211 1771 2064 2207 1772 2066 2205 1895 2062 2204 1774 2067 2212 1773 2068 2213 1766 2063 2203 1766 2061 2203 1773 2069 2213 1675 2070 2214 1648 2060 2210 1675 2070 2214 1773 2069 2213 1682 2071 2215 1701 2011 2216 1774 2067 2212 1470 1716 1833 1320 1658 1839 1682 1998 2215 1773 2068 2213 1774 2067 2212 1701 2011 2216 1767 2056 2209 1648 2059 2217 1313 1722 2218 1467 1721 2219 1767 2056 2209 1467 1721 2219 1469 1723 1824 1769 2057 2206 1772 2066 2205 1468 1725 1827 1480 1724 1843 1768 2065 2211 1481 1717 1844 1895 2062 2204 1768 2065 2211 1480 1724 1843 1895 2062 2204 1481 1717 1844 1470 1716 1833 1774 2067 2212 1780 2072 2224 1792 2073 2225 1784 2074 2226 1791 2075 2227 1779 2076 2228 1793 2077 2229 1784 2074 2226 1792 2073 2225 1781 2078 2232 1776 2079 2233 1795 2080 2234 1794 2081 2235 1482 1739 1861 1795 2080 2234 1785 2082 2236 1493 1740 1864 1776 2079 2233 1777 2083 2237 1785 2082 2236 1795 2080 2234 1493 1740 1864 1785 2082 2236 1786 2084 2238 1492 1743 1865 1777 2083 2237 1782 2085 2239 1786 2084 2238 1785 2082 2236 1778 2086 2240 1796 2087 2241 1786 2084 2242 1782 2085 2243 1491 1748 1872 1492 1743 1873 1786 2084 2242 1796 2087 2241 1489 1749 1874 1490 1752 1877 1787 2088 2244 1797 2089 2245 1491 1748 1872 1796 2087 2241 1787 2088 2244 1490 1752 1877 1778 2086 2240 1783 2090 2246 1787 2088 2244 1796 2087 2241 1779 2076 2228 1797 2089 2245 1787 2088 2244 1783 2090 2246 1485 1754 1879 1488 1757 1882 1788 2091 2247 1798 2092 2248 1489 1749 1874 1797 2089 2245 1788 2091 2247 1488 1757 1882 1779 2076 2228 1792 2073 2225 1788 2091 2247 1797 2089 2245 1780 2072 2224 1798 2092 2248 1788 2091 2247 1792 2073 2225 1805 2093 2250 1629 1928 2251 1630 1930 2252 1804 2094 2253 1775 2095 2249 1800 2096 2254 1626 1921 2255 1627 1917 2256 1487 1762 1891 1310 1563 1892 1626 1921 2255 1800 2096 2254 1780 2072 2224 1791 2075 2227 1809 2097 2257 1810 2098 2258 1485 1754 1879 1798 2092 2248 1811 2099 2259 1484 1765 1895 1780 2072 2224 1810 2098 2258 1811 2099 2259 1798 2092 2248 1487 1762 1891 1800 2096 2254 1789 2100 2260 1483 1767 1897 1775 2095 2249 1801 2101 2261 1789 2100 2260 1800 2096 2254 1781 2078 2232 1794 2081 2235 1789 2100 2260 1801 2101 2261 1486 1770 1900 1483 1767 1897 1789 2100 2260 1794 2081 2235 1802 2102 2262 1814 2103 2263 1812 2104 2264 1807 2105 2222 1775 2095 2249 1627 1917 2256 1628 1920 2265 1799 2106 2220 1805 2093 2250 1799 2106 2220 1628 1920 2265 1629 1928 2251 1819 2107 2266 1799 2106 2220 1806 2108 2221 1820 2109 2267 1897 2110 2268 1896 2111 2269 1813 2112 2270 1803 2113 2272 1896 2111 2269 1815 2114 2271 1813 2112 2270 1779 2076 2228 1783 2090 2246 1790 2115 2273 1793 2077 2229 1778 2086 2240 1898 2116 2274 1790 2115 2273 1783 2090 2246 1897 2110 2268 1803 2113 2272 1790 2115 2275 1898 2116 2276 1486 1770 1900 1794 2081 2235 1795 2080 2234 1482 1739 1861 1631 1926 2277 1804 2094 2253 1630 1930 2252 1802 2102 2262 1807 2105 2222 1784 2074 2231 1793 2077 2230 1790 2115 2275 1803 2113 2272 1802 2102 2262 1793 2077 2230 1817 2117 2278 1801 2101 2261 1775 2095 2249 1818 2118 2279 1805 2119 2250 1804 2120 2253 1756 2121 2280 1752 2122 2281 1806 2123 2221 1805 2119 2250 1752 2122 2281 1758 2124 2282 1808 2125 2223 1807 2126 2222 1755 2127 2283 1750 2128 2284 1809 2129 2285 1808 2125 2223 1750 2128 2284 1753 2130 2286 1810 2131 2258 1809 2129 2257 1753 2130 2287 1751 2132 2288 1811 2133 2259 1810 2131 2258 1751 2132 2288 1754 2134 2289 1484 1802 1895 1811 2133 2259 1754 2134 2289 1759 2135 2290 1450 1803 1929 1631 1926 2277 1625 1925 2291 1757 2136 2292 1804 2120 2253 1804 2120 2253 1757 2136 2292 1756 2121 2280 1755 2127 2283 1807 2126 2222 1812 2137 2264 1760 2138 2293 1799 2106 2220 1805 2093 2250 1806 2108 2221 1802 2102 2262 1803 2113 2272 1813 2112 2270 1814 2103 2263 1816 2139 2294 1781 2078 2232 1801 2101 2261 1817 2117 2278 1818 2118 2279 1775 2095 2249 1799 2106 2220 1819 2107 2266 1806 2123 2221 1758 2124 2282 1761 2140 2295 1820 2141 2267 1815 2142 2271 1816 2143 2294 1824 2144 2296 1823 2145 2297 1830 2146 2298 1763 2147 2299 1764 2148 2300 1831 2149 2301 1834 2150 2311 1833 2151 2302 1821 2152 2303 1822 2153 2304 1835 2154 2312 1834 2150 2311 1822 2153 2304 1823 2145 2297 1836 2155 2313 1835 2154 2312 1823 2145 2297 1824 2144 2296 1837 2156 2314 1836 2155 2313 1824 2144 2296 1825 2157 2305 1838 2158 2315 1837 2156 2314 1825 2157 2305 1826 2159 2306 1839 2160 2316 1838 2158 2315 1826 2159 2306 1827 2161 2307 1840 2162 2317 1839 2160 2316 1827 2161 2307 1828 2163 2308 1841 2164 2318 1840 2162 2317 1828 2163 2308 1829 2165 2309 1842 2166 2319 1841 2164 2318 1829 2165 2309 1830 2146 2298 1843 2167 2320 1842 2166 2319 1830 2146 2298 1831 2149 2301 1844 2168 2321 1843 2167 2320 1831 2149 2301 1832 2169 2310 1833 2151 2302 1844 2168 2321 1832 2169 2310 1821 2152 2303 1846 2170 2322 1845 2171 2323 1833 2151 2302 1834 2150 2311 1847 2172 2324 1846 2170 2322 1834 2150 2311 1835 2154 2312 1848 2173 2325 1847 2172 2324 1835 2154 2312 1836 2155 2313 1849 2174 2326 1848 2173 2325 1836 2155 2313 1837 2156 2314 1850 2175 2327 1849 2174 2326 1837 2156 2314 1838 2158 2315 1851 2176 2328 1850 2175 2327 1838 2158 2315 1839 2160 2316 1852 2177 2329 1851 2176 2328 1839 2160 2316 1840 2162 2317 1853 2178 2330 1852 2177 2329 1840 2162 2317 1841 2164 2318 1854 2179 2331 1853 2178 2330 1841 2164 2318 1842 2166 2319 1855 2180 2332 1854 2179 2331 1842 2166 2319 1843 2167 2320 1856 2181 2333 1855 2180 2332 1843 2167 2320 1844 2168 2321 1845 2171 2323 1856 2181 2333 1844 2168 2321 1833 2151 2302 1856 2181 2333 1845 2171 2323 1857 2182 2334 1855 2180 2332 1848 2173 2325 1849 2174 2326 1857 2182 2334 1847 2172 2324 1850 2175 2327 1851 2176 2328 1857 2182 2334 1849 2174 2326 1852 2177 2329 1853 2178 2330 1857 2182 2334 1851 2176 2328 1854 2179 2331 1855 2180 2332 1857 2182 2334 1853 2178 2330 1822 2153 2304 1813 2183 2270 1815 2142 2271 1823 2145 2297 1821 2152 2303 1814 2184 2263 1813 2183 2270 1822 2153 2304 1825 2157 2305 1817 2185 2278 1818 2186 2279 1826 2159 2306 1827 2161 2307 1826 2159 2306 1818 2186 2279 1819 2187 2266 1830 2146 2298 1829 2165 2309 1765 2188 2335 1763 2147 2299 1821 2152 2303 1832 2169 2310 1812 2189 2264 1814 2184 2263 1831 2149 2301 1764 2148 2300 1760 2190 2293 1812 2189 2264 1832 2169 2310 1825 2157 2305 1824 2144 2296 1816 2143 2294 1817 2185 2278 1820 2191 2267 1761 2192 2295 1762 2193 2336 1828 2163 2308 1827 2161 2307 1819 2187 2266 1762 2193 2336 1765 2188 2335 1829 2165 2309 1828 2163 2308 1685 1995 2337 1684 1994 2338 1876 2194 2339 1877 2195 2340 1686 1997 2341 1685 1995 2337 1877 2195 2340 1878 2196 2342 1687 1999 2343 1686 1997 2341 1878 2196 2342 1879 2197 2344 1688 2001 2345 1687 1999 2343 1879 2197 2344 1880 2198 2346 1689 2002 2347 1688 2001 2345 1880 2198 2346 1881 2199 2348 1690 2003 2349 1689 2002 2347 1881 2199 2348 1882 2200 2350 1691 2005 2351 1690 2003 2349 1882 2200 2350 1883 2201 2352 1692 2008 2353 1691 2005 2351 1883 2201 2352 1884 2202 2354 1684 1994 2355 1692 2008 2353 1884 2202 2354 1876 2194 2356 1885 2203 2358 1886 2204 2359 1858 2205 2360 1859 2206 2361 1859 2206 2362 1860 2207 2363 1887 2208 2364 1885 2203 2358 1860 2207 2363 1861 2209 2365 1888 2210 2366 1887 2208 2364 1861 2209 2365 1862 2211 2367 1889 2212 2368 1888 2210 2366 1862 2211 2367 1863 2213 2370 1890 2214 2369 1889 2212 2368 1864 2215 2371 1891 2216 2372 1890 2214 2369 1863 2213 2370 1865 2217 2373 1892 2218 2374 1891 2216 2372 1864 2215 2371 1866 2219 2375 1893 2220 2376 1892 2218 2374 1865 2217 2373 1866 2219 2375 1858 2205 2377 1886 2204 2378 1893 2220 2376 1876 2194 2339 1867 2221 2379 1868 2222 2380 1877 2195 2340 1877 2195 2340 1868 2222 2380 1869 2223 2381 1878 2196 2342 1878 2196 2342 1869 2223 2381 1870 2224 2382 1879 2197 2344 1879 2197 2344 1870 2224 2382 1871 2225 2383 1880 2198 2346 1880 2198 2346 1871 2225 2383 1872 2226 2384 1881 2199 2348 1881 2199 2348 1872 2226 2384 1873 2227 2385 1882 2200 2350 1882 2200 2350 1873 2227 2385 1874 2228 2386 1883 2201 2352 1883 2201 2352 1874 2228 2386 1875 2229 2387 1884 2202 2354 1884 2202 2354 1875 2229 2387 1867 2221 2388 1876 2194 2357 1868 2222 2380 1867 2221 2379 1886 2204 2389 1885 2203 2390 1869 2223 2381 1868 2222 2380 1885 2203 2358 1887 2208 2364 1867 2221 2391 1875 2229 2387 1893 2220 2376 1886 2204 2392 1870 2224 2382 1869 2223 2381 1887 2208 2364 1888 2210 2366 1871 2225 2383 1870 2224 2382 1888 2210 2366 1889 2212 2368 1872 2226 2384 1871 2225 2383 1889 2212 2368 1890 2214 2369 1891 2216 2372 1873 2227 2385 1872 2226 2384 1890 2214 2369 1892 2218 2374 1874 2228 2386 1873 2227 2385 1891 2216 2372 1893 2220 2376 1875 2229 2387 1874 2228 2386 1892 2218 2374 1894 2230 2393 1613 1902 2036 1449 1901 2035 1625 2231 2394 1667 2232 2395 1669 2233 2397 1615 1909 2041 1619 1908 2038 1671 2234 2398 1616 1912 2048 1615 1909 2041 1669 2233 2397 1670 2235 2399 1618 1914 2045 1613 1902 2036 1894 2230 2393 1322 1903 2039 1617 1906 2046 1672 2236 2400 1674 2237 2396 1619 1908 2038 1618 1914 2045 1670 2235 2399 1667 2232 2395 1671 2234 2398 1668 2238 2401 1614 1915 2049 1616 1912 2048 1672 2236 2400 1617 1906 2046 1614 1915 2049 1668 2238 2401 1633 1918 2054 1635 1922 2058 1651 1952 2084 1655 1944 2073 1655 1944 2073 1651 1952 2084 1660 1953 2085 1656 1945 2078 1776 2079 2233 1781 2078 2232 1816 2139 2294 1815 2114 2271 1896 2111 2269 1777 2083 2237 1776 2079 2233 1896 2111 2269 1897 2110 2268 1777 2083 2237 1897 2110 2268 1898 2116 2276 1782 2085 2239 1778 2086 2240 1782 2085 2243 1898 2116 2274 1808 2239 2223 1809 2097 2285 1791 2075 2402 1808 2239 2223 1791 2075 2402 1784 2074 2231 1807 2105 2222 1647 1956 2090 1683 1969 2097 1673 1986 2119 1678 1959 2093 1703 2006 2135 1702 1987 2120 1683 1969 2097 1699 2010 2403 1704 2012 2143 1698 2007 2136 1693 1993 2138 1857 2182 2334 1845 2171 2323 1846 2170 2322 1847 2172 2324 1357 1571 1682 1338 1574 1681 1417 1665 1771 1657 1939 2076 1718 2020 2152 1639 1940 2074

+
+ + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 + + root l_hip l_knee l_ankle l_null_toe pelvis spine l_humerus l_ulna l_wrist r_humerus r_ulna r_wrist neck null_head r_hip r_knee r_ankle r_null_toe + + + + + + + + 1 0 0 0 0 1 0 -4.36368 0 0 1 1.02007 0 0 0 1 0.140232 -0.988632 0.054244 4.33713 -0.853634 -0.148476 -0.499264 0.700237 0.501642 0.023708 -0.86475 -0.91826 0 0 0 1 0.173932 -0.979586 -0.100789 2.36834 0.198879 0.135183 -0.970656 -1.04591 0.964466 0.148783 0.218332 -0.965323 0 0 0 1 0.214919 -0.276401 0.936703 0.653349 -0.131025 0.942285 0.30811 -0.273352 -0.967803 -0.18895 0.1663 1.25641 0 0 0 1 0.999999 8.5e-005 0.001551 -1.31935 -8.5e-005 1 0.00022 -0.177485 -0.001551 -0.00022 0.999999 -0.959373 0 0 0 1 0 0.999696 0.024667 -4.71388 0 -0.024667 0.999696 0.991619 1 0 0 0 0 0 0 1 0 0.96406 -0.265686 -6.10216 0 -0.265686 -0.96406 0.808863 -1 0 0 0 0 0 0 1 0.997873 -0.065181 0 -0.084154 0.065166 0.997646 -0.021336 -7.06238 0.001391 0.021291 0.999772 0.794221 0 0 0 1 0.998075 0.003788 0.061906 -2.32847 -0.049401 -0.554947 0.830418 4.70928 0.0375 -0.831877 -0.553691 5.24064 0 0 0 1 0.9982 -0.032282 0.050539 -3.51964 -0.05994 -0.563411 0.824 4.7877 0.001874 -0.825546 -0.564332 5.27132 0 0 0 1 0.999916 0.012878 0.001117 0.453655 -0.003089 0.321908 -0.946766 -3.15698 -0.012552 0.946684 0.32192 -6.3516 0 0 0 1 0.998075 -0.003788 -0.061906 2.32847 -0.049401 0.554947 -0.830418 -4.70928 0.0375 0.831877 0.553691 -5.24064 0 0 0 1 0.9982 0.032282 -0.050539 3.51963 -0.05994 0.563411 -0.824 -4.7877 0.001874 0.825546 0.564332 -5.27132 0 0 0 1 0 0.945854 0.324592 -6.93478 0 -0.324592 0.945854 3.42376 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 -9.86778 0 0 1 0.233394 0 0 0 1 0.163308 0.985084 -0.054229 -4.31107 -0.007618 -0.053706 -0.998528 -0.445118 -0.986546 0.163481 -0.001266 -1.16652 0 0 0 1 0.196977 0.975217 0.100761 -2.3387 0.016105 0.099542 -0.994903 -0.810486 -0.980276 0.197595 0.003902 -1.26802 0 0 0 1 0.220196 0.271489 -0.936914 -0.629441 0.04299 -0.962256 -0.268729 0.514854 -0.974508 0.018895 -0.223556 -1.27628 0 0 0 1 0.999719 -0.023532 -0.002779 1.42188 -0.023533 -0.999723 -0.000409 0.165578 -0.002769 0.000474 -0.999996 0.9577 0 0 0 1 + + + + + + + + 1 0.078282 0.921718 0.921718 0.078282 0.000488 0.999512 0.999512 0.000488 0.00067 0.99933 0.99933 0.00067 0.000609 0.999391 0.999391 0.000609 0.999338 0.000662 0.982633 0.017364 0.981552 0.017491 0.000957 0.984479 0.014703 0.000818 0.988609 0.010771 0.00062 0.992129 0.007871 0.000421 0.999506 0.00083 0.000125 0.999045 0.999759 0.000926 0.000617 0.99744 0.001018 0.000261 0.999665 0.99985 0.000261 0.999665 0.020686 0.006916 0.972397 0.000796 0.000259 0.998945 0.000286 0.000217 0.999162 0.000335 0.002743 0.002093 0.991234 0.003931 0.00072 0.000117 0.999163 0.000273 0.00017 0.999336 0.000221 0.000234 0.000149 0.999393 0.000225 0.001317 0.001011 0.997672 0.001012 0.000167 0.998821 0.000168 0.00011 0.99957 0.000151 0.001188 0.000222 0.99859 0.99985 0.000455 0.000365 0.998606 0.000574 0.000261 0.999665 0.000113 0.999856 0.000267 0.000202 0.999229 0.000302 0.000767 0.000584 0.997656 0.000993 0.013933 0.004722 0.981345 0.645746 0.352595 0.001648 0.642772 0.355309 0.001899 0.767007 0.230761 0.002205 0.891522 0.106087 0.002371 0.959749 0.037973 0.00227 0.981212 0.016124 0.002661 0.59783 0.401603 0.000558 0.589766 0.409288 0.000926 0.702817 0.295868 0.001284 0.826712 0.171737 0.001522 0.910001 0.088599 0.001384 0.948082 0.049314 0.002598 0.496086 0.500843 0.000741 0.002264 0.487263 0.510034 0.002101 0.000185 0.000416 0.575535 0.423868 0.00056 0.666779 0.320755 0.011834 0.000631 0.747732 0.242146 0.009517 0.000605 0.810316 0.1825 0.00446 0.002724 0.452603 0.546803 0.000544 0.409274 0.588736 0.001731 0.000151 0.000107 0.473897 0.522666 0.003077 0.000292 0.535305 0.464578 0.570608 0.416498 0.012725 0.000169 0.618019 0.371672 0.006656 0.003654 0.370761 0.626936 0.000349 0.001924 0.388691 0.609899 0.001206 0.000104 0.0001 0.455643 0.541744 0.002317 0.000217 0.495765 0.501591 0.002304 0.000239 0.000101 0.500238 0.49955 0.000167 0.505046 0.485869 0.005992 0.003093 0.340789 0.658936 0.000252 0.369562 0.629246 0.00084 0.00028 0.449998 0.547668 0.001738 0.000161 0.000435 0.495715 0.501832 0.001744 0.000179 0.00053 0.499195 0.499195 0.001007 0.00011 0.000493 0.498575 0.498575 0.000374 0.002434 0.304841 0.693752 0.000139 0.001256 0.350579 0.648302 0.000659 0.000404 0.443066 0.55469 0.001452 0.000133 0.000658 0.494906 0.50268 0.001474 0.00015 0.00079 0.498565 0.498565 0.000829 0.00195 0.498904 0.498904 0.000289 0.001871 0.29285 0.705941 0.000134 0.001063 0.340765 0.657422 0.000646 0.001112 0.437172 0.559942 0.001449 0.000132 0.001305 0.493021 0.503811 0.001484 0.00015 0.001533 0.498705 0.498705 0.000836 0.001663 0.49903 0.49903 0.00029 0.001618 0.308893 0.689721 0.00019 0.00118 0.344753 0.653122 0.000804 0.001253 0.434789 0.56187 0.001735 0.000157 0.001449 0.490887 0.505459 0.001782 0.00018 0.001691 0.49851 0.49851 0.001029 0.000111 0.001839 0.498888 0.498888 0.000379 0.001804 0.336858 0.661196 0.000324 0.001594 0.357287 0.639696 0.001154 0.001766 0.435349 0.560108 0.002328 0.000212 0.002004 0.488493 0.506593 0.002382 0.000241 0.00229 0.497981 0.497981 0.001425 0.000155 0.002457 0.49848 0.49848 0.000571 0.002406 0.362727 0.635291 0.000548 0.001387 0.371885 0.624564 0.001698 0.000144 0.001708 0.437831 0.55652 0.00321 0.000295 0.002145 0.486682 0.50726 0.003263 0.000333 0.002461 0.497213 0.497213 0.002017 0.000221 0.003336 0.497894 0.497894 0.000873 0.003244 0.381901 0.614691 0.000845 0.002489 0.384758 0.610886 0.002379 0.000204 0.001773 0.441065 0.552003 0.004268 0.000397 0.002267 0.49034 0.502309 0.004268 0.000441 0.002642 0.518547 0.478554 0.002828 0.533773 0.451269 0.010907 0.004051 0.432937 0.563255 0.001083 0.00263 0.42504 0.57008 0.002907 0.000252 0.00172 0.493644 0.499047 0.004822 0.000454 0.002033 0.575016 0.422611 0.002303 0.736712 0.263222 0.674443 0.320927 0.004592 0.525921 0.471488 0.002578 0.518117 0.48019 0.001667 0.614405 0.383693 0.001859 0.726162 0.271765 0.002023 0.807365 0.190308 0.002288 0.850218 0.146378 0.003384 0.614852 0.383566 0.001571 0.611099 0.387163 0.001716 0.73005 0.268011 0.001907 0.855415 0.142507 0.002051 0.930735 0.067049 0.002202 0.958177 0.038855 0.002963 0.999338 0.000662 0.982633 0.017364 0.981552 0.017491 0.000957 0.984479 0.014703 0.000818 0.988609 0.010771 0.00062 0.992129 0.007871 0.000421 0.999506 0.00083 0.000125 0.999045 0.999759 0.000926 0.000617 0.99744 0.001018 0.001188 0.000222 0.99859 0.000113 0.999856 0.020686 0.006916 0.972397 0.000796 0.000259 0.998945 0.000286 0.000217 0.999162 0.000335 0.002743 0.002093 0.991234 0.003931 0.00072 0.000117 0.999163 0.99985 0.000455 0.000365 0.998606 0.000574 0.000261 0.999665 0.000273 0.00017 0.999336 0.000221 0.000234 0.000149 0.999393 0.000225 0.001317 0.001011 0.997672 0.001012 0.000167 0.998821 0.000168 0.00011 0.99957 0.000151 0.000261 0.999665 0.000267 0.000202 0.999229 0.000302 0.99985 0.000767 0.000584 0.997656 0.000993 0.000261 0.999665 0.013933 0.004722 0.981345 0.645746 0.352595 0.001648 0.642772 0.355309 0.001899 0.767007 0.230761 0.002205 0.891522 0.106087 0.002371 0.959749 0.037973 0.00227 0.981212 0.016124 0.002661 0.59783 0.401603 0.000558 0.589766 0.409288 0.000926 0.702817 0.295868 0.001284 0.826712 0.171737 0.001522 0.910001 0.088599 0.001384 0.948082 0.049314 0.002598 0.496086 0.500843 0.000741 0.002264 0.487263 0.510034 0.002101 0.000185 0.000416 0.575535 0.423868 0.00056 0.666779 0.011834 0.320755 0.000631 0.747732 0.009517 0.242146 0.000605 0.810316 0.00446 0.1825 0.002724 0.452603 0.546803 0.000544 0.409274 0.588736 0.001731 0.000151 0.000107 0.473897 0.522666 0.003077 0.000292 0.535305 0.464578 0.570608 0.012725 0.416498 0.000169 0.618019 0.006656 0.371672 0.003654 0.370761 0.626936 0.000349 0.001924 0.388691 0.609899 0.001206 0.000104 0.0001 0.455643 0.541744 0.002317 0.000217 0.495765 0.501591 0.002304 0.000239 0.000101 0.500238 0.49955 0.000167 0.505046 0.005992 0.485869 0.003093 0.340789 0.658936 0.000252 0.369562 0.629246 0.00084 0.00028 0.449998 0.547668 0.001738 0.000161 0.000435 0.495715 0.501832 0.001744 0.000179 0.00053 0.499195 0.499195 0.001007 0.00011 0.000493 0.498575 0.498575 0.000374 0.002434 0.304841 0.693752 0.000139 0.001256 0.350579 0.648302 0.000659 0.000404 0.443066 0.55469 0.001452 0.000133 0.000658 0.494906 0.50268 0.001474 0.00015 0.00079 0.498565 0.498565 0.000829 0.00195 0.498904 0.498904 0.000289 0.001871 0.29285 0.705941 0.000134 0.001063 0.340765 0.657422 0.000646 0.001112 0.437172 0.559942 0.001449 0.000132 0.001305 0.493021 0.503811 0.001484 0.00015 0.001533 0.498705 0.498705 0.000836 0.001663 0.49903 0.49903 0.00029 0.001618 0.308893 0.689721 0.00019 0.00118 0.344753 0.653122 0.000804 0.001253 0.434789 0.56187 0.001735 0.000157 0.001449 0.490887 0.505459 0.001782 0.00018 0.001691 0.49851 0.49851 0.001029 0.000111 0.001839 0.498888 0.498888 0.000379 0.001804 0.336858 0.661196 0.000324 0.001594 0.357287 0.639696 0.001154 0.001766 0.435349 0.560108 0.002328 0.000212 0.002004 0.488493 0.506593 0.002382 0.000241 0.00229 0.497981 0.497981 0.001425 0.000155 0.002457 0.49848 0.49848 0.000571 0.002406 0.362727 0.635291 0.000548 0.001387 0.371885 0.624564 0.001698 0.000144 0.001708 0.437831 0.55652 0.00321 0.000295 0.002145 0.486682 0.50726 0.003263 0.000333 0.002461 0.497213 0.497213 0.002017 0.000221 0.003336 0.497894 0.497894 0.000873 0.003244 0.381901 0.614691 0.000845 0.002489 0.384758 0.610886 0.002379 0.000204 0.001773 0.441065 0.552003 0.004268 0.000397 0.002267 0.49034 0.502309 0.004268 0.000441 0.002642 0.518547 0.478554 0.002828 0.533773 0.010907 0.451269 0.004051 0.432937 0.563255 0.001083 0.00263 0.42504 0.57008 0.002907 0.000252 0.00172 0.493644 0.499047 0.004822 0.000454 0.002033 0.575016 0.422611 0.002303 0.736712 0.263222 0.674443 0.320927 0.004592 0.525921 0.471488 0.002578 0.518117 0.48019 0.001667 0.614405 0.383693 0.001859 0.726162 0.271765 0.002023 0.807365 0.190308 0.002288 0.850218 0.146378 0.003384 0.614852 0.383566 0.001571 0.611099 0.387163 0.001716 0.73005 0.268011 0.001907 0.855415 0.142507 0.002051 0.930735 0.067049 0.002202 0.958177 0.038855 0.002963 0.001913 0.000464 0.000797 0.996826 0.001913 0.000797 0.000464 0.996826 0.002226 0.000391 0.000544 0.996839 0.002226 0.000544 0.000391 0.996839 0.002208 0.000591 0.000985 0.996216 0.002208 0.000985 0.000591 0.996216 0.002613 0.000515 0.000704 0.996168 0.002613 0.000704 0.000515 0.996168 0.002215 0.000527 0.000418 0.996841 0.00261 0.000686 0.000551 0.996153 0.002215 0.000418 0.000527 0.996841 0.00261 0.000551 0.000686 0.996153 0.321063 0.050536 0.6284 0.001979 0.000389 0.000444 0.997189 0.001979 0.000444 0.000389 0.997189 0.002931 0.071881 0.925189 0.000707 0.004672 0.994622 0.000408 0.002122 0.997469 0.00031 0.001504 0.998185 0.000825 0.004989 0.994185 0.001905 0.014013 0.984082 0.003544 0.038663 0.957792 0.005521 0.212797 0.781682 0.003933 0.49438 0.501687 0.003678 0.498161 0.498161 0.003625 0.49815 0.498225 0.003776 0.194395 0.801828 0.002753 0.070021 0.927226 0.000605 0.004452 0.994943 0.000301 0.001779 0.997919 0.000227 0.001349 0.998424 0.000734 0.005002 0.994264 0.001666 0.013492 0.984842 0.002979 0.033936 0.963085 0.005102 0.189644 0.805254 0.004121 0.480141 0.515738 0.003802 0.498099 0.498099 0.0039 0.491675 0.504426 0.003723 0.189525 0.806752 0.73661 0.263375 0.000167 0.499917 0.499917 0.000953 0.010261 0.988786 0.000277 0.001497 0.998226 0.000331 0.001922 0.997747 0.000439 0.004834 0.994727 0.000109 0.500721 0.49917 0.499968 0.499968 0.000114 0.000679 0.999207 0.000338 0.999595 0.000318 0.008521 0.991161 0.00017 0.000838 0.998992 0.000638 0.004141 0.995221 0.000989 0.498706 0.500305 0.002187 0.023191 0.974622 0.000157 0.000721 0.999121 0.000464 0.002809 0.996728 0.001343 0.015638 0.983019 0.00049 0.499755 0.499755 0.001394 0.499303 0.499303 0.000248 0.001197 0.998556 0.001365 0.009211 0.989425 0.001783 0.121196 0.877021 0.000717 0.071977 0.927306 0.000925 0.103329 0.895746 0.000522 0.002846 0.996631 0.002719 0.152738 0.844543 0.00097 0.089195 0.909835 0.002348 0.061729 0.935922 0.000894 0.124598 0.874508 0.000782 0.032923 0.966296 0.001385 0.030456 0.968159 0.001272 0.499364 0.499364 0.001659 0.49917 0.49917 0.003326 0.450551 0.546122 0.001433 0.375519 0.623048 0.001578 0.489788 0.508634 0.002837 0.149671 0.847492 0.003866 0.343424 0.652711 0.009804 0.990157 0.000454 0.055529 0.944017 0.476036 0.523891 0.142192 0.857749 0.440751 0.559154 0.000576 0.258185 0.74124 0.001172 0.053724 0.945104 0.000343 0.160255 0.839402 0.000287 0.022303 0.97741 0.000426 0.017007 0.982567 0.000497 0.499752 0.499752 0.000427 0.499787 0.499787 0.00179 0.436026 0.562184 0.000671 0.325905 0.673424 0.000733 0.475073 0.524194 0.001665 0.207956 0.790378 0.001448 0.983159 0.015394 0.007982 0.371476 0.620542 0.003004 0.251802 0.745194 0.000759 0.839297 0.159944 0.00802 0.894916 0.097064 0.005403 0.518522 0.476075 0.004255 0.101704 0.894041 0.00224 0.973481 0.02428 0.001421 0.468047 0.530532 0.001697 0.745765 0.252538 0.136462 0.863504 0.260827 0.738647 0.000525 0.066288 0.933585 0.000128 0.131879 0.867864 0.000257 0.324494 0.675381 0.000124 0.113784 0.886183 0.499968 0.499968 0.001394 0.499303 0.499303 0.004436 0.387221 0.608343 0.003433 0.466085 0.530482 0.009982 0.357821 0.632198 0.014311 0.908354 0.077335 0.121055 0.87869 0.000256 0.209244 0.790673 0.003345 0.066062 0.930593 0.002322 0.984408 0.013271 0.009215 0.523082 0.467703 0.006106 0.719914 0.27398 0.009227 0.935335 0.055437 0.001229 0.889341 0.10943 0.002226 0.085216 0.912558 0.0008 0.237142 0.762058 0.003221 0.982019 0.01476 0.002279 0.872176 0.125545 0.001195 0.559922 0.438883 0.161534 0.838251 0.000215 0.255064 0.744586 0.000349 0.197162 0.802636 0.000202 0.27566 0.724264 0.323638 0.676292 0.37756 0.622305 0.000135 0.000901 0.535845 0.463254 0.001376 0.499312 0.499312 0.001499 0.425496 0.573005 0.001522 0.497701 0.500777 0.338343 0.661615 0.272377 0.727602 0.212496 0.787486 0.071475 0.928518 0.062379 0.937616 0.268952 0.731002 0.195223 0.804762 0.130834 0.869158 0.074172 0.925824 0.006026 0.993974 0.008702 0.991297 0.133547 0.866441 0.158714 0.841267 0.054681 0.945315 0.002931 0.071881 0.925189 0.000707 0.004672 0.994622 0.000408 0.002122 0.997469 0.00031 0.001504 0.998185 0.000825 0.004989 0.994185 0.001905 0.014013 0.984082 0.003544 0.038663 0.957792 0.005521 0.212797 0.781682 0.003933 0.49438 0.501687 0.003678 0.498161 0.498161 0.003625 0.49815 0.498225 0.003776 0.194395 0.801828 0.002753 0.070021 0.927226 0.000605 0.004452 0.994943 0.000301 0.001779 0.997919 0.000227 0.001349 0.998424 0.000734 0.005002 0.994264 0.001666 0.013492 0.984842 0.002979 0.033936 0.963085 0.005102 0.189644 0.805254 0.004121 0.480141 0.515738 0.003802 0.498099 0.498099 0.0039 0.491675 0.504426 0.003723 0.189525 0.806752 0.73661 0.263375 0.000167 0.499917 0.499917 0.000953 0.010261 0.988786 0.000277 0.001497 0.998226 0.000338 0.999595 0.000331 0.001922 0.997747 0.000439 0.004834 0.994727 0.000109 0.500721 0.49917 0.499968 0.499968 0.000114 0.000679 0.999207 0.000318 0.008521 0.991161 0.00017 0.000838 0.998992 0.000638 0.004141 0.995221 0.000989 0.498706 0.500305 0.000464 0.002809 0.996728 0.001343 0.015638 0.983019 0.00049 0.499755 0.499755 0.000248 0.001197 0.998556 0.001365 0.009211 0.989425 0.001783 0.121196 0.877021 0.000717 0.071977 0.927306 0.000925 0.103329 0.895746 0.000157 0.000721 0.999121 0.000522 0.002846 0.996631 0.002187 0.023191 0.974622 0.002719 0.152738 0.844543 0.001394 0.499303 0.499303 0.00097 0.089195 0.909835 0.002348 0.061729 0.935922 0.000894 0.124598 0.874508 0.000782 0.032923 0.966296 0.001385 0.030456 0.968159 0.001272 0.499364 0.499364 0.001659 0.49917 0.49917 0.003326 0.450551 0.546122 0.001433 0.375519 0.623048 0.001578 0.489788 0.508634 0.002837 0.149671 0.847492 0.003866 0.343424 0.652711 0.009804 0.990157 0.000454 0.055529 0.944017 0.476036 0.523891 0.142192 0.857749 0.440751 0.559154 0.000576 0.258185 0.74124 0.001172 0.053724 0.945104 0.000343 0.160255 0.839402 0.000287 0.022303 0.97741 0.000426 0.017007 0.982567 0.000497 0.499752 0.499752 0.000427 0.499787 0.499787 0.00179 0.436026 0.562184 0.000671 0.325905 0.673424 0.000733 0.475073 0.524194 0.001665 0.207956 0.790378 0.001448 0.983159 0.015394 0.007982 0.371476 0.620542 0.003004 0.251802 0.745194 0.000759 0.839297 0.159944 0.00802 0.894916 0.097064 0.005403 0.518522 0.476075 0.004255 0.101704 0.894041 0.00224 0.973481 0.02428 0.001421 0.468047 0.530532 0.001697 0.745765 0.252538 0.136462 0.863504 0.260827 0.738647 0.000525 0.066288 0.933585 0.000128 0.131879 0.867864 0.000257 0.324494 0.675381 0.000124 0.113784 0.886183 0.499968 0.499968 0.001394 0.499303 0.499303 0.004436 0.387221 0.608343 0.003433 0.466085 0.530482 0.009982 0.357821 0.632198 0.014311 0.908354 0.077335 0.121055 0.87869 0.000256 0.209244 0.790673 0.003345 0.066062 0.930593 0.002322 0.984408 0.013271 0.009215 0.523082 0.467703 0.006106 0.719914 0.27398 0.009227 0.935335 0.055437 0.001229 0.889341 0.10943 0.002226 0.085216 0.912558 0.0008 0.237142 0.762058 0.003221 0.982019 0.01476 0.002279 0.872176 0.125545 0.001195 0.559922 0.438883 0.161534 0.838251 0.000215 0.255064 0.744586 0.000349 0.197162 0.802636 0.000202 0.27566 0.724264 0.323638 0.676292 0.37756 0.622305 0.000135 0.000901 0.535845 0.463254 0.001376 0.499312 0.499312 0.001499 0.425496 0.573005 0.001522 0.497701 0.500777 0.338343 0.661615 0.272377 0.727602 0.212496 0.787486 0.071475 0.928518 0.062379 0.937616 0.268952 0.731002 0.195223 0.804762 0.130834 0.869158 0.074172 0.925824 0.006026 0.993974 0.008702 0.991297 0.133547 0.866441 0.158714 0.841267 0.054681 0.945315 0.000356 0.499814 0.499814 0.001008 0.499468 0.499468 0.002602 0.021487 0.487956 0.487956 0.005512 0.037491 0.478499 0.478499 0.004347 0.031847 0.481903 0.481903 0.000515 0.006136 0.496675 0.496675 0.00049 0.005845 0.496832 0.496832 0.00011 0.001664 0.499113 0.499113 0.00051 0.00604 0.496725 0.496725 0.001213 0.011988 0.493399 0.493399 0.001798 0.016276 0.490963 0.490963 0.000719 0.008632 0.495325 0.495325 0.000678 0.0081 0.495611 0.495611 0.002312 0.020477 0.488605 0.488605 0.00172 0.015594 0.491343 0.491343 0.00011 0.001674 0.499108 0.499108 0.001899 0.016811 0.490645 0.490645 0.001202 0.011972 0.493413 0.493413 0.000206 0.003141 0.498326 0.498326 0.001348 0.013697 0.492478 0.492478 0.002312 0.020477 0.488605 0.488605 0.002312 0.020477 0.488605 0.488605 0.000123 0.001871 0.499003 0.499003 0.002107 0.018295 0.489799 0.489799 0.001213 0.011988 0.493399 0.493399 0.001924 0.016935 0.490571 0.490571 0.001611 0.0149 0.491745 0.491745 0.001256 0.012388 0.493178 0.493178 0.00011 0.001664 0.499113 0.499113 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.00051 0.00604 0.496725 0.496725 0.00051 0.00604 0.496725 0.496725 0.001166 0.011705 0.493564 0.493564 0.001181 0.011787 0.493516 0.493516 0.000864 0.009252 0.494942 0.494942 0.000869 0.009242 0.494944 0.494944 0.001745 0.015845 0.491205 0.491205 0.000206 0.003141 0.498326 0.498326 0.000206 0.003141 0.498326 0.498326 0.000139 0.002122 0.498869 0.498869 0.002312 0.020477 0.488605 0.488605 0.001235 0.012353 0.493206 0.493206 0.002312 0.020477 0.488605 0.488605 0.001264 0.012752 0.492992 0.492992 0.006869 0.043501 0.474815 0.474815 0.006869 0.043501 0.474815 0.474815 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.006869 0.043501 0.474815 0.474815 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.002312 0.020477 0.488605 0.488605 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.004347 0.031847 0.481903 0.481903 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.00771 0.046674 0.472808 0.472808 0.005512 0.037491 0.478499 0.478499 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.006932 0.042898 0.475085 0.475085 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.004347 0.031847 0.481903 0.481903 0.006932 0.042898 0.475085 0.475085 0.007666 0.046698 0.472818 0.472818 0.006932 0.042898 0.475085 0.475085 0.007666 0.046698 0.472818 0.472818 0.006932 0.042898 0.475085 0.475085 0.002089 0.018476 0.489718 0.489718 0.004178 0.030011 0.482905 0.482905 0.005562 0.036889 0.478774 0.478774 0.00667 0.041605 0.475863 0.475863 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.007876 0.046639 0.472743 0.472743 0.005562 0.036889 0.478774 0.478774 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.007795 0.04639 0.472907 0.472907 0.007578 0.045385 0.473519 0.473519 0.002602 0.021487 0.487956 0.487956 0.005339 0.035675 0.479493 0.479493 0.006932 0.042898 0.475085 0.475085 0.00667 0.041605 0.475863 0.475863 0.007795 0.04639 0.472907 0.472907 0.007578 0.045385 0.473519 0.473519 0.003202 0.024793 0.486002 0.486002 0.002044 0.017795 0.490081 0.490081 0.002089 0.018476 0.489718 0.489718 0.005512 0.037491 0.478499 0.478499 0.00049 0.005845 0.496832 0.496832 0.001173 0.011653 0.493587 0.493587 0.004347 0.031847 0.481903 0.481903 0.001235 0.012353 0.493206 0.493206 0.001235 0.012353 0.493206 0.493206 0.004347 0.031847 0.481903 0.481903 0.000231 0.010005 0.773563 0.216201 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002136 0.933901 0.063922 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002136 0.933901 0.063922 0.002136 0.933901 0.063922 0.000249 0.986626 0.013121 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002136 0.933901 0.063922 0.000119 0.00597 0.871324 0.122587 0.000594 0.984974 0.014422 0.000119 0.00597 0.871324 0.122587 0.000829 0.919885 0.079268 0.002136 0.933901 0.063922 0.000569 0.933548 0.065871 0.000119 0.00597 0.871324 0.122587 0.001303 0.646718 0.351939 0.001425 0.499248 0.499248 0.000964 0.499496 0.499496 0.000356 0.499814 0.499814 0.001425 0.499248 0.499248 0.000678 0.0081 0.495611 0.495611 0.000678 0.0081 0.495611 0.495611 0.000515 0.006136 0.496675 0.496675 0.000123 0.001871 0.499003 0.499003 0.00049 0.005845 0.496832 0.496832 0.001122 0.011249 0.493815 0.493815 0.001914 0.016868 0.490609 0.490609 0.000158 0.002412 0.498715 0.498715 0.000206 0.003141 0.498326 0.498326 0.000206 0.003141 0.498326 0.498326 0.00049 0.005845 0.496832 0.496832 0.000869 0.009242 0.494944 0.494944 0.001622 0.014929 0.491725 0.491725 0.000622 0.499675 0.499675 0.002312 0.020477 0.488605 0.488605 0.000542 0.006471 0.496493 0.496493 0.000123 0.001871 0.499003 0.499003 0.000678 0.0081 0.495611 0.495611 0.000206 0.003141 0.498326 0.498326 0.001256 0.012388 0.493178 0.493178 0.002312 0.020477 0.488605 0.488605 0.001622 0.014929 0.491725 0.491725 0.00011 0.001674 0.499108 0.499108 0.000515 0.006136 0.496675 0.496675 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.001122 0.011249 0.493815 0.493815 0.001173 0.011653 0.493587 0.493587 0.001425 0.499248 0.499248 0.001425 0.499248 0.499248 0.000206 0.003141 0.498326 0.498326 0.005512 0.037491 0.478499 0.478499 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.006869 0.043501 0.474815 0.474815 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.004347 0.031847 0.481903 0.481903 0.002312 0.020477 0.488605 0.488605 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.001264 0.012752 0.492992 0.492992 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.001264 0.012752 0.492992 0.492992 0.004347 0.031847 0.481903 0.481903 0.004362 0.031131 0.482254 0.482254 0.00667 0.041605 0.475863 0.475863 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.007795 0.04639 0.472907 0.472907 0.003202 0.024793 0.486002 0.486002 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.002107 0.018295 0.489799 0.489799 0.001235 0.012353 0.493206 0.493206 0.002312 0.020477 0.488605 0.488605 0.002312 0.020477 0.488605 0.488605 0.001264 0.012752 0.492992 0.492992 0.001235 0.012353 0.493206 0.493206 0.000542 0.006471 0.496493 0.496493 0.000206 0.003141 0.498326 0.498326 0.001425 0.499248 0.499248 0.001264 0.012752 0.492992 0.492992 0.000678 0.0081 0.495611 0.495611 0.001348 0.013697 0.492478 0.492478 0.000123 0.001871 0.499003 0.499003 0.000542 0.006471 0.496493 0.496493 0.001256 0.012388 0.493178 0.493178 0.000366 0.499807 0.499807 0.001008 0.499468 0.499468 0.001425 0.499248 0.499248 0.000163 0.006655 0.75815 0.235032 0.000124 0.005167 0.782901 0.211808 0.000213 0.011685 0.86896 0.119141 0.000216 0.010393 0.822938 0.166453 0.005395 0.912109 0.082399 0.003822 0.800625 0.195461 0.000231 0.010005 0.773563 0.216201 0.000216 0.010393 0.822938 0.166453 0.002489 0.916526 0.080935 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000231 0.010005 0.773563 0.216201 0.002592 0.800107 0.192349 0.004889 0.000213 0.011685 0.86896 0.119141 0.000265 0.012465 0.803863 0.183407 0.001004 0.957717 0.04126 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.001106 0.865949 0.132227 0.000691 0.000163 0.006655 0.75815 0.235032 0.000183 0.008088 0.795433 0.196296 0.001004 0.957717 0.04126 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000183 0.008088 0.795433 0.196296 0.001106 0.865949 0.132227 0.000691 0.000163 0.006655 0.75815 0.235032 0.001264 0.012752 0.492992 0.492992 0.00012 0.004946 0.776072 0.218861 0.000231 0.010005 0.773563 0.216201 0.002312 0.020477 0.488605 0.488605 0.001348 0.013697 0.492478 0.492478 0.000447 0.518985 0.480551 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.000206 0.003141 0.498326 0.498326 0.000206 0.003141 0.498326 0.498326 0.000678 0.0081 0.495611 0.495611 0.000206 0.003141 0.498326 0.498326 0.000678 0.0081 0.495611 0.495611 0.000119 0.00597 0.871324 0.122587 0.002136 0.933901 0.063922 0.001099 0.980838 0.018046 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002224 0.955291 0.042447 0.004299 0.925881 0.069744 0.000213 0.011685 0.86896 0.119141 0.000171 0.009605 0.885739 0.104484 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.00449 0.84823 0.147182 0.005292 0.925207 0.06941 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002224 0.955291 0.042447 0.004299 0.925881 0.069744 0.000171 0.009605 0.885739 0.104484 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.00449 0.84823 0.147182 0.000119 0.00597 0.871324 0.122587 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000356 0.499814 0.499814 0.001008 0.499468 0.499468 0.002602 0.021487 0.487956 0.487956 0.005512 0.037491 0.478499 0.478499 0.004347 0.031847 0.481903 0.481903 0.000515 0.006136 0.496675 0.496675 0.00049 0.005845 0.496832 0.496832 0.00011 0.001664 0.499113 0.499113 0.00051 0.00604 0.496725 0.496725 0.001213 0.011988 0.493399 0.493399 0.001798 0.016276 0.490963 0.490963 0.000719 0.008632 0.495325 0.495325 0.000678 0.0081 0.495611 0.495611 0.002312 0.020477 0.488605 0.488605 0.00172 0.015594 0.491343 0.491343 0.00011 0.001674 0.499108 0.499108 0.00049 0.005845 0.496832 0.496832 0.001899 0.016811 0.490645 0.490645 0.001202 0.011972 0.493413 0.493413 0.000206 0.003141 0.498326 0.498326 0.001348 0.013697 0.492478 0.492478 0.002312 0.020477 0.488605 0.488605 0.002312 0.020477 0.488605 0.488605 0.000123 0.001871 0.499003 0.499003 0.002107 0.018295 0.489799 0.489799 0.001213 0.011988 0.493399 0.493399 0.001924 0.016935 0.490571 0.490571 0.001611 0.0149 0.491745 0.491745 0.001256 0.012388 0.493178 0.493178 0.00011 0.001664 0.499113 0.499113 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.00051 0.00604 0.496725 0.496725 0.00051 0.00604 0.496725 0.496725 0.001166 0.011705 0.493564 0.493564 0.001181 0.011787 0.493516 0.493516 0.000864 0.009252 0.494942 0.494942 0.000869 0.009242 0.494944 0.494944 0.001745 0.015845 0.491205 0.491205 0.000206 0.003141 0.498326 0.498326 0.000206 0.003141 0.498326 0.498326 0.000139 0.002122 0.498869 0.498869 0.002312 0.020477 0.488605 0.488605 0.001235 0.012353 0.493206 0.493206 0.002312 0.020477 0.488605 0.488605 0.001264 0.012752 0.492992 0.492992 0.006869 0.043501 0.474815 0.474815 0.006869 0.043501 0.474815 0.474815 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.002312 0.020477 0.488605 0.488605 0.004347 0.031847 0.481903 0.481903 0.006869 0.043501 0.474815 0.474815 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.002312 0.020477 0.488605 0.488605 0.004347 0.031847 0.481903 0.481903 0.005512 0.037491 0.478499 0.478499 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.004347 0.031847 0.481903 0.481903 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.00771 0.046674 0.472808 0.472808 0.005512 0.037491 0.478499 0.478499 0.002089 0.018476 0.489718 0.489718 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.006932 0.042898 0.475085 0.475085 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.004347 0.031847 0.481903 0.481903 0.005512 0.037491 0.478499 0.478499 0.002089 0.018476 0.489718 0.489718 0.006932 0.042898 0.475085 0.475085 0.007666 0.046698 0.472818 0.472818 0.006932 0.042898 0.475085 0.475085 0.007666 0.046698 0.472818 0.472818 0.006932 0.042898 0.475085 0.475085 0.002089 0.018476 0.489718 0.489718 0.004178 0.030011 0.482905 0.482905 0.005562 0.036889 0.478774 0.478774 0.00667 0.041605 0.475863 0.475863 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.007876 0.046639 0.472743 0.472743 0.002602 0.021487 0.487956 0.487956 0.002044 0.017795 0.490081 0.490081 0.005562 0.036889 0.478774 0.478774 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.007795 0.04639 0.472907 0.472907 0.007578 0.045385 0.473519 0.473519 0.002602 0.021487 0.487956 0.487956 0.002602 0.021487 0.487956 0.487956 0.003202 0.024793 0.486002 0.486002 0.005339 0.035675 0.479493 0.479493 0.006932 0.042898 0.475085 0.475085 0.00667 0.041605 0.475863 0.475863 0.007795 0.04639 0.472907 0.472907 0.007578 0.045385 0.473519 0.473519 0.003202 0.024793 0.486002 0.486002 0.002044 0.017795 0.490081 0.490081 0.002089 0.018476 0.489718 0.489718 0.005512 0.037491 0.478499 0.478499 0.000366 0.499807 0.499807 0.00049 0.005845 0.496832 0.496832 0.001173 0.011653 0.493587 0.493587 0.004347 0.031847 0.481903 0.481903 0.001235 0.012353 0.493206 0.493206 0.001235 0.012353 0.493206 0.493206 0.004347 0.031847 0.481903 0.481903 0.000231 0.010005 0.773563 0.216201 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002136 0.933901 0.063922 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002136 0.933901 0.063922 0.002136 0.933901 0.063922 0.000249 0.986626 0.013121 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002136 0.933901 0.063922 0.000119 0.00597 0.871324 0.122587 0.000594 0.984974 0.014422 0.000119 0.00597 0.871324 0.122587 0.000829 0.919885 0.079268 0.002136 0.933901 0.063922 0.000569 0.933548 0.065871 0.000119 0.00597 0.871324 0.122587 0.001303 0.646718 0.351939 0.001425 0.499248 0.499248 0.000964 0.499496 0.499496 0.000356 0.499814 0.499814 0.001425 0.499248 0.499248 0.000678 0.0081 0.495611 0.495611 0.000678 0.0081 0.495611 0.495611 0.000515 0.006136 0.496675 0.496675 0.000123 0.001871 0.499003 0.499003 0.00049 0.005845 0.496832 0.496832 0.001122 0.011249 0.493815 0.493815 0.001914 0.016868 0.490609 0.490609 0.000158 0.002412 0.498715 0.498715 0.000206 0.003141 0.498326 0.498326 0.000206 0.003141 0.498326 0.498326 0.00049 0.005845 0.496832 0.496832 0.000869 0.009242 0.494944 0.494944 0.001622 0.014929 0.491725 0.491725 0.000622 0.499675 0.499675 0.002312 0.020477 0.488605 0.488605 0.000542 0.006471 0.496493 0.496493 0.000678 0.0081 0.495611 0.495611 0.000206 0.003141 0.498326 0.498326 0.001256 0.012388 0.493178 0.493178 0.002312 0.020477 0.488605 0.488605 0.001622 0.014929 0.491725 0.491725 0.00049 0.005845 0.496832 0.496832 0.00011 0.001674 0.499108 0.499108 0.000515 0.006136 0.496675 0.496675 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 0.001122 0.011249 0.493815 0.493815 0.001173 0.011653 0.493587 0.493587 0.001425 0.499248 0.499248 0.001425 0.499248 0.499248 0.000206 0.003141 0.498326 0.498326 0.005512 0.037491 0.478499 0.478499 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.002312 0.020477 0.488605 0.488605 0.004347 0.031847 0.481903 0.481903 0.006869 0.043501 0.474815 0.474815 0.007666 0.046698 0.472818 0.472818 0.007666 0.046698 0.472818 0.472818 0.004347 0.031847 0.481903 0.481903 0.002312 0.020477 0.488605 0.488605 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.007666 0.046698 0.472818 0.472818 0.004347 0.031847 0.481903 0.481903 0.001264 0.012752 0.492992 0.492992 0.001264 0.012752 0.492992 0.492992 0.007666 0.046698 0.472818 0.472818 0.006675 0.042172 0.475576 0.475576 0.001264 0.012752 0.492992 0.492992 0.004347 0.031847 0.481903 0.481903 0.004362 0.031131 0.482254 0.482254 0.00667 0.041605 0.475863 0.475863 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.007795 0.04639 0.472907 0.472907 0.001235 0.012353 0.493206 0.493206 0.002107 0.018295 0.489799 0.489799 0.003202 0.024793 0.486002 0.486002 0.006932 0.042898 0.475085 0.475085 0.007578 0.045385 0.473519 0.473519 0.002107 0.018295 0.489799 0.489799 0.001235 0.012353 0.493206 0.493206 0.002312 0.020477 0.488605 0.488605 0.002312 0.020477 0.488605 0.488605 0.001264 0.012752 0.492992 0.492992 0.001235 0.012353 0.493206 0.493206 0.000542 0.006471 0.496493 0.496493 0.000206 0.003141 0.498326 0.498326 0.001425 0.499248 0.499248 0.001264 0.012752 0.492992 0.492992 0.000678 0.0081 0.495611 0.495611 0.001348 0.013697 0.492478 0.492478 0.000123 0.001871 0.499003 0.499003 0.000123 0.001871 0.499003 0.499003 0.000542 0.006471 0.496493 0.496493 0.001256 0.012388 0.493178 0.493178 0.000123 0.001871 0.499003 0.499003 0.001008 0.499468 0.499468 0.001425 0.499248 0.499248 0.000163 0.006655 0.75815 0.235032 0.000124 0.005167 0.782901 0.211808 0.000213 0.011685 0.86896 0.119141 0.000216 0.010393 0.822938 0.166453 0.005395 0.912109 0.082399 0.003822 0.800625 0.195461 0.000231 0.010005 0.773563 0.216201 0.000216 0.010393 0.822938 0.166453 0.002489 0.916526 0.080935 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000231 0.010005 0.773563 0.216201 0.002592 0.800107 0.192349 0.004889 0.000213 0.011685 0.86896 0.119141 0.000265 0.012465 0.803863 0.183407 0.001004 0.957717 0.04126 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.001106 0.865949 0.132227 0.000691 0.000163 0.006655 0.75815 0.235032 0.000183 0.008088 0.795433 0.196296 0.001004 0.957717 0.04126 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000183 0.008088 0.795433 0.196296 0.001106 0.865949 0.132227 0.000691 0.000163 0.006655 0.75815 0.235032 0.001264 0.012752 0.492992 0.492992 0.00012 0.004946 0.776072 0.218861 0.000231 0.010005 0.773563 0.216201 0.002312 0.020477 0.488605 0.488605 0.001348 0.013697 0.492478 0.492478 0.000447 0.518985 0.480551 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.000206 0.003141 0.498326 0.498326 0.000206 0.003141 0.498326 0.498326 0.000678 0.0081 0.495611 0.495611 0.000206 0.003141 0.498326 0.498326 0.000678 0.0081 0.495611 0.495611 0.000119 0.00597 0.871324 0.122587 0.002136 0.933901 0.063922 0.001099 0.980838 0.018046 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002224 0.955291 0.042447 0.004299 0.925881 0.069744 0.000213 0.011685 0.86896 0.119141 0.000171 0.009605 0.885739 0.104484 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.00449 0.84823 0.147182 0.005292 0.925207 0.06941 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.002224 0.955291 0.042447 0.004299 0.925881 0.069744 0.000171 0.009605 0.885739 0.104484 0.000265 0.012465 0.803863 0.183407 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.00449 0.84823 0.147182 0.000119 0.00597 0.871324 0.122587 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000119 0.00597 0.871324 0.122587 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.4629 0.002714 0.534387 0.783164 0.007194 0.209642 0.944557 0.055443 0.99404 0.00476 0.000363 0.000836 0.602764 0.397236 0.997928 0.002072 0.768591 0.231229 0.000138 0.022282 0.977717 0.89763 0.095863 0.006507 0.992371 0.007629 0.074131 0.628839 0.297028 0.801309 0.197214 0.001472 0.986545 0.01342 0.87425 0.125685 0.059933 0.000387 0.939681 0.462888 0.002714 0.534387 0.472572 0.527428 0.396125 0.603875 0.298426 0.701574 0.075283 0.924638 0.60792 0.392077 0.617737 0.22877 0.153493 0.54138 0.000197 0.458416 0.76448 0.235488 0.608315 0.28926 0.001671 0.000193 0.100562 0.444124 0.000189 0.000214 0.555472 0.48122 0.00021 0.518561 0.985438 0.014562 0.04836 0.951593 0.548292 0.416948 0.03476 0.202055 0.000395 0.797545 0.319386 0.677329 0.003282 0.999271 0.000207 0.000423 0.648947 0.351053 0.942197 0.057802 0.500865 0.499135 0.070219 0.929711 0.861663 0.129166 0.00917 0.997442 0.002542 0.497981 0.497981 0.001425 0.000155 0.002457 0.882234 0.116299 0.00129 0.000164 0.774365 0.225436 0.000199 0.002966 0.997034 0.498876 0.498876 0.002143 0.837061 0.162939 0.780045 0.219899 0.385714 0.614064 0.000203 0.978235 0.021765 0.961972 0.038028 0.999521 0.000477 0.999837 0.000102 0.49019 0.50981 0.857708 0.142292 0.008988 0.991012 0.859176 0.140824 0.999528 0.000466 0.490437 0.509563 0.007192 0.992808 0.139483 0.86035 0.000167 0.021721 0.978222 0.478068 0.504947 0.000177 0.016809 0.999506 0.000486 0.818997 0.181003 0.032912 0.000116 0.966973 0.999645 0.000225 0.000131 0.475613 0.524387 0.657219 0.325503 0.017224 0.296082 0.703918 0.894964 0.105028 0.965071 0.000535 0.034376 0.989721 0.000273 0.009996 0.983744 0.000118 0.016132 0.915058 0.084941 0.727329 0.272671 0.646003 0.353997 0.652373 0.347627 0.700141 0.299858 0.419299 0.002995 0.577697 0.584429 0.415568 0.771777 0.228069 0.769403 0.230378 0.000197 0.402894 0.597101 0.383433 0.616563 0.197214 0.001472 0.801309 0.297028 0.628839 0.074131 0.421316 0.52756 0.051116 0.151448 0.848473 0.237379 0.000142 0.762436 0.114399 0.885597 0.376649 0.623351 0.489192 0.510808 0.533846 0.466154 0.575421 0.423899 0.000641 0.778305 0.200442 0.021253 0.802744 0.19708 0.000134 0.54804 0.442046 0.000391 0.009523 0.174789 0.824977 0.000217 0.30228 0.696883 0.000774 0.674012 0.318125 0.00367 0.004193 0.496086 0.500843 0.000741 0.002264 0.370761 0.626936 0.000349 0.001924 0.805558 0.189093 0.001309 0.004039 0.223766 0.775923 0.000265 0.078001 0.921945 0.000137 0.334568 0.664503 0.000744 0.000137 0.334568 0.664503 0.000744 0.223766 0.775923 0.000265 0.959207 0.040772 0.000166 0.501332 0.498039 0.000393 0.000232 0.745546 0.253684 0.00024 0.000298 0.000232 0.745546 0.253684 0.00024 0.000298 0.000166 0.501332 0.498039 0.000393 0.046514 0.953283 0.000189 0.102148 0.897129 0.000676 0.152486 0.84661 0.000843 0.189006 0.810084 0.000844 0.189006 0.810084 0.000844 0.012062 0.976388 0.003855 0.000137 0.007558 0.865451 0.13441 0.209929 0.787961 0.001967 0.000143 0.223766 0.775923 0.000265 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000183 0.008088 0.795433 0.196296 0.000124 0.005167 0.782901 0.211808 0.00449 0.84823 0.147182 0.000119 0.00597 0.871324 0.122587 0.511988 0.487912 0.511988 0.487912 0.511988 0.487912 0.000166 0.501332 0.498039 0.000393 0.000166 0.501332 0.498039 0.000393 0.000137 0.334568 0.664503 0.000744 0.023368 0.003567 0.973066 0.002991 0.001187 0.995822 0.003371 0.995545 0.001084 0.003521 0.001506 0.994973 0.00078 0.999219 0.003881 0.001712 0.994406 0.004755 0.992658 0.002587 0.001605 0.997439 0.000955 0.99292 0.005881 0.000363 0.000836 0.983563 0.015262 0.000356 0.000819 0.984859 0.013942 0.000363 0.000836 0.083974 0.832034 0.083974 0.849006 0.148589 0.002404 0.985695 0.012718 0.000683 0.000904 0.984383 0.015492 0.000122 0.978644 0.021 0.000356 0.953315 0.045856 0.000828 0.956359 0.043362 0.00028 0.977934 0.022048 0.411313 0.572018 0.01661 0.218778 0.745949 0.035256 0.99272 0.006269 0.000306 0.000704 0.993474 0.005344 0.000358 0.000824 0.003289 0.002115 0.99187 0.002727 0.026007 0.01267 0.950956 0.010367 0.009931 0.005683 0.978698 0.005688 0.190339 0.003124 0.806538 0.001658 0.000675 0.997667 0.001051 0.000399 0.998551 0.000597 0.000212 0.999191 0.00033 0.000108 0.999562 0.000103 0.999626 0.000194 0.000971 0.000672 0.997271 0.001086 0.137388 0.862612 0.00214 0.001423 0.994491 0.001945 0.000664 0.000457 0.99808 0.000798 0.002126 0.000839 0.997035 0.006291 0.003937 0.985744 0.004028 0.999662 0.000176 0.000953 0.000672 0.997309 0.001066 0.000103 0.999626 0.000194 0.000597 0.000212 0.999191 0.001658 0.000675 0.997667 0.026007 0.01267 0.950956 0.010367 0.001516 0.000562 0.997922 0.009931 0.005683 0.978698 0.005688 0.003111 0.002115 0.992195 0.002579 0.00033 0.000108 0.999562 0.001051 0.000399 0.998551 0.002352 0.001002 0.996646 0.023767 0.96689 0.009342 0.190339 0.003124 0.806538 0.017233 0.008766 0.965955 0.008045 0.044221 0.941799 0.013979 0.002663 0.001069 0.996268 0.003021 0.001306 0.995672 0.000864 0.000609 0.997742 0.000785 0.002552 0.002071 0.993634 0.001743 0.004837 0.004277 0.988472 0.002414 0.017751 0.974607 0.007642 0.012307 0.981739 0.005954 0.004589 0.99282 0.002591 0.00017 0.000114 0.999529 0.000187 0.000508 0.00034 0.998698 0.000454 0.001326 0.000927 0.996818 0.000928 0.002052 0.001771 0.995032 0.001145 0.000155 0.999765 0.999802 0.999813 0.000545 0.00035 0.998711 0.000394 0.999847 0.307004 0.692941 0.212195 0.787776 0.182419 0.817542 0.136462 0.863504 0.087738 0.912242 0.158714 0.841267 0.324494 0.675381 0.000124 0.364312 0.635557 0.000132 0.370554 0.629337 0.000108 0.773607 0.226338 0.808903 0.191049 0.780753 0.219167 0.79322 0.206703 0.847947 0.152012 0.863497 0.136474 0.664383 0.335442 0.000174 0.652568 0.347246 0.000185 0.656458 0.343367 0.000174 0.996387 0.003612 0.99918 0.000819 0.974488 0.025511 0.898222 0.101778 0.843764 0.156236 0.848295 0.151705 0.885424 0.114576 0.510303 0.489668 0.503799 0.496165 0.511543 0.488402 0.512639 0.487307 0.513676 0.486297 0.508917 0.491068 0.500193 0.499698 0.000108 0.500125 0.499755 0.000119 0.500326 0.499563 0.00011 0.321063 0.050536 0.6284 0.862188 0.137564 0.000248 0.490802 0.509198 0.999123 0.000876 0.999545 0.000449 0.409378 0.000106 0.000198 0.590319 0.95935 0.040109 0.000533 0.000658 0.000466 0.998186 0.00069 0.059933 0.000387 0.939681 0.462888 0.002714 0.534387 0.472572 0.527428 0.396125 0.603875 0.298426 0.701574 0.075283 0.924638 0.60792 0.392077 0.617737 0.22877 0.153493 0.54138 0.000197 0.458416 0.76448 0.235488 0.608315 0.28926 0.001671 0.000193 0.100562 0.444124 0.000214 0.000189 0.555472 0.48122 0.00021 0.518561 0.985438 0.014562 0.548292 0.416948 0.03476 0.797545 0.202055 0.000395 0.677329 0.003282 0.319386 0.999271 0.000423 0.000207 0.648947 0.351053 0.942197 0.057802 0.500865 0.499135 0.929711 0.070219 0.861663 0.129166 0.00917 0.997442 0.002542 0.497981 0.497981 0.001425 0.000155 0.002457 0.882234 0.116299 0.00129 0.000164 0.774365 0.225436 0.000199 0.002966 0.997034 0.498876 0.498876 0.002143 0.837061 0.162939 0.780045 0.219899 0.385714 0.614064 0.000203 0.978235 0.021765 0.961972 0.038028 0.999521 0.000477 0.999837 0.000102 0.49019 0.50981 0.857708 0.142292 0.991012 0.008988 0.859176 0.140824 0.999528 0.000466 0.490437 0.509563 0.992808 0.007192 0.86035 0.000167 0.139483 0.978222 0.021721 0.016809 0.504947 0.000177 0.478068 0.999506 0.000486 0.818997 0.181003 0.966973 0.032912 0.000116 0.999645 0.000131 0.000225 0.524387 0.475613 0.017224 0.325503 0.657219 0.703918 0.296082 0.105028 0.894964 0.034376 0.965071 0.000535 0.009996 0.989721 0.000273 0.016132 0.983744 0.000118 0.084941 0.915058 0.272671 0.727329 0.353997 0.646003 0.347627 0.652373 0.299858 0.700141 0.577697 0.419299 0.002995 0.415568 0.584429 0.228069 0.771777 0.230378 0.000197 0.769403 0.597101 0.402894 0.616563 0.383433 0.801309 0.197214 0.001472 0.074131 0.628839 0.297028 0.051116 0.52756 0.421316 0.848473 0.151448 0.762436 0.237379 0.000142 0.885597 0.114399 0.376649 0.623351 0.489192 0.510808 0.04836 0.951593 0.533846 0.466154 0.423899 0.000641 0.575421 0.778305 0.200442 0.021253 0.19708 0.000134 0.802744 0.009523 0.442046 0.000391 0.54804 0.174789 0.824977 0.000217 0.30228 0.696883 0.000774 0.674012 0.00367 0.318125 0.004193 0.496086 0.500843 0.000741 0.002264 0.370761 0.626936 0.000349 0.001924 0.805558 0.001309 0.189093 0.004039 0.223766 0.775923 0.000265 0.078001 0.921945 0.000137 0.334568 0.664503 0.000744 0.000137 0.334568 0.664503 0.000744 0.223766 0.775923 0.000265 0.959207 0.040772 0.000166 0.501332 0.498039 0.000393 0.000232 0.745546 0.253684 0.00024 0.000298 0.000232 0.745546 0.253684 0.00024 0.000298 0.000166 0.501332 0.498039 0.000393 0.046514 0.953283 0.000189 0.102148 0.897129 0.000676 0.152486 0.84661 0.000843 0.189006 0.810084 0.000844 0.189006 0.810084 0.000844 0.012062 0.976388 0.003855 0.000137 0.007558 0.865451 0.13441 0.209929 0.787961 0.001967 0.000143 0.223766 0.775923 0.000265 0.000216 0.010393 0.822938 0.166453 0.000216 0.010393 0.822938 0.166453 0.000183 0.008088 0.795433 0.196296 0.000124 0.005167 0.782901 0.211808 0.00449 0.84823 0.147182 0.000119 0.00597 0.871324 0.122587 0.511988 0.487912 0.511988 0.487912 0.511988 0.487912 0.000166 0.501332 0.498039 0.000393 0.000166 0.501332 0.498039 0.000393 0.000137 0.334568 0.664503 0.000744 0.002991 0.001187 0.995822 0.003371 0.995545 0.001084 0.003521 0.001506 0.994973 0.00078 0.999219 0.003881 0.001712 0.994406 0.004755 0.992658 0.002587 0.001605 0.997439 0.000955 0.849006 0.148589 0.002404 0.985695 0.012718 0.000683 0.000904 0.984383 0.015492 0.000122 0.978644 0.021 0.000356 0.953315 0.045856 0.000828 0.956359 0.043362 0.00028 0.977934 0.022048 0.01661 0.572018 0.411313 0.035256 0.745949 0.218778 0.137388 0.862612 0.00214 0.001423 0.994491 0.001945 0.000664 0.000457 0.99808 0.000798 0.002126 0.000839 0.997035 0.006291 0.003937 0.985744 0.004028 0.999662 0.000176 0.000953 0.000672 0.997309 0.001066 0.000103 0.999626 0.000194 0.000597 0.000212 0.999191 0.001658 0.000675 0.997667 0.026007 0.01267 0.950956 0.010367 0.001516 0.000562 0.997922 0.009931 0.005683 0.978698 0.005688 0.003111 0.002115 0.992195 0.002579 0.00033 0.000108 0.999562 0.001051 0.000399 0.998551 0.002352 0.001002 0.996646 0.023767 0.96689 0.009342 0.190339 0.003124 0.806538 0.017233 0.008766 0.965955 0.008045 0.044221 0.941799 0.013979 0.002663 0.001069 0.996268 0.003021 0.001306 0.995672 0.000864 0.000609 0.997742 0.000785 0.002552 0.002071 0.993634 0.001743 0.004837 0.004277 0.988472 0.002414 0.017751 0.974607 0.007642 0.012307 0.981739 0.005954 0.004589 0.99282 0.002591 0.00017 0.000114 0.999529 0.000187 0.000508 0.00034 0.998698 0.000454 0.001326 0.000927 0.996818 0.000928 0.002052 0.001771 0.995032 0.001145 0.000155 0.999765 0.999802 0.999813 0.000545 0.00035 0.998711 0.000394 0.999847 0.307004 0.692941 0.212195 0.787776 0.182419 0.817542 0.136462 0.863504 0.087738 0.912242 0.158714 0.841267 0.324494 0.675381 0.000124 0.364312 0.635557 0.000132 0.370554 0.629337 0.000108 0.773607 0.226338 0.808903 0.191049 0.780753 0.219167 0.79322 0.206703 0.847947 0.152012 0.863497 0.136474 0.664383 0.335442 0.000174 0.652568 0.347246 0.000185 0.656458 0.343367 0.000174 0.003612 0.996387 0.000819 0.99918 0.025511 0.974488 0.101778 0.898222 0.156236 0.843764 0.151705 0.848295 0.114576 0.885424 0.510303 0.489668 0.503799 0.496165 0.511543 0.488402 0.512639 0.487307 0.513676 0.486297 0.508917 0.491068 0.500193 0.499698 0.000108 0.500125 0.499755 0.000119 0.500326 0.499563 0.00011 0.409378 0.000198 0.000106 0.590319 0.95935 0.040109 0.000533 0.000658 0.000466 0.998186 0.00069 0.003021 0.001306 0.995672 0.044221 0.941799 0.013979 0.002126 0.000839 0.997035 0.011902 0.007516 0.007516 0.973066 0.001052 0.000812 0.99672 0.001416 0.000216 0.000172 0.999298 0.000314 0.000361 0.000286 0.998835 0.000519 0.000641 0.000503 0.997956 0.0009 0.000867 0.000678 0.997229 0.001225 0.003041 0.001078 0.995881 0.000923 0.000716 0.997171 0.00119 0.999839 0.000971 0.000744 0.997019 0.001265 0.000907 0.000704 0.997141 0.001248 0.001231 0.000952 0.996116 0.0017 0.003021 0.001306 0.995672 0.044221 0.941799 0.013979 0.002126 0.000839 0.997035 0.001052 0.000812 0.99672 0.001416 0.000216 0.000172 0.999298 0.000314 0.000361 0.000286 0.998835 0.000519 0.000641 0.000503 0.997956 0.0009 0.000867 0.000678 0.997229 0.001225 0.003041 0.001078 0.995881 0.000923 0.000716 0.997171 0.00119 0.999839 0.000971 0.000744 0.997019 0.001265 0.000907 0.000704 0.997141 0.001248 0.001231 0.000952 0.996116 0.0017 0.000136 0.999807 0.999863 0.000117 0.999831 0.000127 0.999829 0.000234 0.999693 0.000173 0.999771 0.000152 0.999807 0.000263 0.999664 0.000243 0.999689 0.999805 0.000141 0.999808 0.999884 0.000144 0.999799 0.999871 0.999862 0.000144 0.999803 0.000199 0.999744 0.999794 0.999855 0.000144 0.999799 0.000153 0.999783 0.000125 0.999829 0.000115 0.999844 0.999898 0.999887 0.000106 0.999846 0.000133 0.999808 0.999856 0.999894 0.000144 0.999803 0.999869 0.000194 0.999738 0.000217 0.999723 0.000235 0.999701 0.000195 0.999753 0.999769 0.999822 0.999868 0.000113 0.999856 0.000272 0.999651 0.00023 0.999702 0.999833 0.000136 0.999807 0.999863 0.000117 0.999831 0.000127 0.999829 0.000234 0.999693 0.000173 0.999771 0.000152 0.999807 0.000263 0.999664 0.000243 0.999689 0.999805 0.000141 0.999808 0.999884 0.000144 0.999799 0.999871 0.999862 0.000144 0.999803 0.000199 0.999744 0.999794 0.999855 0.000144 0.999799 0.000153 0.999783 0.000125 0.999829 0.000115 0.999844 0.999898 0.999887 0.000106 0.999846 0.000133 0.999808 0.999856 0.999894 0.000144 0.999803 0.999869 0.000194 0.999738 0.000217 0.999723 0.000235 0.999701 0.000195 0.999753 0.999769 0.999822 0.999868 0.000113 0.999856 0.000272 0.999651 0.00023 0.999702 0.999833 0.000123 0.001871 0.499003 0.499003 0.00049 0.005845 0.496832 0.496832 0.00049 0.005845 0.496832 0.496832 + + + + + + + + + + + + + + 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 3 3 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 1 4 1 1 1 2 1 2 3 3 4 4 3 1 1 4 4 3 1 3 1 4 1 1 1 3 1 4 2 2 4 4 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 4 5 3 4 4 4 3 5 4 2 4 4 4 5 4 5 3 4 3 4 5 5 5 4 4 4 5 5 4 4 4 4 5 5 4 4 4 4 5 5 5 4 4 4 5 5 5 4 4 5 5 5 5 4 4 5 5 5 3 4 4 5 5 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 2 2 3 3 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 1 4 3 2 3 3 4 4 3 1 1 1 1 1 1 4 2 4 4 3 1 3 4 1 1 1 1 2 4 1 4 2 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 4 5 3 4 4 4 3 5 4 2 4 4 4 5 4 5 3 4 3 4 5 5 5 4 4 4 5 5 4 4 4 4 5 5 4 4 4 4 5 5 5 4 4 4 5 5 5 4 4 5 5 5 5 4 4 5 5 5 3 4 4 5 5 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 1 1 1 1 4 4 4 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 2 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 2 2 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 2 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 2 2 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 3 3 3 4 4 4 4 3 4 3 4 3 3 3 4 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 3 3 3 4 4 4 4 3 3 4 4 3 4 4 4 4 4 4 4 3 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 3 3 4 4 3 3 4 4 4 4 4 4 3 3 4 4 3 3 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 3 3 3 4 4 4 4 3 4 3 4 3 3 3 4 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 3 3 4 4 4 4 3 3 4 4 3 4 4 4 4 4 4 4 3 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 3 3 4 4 3 3 4 4 4 4 4 4 3 3 4 4 3 3 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 3 3 2 4 2 2 3 2 3 2 3 3 2 2 3 3 2 2 2 1 2 2 3 3 2 5 4 3 2 2 3 3 3 3 2 2 2 2 3 2 5 4 3 2 1 3 2 2 3 2 2 2 2 2 2 2 1 1 2 1 2 2 2 3 2 4 2 2 3 3 1 2 3 2 2 3 3 3 2 2 2 2 2 3 2 2 3 2 2 3 3 3 2 3 2 2 2 2 3 3 3 4 3 3 4 4 4 4 3 2 4 4 3 2 4 5 5 4 3 3 3 3 3 5 2 4 3 4 4 4 4 3 4 2 2 2 4 4 4 3 1 1 3 3 1 3 1 1 2 1 3 1 3 3 1 1 1 4 4 4 3 3 4 3 3 3 3 2 3 3 4 4 4 4 1 1 4 3 3 3 3 3 3 4 2 4 4 1 1 3 4 2 1 1 4 3 3 3 4 1 1 3 1 4 4 3 3 3 3 3 4 1 1 1 3 1 1 1 1 3 3 1 1 1 4 4 4 3 3 3 1 4 4 4 4 1 2 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 2 2 2 2 2 2 3 3 3 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 1 2 2 2 1 4 3 4 1 1 3 3 2 2 2 1 2 2 3 3 2 5 4 3 2 3 3 3 3 2 2 2 2 3 2 5 4 3 2 1 3 2 2 3 2 2 2 2 2 2 2 1 1 2 1 2 2 2 3 2 4 2 2 3 3 1 2 3 2 2 3 3 3 2 2 2 2 2 3 2 2 3 2 2 3 3 3 2 3 2 2 2 2 2 3 3 3 4 3 3 4 4 4 4 3 2 4 4 3 2 4 5 5 4 3 3 3 3 3 5 2 4 3 4 4 4 4 3 4 2 2 2 4 4 4 1 3 3 1 3 1 1 2 1 3 1 3 3 1 1 1 3 4 3 3 3 3 2 3 3 2 4 4 1 1 3 4 2 1 1 4 3 3 3 4 1 1 3 1 4 4 3 3 3 3 3 4 1 1 1 3 1 1 1 1 3 3 1 1 1 4 4 4 3 3 3 1 4 4 4 4 1 2 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 2 2 2 2 2 2 3 3 3 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 4 3 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4 3 4 1 4 4 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4 3 4 1 4 4 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 2 2 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 2 1 1 2 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 2 1 2 2 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 2 1 1 2 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 2 2 2 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 + 1 1 5 2 5 3 15 4 1 5 5 6 5 7 15 8 1 9 5 10 5 11 15 12 1 13 5 14 5 15 15 16 5 0 5 0 5 0 5 0 5 0 5 17 6 18 5 19 6 20 5 21 6 22 10 23 5 24 6 25 10 26 5 27 6 28 10 29 5 30 6 31 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 6 32 13 33 6 34 10 35 13 36 13 37 6 38 10 39 13 40 14 41 13 0 13 0 13 0 6 42 13 43 13 44 6 45 13 46 6 47 10 48 13 49 6 50 10 51 13 52 6 53 10 54 13 55 14 56 6 57 10 58 13 59 14 60 6 61 10 62 13 63 13 0 13 0 6 64 10 65 13 66 14 67 6 68 10 69 13 70 14 71 6 72 10 73 13 74 13 0 6 75 10 76 13 77 13 0 6 78 10 79 13 80 14 81 13 0 13 0 13 0 6 82 10 83 13 84 13 85 6 86 10 87 13 88 14 89 6 90 13 91 6 92 13 93 6 94 10 95 13 96 14 97 6 98 10 99 13 100 14 101 6 102 10 103 13 104 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 105 7 106 13 107 6 108 7 109 13 110 6 111 7 112 13 113 6 114 7 115 13 116 6 117 7 118 13 119 6 120 7 121 13 122 6 123 7 124 13 125 6 126 7 127 13 128 6 129 7 130 13 131 6 132 7 133 13 134 6 135 7 136 13 137 6 138 7 139 13 140 6 141 7 142 8 143 13 144 6 145 7 146 8 147 9 148 13 149 6 150 7 151 13 152 6 153 7 154 10 155 13 156 6 157 7 158 10 159 13 160 6 161 7 162 10 163 13 164 6 165 7 166 8 167 6 168 7 169 8 170 9 171 13 172 6 173 7 174 8 175 9 176 6 177 7 178 6 179 7 180 10 181 13 182 6 183 7 184 10 185 13 186 6 187 7 188 8 189 13 190 6 191 7 192 8 193 9 194 13 195 6 196 7 197 8 198 9 199 6 200 7 201 8 202 9 203 13 204 6 205 7 206 13 207 6 208 7 209 10 210 13 211 6 212 7 213 8 214 6 215 7 216 8 217 13 218 6 219 7 220 8 221 9 222 13 223 6 224 7 225 8 226 9 227 13 228 6 229 7 230 8 231 9 232 13 233 6 234 7 235 8 236 13 237 6 238 7 239 8 240 13 241 6 242 7 243 8 244 13 245 6 246 7 247 8 248 9 249 13 250 6 251 7 252 8 253 9 254 13 255 6 256 7 257 8 258 13 259 6 260 7 261 8 262 13 263 6 264 7 265 8 266 13 267 6 268 7 269 8 270 13 271 6 272 7 273 8 274 9 275 13 276 6 277 7 278 8 279 9 280 13 281 6 282 7 283 8 284 13 285 6 286 7 287 8 288 13 289 6 290 7 291 8 292 13 293 6 294 7 295 8 296 13 297 6 298 7 299 8 300 9 301 13 302 6 303 7 304 8 305 9 306 13 307 6 308 7 309 8 310 9 311 13 312 6 313 7 314 8 315 13 316 6 317 7 318 8 319 13 320 6 321 7 322 8 323 13 324 6 325 7 326 8 327 9 328 13 329 6 330 7 331 8 332 9 333 13 334 6 335 7 336 8 337 9 338 13 339 6 340 7 341 8 342 13 343 6 344 7 345 8 346 13 347 6 348 7 349 8 350 9 351 13 352 6 353 7 354 8 355 9 356 13 357 6 358 7 359 8 360 9 361 13 362 6 363 7 364 8 365 9 366 13 367 6 368 7 369 8 370 13 371 6 372 7 373 8 374 13 375 6 376 7 377 8 378 9 379 13 380 6 381 7 382 8 383 9 384 13 385 6 386 7 387 8 388 9 389 13 390 6 391 7 392 13 393 6 394 7 395 10 396 13 397 6 398 7 399 8 400 13 401 6 402 7 403 8 404 9 405 13 406 6 407 7 408 8 409 9 410 13 411 6 412 7 413 13 414 6 415 7 416 6 417 7 418 13 419 6 420 7 421 13 422 6 423 7 424 13 425 6 426 7 427 13 428 6 429 7 430 13 431 6 432 7 433 13 434 6 435 7 436 13 437 6 438 7 439 13 440 6 441 7 442 13 443 6 444 7 445 13 446 6 447 7 448 13 449 6 450 7 451 13 452 6 453 7 454 13 455 5 0 5 0 5 0 5 0 5 0 5 456 6 457 5 458 6 459 5 460 6 461 7 462 5 463 6 464 7 465 5 466 6 467 7 468 5 469 6 470 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 6 471 13 472 6 473 7 474 13 475 13 476 6 477 7 478 13 479 14 480 6 481 7 482 13 483 6 484 13 485 6 486 7 487 13 488 6 489 7 490 13 491 6 492 7 493 13 494 14 495 6 496 7 497 13 498 14 499 6 500 7 501 13 502 13 0 13 0 13 0 13 0 13 0 13 503 6 504 7 505 13 506 14 507 6 508 13 509 6 510 7 511 13 512 14 513 6 514 7 515 13 516 14 517 6 518 7 519 13 520 13 0 6 521 7 522 13 523 6 524 7 525 13 526 14 527 13 0 13 0 13 0 13 0 6 528 13 529 6 530 7 531 13 532 14 533 13 534 6 535 7 536 13 537 14 538 6 539 13 540 6 541 7 542 13 543 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 544 10 545 13 546 6 547 10 548 13 549 6 550 10 551 13 552 6 553 10 554 13 555 6 556 10 557 13 558 6 559 10 560 13 561 6 562 10 563 13 564 6 565 10 566 13 567 6 568 10 569 13 570 6 571 10 572 13 573 6 574 10 575 13 576 6 577 10 578 13 579 6 580 10 581 11 582 13 583 6 584 10 585 11 586 12 587 13 588 6 589 10 590 13 591 6 592 7 593 10 594 13 595 6 596 7 597 10 598 13 599 6 600 7 601 10 602 13 603 6 604 10 605 11 606 6 607 10 608 11 609 12 610 13 611 6 612 10 613 11 614 12 615 6 616 10 617 6 618 7 619 10 620 13 621 6 622 7 623 10 624 13 625 6 626 10 627 11 628 13 629 6 630 10 631 11 632 12 633 13 634 6 635 10 636 11 637 12 638 6 639 10 640 11 641 12 642 13 643 6 644 10 645 13 646 6 647 7 648 10 649 13 650 6 651 10 652 11 653 6 654 10 655 11 656 13 657 6 658 10 659 11 660 12 661 13 662 6 663 10 664 11 665 12 666 13 667 6 668 10 669 11 670 12 671 13 672 6 673 10 674 11 675 13 676 6 677 10 678 11 679 13 680 6 681 10 682 11 683 13 684 6 685 10 686 11 687 12 688 13 689 6 690 10 691 11 692 12 693 13 694 6 695 10 696 11 697 13 698 6 699 10 700 11 701 13 702 6 703 10 704 11 705 13 706 6 707 10 708 11 709 13 710 6 711 10 712 11 713 12 714 13 715 6 716 10 717 11 718 12 719 13 720 6 721 10 722 11 723 13 724 6 725 10 726 11 727 13 728 6 729 10 730 11 731 13 732 6 733 10 734 11 735 13 736 6 737 10 738 11 739 12 740 13 741 6 742 10 743 11 744 12 745 13 746 6 747 10 748 11 749 12 750 13 751 6 752 10 753 11 754 13 755 6 756 10 757 11 758 13 759 6 760 10 761 11 762 13 763 6 764 10 765 11 766 12 767 13 768 6 769 10 770 11 771 12 772 13 773 6 774 10 775 11 776 12 777 13 778 6 779 10 780 11 781 13 782 6 783 10 784 11 785 13 786 6 787 10 788 11 789 12 790 13 791 6 792 10 793 11 794 12 795 13 796 6 797 10 798 11 799 12 800 13 801 6 802 10 803 11 804 12 805 13 806 6 807 10 808 11 809 13 810 6 811 10 812 11 813 13 814 6 815 10 816 11 817 12 818 13 819 6 820 10 821 11 822 12 823 13 824 6 825 10 826 11 827 12 828 13 829 6 830 10 831 13 832 6 833 7 834 10 835 13 836 6 837 10 838 11 839 13 840 6 841 10 842 11 843 12 844 13 845 6 846 10 847 11 848 12 849 13 850 6 851 10 852 13 853 6 854 10 855 6 856 10 857 13 858 6 859 10 860 13 861 6 862 10 863 13 864 6 865 10 866 13 867 6 868 10 869 13 870 6 871 10 872 13 873 6 874 10 875 13 876 6 877 10 878 13 879 6 880 10 881 13 882 6 883 10 884 13 885 6 886 10 887 13 888 6 889 10 890 13 891 6 892 10 893 13 894 6 895 7 896 10 897 13 898 6 899 7 900 10 901 13 902 6 903 7 904 10 905 13 906 6 907 7 908 10 909 13 910 6 911 7 912 10 913 13 914 6 915 7 916 10 917 13 918 6 919 7 920 10 921 13 922 6 923 7 924 10 925 13 926 13 0 13 0 13 0 13 0 6 927 7 928 10 929 13 930 6 931 7 932 10 933 13 934 6 935 7 936 10 937 13 938 6 939 7 940 10 941 13 942 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 943 7 944 13 945 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 946 7 947 10 948 13 949 13 0 13 0 13 0 13 0 13 0 6 950 7 951 10 952 13 953 1 954 2 955 3 956 1 957 2 958 3 959 1 960 2 961 3 962 1 963 2 964 3 965 1 966 2 967 3 968 1 969 2 970 3 971 1 972 2 973 3 974 1 975 2 976 3 977 1 978 2 979 3 980 1 981 2 982 3 983 1 984 2 985 3 986 1 987 2 988 3 989 1 990 2 991 3 992 1 993 2 994 3 995 1 996 2 997 3 998 1 999 2 1000 3 1001 1 1002 2 1003 3 1004 1 1005 2 1006 3 1007 1 1008 2 1009 3 1010 1 1011 2 1012 3 1013 1 1014 2 1015 3 1016 1 1017 2 1018 3 1019 1 1020 2 1021 3 1022 1 1023 2 1024 3 1025 2 1026 3 1027 1 1028 2 1029 3 1030 1 1031 2 1032 3 1033 1 1034 2 1035 3 1036 1 1037 2 1038 3 1039 1 1040 2 1041 3 1042 1 1043 2 1044 3 1045 2 1046 3 1047 1 1048 2 1049 3 1050 2 1051 3 1052 1 1053 2 1054 3 1055 1 1056 2 1057 3 1058 1 1059 2 1060 3 1061 1 1062 2 1063 3 1064 1 1065 2 1066 3 1067 1 1068 2 1069 3 1070 1 1071 2 1072 3 1073 1 1074 2 1075 3 1076 1 1077 2 1078 3 1079 1 1080 2 1081 3 1082 1 1083 2 1084 3 1085 1 1086 2 1087 3 1088 1 1089 2 1090 3 1091 1 1092 2 1093 3 1094 1 1095 2 1096 3 1097 1 1098 2 1099 3 1100 1 1101 2 1102 3 1103 1 1104 2 1105 3 1106 1 1107 2 1108 3 1109 1 1110 2 1111 3 1112 1 1113 2 1114 3 1115 1 1116 2 1117 3 1118 1 1119 2 1120 3 1121 1 1122 2 1123 3 1124 1 1125 2 1126 3 1127 1 1128 2 1129 3 1130 1 1131 2 1132 3 1133 1 1134 2 1135 3 1136 1 1137 2 1138 3 1139 2 1140 3 1141 1 1142 2 1143 3 1144 2 1145 3 1146 2 1147 3 1148 2 1149 3 1150 1 1151 2 1152 3 1153 1 1154 2 1155 3 1156 1 1157 2 1158 3 1159 1 1160 2 1161 3 1162 1 1163 2 1164 3 1165 1 1166 2 1167 3 1168 1 1169 2 1170 3 1171 1 1172 2 1173 3 1174 1 1175 2 1176 3 1177 1 1178 2 1179 3 1180 1 1181 2 1182 3 1183 1 1184 2 1185 3 1186 1 1187 2 1188 3 1189 1 1190 2 1191 3 1192 1 1193 2 1194 3 1195 1 1196 2 1197 3 1198 1 1199 2 1200 3 1201 1 1202 2 1203 3 1204 1 1205 2 1206 3 1207 1 1208 2 1209 3 1210 1 1211 2 1212 3 1213 1 1214 2 1215 1 1216 2 1217 3 1218 1 1219 2 1220 3 1221 1 1222 2 1223 3 1224 1 1225 2 1226 3 1227 1 1228 2 1229 2 1230 3 1231 1 1232 2 1233 3 1234 1 1235 2 1236 3 1237 1 1238 2 1239 3 1240 1 1241 2 1242 3 1243 1 1244 2 1245 3 1246 1 1247 2 1248 3 1249 1 1250 2 1251 1 1252 2 1253 3 1254 1 1255 2 1256 3 1257 1 1258 2 1259 3 1260 1 1261 2 1262 3 1263 1 1264 2 1265 3 1266 1 1267 2 1268 3 1269 1 1270 2 1271 3 1272 1 1273 2 1274 3 1275 1 1276 2 1277 3 1278 1 1279 2 1280 3 1281 1 1282 2 1283 3 1284 1 1285 2 1286 3 1287 1 1288 2 1289 3 1290 1 1291 2 1292 3 1293 1 1294 2 1295 1 1296 2 1297 1 1298 2 1299 3 1300 1 1301 2 1302 3 1303 1 1304 2 1305 3 1306 1 1307 2 1308 3 1309 1 1310 2 1311 3 1312 1 1313 2 1314 1 1315 2 1316 1 1317 2 1318 1 1319 2 1320 1 1321 2 1322 1 1323 2 1324 1 1325 2 1326 1 1327 2 1328 1 1329 2 1330 1 1331 2 1332 1 1333 2 1334 1 1335 2 1336 1 1337 2 1338 1 1339 2 1340 15 1341 16 1342 17 1343 15 1344 16 1345 17 1346 15 1347 16 1348 17 1349 15 1350 16 1351 17 1352 15 1353 16 1354 17 1355 15 1356 16 1357 17 1358 15 1359 16 1360 17 1361 15 1362 16 1363 17 1364 15 1365 16 1366 17 1367 15 1368 16 1369 17 1370 15 1371 16 1372 17 1373 15 1374 16 1375 17 1376 15 1377 16 1378 17 1379 15 1380 16 1381 17 1382 15 1383 16 1384 17 1385 15 1386 16 1387 17 1388 15 1389 16 1390 17 1391 15 1392 16 1393 17 1394 15 1395 16 1396 17 1397 15 1398 16 1399 17 1400 15 1401 16 1402 17 1403 15 1404 16 1405 17 1406 15 1407 16 1408 17 1409 15 1410 16 1411 17 1412 16 1413 17 1414 15 1415 16 1416 17 1417 15 1418 16 1419 17 1420 15 1421 16 1422 17 1423 16 1424 17 1425 15 1426 16 1427 17 1428 15 1429 16 1430 17 1431 15 1432 16 1433 17 1434 16 1435 17 1436 15 1437 16 1438 17 1439 15 1440 16 1441 17 1442 15 1443 16 1444 17 1445 15 1446 16 1447 17 1448 15 1449 16 1450 17 1451 15 1452 16 1453 17 1454 15 1455 16 1456 17 1457 15 1458 16 1459 17 1460 15 1461 16 1462 17 1463 15 1464 16 1465 17 1466 15 1467 16 1468 17 1469 15 1470 16 1471 17 1472 15 1473 16 1474 17 1475 15 1476 16 1477 17 1478 15 1479 16 1480 17 1481 15 1482 16 1483 17 1484 15 1485 16 1486 17 1487 15 1488 16 1489 17 1490 15 1491 16 1492 17 1493 15 1494 16 1495 17 1496 15 1497 16 1498 17 1499 15 1500 16 1501 17 1502 15 1503 16 1504 17 1505 15 1506 16 1507 17 1508 15 1509 16 1510 17 1511 15 1512 16 1513 17 1514 15 1515 16 1516 17 1517 15 1518 16 1519 17 1520 15 1521 16 1522 17 1523 15 1524 16 1525 17 1526 16 1527 17 1528 15 1529 16 1530 17 1531 16 1532 17 1533 16 1534 17 1535 16 1536 17 1537 15 1538 16 1539 17 1540 15 1541 16 1542 17 1543 15 1544 16 1545 17 1546 15 1547 16 1548 17 1549 15 1550 16 1551 17 1552 15 1553 16 1554 17 1555 15 1556 16 1557 17 1558 15 1559 16 1560 17 1561 15 1562 16 1563 17 1564 15 1565 16 1566 17 1567 15 1568 16 1569 17 1570 15 1571 16 1572 17 1573 15 1574 16 1575 17 1576 15 1577 16 1578 17 1579 15 1580 16 1581 17 1582 15 1583 16 1584 17 1585 15 1586 16 1587 17 1588 15 1589 16 1590 17 1591 15 1592 16 1593 17 1594 15 1595 16 1596 17 1597 15 1598 16 1599 17 1600 15 1601 16 1602 15 1603 16 1604 17 1605 15 1606 16 1607 17 1608 15 1609 16 1610 17 1611 15 1612 16 1613 17 1614 15 1615 16 1616 16 1617 17 1618 15 1619 16 1620 17 1621 15 1622 16 1623 17 1624 15 1625 16 1626 17 1627 15 1628 16 1629 17 1630 15 1631 16 1632 17 1633 15 1634 16 1635 17 1636 15 1637 16 1638 15 1639 16 1640 17 1641 15 1642 16 1643 17 1644 15 1645 16 1646 17 1647 15 1648 16 1649 17 1650 15 1651 16 1652 17 1653 15 1654 16 1655 17 1656 15 1657 16 1658 17 1659 15 1660 16 1661 17 1662 15 1663 16 1664 17 1665 15 1666 16 1667 17 1668 15 1669 16 1670 17 1671 15 1672 16 1673 17 1674 15 1675 16 1676 17 1677 15 1678 16 1679 17 1680 15 1681 16 1682 15 1683 16 1684 15 1685 16 1686 17 1687 15 1688 16 1689 17 1690 15 1691 16 1692 17 1693 15 1694 16 1695 17 1696 15 1697 16 1698 17 1699 15 1700 16 1701 15 1702 16 1703 15 1704 16 1705 15 1706 16 1707 15 1708 16 1709 15 1710 16 1711 15 1712 16 1713 15 1714 16 1715 15 1716 16 1717 15 1718 16 1719 15 1720 16 1721 15 1722 16 1723 15 1724 16 1725 15 1726 16 1727 7 1728 8 1729 9 1730 7 1731 8 1732 9 1733 6 1734 7 1735 8 1736 9 1737 6 1738 7 1739 8 1740 9 1741 6 1742 7 1743 8 1744 9 1745 6 1746 7 1747 8 1748 9 1749 6 1750 7 1751 8 1752 9 1753 6 1754 7 1755 8 1756 9 1757 6 1758 7 1759 8 1760 9 1761 6 1762 7 1763 8 1764 9 1765 6 1766 7 1767 8 1768 9 1769 6 1770 7 1771 8 1772 9 1773 6 1774 7 1775 8 1776 9 1777 6 1778 7 1779 8 1780 9 1781 6 1782 7 1783 8 1784 9 1785 6 1786 7 1787 8 1788 9 1789 6 1790 7 1791 8 1792 9 1793 6 1794 7 1795 8 1796 9 1797 6 1798 7 1799 8 1800 9 1801 6 1802 7 1803 8 1804 9 1805 6 1806 7 1807 8 1808 9 1809 6 1810 7 1811 8 1812 9 1813 6 1814 7 1815 8 1816 9 1817 6 1818 7 1819 8 1820 9 1821 6 1822 7 1823 8 1824 9 1825 6 1826 7 1827 8 1828 9 1829 6 1830 7 1831 8 1832 9 1833 6 1834 7 1835 8 1836 9 1837 6 1838 7 1839 8 1840 9 1841 6 1842 7 1843 8 1844 9 1845 6 1846 7 1847 8 1848 9 1849 6 1850 7 1851 8 1852 9 1853 6 1854 7 1855 8 1856 9 1857 6 1858 7 1859 8 1860 9 1861 6 1862 7 1863 8 1864 9 1865 6 1866 7 1867 8 1868 9 1869 6 1870 7 1871 8 1872 9 1873 6 1874 7 1875 8 1876 9 1877 6 1878 7 1879 8 1880 9 1881 6 1882 7 1883 8 1884 9 1885 6 1886 7 1887 8 1888 9 1889 6 1890 7 1891 8 1892 9 1893 6 1894 7 1895 8 1896 9 1897 6 1898 7 1899 8 1900 9 1901 6 1902 7 1903 8 1904 9 1905 6 1906 7 1907 8 1908 9 1909 6 1910 7 1911 8 1912 9 1913 6 1914 7 1915 8 1916 9 1917 6 1918 7 1919 8 1920 9 1921 6 1922 7 1923 8 1924 9 1925 6 1926 7 1927 8 1928 9 1929 6 1930 7 1931 8 1932 9 1933 6 1934 7 1935 8 1936 9 1937 6 1938 7 1939 8 1940 9 1941 6 1942 7 1943 8 1944 9 1945 6 1946 7 1947 8 1948 9 1949 6 1950 7 1951 8 1952 9 1953 6 1954 7 1955 8 1956 9 1957 6 1958 7 1959 8 1960 9 1961 6 1962 7 1963 8 1964 9 1965 6 1966 7 1967 8 1968 9 1969 6 1970 7 1971 8 1972 9 1973 6 1974 7 1975 8 1976 9 1977 6 1978 7 1979 8 1980 9 1981 6 1982 7 1983 8 1984 9 1985 6 1986 7 1987 8 1988 9 1989 6 1990 7 1991 8 1992 9 1993 6 1994 7 1995 8 1996 9 1997 6 1998 7 1999 8 2000 9 2001 6 2002 7 2003 8 2004 9 2005 6 2006 7 2007 8 2008 9 2009 6 2010 7 2011 8 2012 9 2013 6 2014 7 2015 8 2016 9 2017 6 2018 7 2019 8 2020 9 2021 6 2022 7 2023 8 2024 9 2025 6 2026 7 2027 8 2028 9 2029 6 2030 7 2031 8 2032 9 2033 6 2034 7 2035 8 2036 9 2037 6 2038 7 2039 8 2040 9 2041 6 2042 7 2043 8 2044 9 2045 6 2046 7 2047 8 2048 9 2049 6 2050 7 2051 8 2052 9 2053 6 2054 7 2055 8 2056 9 2057 6 2058 7 2059 8 2060 9 2061 6 2062 7 2063 8 2064 9 2065 6 2066 7 2067 8 2068 9 2069 6 2070 7 2071 8 2072 9 2073 6 2074 7 2075 8 2076 9 2077 6 2078 7 2079 8 2080 9 2081 6 2082 7 2083 8 2084 9 2085 6 2086 7 2087 8 2088 9 2089 6 2090 7 2091 8 2092 9 2093 6 2094 7 2095 8 2096 9 2097 6 2098 7 2099 8 2100 9 2101 6 2102 7 2103 8 2104 9 2105 6 2106 7 2107 8 2108 9 2109 6 2110 7 2111 8 2112 9 2113 6 2114 7 2115 8 2116 9 2117 6 2118 7 2119 8 2120 9 2121 6 2122 7 2123 8 2124 9 2125 6 2126 7 2127 8 2128 9 2129 6 2130 7 2131 8 2132 9 2133 6 2134 7 2135 8 2136 9 2137 6 2138 7 2139 8 2140 9 2141 6 2142 7 2143 8 2144 9 2145 6 2146 7 2147 8 2148 9 2149 6 2150 7 2151 8 2152 9 2153 6 2154 7 2155 8 2156 9 2157 6 2158 7 2159 8 2160 9 2161 6 2162 7 2163 8 2164 9 2165 6 2166 7 2167 8 2168 9 2169 6 2170 7 2171 8 2172 9 2173 6 2174 7 2175 8 2176 9 2177 7 2178 8 2179 9 2180 6 2181 7 2182 8 2183 9 2184 6 2185 7 2186 8 2187 9 2188 6 2189 7 2190 8 2191 9 2192 6 2193 7 2194 8 2195 9 2196 7 2197 8 2198 9 2199 7 2200 8 2201 9 2202 7 2203 8 2204 9 2205 6 2206 7 2207 8 2208 9 2209 6 2210 7 2211 8 2212 9 2213 6 2214 7 2215 8 2216 9 2217 6 2218 7 2219 8 2220 9 2221 7 2222 8 2223 9 2224 6 2225 7 2226 8 2227 9 2228 7 2229 8 2230 9 2231 6 2232 7 2233 8 2234 9 2235 7 2236 8 2237 9 2238 7 2239 8 2240 9 2241 7 2242 8 2243 9 2244 6 2245 7 2246 8 2247 9 2248 7 2249 8 2250 9 2251 7 2252 8 2253 9 2254 7 2255 8 2256 9 2257 7 2258 8 2259 9 2260 7 2261 8 2262 9 2263 6 2264 7 2265 8 2266 9 2267 6 2268 7 2269 8 2270 9 2271 6 2272 7 2273 8 2274 9 2275 6 2276 7 2277 8 2278 9 2279 6 2280 7 2281 8 2282 9 2283 6 2284 7 2285 8 2286 9 2287 6 2288 7 2289 8 2290 9 2291 6 2292 7 2293 8 2294 9 2295 6 2296 7 2297 8 2298 9 2299 6 2300 7 2301 8 2302 9 2303 6 2304 7 2305 8 2306 9 2307 6 2308 7 2309 8 2310 9 2311 6 2312 7 2313 8 2314 9 2315 7 2316 8 2317 9 2318 6 2319 7 2320 8 2321 9 2322 6 2323 7 2324 8 2325 9 2326 6 2327 7 2328 8 2329 9 2330 6 2331 7 2332 8 2333 9 2334 6 2335 7 2336 8 2337 9 2338 6 2339 7 2340 8 2341 9 2342 6 2343 7 2344 8 2345 9 2346 6 2347 7 2348 8 2349 9 2350 6 2351 7 2352 8 2353 9 2354 6 2355 7 2356 8 2357 9 2358 6 2359 7 2360 8 2361 9 2362 6 2363 7 2364 8 2365 9 2366 6 2367 7 2368 8 2369 9 2370 6 2371 7 2372 8 2373 9 2374 6 2375 7 2376 8 2377 9 2378 6 2379 7 2380 8 2381 9 2382 7 2383 8 2384 9 2385 7 2386 8 2387 9 2388 6 2389 7 2390 8 2391 9 2392 6 2393 7 2394 8 2395 9 2396 6 2397 7 2398 8 2399 9 2400 6 2401 7 2402 8 2403 9 2404 6 2405 7 2406 8 2407 9 2408 6 2409 7 2410 8 2411 9 2412 6 2413 7 2414 8 2415 9 2416 6 2417 7 2418 8 2419 9 2420 6 2421 7 2422 8 2423 9 2424 6 2425 7 2426 8 2427 9 2428 6 2429 7 2430 8 2431 9 2432 6 2433 7 2434 8 2435 9 2436 6 2437 7 2438 8 2439 9 2440 6 2441 7 2442 8 2443 9 2444 6 2445 7 2446 8 2447 9 2448 6 2449 7 2450 8 2451 9 2452 6 2453 7 2454 8 2455 9 2456 6 2457 7 2458 8 2459 9 2460 6 2461 7 2462 8 2463 9 2464 6 2465 7 2466 8 2467 9 2468 6 2469 7 2470 8 2471 9 2472 6 2473 7 2474 8 2475 9 2476 6 2477 7 2478 8 2479 9 2480 6 2481 7 2482 8 2483 9 2484 6 2485 7 2486 8 2487 9 2488 6 2489 7 2490 8 2491 9 2492 6 2493 7 2494 8 2495 9 2496 6 2497 7 2498 8 2499 9 2500 6 2501 7 2502 8 2503 9 2504 6 2505 7 2506 8 2507 9 2508 6 2509 7 2510 8 2511 9 2512 6 2513 7 2514 8 2515 9 2516 6 2517 7 2518 8 2519 9 2520 6 2521 7 2522 8 2523 9 2524 6 2525 7 2526 8 2527 9 2528 6 2529 7 2530 8 2531 9 2532 6 2533 7 2534 8 2535 9 2536 7 2537 8 2538 9 2539 6 2540 7 2541 8 2542 9 2543 6 2544 7 2545 8 2546 9 2547 6 2548 7 2549 8 2550 9 2551 6 2552 7 2553 8 2554 9 2555 6 2556 7 2557 8 2558 9 2559 6 2560 7 2561 8 2562 9 2563 7 2564 8 2565 9 2566 7 2567 8 2568 9 2569 7 2570 8 2571 9 2572 6 2573 7 2574 8 2575 9 2576 6 2577 7 2578 8 2579 9 2580 6 2581 7 2582 8 2583 9 2584 6 2585 7 2586 8 2587 9 2588 7 2589 8 2590 9 2591 7 2592 8 2593 9 2594 6 2595 7 2596 8 2597 9 2598 6 2599 7 2600 8 2601 9 2602 7 2603 8 2604 9 2605 6 2606 7 2607 8 2608 9 2609 6 2610 7 2611 8 2612 9 2613 6 2614 7 2615 8 2616 9 2617 6 2618 7 2619 8 2620 9 2621 7 2622 8 2623 9 2624 13 2625 6 2626 7 2627 8 2628 9 2629 6 2630 7 2631 8 2632 9 2633 7 2634 8 2635 9 2636 6 2637 7 2638 8 2639 9 2640 6 2641 7 2642 8 2643 9 2644 7 2645 8 2646 9 2647 13 2648 6 2649 7 2650 8 2651 9 2652 6 2653 7 2654 8 2655 9 2656 7 2657 8 2658 9 2659 6 2660 7 2661 8 2662 9 2663 6 2664 7 2665 8 2666 9 2667 6 2668 7 2669 8 2670 9 2671 6 2672 7 2673 8 2674 9 2675 6 2676 7 2677 8 2678 9 2679 7 2680 8 2681 9 2682 13 2683 6 2684 7 2685 8 2686 9 2687 6 2688 7 2689 8 2690 9 2691 6 2692 7 2693 8 2694 9 2695 6 2696 7 2697 8 2698 9 2699 6 2700 7 2701 8 2702 9 2703 6 2704 7 2705 8 2706 9 2707 7 2708 8 2709 9 2710 6 2711 7 2712 8 2713 9 2714 6 2715 7 2716 8 2717 9 2718 6 2719 7 2720 8 2721 9 2722 6 2723 7 2724 8 2725 9 2726 6 2727 7 2728 8 2729 9 2730 6 2731 7 2732 8 2733 9 2734 6 2735 7 2736 8 2737 9 2738 6 2739 7 2740 8 2741 9 2742 7 2743 8 2744 9 2745 7 2746 8 2747 9 2748 6 2749 7 2750 8 2751 9 2752 6 2753 7 2754 8 2755 9 2756 7 2757 8 2758 9 2759 7 2760 8 2761 9 2762 6 2763 7 2764 8 2765 9 2766 6 2767 7 2768 8 2769 9 2770 6 2771 7 2772 8 2773 9 2774 6 2775 7 2776 8 2777 9 2778 6 2779 7 2780 8 2781 9 2782 6 2783 7 2784 8 2785 9 2786 7 2787 8 2788 9 2789 7 2790 8 2791 9 2792 6 2793 7 2794 8 2795 9 2796 6 2797 7 2798 8 2799 9 2800 7 2801 8 2802 9 2803 7 2804 8 2805 9 2806 6 2807 7 2808 8 2809 9 2810 6 2811 7 2812 8 2813 9 2814 6 2815 7 2816 8 2817 9 2818 6 2819 7 2820 8 2821 9 2822 6 2823 7 2824 8 2825 9 2826 6 2827 7 2828 8 2829 9 2830 7 2831 8 2832 9 2833 6 2834 7 2835 8 2836 9 2837 6 2838 7 2839 8 2840 9 2841 6 2842 7 2843 8 2844 9 2845 6 2846 7 2847 8 2848 9 2849 6 2850 7 2851 8 2852 9 2853 6 2854 7 2855 8 2856 9 2857 6 2858 7 2859 8 2860 9 2861 6 2862 7 2863 8 2864 9 2865 6 2866 7 2867 8 2868 9 2869 6 2870 7 2871 8 2872 9 2873 10 2874 11 2875 12 2876 10 2877 11 2878 12 2879 6 2880 10 2881 11 2882 12 2883 6 2884 10 2885 11 2886 12 2887 6 2888 10 2889 11 2890 12 2891 6 2892 10 2893 11 2894 12 2895 6 2896 10 2897 11 2898 12 2899 6 2900 10 2901 11 2902 12 2903 6 2904 10 2905 11 2906 12 2907 6 2908 10 2909 11 2910 12 2911 6 2912 10 2913 11 2914 12 2915 6 2916 10 2917 11 2918 12 2919 6 2920 10 2921 11 2922 12 2923 6 2924 10 2925 11 2926 12 2927 6 2928 10 2929 11 2930 12 2931 6 2932 10 2933 11 2934 12 2935 6 2936 10 2937 11 2938 12 2939 6 2940 10 2941 11 2942 12 2943 6 2944 10 2945 11 2946 12 2947 6 2948 10 2949 11 2950 12 2951 6 2952 10 2953 11 2954 12 2955 6 2956 10 2957 11 2958 12 2959 6 2960 10 2961 11 2962 12 2963 6 2964 10 2965 11 2966 12 2967 6 2968 10 2969 11 2970 12 2971 6 2972 10 2973 11 2974 12 2975 6 2976 10 2977 11 2978 12 2979 6 2980 10 2981 11 2982 12 2983 6 2984 10 2985 11 2986 12 2987 6 2988 10 2989 11 2990 12 2991 6 2992 10 2993 11 2994 12 2995 6 2996 10 2997 11 2998 12 2999 6 3000 10 3001 11 3002 12 3003 6 3004 10 3005 11 3006 12 3007 6 3008 10 3009 11 3010 12 3011 6 3012 10 3013 11 3014 12 3015 6 3016 10 3017 11 3018 12 3019 6 3020 10 3021 11 3022 12 3023 6 3024 10 3025 11 3026 12 3027 6 3028 10 3029 11 3030 12 3031 6 3032 10 3033 11 3034 12 3035 6 3036 10 3037 11 3038 12 3039 6 3040 10 3041 11 3042 12 3043 6 3044 10 3045 11 3046 12 3047 6 3048 10 3049 11 3050 12 3051 6 3052 10 3053 11 3054 12 3055 6 3056 10 3057 11 3058 12 3059 6 3060 10 3061 11 3062 12 3063 6 3064 10 3065 11 3066 12 3067 6 3068 10 3069 11 3070 12 3071 6 3072 10 3073 11 3074 12 3075 6 3076 10 3077 11 3078 12 3079 6 3080 10 3081 11 3082 12 3083 6 3084 10 3085 11 3086 12 3087 6 3088 10 3089 11 3090 12 3091 6 3092 10 3093 11 3094 12 3095 6 3096 10 3097 11 3098 12 3099 6 3100 10 3101 11 3102 12 3103 6 3104 10 3105 11 3106 12 3107 6 3108 10 3109 11 3110 12 3111 6 3112 10 3113 11 3114 12 3115 6 3116 10 3117 11 3118 12 3119 6 3120 10 3121 11 3122 12 3123 6 3124 10 3125 11 3126 12 3127 6 3128 10 3129 11 3130 12 3131 6 3132 10 3133 11 3134 12 3135 6 3136 10 3137 11 3138 12 3139 6 3140 10 3141 11 3142 12 3143 6 3144 10 3145 11 3146 12 3147 6 3148 10 3149 11 3150 12 3151 6 3152 10 3153 11 3154 12 3155 6 3156 10 3157 11 3158 12 3159 6 3160 10 3161 11 3162 12 3163 6 3164 10 3165 11 3166 12 3167 6 3168 10 3169 11 3170 12 3171 6 3172 10 3173 11 3174 12 3175 6 3176 10 3177 11 3178 12 3179 6 3180 10 3181 11 3182 12 3183 6 3184 10 3185 11 3186 12 3187 6 3188 10 3189 11 3190 12 3191 6 3192 10 3193 11 3194 12 3195 6 3196 10 3197 11 3198 12 3199 6 3200 10 3201 11 3202 12 3203 6 3204 10 3205 11 3206 12 3207 6 3208 10 3209 11 3210 12 3211 6 3212 10 3213 11 3214 12 3215 6 3216 10 3217 11 3218 12 3219 6 3220 10 3221 11 3222 12 3223 6 3224 10 3225 11 3226 12 3227 6 3228 10 3229 11 3230 12 3231 6 3232 10 3233 11 3234 12 3235 6 3236 10 3237 11 3238 12 3239 6 3240 10 3241 11 3242 12 3243 6 3244 10 3245 11 3246 12 3247 6 3248 10 3249 11 3250 12 3251 6 3252 10 3253 11 3254 12 3255 6 3256 10 3257 11 3258 12 3259 6 3260 10 3261 11 3262 12 3263 6 3264 10 3265 11 3266 12 3267 6 3268 10 3269 11 3270 12 3271 6 3272 10 3273 11 3274 12 3275 6 3276 10 3277 11 3278 12 3279 6 3280 10 3281 11 3282 12 3283 6 3284 10 3285 11 3286 12 3287 6 3288 10 3289 11 3290 12 3291 6 3292 10 3293 11 3294 12 3295 6 3296 10 3297 11 3298 12 3299 6 3300 10 3301 11 3302 12 3303 6 3304 10 3305 11 3306 12 3307 6 3308 10 3309 11 3310 12 3311 6 3312 10 3313 11 3314 12 3315 6 3316 10 3317 11 3318 12 3319 6 3320 10 3321 11 3322 12 3323 6 3324 10 3325 11 3326 12 3327 6 3328 10 3329 11 3330 12 3331 10 3332 11 3333 12 3334 6 3335 10 3336 11 3337 12 3338 6 3339 10 3340 11 3341 12 3342 6 3343 10 3344 11 3345 12 3346 6 3347 10 3348 11 3349 12 3350 6 3351 10 3352 11 3353 12 3354 6 3355 10 3356 11 3357 12 3358 6 3359 10 3360 11 3361 12 3362 6 3363 10 3364 11 3365 12 3366 6 3367 10 3368 11 3369 12 3370 6 3371 10 3372 11 3373 12 3374 10 3375 11 3376 12 3377 6 3378 10 3379 11 3380 12 3381 6 3382 10 3383 11 3384 12 3385 6 3386 10 3387 11 3388 12 3389 6 3390 10 3391 11 3392 12 3393 10 3394 11 3395 12 3396 10 3397 11 3398 12 3399 10 3400 11 3401 12 3402 6 3403 10 3404 11 3405 12 3406 6 3407 10 3408 11 3409 12 3410 6 3411 10 3412 11 3413 12 3414 6 3415 10 3416 11 3417 12 3418 10 3419 11 3420 12 3421 6 3422 10 3423 11 3424 12 3425 10 3426 11 3427 12 3428 6 3429 10 3430 11 3431 12 3432 10 3433 11 3434 12 3435 10 3436 11 3437 12 3438 10 3439 11 3440 12 3441 6 3442 10 3443 11 3444 12 3445 10 3446 11 3447 12 3448 10 3449 11 3450 12 3451 10 3452 11 3453 12 3454 10 3455 11 3456 12 3457 10 3458 11 3459 12 3460 6 3461 10 3462 11 3463 12 3464 6 3465 10 3466 11 3467 12 3468 6 3469 10 3470 11 3471 12 3472 6 3473 10 3474 11 3475 12 3476 6 3477 10 3478 11 3479 12 3480 6 3481 10 3482 11 3483 12 3484 6 3485 10 3486 11 3487 12 3488 6 3489 10 3490 11 3491 12 3492 6 3493 10 3494 11 3495 12 3496 6 3497 10 3498 11 3499 12 3500 6 3501 10 3502 11 3503 12 3504 6 3505 10 3506 11 3507 12 3508 6 3509 10 3510 11 3511 12 3512 10 3513 11 3514 12 3515 6 3516 10 3517 11 3518 12 3519 6 3520 10 3521 11 3522 12 3523 6 3524 10 3525 11 3526 12 3527 6 3528 10 3529 11 3530 12 3531 6 3532 10 3533 11 3534 12 3535 6 3536 10 3537 11 3538 12 3539 6 3540 10 3541 11 3542 12 3543 6 3544 10 3545 11 3546 12 3547 6 3548 10 3549 11 3550 12 3551 6 3552 10 3553 11 3554 12 3555 6 3556 10 3557 11 3558 12 3559 6 3560 10 3561 11 3562 12 3563 6 3564 10 3565 11 3566 12 3567 6 3568 10 3569 11 3570 12 3571 6 3572 10 3573 11 3574 12 3575 6 3576 10 3577 11 3578 12 3579 10 3580 11 3581 12 3582 10 3583 11 3584 12 3585 6 3586 10 3587 11 3588 12 3589 6 3590 10 3591 11 3592 12 3593 6 3594 10 3595 11 3596 12 3597 6 3598 10 3599 11 3600 12 3601 6 3602 10 3603 11 3604 12 3605 6 3606 10 3607 11 3608 12 3609 6 3610 10 3611 11 3612 12 3613 6 3614 10 3615 11 3616 12 3617 6 3618 10 3619 11 3620 12 3621 6 3622 10 3623 11 3624 12 3625 6 3626 10 3627 11 3628 12 3629 6 3630 10 3631 11 3632 12 3633 6 3634 10 3635 11 3636 12 3637 6 3638 10 3639 11 3640 12 3641 6 3642 10 3643 11 3644 12 3645 6 3646 10 3647 11 3648 12 3649 6 3650 10 3651 11 3652 12 3653 6 3654 10 3655 11 3656 12 3657 6 3658 10 3659 11 3660 12 3661 6 3662 10 3663 11 3664 12 3665 6 3666 10 3667 11 3668 12 3669 6 3670 10 3671 11 3672 12 3673 6 3674 10 3675 11 3676 12 3677 6 3678 10 3679 11 3680 12 3681 6 3682 10 3683 11 3684 12 3685 6 3686 10 3687 11 3688 12 3689 6 3690 10 3691 11 3692 12 3693 6 3694 10 3695 11 3696 12 3697 6 3698 10 3699 11 3700 12 3701 6 3702 10 3703 11 3704 12 3705 6 3706 10 3707 11 3708 12 3709 6 3710 10 3711 11 3712 12 3713 6 3714 10 3715 11 3716 12 3717 6 3718 10 3719 11 3720 12 3721 6 3722 10 3723 11 3724 12 3725 6 3726 10 3727 11 3728 12 3729 6 3730 10 3731 11 3732 12 3733 6 3734 10 3735 11 3736 12 3737 6 3738 10 3739 11 3740 12 3741 6 3742 10 3743 11 3744 12 3745 6 3746 10 3747 11 3748 12 3749 6 3750 10 3751 11 3752 12 3753 6 3754 10 3755 11 3756 12 3757 10 3758 11 3759 12 3760 6 3761 10 3762 11 3763 12 3764 6 3765 10 3766 11 3767 12 3768 6 3769 10 3770 11 3771 12 3772 6 3773 10 3774 11 3775 12 3776 6 3777 10 3778 11 3779 12 3780 6 3781 10 3782 11 3783 12 3784 6 3785 10 3786 11 3787 12 3788 6 3789 10 3790 11 3791 12 3792 10 3793 11 3794 12 3795 10 3796 11 3797 12 3798 6 3799 10 3800 11 3801 12 3802 6 3803 10 3804 11 3805 12 3806 6 3807 10 3808 11 3809 12 3810 6 3811 10 3812 11 3813 12 3814 10 3815 11 3816 12 3817 10 3818 11 3819 12 3820 6 3821 10 3822 11 3823 12 3824 6 3825 10 3826 11 3827 12 3828 10 3829 11 3830 12 3831 6 3832 10 3833 11 3834 12 3835 6 3836 10 3837 11 3838 12 3839 6 3840 10 3841 11 3842 12 3843 6 3844 10 3845 11 3846 12 3847 10 3848 11 3849 12 3850 13 3851 6 3852 10 3853 11 3854 12 3855 6 3856 10 3857 11 3858 12 3859 10 3860 11 3861 12 3862 6 3863 10 3864 11 3865 12 3866 6 3867 10 3868 11 3869 12 3870 10 3871 11 3872 12 3873 13 3874 6 3875 10 3876 11 3877 12 3878 6 3879 10 3880 11 3881 12 3882 10 3883 11 3884 12 3885 6 3886 10 3887 11 3888 12 3889 6 3890 10 3891 11 3892 12 3893 6 3894 10 3895 11 3896 12 3897 6 3898 10 3899 11 3900 12 3901 6 3902 10 3903 11 3904 12 3905 10 3906 11 3907 12 3908 13 3909 6 3910 10 3911 11 3912 12 3913 6 3914 10 3915 11 3916 12 3917 6 3918 10 3919 11 3920 12 3921 6 3922 10 3923 11 3924 12 3925 6 3926 10 3927 11 3928 12 3929 6 3930 10 3931 11 3932 12 3933 10 3934 11 3935 12 3936 6 3937 10 3938 11 3939 12 3940 6 3941 10 3942 11 3943 12 3944 6 3945 10 3946 11 3947 12 3948 6 3949 10 3950 11 3951 12 3952 6 3953 10 3954 11 3955 12 3956 6 3957 10 3958 11 3959 12 3960 6 3961 10 3962 11 3963 12 3964 6 3965 10 3966 11 3967 12 3968 10 3969 11 3970 12 3971 10 3972 11 3973 12 3974 6 3975 10 3976 11 3977 12 3978 6 3979 10 3980 11 3981 12 3982 10 3983 11 3984 12 3985 10 3986 11 3987 12 3988 6 3989 10 3990 11 3991 12 3992 6 3993 10 3994 11 3995 12 3996 6 3997 10 3998 11 3999 12 4000 6 4001 10 4002 11 4003 12 4004 6 4005 10 4006 11 4007 12 4008 6 4009 10 4010 11 4011 12 4012 10 4013 11 4014 12 4015 10 4016 11 4017 12 4018 6 4019 10 4020 11 4021 12 4022 6 4023 10 4024 11 4025 12 4026 10 4027 11 4028 12 4029 10 4030 11 4031 12 4032 6 4033 10 4034 11 4035 12 4036 6 4037 10 4038 11 4039 12 4040 6 4041 10 4042 11 4043 12 4044 6 4045 10 4046 11 4047 12 4048 6 4049 10 4050 11 4051 12 4052 6 4053 10 4054 11 4055 12 4056 10 4057 11 4058 12 4059 6 4060 10 4061 11 4062 12 4063 6 4064 10 4065 11 4066 12 4067 6 4068 10 4069 11 4070 12 4071 6 4072 10 4073 11 4074 12 4075 6 4076 10 4077 11 4078 12 4079 6 4080 10 4081 11 4082 12 4083 6 4084 10 4085 11 4086 12 4087 6 4088 10 4089 11 4090 12 4091 6 4092 10 4093 11 4094 12 4095 6 4096 10 4097 11 4098 12 4099 6 4100 10 4101 13 4102 6 4103 10 4104 13 4105 6 4106 10 4107 5 4108 6 4109 10 4110 13 4111 5 4112 6 4113 6 4114 10 4115 5 4116 15 4117 17 4118 1 4119 5 4120 5 4121 6 4122 10 4123 6 4124 10 4125 1 4126 5 4127 15 4128 5 4129 15 4130 16 4131 5 4132 15 4133 5 4134 15 4135 6 4136 10 4137 13 4138 6 4139 10 4140 13 4141 6 4142 13 4143 6 4144 13 4145 6 4146 13 4147 13 0 6 4148 13 4149 6 4150 13 4151 6 4152 7 4153 13 4154 6 4155 10 4156 13 4157 6 4158 13 4159 6 4160 7 4161 8 4162 9 4163 13 4164 6 4165 7 4166 10 4167 13 4168 6 4169 10 4170 13 4171 6 4172 7 4173 5 4174 6 4175 5 4176 6 4177 13 4178 1 4179 3 4180 5 4181 1 4182 5 4183 13 4184 6 4185 7 4186 10 4187 5 4188 6 4189 6 4190 7 4191 5 4192 6 4193 1 4194 5 4195 5 4196 6 4197 13 4198 6 4199 7 4200 6 4201 7 4202 8 4203 9 4204 13 4205 6 4206 7 4207 8 4208 9 4209 5 4210 6 4211 13 4212 5 4213 6 4214 6 0 6 4215 7 4216 13 4217 6 4218 7 4219 6 4220 7 4221 6 4222 7 4223 8 4224 6 4225 7 4226 6 4227 7 4228 6 4229 10 4230 6 4231 7 4232 5 4233 6 4234 5 4235 6 4236 1 4237 5 4238 6 0 6 0 5 4239 6 4240 6 0 6 4241 10 4242 5 4243 6 4244 1 4245 5 4246 1 4247 5 4248 13 4249 1 4250 5 4251 1 4252 5 4253 13 4254 15 4255 6 4256 10 4257 5 4258 6 4259 1 4260 3 4261 5 4262 6 4263 7 4264 10 4265 6 0 1 4266 5 4267 1 4268 5 4269 15 4270 1 4271 5 4272 1 4273 5 4274 1 4275 2 4276 5 4277 1 4278 2 4279 5 4280 1 4281 2 4282 5 4283 1 4284 5 4285 1 4286 5 4287 1 4288 5 4289 1 4290 5 4291 1 4292 5 4293 1 4294 2 4295 5 4296 1 4297 5 4298 1 4299 5 4300 1 4301 5 4302 13 4303 1 4304 5 4305 1 4306 5 4307 1 4308 2 4309 5 4310 1 4311 5 4312 15 4313 1 4314 5 4315 15 4316 1 4317 5 4318 1 4319 3 4320 5 4321 1 4322 5 4323 5 4324 6 4325 5 4326 6 4327 5 4328 6 4329 1 4330 5 4331 13 4332 5 4333 6 4334 13 4335 1 4336 5 4337 13 4338 1 4339 5 4340 13 4341 15 4342 6 4343 7 4344 8 4345 6 4346 7 4347 8 4348 6 4349 7 4350 10 4351 13 4352 6 4353 7 4354 8 4355 13 4356 6 4357 7 4358 8 4359 13 4360 6 4361 7 4362 10 4363 13 4364 7 4365 8 4366 9 4367 7 4368 8 4369 6 4370 7 4371 8 4372 9 4373 6 4374 7 4375 8 4376 9 4377 7 4378 8 4379 9 4380 7 4381 8 4382 6 4383 7 4384 8 4385 9 4386 6 4387 7 4388 8 4389 9 4390 13 4391 6 4392 7 4393 8 4394 9 4395 13 4396 6 4397 7 4398 8 4399 9 4400 6 4401 7 4402 8 4403 6 4404 7 4405 8 4406 6 4407 7 4408 8 4409 6 4410 7 4411 8 4412 6 4413 7 4414 8 4415 6 4416 7 4417 8 4418 9 4419 13 4420 7 4421 8 4422 6 4423 7 4424 8 4425 9 4426 7 4427 8 4428 9 4429 6 4430 7 4431 8 4432 9 4433 6 4434 7 4435 8 4436 9 4437 6 4438 7 4439 8 4440 9 4441 6 4442 7 4443 8 4444 9 4445 7 4446 8 4447 9 4448 6 4449 7 4450 8 4451 9 4452 7 4453 8 4454 7 4455 8 4456 7 4457 8 4458 6 4459 7 4460 8 4461 9 4462 6 4463 7 4464 8 4465 9 4466 6 4467 7 4468 8 4469 9 4470 6 4471 10 4472 13 4473 13 0 13 0 6 4474 10 4475 13 4476 6 4477 13 4478 14 4479 13 0 6 4480 10 4481 13 4482 13 0 13 0 6 4483 13 4484 13 0 6 4485 10 4486 13 4487 13 0 6 4488 13 4489 14 4490 6 4491 13 4492 14 4493 13 0 13 0 13 0 5 4494 6 4495 7 4496 13 4497 5 4498 6 4499 10 4500 13 4501 5 4502 6 4503 10 4504 13 4505 1 4506 5 4507 15 4508 5 4509 6 4510 13 4511 5 4512 6 4513 10 4514 13 4515 5 4516 6 4517 13 4518 5 4519 6 4520 13 4521 5 4522 6 4523 13 4524 5 4525 6 4526 13 4527 5 4528 6 4529 1 4530 5 4531 15 4532 1 4533 5 4534 15 4535 5 4536 6 4537 10 4538 13 4539 5 4540 6 4541 10 4542 13 4543 6 4544 10 4545 13 4546 14 4547 6 4548 10 4549 13 4550 14 4551 13 0 13 0 6 4552 10 4553 13 4554 14 4555 6 4556 10 4557 13 4558 6 4559 10 4560 13 4561 6 4562 10 4563 13 4564 6 4565 10 4566 13 4567 6 4568 10 4569 13 4570 6 4571 13 4572 14 4573 6 4574 10 4575 13 4576 14 4577 6 4578 13 4579 6 4580 10 4581 13 4582 14 4583 6 4584 10 4585 13 4586 14 4587 13 0 13 0 6 4588 10 4589 13 4590 6 4591 10 4592 13 4593 14 4594 13 4595 14 4596 13 0 13 0 6 4597 10 4598 13 4599 14 4600 6 4601 13 4602 14 4603 6 4604 10 4605 13 4606 6 4607 10 4608 13 4609 6 4610 10 4611 13 4612 14 4613 13 0 13 0 6 4614 10 4615 13 4616 13 0 6 4617 10 4618 13 4619 14 4620 6 4621 10 4622 13 4623 14 4624 6 4625 10 4626 13 4627 6 4628 10 4629 13 4630 6 4631 10 4632 13 4633 6 4634 13 4635 14 4636 6 4637 10 4638 13 4639 6 4640 10 4641 13 4642 14 4643 13 0 13 0 13 0 6 4644 13 4645 14 4646 13 0 13 0 13 0 13 0 6 4647 10 4648 13 4649 6 4650 10 4651 13 4652 13 0 13 0 13 0 6 4653 10 4654 13 4655 14 4656 6 4657 10 4658 13 4659 14 4660 6 4661 10 4662 13 4663 14 4664 6 4665 13 4666 14 4667 6 4668 13 4669 14 4670 6 4671 13 4672 14 4673 13 0 6 4674 10 4675 13 4676 14 4677 6 4678 10 4679 13 4680 14 4681 6 4682 10 4683 13 4684 14 4685 6 4686 10 4687 13 4688 14 4689 13 0 6 4690 13 4691 13 0 13 0 13 0 13 0 13 0 13 0 13 4692 13 4693 6 4694 10 4695 13 4696 14 4697 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 4698 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 1 4699 2 4700 1 4701 2 4702 1 4703 2 4704 1 4705 2 4706 1 4707 2 4708 1 4709 2 4710 1 4711 2 4712 3 4713 1 4714 2 4715 3 4716 1 4717 2 4718 3 4719 1 4720 2 4721 1 4722 2 4723 1 4724 2 4725 1 4726 2 4727 1 4728 2 4729 1 4730 2 4731 1 4732 2 4733 3 4734 1 4735 2 4736 3 4737 1 4738 2 4739 3 4740 1 4741 5 4742 1 0 1 0 1 4743 5 4744 1 4745 5 4746 1 4747 5 4748 1 4749 5 4750 1 4751 5 4752 1 4753 5 4754 1 4755 2 4756 1 4757 2 4758 1 4759 2 4760 1 4761 2 4762 1 4763 2 4764 1 4765 2 4766 1 4767 2 4768 3 4769 1 4770 2 4771 3 4772 1 4773 2 4774 3 4775 6 4776 10 4777 13 4778 5 4779 6 4780 7 4781 6 0 5 4782 6 4783 5 4784 6 4785 6 4786 7 4787 6 0 6 4788 7 4789 10 4790 13 4791 5 4792 6 4793 13 4794 6 4795 10 4796 13 4797 14 4798 13 0 13 0 6 4799 7 4800 13 4801 6 4802 7 4803 13 4804 6 4805 13 4806 6 4807 13 4808 6 4809 13 4810 13 0 6 4811 13 4812 6 4813 13 4814 6 4815 10 4816 13 4817 6 4818 7 4819 13 4820 6 4821 13 4822 6 4823 10 4824 11 4825 12 4826 13 4827 6 4828 7 4829 10 4830 13 4831 6 4832 7 4833 13 4834 6 4835 10 4836 5 4837 6 4838 13 4839 5 4840 15 4841 17 4842 5 4843 13 4844 15 4845 6 4846 7 4847 10 4848 5 4849 6 4850 6 4851 10 4852 5 4853 6 4854 5 4855 15 4856 5 4857 6 4858 13 4859 6 4860 10 4861 6 4862 10 4863 11 4864 12 4865 13 4866 6 4867 10 4868 11 4869 12 4870 5 4871 6 4872 13 4873 5 4874 6 4875 6 0 6 4876 10 4877 13 4878 6 4879 10 4880 6 4881 10 4882 6 4883 10 4884 11 4885 6 4886 10 4887 6 4888 10 4889 6 4890 7 4891 6 4892 10 4893 5 4894 6 4895 5 4896 6 4897 5 4898 15 4899 6 0 6 0 5 4900 6 4901 6 0 6 4902 7 4903 5 4904 6 4905 5 4906 15 4907 5 4908 13 4909 15 4910 5 4911 15 4912 1 4913 5 4914 13 4915 15 4916 6 4917 7 4918 5 4919 6 4920 5 4921 15 4922 17 4923 6 4924 7 4925 10 4926 6 0 5 4927 15 4928 1 4929 5 4930 15 4931 5 4932 15 4933 5 4934 15 4935 5 4936 15 4937 16 4938 5 4939 15 4940 16 4941 5 4942 15 4943 16 4944 5 4945 15 4946 5 4947 15 4948 5 4949 15 4950 5 4951 15 4952 5 4953 15 4954 5 4955 15 4956 16 4957 5 4958 15 4959 5 4960 15 4961 5 4962 13 4963 15 4964 5 4965 15 4966 5 4967 15 4968 5 4969 15 4970 16 4971 1 4972 5 4973 15 4974 1 4975 5 4976 15 4977 5 4978 15 4979 5 4980 15 4981 17 4982 5 4983 15 4984 5 4985 6 4986 5 4987 6 4988 5 4989 6 4990 5 4991 6 4992 5 4993 13 4994 15 4995 5 4996 6 4997 13 4998 5 4999 13 5000 15 5001 1 5002 5 5003 13 5004 15 5005 6 5006 10 5007 11 5008 6 5009 10 5010 11 5011 6 5012 7 5013 10 5014 13 5015 6 5016 10 5017 11 5018 13 5019 6 5020 10 5021 11 5022 13 5023 6 5024 7 5025 10 5026 13 5027 10 5028 11 5029 12 5030 10 5031 11 5032 6 5033 10 5034 11 5035 12 5036 6 5037 10 5038 11 5039 12 5040 10 5041 11 5042 12 5043 10 5044 11 5045 6 5046 10 5047 11 5048 12 5049 6 5050 10 5051 11 5052 12 5053 13 5054 6 5055 10 5056 11 5057 12 5058 13 5059 6 5060 10 5061 11 5062 12 5063 6 5064 10 5065 11 5066 6 5067 10 5068 11 5069 6 5070 10 5071 11 5072 6 5073 10 5074 11 5075 6 5076 10 5077 11 5078 6 5079 10 5080 11 5081 12 5082 13 5083 10 5084 11 5085 6 5086 10 5087 11 5088 12 5089 10 5090 11 5091 12 5092 6 5093 10 5094 11 5095 12 5096 6 5097 10 5098 11 5099 12 5100 6 5101 10 5102 11 5103 12 5104 6 5105 10 5106 11 5107 12 5108 10 5109 11 5110 12 5111 6 5112 10 5113 11 5114 12 5115 10 5116 11 5117 10 5118 11 5119 10 5120 11 5121 6 5122 10 5123 11 5124 12 5125 6 5126 10 5127 11 5128 12 5129 6 5130 10 5131 11 5132 12 5133 13 0 6 5134 7 5135 13 5136 6 5137 13 5138 14 5139 13 0 6 5140 7 5141 13 5142 13 0 13 0 6 5143 13 5144 13 0 6 5145 7 5146 13 5147 13 0 6 5148 13 5149 14 5150 6 5151 13 5152 14 5153 13 0 13 0 13 0 5 5154 6 5155 13 5156 5 5157 6 5158 7 5159 13 5160 5 5161 6 5162 13 5163 5 5164 6 5165 13 5166 5 5167 6 5168 13 5169 5 5170 6 5171 13 5172 5 5173 6 5174 1 5175 5 5176 15 5177 1 5178 5 5179 15 5180 6 5181 13 5182 6 5183 7 5184 13 5185 14 5186 6 5187 7 5188 13 5189 14 5190 13 0 13 0 6 5191 7 5192 13 5193 6 5194 7 5195 13 5196 14 5197 13 5198 14 5199 13 0 13 0 6 5200 7 5201 13 5202 14 5203 6 5204 13 5205 14 5206 6 5207 7 5208 13 5209 6 5210 7 5211 13 5212 6 5213 7 5214 13 5215 14 5216 13 0 13 0 6 5217 7 5218 13 5219 13 0 6 5220 7 5221 13 5222 14 5223 6 5224 7 5225 13 5226 14 5227 6 5228 7 5229 13 5230 6 5231 7 5232 13 5233 6 5234 7 5235 13 5236 6 5237 13 5238 14 5239 6 5240 7 5241 13 5242 6 5243 7 5244 13 5245 14 5246 13 0 13 0 13 0 6 5247 13 5248 14 5249 13 0 13 0 13 0 13 0 6 5250 7 5251 13 5252 6 5253 7 5254 13 5255 13 0 13 0 13 0 6 5256 7 5257 13 5258 14 5259 6 5260 7 5261 13 5262 14 5263 6 5264 7 5265 13 5266 14 5267 6 5268 13 5269 14 5270 6 5271 13 5272 14 5273 6 5274 13 5275 14 5276 13 0 6 5277 7 5278 13 5279 14 5280 6 5281 7 5282 13 5283 14 5284 6 5285 7 5286 13 5287 14 5288 6 5289 7 5290 13 5291 14 5292 13 0 6 5293 13 5294 13 0 13 0 13 0 13 0 13 0 13 0 13 5295 13 5296 6 5297 7 5298 13 5299 14 5300 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 5301 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 15 5302 16 5303 15 5304 16 5305 15 5306 16 5307 15 5308 16 5309 15 5310 16 5311 15 5312 16 5313 15 5314 16 5315 17 5316 15 5317 16 5318 17 5319 15 5320 16 5321 17 5322 15 5323 16 5324 15 5325 16 5326 15 5327 16 5328 15 5329 16 5330 15 5331 16 5332 15 5333 16 5334 15 5335 16 5336 17 5337 15 5338 16 5339 17 5340 15 5341 16 5342 17 5343 5 5344 15 5345 15 0 15 0 5 5346 15 5347 5 5348 15 5349 5 5350 15 5351 5 5352 15 5353 5 5354 15 5355 5 5356 15 5357 15 5358 16 5359 15 5360 16 5361 15 5362 16 5363 15 5364 16 5365 15 5366 16 5367 15 5368 16 5369 15 5370 16 5371 17 5372 15 5373 16 5374 17 5375 15 5376 16 5377 17 5378 6 5379 7 5380 10 5381 13 5382 5 5383 6 5384 13 5385 6 5386 7 5387 13 5388 14 5389 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5390 10 5391 13 5392 6 5393 13 5394 14 5395 13 0 6 5396 10 5397 13 5398 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5399 7 5400 10 5401 13 5402 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5403 10 5404 13 5405 14 5406 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5407 10 5408 13 5409 14 5410 6 5411 10 5412 13 5413 14 5414 6 5415 10 5416 13 5417 14 5418 6 5419 10 5420 13 5421 14 5422 6 5423 10 5424 13 5425 6 5426 10 5427 13 5428 14 5429 13 5430 6 5431 10 5432 13 5433 14 5434 6 5435 10 5436 13 5437 14 5438 6 5439 10 5440 13 5441 14 5442 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5443 7 5444 13 5445 6 5446 13 5447 14 5448 13 0 6 5449 7 5450 13 5451 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5452 7 5453 13 5454 14 5455 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5456 7 5457 13 5458 14 5459 6 5460 7 5461 13 5462 14 5463 6 5464 7 5465 13 5466 14 5467 6 5468 7 5469 13 5470 14 5471 6 5472 7 5473 13 5474 6 5475 7 5476 13 5477 14 5478 13 5479 6 5480 7 5481 13 5482 14 5483 6 5484 7 5485 13 5486 14 5487 6 5488 7 5489 13 5490 14 5491 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5492 13 5493 13 5494 13 0 13 0 13 0 13 0 6 5495 13 5496 13 0 13 0 13 0 13 0 6 5497 13 5498 13 0 13 0 13 0 13 0 13 0 13 0 6 5499 13 5500 6 5501 13 5502 13 0 6 5503 13 5504 6 5505 13 5506 6 5507 13 5508 13 5509 6 5510 13 5511 13 0 13 5512 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5513 13 5514 13 5515 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 5516 6 5517 13 5518 13 0 6 5519 13 5520 13 5521 13 5522 6 5523 13 5524 6 5525 13 5526 13 0 13 0 6 5527 13 5528 6 5529 13 5530 13 0 13 5531 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 5532 13 0 6 5533 13 5534 13 0 13 0 6 5535 13 5536 13 0 13 5537 13 5538 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5539 13 5540 13 5541 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5542 13 5543 13 0 13 0 13 0 13 0 6 5544 13 5545 6 5546 13 5547 6 5548 13 5549 13 5550 13 5551 13 5552 6 5553 13 5554 6 5555 13 5556 6 5557 13 5558 13 5559 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5560 13 5561 13 5562 13 0 13 0 13 0 13 0 6 5563 13 5564 13 0 13 0 13 0 13 0 6 5565 13 5566 13 0 13 0 13 0 13 0 6 5567 13 5568 6 5569 13 5570 13 0 6 5571 13 5572 6 5573 13 5574 6 5575 13 5576 13 5577 6 5578 13 5579 13 0 13 5580 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5581 13 5582 13 5583 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 5584 6 5585 13 5586 13 0 6 5587 13 5588 13 5589 13 5590 6 5591 13 5592 6 5593 13 5594 13 0 13 0 6 5595 13 5596 6 5597 13 5598 13 0 13 5599 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 5600 13 0 6 5601 13 5602 13 0 13 0 6 5603 13 5604 13 0 13 5605 13 5606 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5607 13 5608 13 5609 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5610 13 5611 13 0 6 5612 13 5613 6 5614 13 5615 6 5616 13 5617 13 5618 13 5619 13 5620 6 5621 13 5622 6 5623 13 5624 6 5625 13 5626 13 5627 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 13 0 6 5628 7 5629 8 5630 9 5631 6 5632 7 5633 8 5634 9 5635 6 5636 7 5637 8 5638 9 5639 + + + + + + + + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + 0 4.36368 -1.02007 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + 0.450181 0.049889 0.340342 + 0 0 1 -81.9269 + 0 1 0 -3.10948 + 1 0 0 0 + 0 0 1 42.183 + 0 1 0 -5.78704 + 1 0 0 -150 + + 1.83301 -0.024761 -0.002519 + 0 0 1 2.74217 + 0 1 0 -8.69563 + 1 0 0 -120.102 + 1 0 0 -167.477 + + 1.96166 -0.032713 -0.02288 + 0 0 1 -76.6958 + 0 1 0 -21.757 + 1 0 0 163.413 + 0 0 1 14.715 + 1 0 0 11.5774 + + 1.78815 0.01736 0.107367 + 0 0 1 -31.0916 + 0 1 0 75.3661 + 1 0 0 -48.3677 + + + + + + 0 0.373231 0.145026 + 0 0 1 90.0001 + 0 1 0 -1.41344 + 1 0 0 -90.0001 + 0 0 1 -10.4977 + 1 0 0 -180 + + 1.36125 0 0 + 0 0 1 -16.8212 + 0 1 0 0 + 1 0 0 180 + 0 0 1 13.734 + + 0.919788 -0.146376 -0.543095 + 0 0 1 164.592 + 0 1 0 86.2629 + 1 0 0 -91.2226 + 0 0 1 -3.15681 + 0 1 0 -15.3409 + 1 0 0 38.8123 + + 1.81585 0.075224 0.081521 + 0 0 1 3.87813 + 0 1 0 -3.63273 + 1 0 0 124.916 + 0 0 1 70.1936 + + 1.43185 0.015147 0.052022 + 0 0 1 0.606107 + 0 1 0 -2.08055 + 1 0 0 0.58477 + + + + + 0.919788 -0.146376 0.543095 + 0 0 1 -15.4077 + 0 1 0 86.2629 + 1 0 0 -91.2226 + 0 0 1 20.0291 + 0 1 0 -12.9962 + 1 0 0 -36.9895 + 0 0 1 3 + 1 0 0 110 + + -1.8173 -0.083416 0.009171 + 0 0 1 3.1152 + 0 1 0 2.06557 + 1 0 0 15 + 0 0 1 109.083 + + -1.43185 -0.015147 -0.052019 + 0 0 1 0.606107 + 0 1 0 -2.08055 + 1 0 0 0.58477 + + + + + 1.55512 -0.277198 0 + 0 0 1 -34.3486 + 0 1 0 0 + 1 0 0 0 + 0 0 1 44.145 + 1 0 0 -180 + + 2.32294 0 0 + 0 0 1 0 + 0 1 0 -90.0001 + 1 0 0 -108.941 + + + + + + -0.450181 0.04989 0.340342 + 0 0 1 81.9269 + 0 1 0 3.10948 + 1 0 0 180 + 0 0 1 42.2085 + 0 1 0 -2.98434 + 1 0 0 90.0001 + + -1.83302 -0.014612 0.020148 + 0 0 1 -8.89265 + 0 1 0 2.00719 + 1 0 0 0.094296 + 0 0 1 -70.8347 + + -1.96166 -0.026973 -0.02943 + 0 0 1 77.4829 + 0 1 0 9.54738 + 1 0 0 -13.6862 + 0 0 1 -34.335 + + -1.78815 0.004542 -0.108667 + 0 0 1 17.0542 + 0 1 0 76.9208 + 1 0 0 1.04692 + + + + + + + + -0.257405 -0.144043 0.948379 + -1.16678 0 -0.191499 + 0.660789 0.369197 -0.375847 + 0 0 1 0 + 0 1 0 102.098 + 1 0 0 0 + -0.660789 -0.369197 0.375847 + -4.33499 -1.95986 2.40112 + 4.99578 2.32906 -2.77697 + 0.13227 0.158518 0.135345 + -4.99578 -2.32906 2.77697 + + + 0.71344 -0.206159 -0.457125 + -0.921351 0.141584 1.07792 + 0.803306 0.397412 -0.307598 + 0 0 1 162.263 + 0 1 0 -59.1908 + 1 0 0 -160.458 + -0.803306 -0.397412 0.307598 + -4.26431 -2.10964 1.96511 + 5.06761 2.50705 -2.2727 + 0.158518 0.158518 0.135345 + -5.06761 -2.50705 2.2727 + + + -0.887804 -0.133802 -0.330935 + 0.085547 -0.103793 -0.01691 + 0.563666 0.599884 -0.287122 + 0 0 1 -6.68552 + 0 1 0 -4.12281 + 1 0 0 -5.7169 + -0.563666 -0.599884 0.287122 + -2.99219 -3.18445 1.83429 + 3.55586 3.78434 -2.12141 + 0.158518 0.158518 0.135345 + -3.55586 -3.78434 2.12141 + + + -0.768479 0.13543 -0.370403 + 0.00553 -0.110248 0.184563 + 0.990223 0.284844 0.015186 + 0 0 1 -6.03229 + 0 1 0 -7.9909 + 1 0 0 9.64632 + -0.990223 -0.284844 -0.015186 + -6.55383 -1.51208 -0.130333 + 7.54406 1.79692 0.14552 + 0.131259 0.158518 0.10436 + -7.54406 -1.79692 -0.14552 + + + 0.027077 -0.031065 -0.313644 + -0.12755 -0.168418 0 + -0.462465 0.482752 0.231763 + 0 0 1 18.1828 + 0 1 0 0 + 1 0 0 0 + 0.462465 -0.482752 -0.231763 + 2.45497 -1.40385 -1.48063 + -2.91744 1.88661 1.71239 + 0.158518 0.255884 0.135345 + 2.91744 -1.88661 -1.71239 + + + 2.28684 -0.813048 1.7705 + -5.23244 0.556856 -1.26446 + 2.85467 0.650443 0.054551 + 0 0 1 166.891 + 0 1 0 27.9379 + 1 0 0 162.428 + -2.85467 -0.650443 -0.054551 + -15.1539 -2.78534 -0.348499 + 18.0086 3.43579 0.40305 + 0.158518 0.189314 0.135345 + -18.0086 -3.43579 -0.40305 + + + 0 -0.428421 0.787522 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 0 0.428421 -0.787522 + 0 -0.428421 0.787522 + 0 0.428421 -0.787522 + + + -0.257405 -0.144043 0.948379 + -1.16678 0 -0.191499 + 0.660789 0.369197 -0.375847 + 0 0 1 0 + 0 1 0 102.098 + 1 0 0 0 + -0.660789 -0.369197 0.375847 + -4.33499 -1.95986 2.40112 + 4.99578 2.32906 -2.77697 + 0.13227 0.158518 0.135345 + -4.99578 -2.32906 2.77697 + + + 0.71344 -0.206159 -0.457125 + -0.921351 0.141584 1.07792 + 0.803306 0.397412 -0.307598 + 0 0 1 162.263 + 0 1 0 -59.1908 + 1 0 0 -160.458 + -0.803306 -0.397412 0.307598 + -4.26431 -2.10964 1.96511 + 5.06761 2.50705 -2.2727 + 0.158518 0.158518 0.135345 + -5.06761 -2.50705 2.2727 + + + -0.887804 -0.133802 -0.330935 + 0.085547 -0.103793 -0.01691 + 0.563666 0.599884 -0.287122 + 0 0 1 -6.68552 + 0 1 0 -4.12281 + 1 0 0 -5.7169 + -0.563666 -0.599884 0.287122 + -2.99219 -3.18445 1.83429 + 3.55586 3.78434 -2.12141 + 0.158518 0.158518 0.135345 + -3.55586 -3.78434 2.12141 + + + -0.768479 0.13543 -0.370403 + 0.00553 -0.110248 0.184563 + 0.990223 0.284844 0.015186 + 0 0 1 -6.03229 + 0 1 0 -7.9909 + 1 0 0 9.64632 + -0.990223 -0.284844 -0.015186 + -6.55383 -1.51208 -0.130333 + 7.54406 1.79692 0.14552 + 0.131259 0.158518 0.10436 + -7.54406 -1.79692 -0.14552 + + + 0.027077 -0.031065 -0.313644 + -0.12755 -0.168418 0 + -0.462465 0.482752 0.231763 + 0 0 1 18.1828 + 0 1 0 0 + 1 0 0 0 + 0.462465 -0.482752 -0.231763 + 2.45497 -1.40385 -1.48063 + -2.91744 1.88661 1.71239 + 0.158518 0.255884 0.135345 + 2.91744 -1.88661 -1.71239 + + + 2.28684 -0.813048 1.7705 + -5.23244 0.556856 -1.26446 + 2.85467 0.650443 0.054551 + 0 0 1 166.891 + 0 1 0 27.9379 + 1 0 0 162.428 + -2.85467 -0.650443 -0.054551 + -15.1539 -2.78534 -0.348499 + 18.0086 3.43579 0.40305 + 0.158518 0.189314 0.135345 + -18.0086 -3.43579 -0.40305 + + + 0 -3.65532 0 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 0 3.65532 0 + 0 -3.65532 0 + 0 3.65532 0 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + 0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + -0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + 0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + -0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + #root + + + + + + + + + + + + + + + + + + + + -0.257405 -0.144043 0.948379 + -1.16678 0 -0.191499 + 0.660789 0.369197 -0.375847 + 0 0 1 0 + 0 1 0 102.098 + 1 0 0 0 + -0.660789 -0.369197 0.375847 + -4.33499 -1.95986 2.40112 + 4.99578 2.32906 -2.77697 + 0.13227 0.158518 0.135345 + -4.99578 -2.32906 2.77697 + + + 0.71344 -0.206159 -0.457125 + -0.921351 0.141584 1.07792 + 0.803306 0.397412 -0.307598 + 0 0 1 162.263 + 0 1 0 -59.1908 + 1 0 0 -160.458 + -0.803306 -0.397412 0.307598 + -4.26431 -2.10964 1.96511 + 5.06761 2.50705 -2.2727 + 0.158518 0.158518 0.135345 + -5.06761 -2.50705 2.2727 + + + -0.887804 -0.133802 -0.330935 + 0.085547 -0.103793 -0.01691 + 0.563666 0.599884 -0.287122 + 0 0 1 -6.68552 + 0 1 0 -4.12281 + 1 0 0 -5.7169 + -0.563666 -0.599884 0.287122 + -2.99219 -3.18445 1.83429 + 3.55586 3.78434 -2.12141 + 0.158518 0.158518 0.135345 + -3.55586 -3.78434 2.12141 + + + -0.768479 0.13543 -0.370403 + 0.00553 -0.110248 0.184563 + 0.990223 0.284844 0.015186 + 0 0 1 -6.03229 + 0 1 0 -7.9909 + 1 0 0 9.64632 + -0.990223 -0.284844 -0.015186 + -6.55383 -1.51208 -0.130333 + 7.54406 1.79692 0.14552 + 0.131259 0.158518 0.10436 + -7.54406 -1.79692 -0.14552 + + + 0.027077 -0.031065 -0.313644 + -0.12755 -0.168418 0 + -0.462465 0.482752 0.231763 + 0 0 1 18.1828 + 0 1 0 0 + 1 0 0 0 + 0.462465 -0.482752 -0.231763 + 2.45497 -1.40385 -1.48063 + -2.91744 1.88661 1.71239 + 0.158518 0.255884 0.135345 + 2.91744 -1.88661 -1.71239 + + + 2.28684 -0.813048 1.7705 + -5.23244 0.556856 -1.26446 + 2.85467 0.650443 0.054551 + 0 0 1 166.891 + 0 1 0 27.9379 + 1 0 0 162.428 + -2.85467 -0.650443 -0.054551 + -15.1539 -2.78534 -0.348499 + 18.0086 3.43579 0.40305 + 0.158518 0.189314 0.135345 + -18.0086 -3.43579 -0.40305 + + + 0 -0.428421 0.787522 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 0 0.428421 -0.787522 + 0 -0.428421 0.787522 + 0 0.428421 -0.787522 + + + -0.257405 -0.144043 0.948379 + -1.16678 0 -0.191499 + 0.660789 0.369197 -0.375847 + 0 0 1 0 + 0 1 0 102.098 + 1 0 0 0 + -0.660789 -0.369197 0.375847 + -4.33499 -1.95986 2.40112 + 4.99578 2.32906 -2.77697 + 0.13227 0.158518 0.135345 + -4.99578 -2.32906 2.77697 + + + 0.71344 -0.206159 -0.457125 + -0.921351 0.141584 1.07792 + 0.803306 0.397412 -0.307598 + 0 0 1 162.263 + 0 1 0 -59.1908 + 1 0 0 -160.458 + -0.803306 -0.397412 0.307598 + -4.26431 -2.10964 1.96511 + 5.06761 2.50705 -2.2727 + 0.158518 0.158518 0.135345 + -5.06761 -2.50705 2.2727 + + + -0.887804 -0.133802 -0.330935 + 0.085547 -0.103793 -0.01691 + 0.563666 0.599884 -0.287122 + 0 0 1 -6.68552 + 0 1 0 -4.12281 + 1 0 0 -5.7169 + -0.563666 -0.599884 0.287122 + -2.99219 -3.18445 1.83429 + 3.55586 3.78434 -2.12141 + 0.158518 0.158518 0.135345 + -3.55586 -3.78434 2.12141 + + + -0.768479 0.13543 -0.370403 + 0.00553 -0.110248 0.184563 + 0.990223 0.284844 0.015186 + 0 0 1 -6.03229 + 0 1 0 -7.9909 + 1 0 0 9.64632 + -0.990223 -0.284844 -0.015186 + -6.55383 -1.51208 -0.130333 + 7.54406 1.79692 0.14552 + 0.131259 0.158518 0.10436 + -7.54406 -1.79692 -0.14552 + + + 0.027077 -0.031065 -0.313644 + -0.12755 -0.168418 0 + -0.462465 0.482752 0.231763 + 0 0 1 18.1828 + 0 1 0 0 + 1 0 0 0 + 0.462465 -0.482752 -0.231763 + 2.45497 -1.40385 -1.48063 + -2.91744 1.88661 1.71239 + 0.158518 0.255884 0.135345 + 2.91744 -1.88661 -1.71239 + + + 2.28684 -0.813048 1.7705 + -5.23244 0.556856 -1.26446 + 2.85467 0.650443 0.054551 + 0 0 1 166.891 + 0 1 0 27.9379 + 1 0 0 162.428 + -2.85467 -0.650443 -0.054551 + -15.1539 -2.78534 -0.348499 + 18.0086 3.43579 0.40305 + 0.158518 0.189314 0.135345 + -18.0086 -3.43579 -0.40305 + + + 0 -3.65532 0 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 0 3.65532 0 + 0 -3.65532 0 + 0 3.65532 0 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + 0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + -0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + 0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + -0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -0.257405 -0.144043 0.948379 + -1.16678 0 -0.191499 + 0.660789 0.369197 -0.375847 + 0 0 1 0 + 0 1 0 102.098 + 1 0 0 0 + -0.660789 -0.369197 0.375847 + -4.33499 -1.95986 2.40112 + 4.99578 2.32906 -2.77697 + 0.13227 0.158518 0.135345 + -4.99578 -2.32906 2.77697 + + + 0.71344 -0.206159 -0.457125 + -0.921351 0.141584 1.07792 + 0.803306 0.397412 -0.307598 + 0 0 1 162.263 + 0 1 0 -59.1908 + 1 0 0 -160.458 + -0.803306 -0.397412 0.307598 + -4.26431 -2.10964 1.96511 + 5.06761 2.50705 -2.2727 + 0.158518 0.158518 0.135345 + -5.06761 -2.50705 2.2727 + + + -0.887804 -0.133802 -0.330935 + 0.085547 -0.103793 -0.01691 + 0.563666 0.599884 -0.287122 + 0 0 1 -6.68552 + 0 1 0 -4.12281 + 1 0 0 -5.7169 + -0.563666 -0.599884 0.287122 + -2.99219 -3.18445 1.83429 + 3.55586 3.78434 -2.12141 + 0.158518 0.158518 0.135345 + -3.55586 -3.78434 2.12141 + + + -0.768479 0.13543 -0.370403 + 0.00553 -0.110248 0.184563 + 0.990223 0.284844 0.015186 + 0 0 1 -6.03229 + 0 1 0 -7.9909 + 1 0 0 9.64632 + -0.990223 -0.284844 -0.015186 + -6.55383 -1.51208 -0.130333 + 7.54406 1.79692 0.14552 + 0.131259 0.158518 0.10436 + -7.54406 -1.79692 -0.14552 + + + 0.027077 -0.031065 -0.313644 + -0.12755 -0.168418 0 + -0.462465 0.482752 0.231763 + 0 0 1 18.1828 + 0 1 0 0 + 1 0 0 0 + 0.462465 -0.482752 -0.231763 + 2.45497 -1.40385 -1.48063 + -2.91744 1.88661 1.71239 + 0.158518 0.255884 0.135345 + 2.91744 -1.88661 -1.71239 + + + 2.28684 -0.813048 1.7705 + -5.23244 0.556856 -1.26446 + 2.85467 0.650443 0.054551 + 0 0 1 166.891 + 0 1 0 27.9379 + 1 0 0 162.428 + -2.85467 -0.650443 -0.054551 + -15.1539 -2.78534 -0.348499 + 18.0086 3.43579 0.40305 + 0.158518 0.189314 0.135345 + -18.0086 -3.43579 -0.40305 + + + 0 -0.428421 0.787522 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 0 0.428421 -0.787522 + 0 -0.428421 0.787522 + 0 0.428421 -0.787522 + + + -0.257405 -0.144043 0.948379 + -1.16678 0 -0.191499 + 0.660789 0.369197 -0.375847 + 0 0 1 0 + 0 1 0 102.098 + 1 0 0 0 + -0.660789 -0.369197 0.375847 + -4.33499 -1.95986 2.40112 + 4.99578 2.32906 -2.77697 + 0.13227 0.158518 0.135345 + -4.99578 -2.32906 2.77697 + + + 0.71344 -0.206159 -0.457125 + -0.921351 0.141584 1.07792 + 0.803306 0.397412 -0.307598 + 0 0 1 162.263 + 0 1 0 -59.1908 + 1 0 0 -160.458 + -0.803306 -0.397412 0.307598 + -4.26431 -2.10964 1.96511 + 5.06761 2.50705 -2.2727 + 0.158518 0.158518 0.135345 + -5.06761 -2.50705 2.2727 + + + -0.887804 -0.133802 -0.330935 + 0.085547 -0.103793 -0.01691 + 0.563666 0.599884 -0.287122 + 0 0 1 -6.68552 + 0 1 0 -4.12281 + 1 0 0 -5.7169 + -0.563666 -0.599884 0.287122 + -2.99219 -3.18445 1.83429 + 3.55586 3.78434 -2.12141 + 0.158518 0.158518 0.135345 + -3.55586 -3.78434 2.12141 + + + -0.768479 0.13543 -0.370403 + 0.00553 -0.110248 0.184563 + 0.990223 0.284844 0.015186 + 0 0 1 -6.03229 + 0 1 0 -7.9909 + 1 0 0 9.64632 + -0.990223 -0.284844 -0.015186 + -6.55383 -1.51208 -0.130333 + 7.54406 1.79692 0.14552 + 0.131259 0.158518 0.10436 + -7.54406 -1.79692 -0.14552 + + + 0.027077 -0.031065 -0.313644 + -0.12755 -0.168418 0 + -0.462465 0.482752 0.231763 + 0 0 1 18.1828 + 0 1 0 0 + 1 0 0 0 + 0.462465 -0.482752 -0.231763 + 2.45497 -1.40385 -1.48063 + -2.91744 1.88661 1.71239 + 0.158518 0.255884 0.135345 + 2.91744 -1.88661 -1.71239 + + + 2.28684 -0.813048 1.7705 + -5.23244 0.556856 -1.26446 + 2.85467 0.650443 0.054551 + 0 0 1 166.891 + 0 1 0 27.9379 + 1 0 0 162.428 + -2.85467 -0.650443 -0.054551 + -15.1539 -2.78534 -0.348499 + 18.0086 3.43579 0.40305 + 0.158518 0.189314 0.135345 + -18.0086 -3.43579 -0.40305 + + + 0 -3.65532 0 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 0 3.65532 0 + 0 -3.65532 0 + 0 3.65532 0 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + 0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + -0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + 0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -2.12237 -0.182501 -6.01453 + 0 15.4543 -2.40261 + 2.12237 -6.52583 8.92844 + 0 0 1 0 + 0 1 0 0 + 1 0 0 -90.0001 + -2.12237 6.52583 -8.92844 + -6.36711 19.5775 -26.7853 + 8.48948 -26.1033 35.7137 + -0.25 0.25 0.25 + -8.48948 26.1033 -35.7137 + + + -3.58797 16.1723 4.66578 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + 19.9831 -11.4289 -11.6396 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + + + + + + diff --git a/test/data/badSkew.dae b/test/data/badSkew.dae new file mode 100644 index 0000000..22ac66c --- /dev/null +++ b/test/data/badSkew.dae @@ -0,0 +1,24 @@ + + + + + + + 45 1 0 0 + 45 1 0 0 1 0 0 + 45 1 0 0 1 0 0 0 1 2 3 + + + + diff --git a/test/data/boy_10.tga b/test/data/boy_10.tga new file mode 100644 index 0000000..dca0003 Binary files /dev/null and b/test/data/boy_10.tga differ diff --git a/test/data/clipPlane.dae b/test/data/clipPlane.dae new file mode 100644 index 0000000..5697635 --- /dev/null +++ b/test/data/clipPlane.dae @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/test/data/crankarm.dae b/test/data/crankarm.dae new file mode 100644 index 0000000..b490c68 --- /dev/null +++ b/test/data/crankarm.dae @@ -0,0 +1,5342 @@ + + + + + CPFOCCPlugin + file:///crankarm.stp + + 2007-10-15T11:57:42Z + 2007-10-15T11:57:42Z + + + + + + + + 10.2 + + 165 0 -77 + + + + 6 + + 0 0 1 90 + 165 0 -77 + + + + 175.2 -2.4982e-015 -149 + 0 0 1 + + + + + 10.2 + + 165 0 -149 + + + + 171 -1.46953e-015 -159 + 0 0 1 + + + + + 6 + + 0 0 1 90 + 165 0 -149 + + + + 44.9207 20.4122 -124.337 + 0 0 1 + + + + + 20.4122 + + 0 0 1 90 + 44.9207 1.33102e-014 -104.1 + + + + 20.4122 + + 0 0 1 90 + 44.9207 1.33102e-014 -123.5 + + + + 58.6481 15.1068 -13721.6 + 0 0 -1 + + + + + 20.4122 + + 44.9207 1.33102e-014 -122.16 + + + + 62.6142 10.1783 -124.337 + 0 0 1 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 62.6142 10.1783 -121.947 62.6142 10.1783 -121.513 62.6302 10.1505 -121.08 62.6621 10.0951 -120.66 62.7077 10.0151 -120.258 62.7644 9.91437 -119.879 62.8294 9.79651 -119.523 62.9007 9.66454 -119.191 63.0774 9.3294 -118.467 63.1865 9.11685 -118.091 63.301 8.8865 -117.748 63.4185 8.64092 -117.435 63.5373 8.3822 -117.15 63.6561 8.11179 -116.89 63.7738 7.8306 -116.655 63.8897 7.53893 -116.442 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 0.430343 0.430343 0.430343 0.430343 0.430343 0.430343 0.430343 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 63.8897 7.53893 -116.442 63.9781 7.3165 -116.28 64.0689 7.07923 -116.123 64.1621 6.825 -115.973 64.2576 6.55156 -115.83 64.3551 6.25624 -115.696 64.454 5.93632 -115.573 64.62 5.35292 -115.395 64.6867 5.10616 -115.33 64.7534 4.84498 -115.274 64.8193 4.5689 -115.229 64.8833 4.27878 -115.196 64.9441 3.97728 -115.179 65.0002 3.67056 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 0 0 0 0 0 0 0 0 0.599351 0.599351 0.599351 0.599351 0.599351 0.599351 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 20.4122 + + 44.9207 1.33102e-014 -115.179 + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 63.8949 -7.52582 -116.497 63.9846 -7.29956 -116.33 64.0767 -7.05816 -116.168 64.1712 -6.79948 -116.013 64.268 -6.5213 -115.864 64.3666 -6.22086 -115.725 64.4665 -5.89541 -115.598 64.6353 -5.2969 -115.41 64.7038 -5.04037 -115.341 64.7722 -4.76841 -115.281 64.8398 -4.48043 -115.232 64.9052 -4.17723 -115.197 64.967 -3.86158 -115.179 65.0236 -3.54013 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 0 0 0 0 0 0 0 0 0.594444 0.594444 0.594444 0.594444 0.594444 0.594444 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 62.6142 -10.1783 -122.085 62.6142 -10.1783 -121.579 62.6357 -10.1409 -121.074 62.679 -10.0657 -120.589 62.7397 -9.9589 -120.132 62.8131 -9.82686 -119.707 62.8953 -9.67504 -119.315 63.0992 -9.28774 -118.479 63.2254 -9.04047 -118.055 63.3577 -8.77072 -117.673 63.4929 -8.48213 -117.33 63.6285 -8.17756 -117.021 63.7629 -7.85863 -116.744 63.8949 -7.52582 -116.497 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 0 0 0 0 0 0 0 0 0.434945 0.434945 0.434945 0.434945 0.434945 0.434945 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 62.6142 -10.1783 -124.337 + 0 0 1 + + + + + 20.4122 + + 44.9207 1.33102e-014 -122.16 + + + + 58.6481 -15.1068 -13721.6 + 0 0 -1 + + + + + 20.4122 + + 44.9207 1.33102e-014 -104.742 + + + + 62.6142 -10.1783 -124.337 + 0 0 1 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 62.6142 -10.1783 -105.327 62.6142 -10.1783 -105.809 62.6393 -10.1347 -106.295 62.6901 -10.0464 -106.766 62.7617 -9.92022 -107.214 62.8486 -9.76287 -107.634 62.9463 -9.58053 -108.026 63.1856 -9.1179 -108.854 63.3322 -8.82382 -109.274 63.4864 -8.49968 -109.658 63.6447 -8.14789 -110.007 63.8043 -7.77 -110.323 63.963 -7.36616 -110.605 64.2633 -6.53479 -111.081 64.4049 -6.11231 -111.28 64.5421 -5.66637 -111.447 64.6728 -5.19695 -111.58 64.7945 -4.70528 -111.674 64.9044 -4.19434 -111.723 65.0002 -3.67056 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 0 0 0 0 0 0 0 0 0.290238 0.290238 0.290238 0.290238 0.290238 0.290238 0.658726 0.658726 0.658726 0.658726 0.658726 0.658726 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 20.4122 + + 44.9207 1.33102e-014 -111.723 + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 62.6142 10.1783 -105.195 62.6142 10.1783 -105.688 62.6398 10.1337 -106.184 62.6918 10.0434 -106.666 62.765 9.91449 -107.123 62.8536 9.75393 -107.551 62.953 9.56803 -107.95 63.1964 9.0964 -108.794 63.3454 8.79666 -109.223 63.5019 8.46626 -109.615 63.6625 8.10758 -109.971 63.8243 7.72209 -110.293 63.9849 7.30984 -110.581 64.2878 6.46203 -111.068 64.4302 6.03191 -111.27 64.5679 5.57758 -111.441 64.6988 5.09892 -111.577 64.8203 4.59714 -111.672 64.9293 4.0753 -111.723 65.0236 3.54013 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 0 0 0 0 0 0 0 0 0.290591 0.290591 0.290591 0.290591 0.290591 0.290591 0.659634 0.659634 0.659634 0.659634 0.659634 0.659634 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 62.6142 10.1783 -124.337 + 0 0 1 + + + + + 20.4122 + + 44.9207 1.33102e-014 -104.742 + + + + 13.6081 + + 0 0 1 90 + 44.9207 1.33102e-014 -104.1 + + + + 11 + + 0 0 1 90 + 45 0 -123.5 + + + + 21.6369 + + 0 0 1 180 + 1 0 0 180 + 67.7687 34.7274 -122.16 + + + + 66.8114 13.1117 -13721.6 + 0 0 1 + + + + + 21.6369 + + 0 0 1 180 + 1 0 0 180 + 67.7687 34.7274 -104.742 + + + + -6691.21 309.302 -104.742 + 0.999021 -0.0442461 0 + + + + + 68.7102 6787.89 -104.742 + 1.11022e-016 1 0 + + + + + -6674.01 311.659 -104.742 + 0.999021 -0.0442461 0 + + + + + -6691.21 309.302 -122.16 + -0.999021 0.0442461 0 + + + + + 68.7102 6787.89 -122.16 + -1.11022e-016 -1 0 + + + + + -6674.01 311.659 -122.16 + 0.999021 -0.0442461 0 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 47.6604 10.8406 -105.191 49.0652 10.7784 -105.191 50.47 10.7162 -105.191 84.9445 9.18932 -105.191 118.014 7.72468 -105.327 152.485 6.198 -105.327 153.886 6.13595 -105.327 155.286 6.07391 -105.327 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -3.10003 -3.10003 -3.10003 -3.10003 0 0 72.9758 72.9758 76.0671 76.0671 76.0671 76.0671 + + + + + + + + + + + + + + + + + + -404.651 30.8733 -90.4678 + -0.998568 0.0442261 0.0301113 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 61.178 10.2419 -127.846 61.2239 10.2399 -127.321 60.9806 10.2507 -126.772 60.6048 10.2673 -125.939 60.412 10.2759 -124.735 60.7245 10.262 -123.363 61.5887 10.2237 -122.209 62.7963 10.1703 -121.575 64.0038 10.1168 -121.575 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + OPEN + + + + + + + + 47.6723 10.8401 -121.575 155.286 6.07391 -121.575 + + + + + + + + + + 1 1 + + + + + + + + 1 + + + + + + + + -3.09127 -3.09127 76.0671 76.0671 + + + + + + + + + + + + + + + + + + -404.651 30.8733 -136.434 + 0.998568 -0.0442261 0.0301113 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 47.3714 4.31512 -111.723 48.7762 4.2529 -111.723 50.181 4.19068 -111.723 84.6555 2.66382 -111.723 117.731 1.33513 -111.723 152.202 -0.191549 -111.723 153.603 -0.253591 -111.723 155.003 -0.315634 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -3.10003 -3.10003 -3.10003 -3.10003 0 0 72.9758 72.9758 76.0671 76.0671 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 143.262 6.60648 -105.325 143.262 6.60648 -111.723 142.979 0.214528 -111.723 + + + + + + + + + + 1 0.707107 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 84.7613 9.19743 -105.226 90.6464 8.93678 -105.403 96.5343 8.67066 -105.581 102.414 8.39962 -105.758 108.278 8.12401 -105.935 120.008 7.56136 -106.289 125.875 7.27425 -106.466 131.709 6.98274 -106.642 137.504 6.6868 -106.816 143.252 6.38625 -106.99 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 5 + + + + + + + + 0 0 0 0 0 0 0.497757 0.497757 0.497757 0.497757 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 64.0038 10.1168 -121.575 64.0038 10.1168 -115.179 63.7209 3.72722 -115.179 + + + + + + + + + + 1 0.707107 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + 142.979 6.26004 -111.723 + -1.11022e-016 -1 0 + + + + + + OPEN + + + + + + + + 47.3893 -4.45054 -111.723 155.003 0.315634 -111.723 + + + + + + + + + + 1 1 + + + + + + + + 1 + + + + + + + + -3.09127 -3.09127 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 88.1152 9.04889 -121.575 94.546 8.76407 -121.381 100.974 8.47154 -121.187 107.391 8.17165 -120.994 120.255 7.55456 -120.606 126.702 7.23721 -120.411 133.123 6.91287 -120.218 139.512 6.58172 -120.025 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 4 + + + + + + + + 0 0 0 0 0 0.497479 0.497479 0.497479 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 139.521 6.77216 -121.575 139.521 6.77216 -115.179 139.238 0.382616 -115.179 + + + + + + + + + + 1 0.707107 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + OPEN + + + + + + + + 47.3893 4.45054 -115.179 155.003 -0.315634 -115.179 + + + + + + + + + + 1 1 + + + + + + + + 1 + + + + + + + + -3.09127 -3.09127 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + OPEN + + + + + + + + 47.6723 -10.8401 -105.327 155.286 -6.07391 -105.327 + + + + + + + + + + 1 1 + + + + + + + + 1 + + + + + + + + -3.09127 -3.09127 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 88.1152 -9.04889 -105.327 95.0596 -8.74132 -105.536 102.001 -8.42475 -105.746 108.929 -8.09961 -105.955 122.731 -7.43342 -106.371 129.604 -7.0924 -106.578 136.448 -6.74347 -106.784 143.252 -6.38681 -106.99 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 4 + + + + + + + + 0 0 0 0 0 0.500456 0.500456 0.500456 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 143.262 -6.60648 -105.327 143.262 -6.60648 -111.723 142.979 -0.216935 -111.723 + + + + + + + + + + 1 0.707107 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 47.3714 -4.31512 -115.179 48.7762 -4.2529 -115.179 50.181 -4.19068 -115.179 84.6555 -2.66382 -115.179 117.731 -1.33513 -115.179 152.202 0.191549 -115.179 153.603 0.253591 -115.179 155.003 0.315634 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -3.10003 -3.10003 -3.10003 -3.10003 0 0 72.9758 72.9758 76.0671 76.0671 76.0671 76.0671 + + + + + + + + + + + + + + + + + + 139.238 -6.26004 -115.179 + 1.11022e-016 1 1.22465e-016 + + + + + -6692.64 -309.365 -104.742 + 0.999021 0.0442461 0 + + + + + 196.32 -4.25657 -108.59 + -0.998568 -0.0442261 0.0301113 + + + + + + NURBS OPEN + + + + + + + + 64.0096 -10.1165 -121.706 64.0096 -10.1165 -115.179 63.7209 -3.59662 -115.179 + + + + + + + + + + 1 0.707107 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 139.521 -6.77215 -121.58 139.521 -6.77215 -115.179 139.238 -0.377496 -115.179 + + + + + + + + + + 1 0.707107 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 84.7613 -9.19743 -121.676 90.209 -8.95616 -121.512 95.659 -8.71019 -121.348 101.103 -8.45999 -121.183 106.533 -8.20583 -121.02 117.512 -7.68236 -120.689 123.059 -7.41283 -120.521 128.579 -7.13938 -120.355 134.065 -6.86201 -120.189 139.513 -6.58059 -120.025 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 5 + + + + + + + + 0 0 0 0 0 0 0.492855 0.492855 0.492855 0.492855 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 47.6604 -10.8406 -121.711 49.0652 -10.7784 -121.711 50.47 -10.7162 -121.711 84.9445 -9.18932 -121.711 118.014 -7.72468 -121.575 152.485 -6.198 -121.575 153.886 -6.13595 -121.575 155.286 -6.07391 -121.575 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -3.10003 -3.10003 -3.10003 -3.10003 0 0 72.9758 72.9758 76.0671 76.0671 76.0671 76.0671 + + + + + + + + + + + + + + + + + + 21.6369 + + 0 0 1 180 + 1 0 0 180 + 67.7687 -34.7274 -104.742 + + + + -6675.44 -311.723 -104.742 + 0.999021 0.0442461 0 + + + + + 68.7102 6787.89 -104.742 + 1.11022e-016 1 0 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 61.178 -10.2419 -127.846 61.224 -10.2399 -127.32 60.9958 -10.25 -126.771 60.6442 -10.2656 -125.95 60.4727 -10.2732 -124.775 60.7909 -10.2591 -123.441 61.6426 -10.2213 -122.321 62.8261 -10.1689 -121.706 64.0096 -10.1165 -121.706 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + 21.6369 + + 0 0 1 180 + 1 0 0 180 + 67.7687 -34.7274 -122.16 + + + + 66.8114 -13.1117 -13721.6 + 0 0 1 + + + + + 196.32 -4.25657 -118.312 + 0.998568 0.0442261 0.0301113 + + + + + -6692.64 -309.365 -122.16 + -0.999021 -0.0442461 0 + + + + + -6675.44 -311.723 -122.16 + 0.999021 0.0442461 0 + + + + + 68.7102 6787.89 -122.16 + -1.11022e-016 -1 0 + + + + + 44.9207 13.6081 -140.667 + 0 0 1 + + + + + 13.6081 + + 0 0 1 90 + 44.9207 1.33102e-014 -110 + + + + 56 -2.69413e-015 -135 + 0 0 1 + + + + + 11 + + 0 0 1 90 + 45 0 -110 + + + + 21.7004 15.1097 -123.578 + -0.998568 0.0442261 -0.0301113 + + + + + 21.7004 15.1097 -103.324 + -0.998568 0.0442261 0.0301113 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 149.635 9.4435 -103.508 149.457 9.45141 -104.554 149.28 9.45922 -105.6 149.106 9.46694 -106.647 148.78 9.48139 -108.609 148.45 9.49602 -110.637 148.115 9.51083 -112.736 148.012 9.51539 -113.381 147.91 9.51992 -114.026 147.808 9.52442 -114.671 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -2.41563 -2.41563 -2.41563 -2.41563 0 0 0 4.5139 4.5139 4.5139 5.90552 5.90552 5.90552 5.90552 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 148.172 9.50833 -112.382 148.156 9.50901 -112.517 148.131 9.51015 -112.767 148.106 9.51123 -113.078 148.093 9.51183 -113.451 148.106 9.51123 -113.824 148.131 9.51015 -114.135 148.156 9.50901 -114.385 148.172 9.50833 -114.52 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 147.808 9.52442 -112.231 147.91 9.51992 -112.876 148.012 9.51539 -113.521 148.115 9.51083 -114.166 148.45 9.49602 -116.265 148.78 9.48139 -118.293 149.106 9.46694 -120.255 149.28 9.45922 -121.302 149.457 9.45141 -122.348 149.635 9.4435 -123.394 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -1.39162 -1.39162 -1.39162 -1.39162 0 0 0 4.5139 4.5139 4.5139 6.92953 6.92953 6.92953 6.92953 + + + + + + + + + + + + + + + + + + 622.671 11.507 -121.446 + -0.998568 -0.0442261 0.0301113 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 150.688 -0.174799 -107.214 150.688 -0.625921 -107.214 150.647 -1.08436 -107.213 150.562 -1.54316 -107.21 150.432 -1.99538 -107.206 150.26 -2.43445 -107.201 150.048 -2.85438 -107.195 149.8 -3.25002 -107.187 149.167 -4.08579 -107.168 148.762 -4.51017 -107.156 148.318 -4.88153 -107.142 147.848 -5.19688 -107.128 147.365 -5.45725 -107.114 146.88 -5.66787 -107.099 146.403 -5.83613 -107.085 145.577 -6.0734 -107.06 145.223 -6.15622 -107.049 144.878 -6.22166 -107.039 144.542 -6.27335 -107.028 144.213 -6.31414 -107.019 143.89 -6.34599 -107.009 143.571 -6.37009 -106.999 143.252 -6.38681 -106.99 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 0.305847 0.305847 0.305847 0.305847 0.305847 0.305847 0.305847 0.695782 0.695782 0.695782 0.695782 0.695782 0.695782 0.695782 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 150.688 6.26004 -107.214 + -1.11022e-016 -1 0 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 150.688 0.136239 -107.214 150.688 0.5906 -107.214 150.646 1.05237 -107.213 150.561 1.51447 -107.21 150.43 1.96984 -107.206 150.257 2.41184 -107.201 150.044 2.83442 -107.194 149.794 3.23244 -107.187 149.159 4.07296 -107.168 148.752 4.49956 -107.155 148.307 4.87277 -107.142 147.836 5.18968 -107.128 147.352 5.45143 -107.113 146.868 5.6633 -107.099 146.391 5.83267 -107.084 145.567 6.07114 -107.059 145.215 6.15431 -107.049 144.871 6.22016 -107.038 144.536 6.27223 -107.028 144.209 6.31332 -107.018 143.888 6.34539 -107.009 143.57 6.36958 -106.999 143.252 6.38625 -106.99 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 0.306306 0.306306 0.306306 0.306306 0.306306 0.306306 0.306306 0.696824 0.696824 0.696824 0.696824 0.696824 0.696824 0.696824 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 158.327 11.6712 -107.444 157.889 11.4264 -107.431 157.429 11.1897 -107.417 156.947 10.9623 -107.403 156.439 10.7456 -107.387 155.905 10.5418 -107.371 155.206 10.3085 -107.35 155.069 10.2644 -107.346 154.931 10.2211 -107.342 154.79 10.1789 -107.338 154.648 10.1377 -107.333 154.382 10.0634 -107.325 154.258 10.03 -107.321 154.133 9.9974 -107.318 154.006 9.96567 -107.314 153.878 9.93483 -107.31 153.505 9.84848 -107.299 153.257 9.79535 -107.291 153.003 9.74575 -107.284 152.745 9.69997 -107.276 152.482 9.65833 -107.268 151.707 9.55039 -107.245 151.183 9.49556 -107.229 150.646 9.45901 -107.213 150.101 9.44261 -107.196 149.557 9.44698 -107.18 149.02 9.47074 -107.164 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 6 + + + + + + + + 0 0 0 0 0 0 0 0.390822 0.390822 0.390822 0.390822 0.390822 0.484404 0.484404 0.484404 0.484404 0.484404 0.564093 0.564093 0.564093 0.564093 0.564093 0.714371 0.714371 0.714371 0.714371 0.714371 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 155.145 9.19946 -107.348 155.5 9.57302 -107.359 155.872 9.92665 -107.37 156.26 10.2594 -107.382 157.059 10.8779 -107.406 157.47 11.1643 -107.418 157.893 11.4289 -107.431 158.327 11.6712 -107.444 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 4 + + + + + + + + 0 0 0 0 0 0.503096 0.503096 0.503096 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 13.3732 13.3671 + + 0 1 0 1.7272 + 1 0 0 180 + 164.843 -3.9152e-018 -107.641 + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 155.145 -9.19946 -107.348 155.5 -9.57302 -107.359 155.872 -9.92665 -107.37 156.26 -10.2594 -107.382 157.059 -10.8779 -107.406 157.47 -11.1643 -107.418 157.893 -11.4289 -107.431 158.327 -11.6712 -107.444 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 4 + + + + + + + + 0 0 0 0 0 0.503096 0.503096 0.503096 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 149.02 -9.47074 -107.164 149.574 -9.44623 -107.18 150.136 -9.44235 -107.197 150.698 -9.46064 -107.214 151.251 -9.50032 -107.231 151.79 -9.55927 -107.247 152.738 -9.69674 -107.276 153.154 -9.76986 -107.288 153.557 -9.85297 -107.3 153.948 -9.94484 -107.312 154.325 -10.0444 -107.323 154.819 -10.1879 -107.338 154.944 -10.2257 -107.342 155.069 -10.2643 -107.346 155.191 -10.3036 -107.35 155.313 -10.3437 -107.353 155.978 -10.5697 -107.373 156.495 -10.7693 -107.389 156.986 -10.9809 -107.404 157.454 -11.2027 -107.418 157.901 -11.4331 -107.431 158.327 -11.6712 -107.444 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 6 + + + + + + + + 0 0 0 0 0 0 0 0.294675 0.294675 0.294675 0.294675 0.294675 0.536016 0.536016 0.536016 0.536016 0.536016 0.619827 0.619827 0.619827 0.619827 0.619827 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 158.327 11.6712 -119.458 157.889 11.4264 -119.471 157.429 11.1897 -119.485 156.947 10.9623 -119.499 156.439 10.7456 -119.515 155.905 10.5418 -119.531 155.206 10.3085 -119.552 155.069 10.2644 -119.556 154.931 10.2211 -119.56 154.79 10.1789 -119.564 154.648 10.1377 -119.569 154.382 10.0634 -119.577 154.258 10.03 -119.581 154.133 9.9974 -119.584 154.006 9.96567 -119.588 153.878 9.93483 -119.592 153.505 9.84848 -119.603 153.257 9.79535 -119.611 153.003 9.74575 -119.618 152.745 9.69997 -119.626 152.482 9.65833 -119.634 151.707 9.55039 -119.657 151.183 9.49556 -119.673 150.646 9.45901 -119.689 150.101 9.44261 -119.706 149.557 9.44698 -119.722 149.02 9.47074 -119.738 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 6 + + + + + + + + 0 0 0 0 0 0 0 0.390822 0.390822 0.390822 0.390822 0.390822 0.484404 0.484404 0.484404 0.484404 0.484404 0.564093 0.564093 0.564093 0.564093 0.564093 0.714371 0.714371 0.714371 0.714371 0.714371 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 155.145 9.19946 -119.554 155.5 9.57302 -119.543 155.872 9.92665 -119.532 156.26 10.2594 -119.52 157.059 10.8779 -119.496 157.47 11.1643 -119.484 157.893 11.4289 -119.471 158.327 11.6712 -119.458 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 4 + + + + + + + + 0 0 0 0 0 0.503096 0.503096 0.503096 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 13.3732 13.3671 + + 0 1 0 -1.7272 + 1 0 0 -180 + 164.843 -3.9152e-018 -119.261 + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 155.145 -9.19946 -119.554 155.5 -9.57302 -119.543 155.872 -9.92665 -119.532 156.26 -10.2594 -119.52 157.059 -10.8779 -119.496 157.47 -11.1643 -119.484 157.893 -11.4289 -119.471 158.327 -11.6712 -119.458 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 4 + + + + + + + + 0 0 0 0 0 0.503096 0.503096 0.503096 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 149.02 -9.47074 -119.738 149.574 -9.44623 -119.722 150.136 -9.44235 -119.705 150.698 -9.46064 -119.688 151.251 -9.50032 -119.671 151.79 -9.55927 -119.655 152.738 -9.69674 -119.626 153.154 -9.76986 -119.614 153.557 -9.85297 -119.602 153.948 -9.94484 -119.59 154.325 -10.0444 -119.578 154.819 -10.1879 -119.564 154.944 -10.2257 -119.56 155.069 -10.2643 -119.556 155.191 -10.3036 -119.552 155.313 -10.3437 -119.549 155.978 -10.5697 -119.529 156.495 -10.7693 -119.513 156.986 -10.9809 -119.498 157.454 -11.2027 -119.484 157.901 -11.4331 -119.471 158.327 -11.6712 -119.458 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 6 + + + + + + + + 0 0 0 0 0 0 0 0.294675 0.294675 0.294675 0.294675 0.294675 0.536016 0.536016 0.536016 0.536016 0.536016 0.619827 0.619827 0.619827 0.619827 0.619827 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 622.671 11.507 -105.456 + -0.998568 -0.0442261 -0.0301113 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 149.09 -0.180973 -119.736 149.09 -0.640492 -119.736 149.04 -1.10766 -119.738 148.939 -1.57556 -119.741 148.784 -2.03692 -119.746 148.577 -2.48442 -119.752 148.321 -2.91122 -119.76 147.636 -3.8292 -119.78 147.176 -4.30362 -119.794 146.657 -4.72192 -119.81 146.092 -5.07927 -119.827 145.5 -5.37727 -119.845 144.892 -5.62221 -119.863 143.592 -6.04651 -119.902 142.897 -6.214 -119.923 142.206 -6.3366 -119.944 141.524 -6.42713 -119.965 140.85 -6.49514 -119.985 140.181 -6.54591 -120.005 139.513 -6.58059 -120.025 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 0 0 0 0 0 0 0 0 0.266844 0.266844 0.266844 0.266844 0.266844 0.266844 0.611788 0.611788 0.611788 0.611788 0.611788 0.611788 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 149.09 -6.26004 -119.736 + 1.11022e-016 1 1.22465e-016 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 149.09 0.203275 -119.736 149.09 0.660946 -119.736 149.04 1.1262 -119.738 148.939 1.5922 -119.741 148.785 2.05173 -119.746 148.579 2.49753 -119.752 148.324 2.92277 -119.759 147.641 3.83709 -119.78 147.183 4.30961 -119.794 146.665 4.72639 -119.809 146.102 5.08255 -119.826 145.511 5.37962 -119.844 144.904 5.62384 -119.863 143.603 6.04791 -119.902 142.906 6.21544 -119.923 142.213 6.33792 -119.944 141.529 6.42831 -119.964 140.853 6.49622 -119.985 140.183 6.54697 -120.005 139.512 6.58172 -120.025 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 0 0 0 0 0 0 0 0 0.266586 0.266586 0.266586 0.266586 0.266586 0.266586 0.610882 0.610882 0.610882 0.610882 0.610882 0.610882 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 151.79 0.126647 -103.648 151.6 0.129001 -105.826 150.764 0.135315 -107.947 149.302 0.147342 -109.774 147.355 0.165114 -111.073 145.167 0.18772 -111.723 142.979 0.214528 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 + + + + + + + + 6 + + + + + + + + 0 0 0 0 0 0 0 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 151.79 -0.173968 -103.648 151.6 -0.176369 -105.825 150.764 -0.173877 -107.946 149.303 -0.172734 -109.773 147.355 -0.176887 -111.074 145.167 -0.190101 -111.723 142.979 -0.216935 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 + + + + + + + + 6 + + + + + + + + 0 0 0 0 0 0 0 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 152.116 0.159528 -126.98 151.878 0.164926 -124.252 150.964 0.176274 -121.582 149.394 0.196867 -119.171 147.257 0.228071 -117.212 144.718 0.269714 -115.857 141.978 0.321305 -115.179 139.238 0.382616 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 + + + + + + + + 7 + + + + + + + + 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 152.116 -0.127155 -126.98 151.838 -0.133421 -123.796 150.615 -0.153401 -120.695 148.477 -0.190186 -118.026 145.631 -0.24242 -116.127 142.434 -0.306022 -115.179 139.238 -0.377496 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 + + + + + + + + 6 + + + + + + + + 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 149.635 -9.4435 -103.508 149.457 -9.45141 -104.554 149.28 -9.45922 -105.6 149.106 -9.46694 -106.647 148.78 -9.48139 -108.609 148.45 -9.49602 -110.637 148.115 -9.51083 -112.736 148.012 -9.51539 -113.381 147.91 -9.51992 -114.026 147.808 -9.52442 -114.671 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -2.41563 -2.41563 -2.41563 -2.41563 0 0 0 4.5139 4.5139 4.5139 5.90552 5.90552 5.90552 5.90552 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 148.172 -9.50833 -114.52 148.156 -9.50901 -114.385 148.131 -9.51015 -114.135 148.106 -9.51123 -113.824 148.093 -9.51183 -113.451 148.106 -9.51123 -113.078 148.131 -9.51015 -112.767 148.156 -9.50901 -112.517 148.172 -9.50833 -112.382 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 147.808 -9.52442 -112.231 147.91 -9.51992 -112.876 148.012 -9.51539 -113.521 148.115 -9.51083 -114.166 148.45 -9.49602 -116.265 148.78 -9.48139 -118.293 149.106 -9.46694 -120.255 149.28 -9.45922 -121.302 149.457 -9.45141 -122.348 149.635 -9.4435 -123.394 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -1.39162 -1.39162 -1.39162 -1.39162 0 0 0 4.5139 4.5139 4.5139 6.92953 6.92953 6.92953 6.92953 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 148.172 9.50833 -114.52 153.323 9.28019 -113.937 157.748 11.9452 -113.451 + + + + + + + + + + 1 0.957762 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 157.528 12.0481 -111.148 157.59 12.0192 -111.797 157.652 11.9903 -112.447 157.714 11.9611 -113.096 157.916 11.8669 -115.2 158.112 11.7742 -117.233 158.302 11.6832 -119.201 158.404 11.6343 -120.255 158.506 11.585 -121.31 158.609 11.5354 -122.364 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -1.39162 -1.39162 -1.39162 -1.39162 0 0 0 4.5139 4.5139 4.5139 6.92953 6.92953 6.92953 6.92953 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 148.172 9.50833 -112.382 153.323 9.28019 -112.965 157.748 11.9452 -113.451 + + + + + + + + + + 1 0.957762 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1 1 1 + + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 158.609 11.5354 -104.538 158.506 11.585 -105.592 158.404 11.6343 -106.647 158.302 11.6832 -107.701 158.112 11.7742 -109.669 157.916 11.8669 -111.702 157.714 11.9611 -113.806 157.652 11.9903 -114.455 157.59 12.0192 -115.105 157.528 12.0481 -115.754 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -2.41563 -2.41563 -2.41563 -2.41563 0 0 0 4.5139 4.5139 4.5139 5.90552 5.90552 5.90552 5.90552 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 158.609 -11.5354 -104.538 158.506 -11.585 -105.592 158.404 -11.6343 -106.647 158.302 -11.6832 -107.701 158.112 -11.7742 -109.669 157.916 -11.8669 -111.702 157.714 -11.9611 -113.806 157.652 -11.9903 -114.455 157.59 -12.0192 -115.105 157.528 -12.0481 -115.754 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -2.41563 -2.41563 -2.41563 -2.41563 0 0 0 4.5139 4.5139 4.5139 5.90552 5.90552 5.90552 5.90552 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 148.172 -9.50833 -112.382 153.323 -9.28019 -112.965 157.748 -11.9452 -113.451 + + + + + + + + + + 1 0.957762 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1 1 1 + + + + + + + + + + + + + + + + + + 13.8755 + + 0 0 1 -180 + 164.808 1.57772e-030 -113.451 + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 178.387 -2.85253 -113.451 178.382 -2.84774 -113.386 178.378 -2.84135 -113.319 178.373 -2.83311 -113.248 178.369 -2.82257 -113.172 178.364 -2.80938 -113.092 178.36 -2.79249 -113.005 178.356 -2.7712 -112.911 178.35 -2.72447 -112.739 178.348 -2.70361 -112.668 178.346 -2.67868 -112.589 178.344 -2.64849 -112.503 178.343 -2.61183 -112.408 178.342 -2.56778 -112.306 178.342 -2.51614 -112.2 178.344 -2.40959 -112.002 178.346 -2.35686 -111.913 178.348 -2.30471 -111.833 178.35 -2.2534 -111.759 178.352 -2.20295 -111.691 178.354 -2.15315 -111.628 178.357 -2.10353 -111.568 178.363 -1.98486 -111.434 178.366 -1.91646 -111.362 178.37 -1.84737 -111.295 178.374 -1.77721 -111.232 178.378 -1.70561 -111.172 178.382 -1.63213 -111.115 178.386 -1.55624 -111.06 178.393 -1.40915 -110.963 178.397 -1.33894 -110.919 178.4 -1.26595 -110.877 178.404 -1.18951 -110.837 178.407 -1.10903 -110.798 178.41 -1.0232 -110.761 178.414 -0.930968 -110.725 178.418 -0.790998 -110.678 178.419 -0.752248 -110.666 178.42 -0.711977 -110.654 178.422 -0.669935 -110.642 178.423 -0.625857 -110.631 178.424 -0.579429 -110.62 178.425 -0.530181 -110.609 178.427 -0.436332 -110.592 178.427 -0.393576 -110.585 178.428 -0.348327 -110.578 178.429 -0.299974 -110.572 178.429 -0.248126 -110.566 178.43 -0.192545 -110.561 178.43 -0.133242 -110.558 178.43 -0.0233126 -110.555 178.43 0.0261656 -110.555 178.43 0.0754234 -110.556 178.43 0.123238 -110.557 178.43 0.168943 -110.56 178.429 0.212282 -110.564 178.429 0.253314 -110.567 178.428 0.382988 -110.582 178.426 0.462101 -110.595 178.425 0.534321 -110.609 178.423 0.600279 -110.624 178.422 0.661592 -110.639 178.42 0.7189 -110.655 178.419 0.77319 -110.672 178.414 0.90762 -110.717 178.412 0.983249 -110.745 178.409 1.05423 -110.775 178.406 1.12143 -110.805 178.404 1.18548 -110.837 178.401 1.24694 -110.869 178.398 1.30617 -110.902 178.392 1.444 -110.984 178.388 1.52066 -111.034 178.384 1.59446 -111.086 178.38 1.66597 -111.14 178.376 1.73563 -111.197 178.373 1.80383 -111.257 178.369 1.87094 -111.32 178.364 1.96779 -111.418 178.362 1.99804 -111.45 178.361 2.02819 -111.482 178.359 2.05828 -111.516 178.357 2.08834 -111.551 178.356 2.11842 -111.587 178.355 2.14857 -111.624 178.352 2.2071 -111.7 178.351 2.23542 -111.738 178.349 2.26389 -111.777 178.348 2.29258 -111.818 178.347 2.32151 -111.862 178.346 2.3507 -111.907 178.345 2.38015 -111.955 178.343 2.45624 -112.086 178.342 2.50631 -112.178 178.342 2.55369 -112.274 178.343 2.59547 -112.369 178.344 2.63129 -112.459 178.345 2.66133 -112.542 178.347 2.68629 -112.617 178.35 2.72369 -112.737 178.352 2.73834 -112.787 178.353 2.7513 -112.835 178.355 2.76285 -112.881 178.357 2.77318 -112.925 178.359 2.78247 -112.967 178.36 2.79086 -113.007 178.365 2.80992 -113.105 178.368 2.81954 -113.161 178.371 2.82768 -113.214 178.374 2.83457 -113.265 178.378 2.84038 -113.314 178.381 2.84524 -113.361 178.384 2.84926 -113.407 178.387 2.85253 -113.451 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 0.117046 0.117046 0.117046 0.117046 0.117046 0.117046 0.117046 0.189914 0.189914 0.189914 0.189914 0.189914 0.189914 0.189914 0.262763 0.262763 0.262763 0.262763 0.262763 0.262763 0.262763 0.361581 0.361581 0.361581 0.361581 0.361581 0.361581 0.361581 0.446471 0.446471 0.446471 0.446471 0.446471 0.446471 0.446471 0.47744 0.47744 0.47744 0.47744 0.47744 0.47744 0.47744 0.50143 0.50143 0.50143 0.50143 0.50143 0.50143 0.50143 0.51984 0.51984 0.51984 0.51984 0.51984 0.51984 0.51984 0.562577 0.562577 0.562577 0.562577 0.562577 0.562577 0.562577 0.62997 0.62997 0.62997 0.62997 0.62997 0.62997 0.62997 0.724468 0.724468 0.724468 0.724468 0.724468 0.724468 0.724468 0.767694 0.767694 0.767694 0.767694 0.767694 0.767694 0.767694 0.808042 0.808042 0.808042 0.808042 0.808042 0.808042 0.808042 0.871036 0.871036 0.871036 0.871036 0.871036 0.871036 0.871036 0.922336 0.922336 0.922336 0.922336 0.922336 0.922336 0.922336 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 13.8755 + + 0 0 1 -180 + 164.808 1.57772e-030 -113.451 + + + + 164.808 12.8358 -101.568 + -9.67623e-018 -0.0871557 0.996195 + + + + + 12.8358 + + 0 0 1 -180 + 164.808 1.57772e-030 -101.568 + + + + 13.8755 + + 0 0 1 -180 + 164.808 1.57772e-030 -113.451 + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 157.528 -12.0481 -111.148 157.59 -12.0192 -111.797 157.652 -11.9903 -112.447 157.714 -11.9611 -113.096 157.916 -11.8669 -115.2 158.112 -11.7742 -117.233 158.302 -11.6832 -119.201 158.404 -11.6343 -120.255 158.506 -11.585 -121.31 158.609 -11.5354 -122.364 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 3 + + + + + + + + -1.39162 -1.39162 -1.39162 -1.39162 0 0 0 4.5139 4.5139 4.5139 6.92953 6.92953 6.92953 6.92953 + + + + + + + + + + + + + + + + + + 164.808 12.8358 -125.334 + -9.67623e-018 -0.0871557 -0.996195 + + + + + 12.8358 + + 0 0 1 -180 + 164.808 1.57772e-030 -125.334 + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 178.387 -2.85253 -113.451 178.382 -2.84774 -113.516 178.378 -2.84135 -113.583 178.373 -2.83311 -113.654 178.369 -2.82257 -113.73 178.364 -2.80938 -113.81 178.36 -2.79249 -113.897 178.356 -2.7712 -113.991 178.35 -2.72447 -114.163 178.348 -2.70361 -114.234 178.346 -2.67868 -114.313 178.344 -2.64849 -114.399 178.343 -2.61183 -114.494 178.342 -2.56778 -114.596 178.342 -2.51614 -114.702 178.344 -2.40959 -114.9 178.346 -2.35686 -114.989 178.348 -2.30471 -115.069 178.35 -2.2534 -115.143 178.352 -2.20295 -115.211 178.354 -2.15315 -115.274 178.357 -2.10353 -115.334 178.363 -1.98486 -115.468 178.366 -1.91646 -115.54 178.37 -1.84737 -115.607 178.374 -1.77721 -115.67 178.378 -1.70561 -115.73 178.382 -1.63213 -115.787 178.386 -1.55624 -115.842 178.393 -1.40915 -115.939 178.397 -1.33894 -115.983 178.4 -1.26595 -116.025 178.404 -1.18951 -116.065 178.407 -1.10903 -116.104 178.41 -1.0232 -116.141 178.414 -0.930968 -116.177 178.418 -0.790998 -116.224 178.419 -0.752248 -116.236 178.42 -0.711977 -116.248 178.422 -0.669935 -116.26 178.423 -0.625857 -116.271 178.424 -0.579429 -116.282 178.425 -0.530181 -116.293 178.427 -0.436332 -116.31 178.427 -0.393576 -116.317 178.428 -0.348327 -116.324 178.429 -0.299974 -116.33 178.429 -0.248126 -116.336 178.43 -0.192545 -116.341 178.43 -0.133242 -116.344 178.43 -0.0233126 -116.347 178.43 0.0261656 -116.347 178.43 0.0754234 -116.346 178.43 0.123238 -116.345 178.43 0.168943 -116.342 178.429 0.212282 -116.338 178.429 0.253314 -116.334 178.428 0.382988 -116.32 178.426 0.462101 -116.307 178.425 0.534321 -116.293 178.423 0.600279 -116.278 178.422 0.661592 -116.263 178.42 0.7189 -116.247 178.419 0.77319 -116.23 178.414 0.90762 -116.185 178.412 0.983249 -116.157 178.409 1.05423 -116.127 178.406 1.12143 -116.097 178.404 1.18548 -116.065 178.401 1.24694 -116.033 178.398 1.30617 -116 178.392 1.444 -115.918 178.388 1.52066 -115.868 178.384 1.59446 -115.816 178.38 1.66597 -115.762 178.376 1.73563 -115.705 178.373 1.80383 -115.645 178.369 1.87094 -115.582 178.364 1.96779 -115.484 178.362 1.99804 -115.452 178.361 2.02819 -115.42 178.359 2.05828 -115.386 178.357 2.08834 -115.351 178.356 2.11842 -115.315 178.355 2.14857 -115.278 178.352 2.2071 -115.202 178.351 2.23542 -115.164 178.349 2.26389 -115.125 178.348 2.29258 -115.084 178.347 2.32151 -115.04 178.346 2.3507 -114.995 178.345 2.38015 -114.947 178.343 2.45624 -114.816 178.342 2.50631 -114.724 178.342 2.55369 -114.628 178.343 2.59547 -114.533 178.344 2.63129 -114.443 178.345 2.66133 -114.36 178.347 2.68629 -114.285 178.35 2.72369 -114.165 178.352 2.73834 -114.115 178.353 2.7513 -114.067 178.355 2.76285 -114.021 178.357 2.77318 -113.977 178.359 2.78247 -113.935 178.36 2.79086 -113.895 178.365 2.80992 -113.797 178.368 2.81954 -113.741 178.371 2.82768 -113.688 178.374 2.83457 -113.637 178.378 2.84038 -113.588 178.381 2.84524 -113.541 178.384 2.84926 -113.495 178.387 2.85253 -113.451 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 0.117046 0.117046 0.117046 0.117046 0.117046 0.117046 0.117046 0.189914 0.189914 0.189914 0.189914 0.189914 0.189914 0.189914 0.262764 0.262764 0.262764 0.262764 0.262764 0.262764 0.262764 0.361581 0.361581 0.361581 0.361581 0.361581 0.361581 0.361581 0.446471 0.446471 0.446471 0.446471 0.446471 0.446471 0.446471 0.47744 0.47744 0.47744 0.47744 0.47744 0.47744 0.47744 0.501431 0.501431 0.501431 0.501431 0.501431 0.501431 0.501431 0.51984 0.51984 0.51984 0.51984 0.51984 0.51984 0.51984 0.562578 0.562578 0.562578 0.562578 0.562578 0.562578 0.562578 0.62997 0.62997 0.62997 0.62997 0.62997 0.62997 0.62997 0.724468 0.724468 0.724468 0.724468 0.724468 0.724468 0.724468 0.767694 0.767694 0.767694 0.767694 0.767694 0.767694 0.767694 0.808042 0.808042 0.808042 0.808042 0.808042 0.808042 0.808042 0.871036 0.871036 0.871036 0.871036 0.871036 0.871036 0.871036 0.922336 0.922336 0.922336 0.922336 0.922336 0.922336 0.922336 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + 148.172 -9.50833 -114.52 153.323 -9.28019 -113.937 157.748 -11.9452 -113.451 + + + + + + + + + + 1 0.957762 1 + + + + + + + + 2 + + + + + + + + 0 0 0 1 1 1 + + + + + + + + + + + + + + + + + + 177.644 2.10926 -113.451 + -0.707107 -0.707107 0 + + + + + 2.10926 + + 0 1 0 90 + 177.644 -1.42506e-015 -113.451 + + + + 11.339 + + 0 0 1 -90 + 164.808 1.57772e-030 -101.568 + + + + 11.339 + + 0 0 1 -90 + 164.808 1.57772e-030 -125.334 + + + + 164.808 2.10926 -113.451 + 1 -1.11022e-016 0 + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 175.395 2.10926 -113.451 175.395 2.10926 -113.303 175.397 2.09736 -113.159 175.402 2.07486 -113.024 175.408 2.04406 -112.897 175.415 2.00675 -112.778 175.423 1.96429 -112.668 175.431 1.91727 -112.565 175.452 1.80111 -112.345 175.464 1.73006 -112.232 175.476 1.6523 -112.126 175.489 1.56749 -112.026 175.502 1.47528 -111.931 175.516 1.3742 -111.841 175.529 1.26299 -111.755 175.548 1.08839 -111.643 175.553 1.03822 -111.613 175.558 0.9856 -111.584 175.563 0.930228 -111.556 175.568 0.871669 -111.528 175.573 0.809411 -111.501 175.577 0.742769 -111.475 175.586 0.600357 -111.428 175.59 0.525231 -111.406 175.594 0.442524 -111.385 175.598 0.350559 -111.366 175.601 0.248583 -111.35 175.603 0.137172 -111.34 175.603 0.0178844 -111.338 175.602 -0.156775 -111.347 175.601 -0.211301 -111.351 175.6 -0.263557 -111.357 175.598 -0.313312 -111.364 175.597 -0.360569 -111.372 175.595 -0.405473 -111.38 175.594 -0.448267 -111.389 175.589 -0.556123 -111.415 175.585 -0.617814 -111.433 175.582 -0.675525 -111.451 175.578 -0.729839 -111.47 175.575 -0.781203 -111.49 175.571 -0.830012 -111.511 175.567 -0.876579 -111.532 175.558 -0.987778 -111.586 175.552 -1.0499 -111.619 175.546 -1.10843 -111.654 175.54 -1.16389 -111.689 175.534 -1.21665 -111.726 175.528 -1.26699 -111.763 175.522 -1.31517 -111.801 175.506 -1.44631 -111.912 175.495 -1.52446 -111.986 175.484 -1.59707 -112.064 175.474 -1.66476 -112.146 175.464 -1.72787 -112.231 175.454 -1.78657 -112.321 175.445 -1.84084 -112.415 175.428 -1.93734 -112.61 175.42 -1.97977 -112.71 175.413 -2.018 -112.815 175.406 -2.05145 -112.928 175.401 -2.0789 -113.049 175.397 -2.09881 -113.177 175.395 -2.10926 -113.312 175.395 -2.10926 -113.451 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 0.164405 0.164405 0.164405 0.164405 0.164405 0.164405 0.164405 0.366439 0.366439 0.366439 0.366439 0.366439 0.366439 0.366439 0.443147 0.443147 0.443147 0.443147 0.443147 0.443147 0.443147 0.51729 0.51729 0.51729 0.51729 0.51729 0.51729 0.51729 0.552436 0.552436 0.552436 0.552436 0.552436 0.552436 0.552436 0.609624 0.609624 0.609624 0.609624 0.609624 0.609624 0.609624 0.694893 0.694893 0.694893 0.694893 0.694893 0.694893 0.694893 0.851635 0.851635 0.851635 0.851635 0.851635 0.851635 0.851635 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 175.395 -2.10926 -113.451 175.395 -2.10926 -113.603 175.397 -2.09669 -113.75 175.402 -2.07307 -113.889 175.408 -2.04086 -114.018 175.416 -2.0019 -114.139 175.424 -1.95763 -114.251 175.433 -1.90862 -114.356 175.454 -1.78929 -114.576 175.466 -1.71737 -114.688 175.478 -1.63876 -114.793 175.491 -1.55304 -114.892 175.505 -1.45985 -114.986 175.518 -1.3576 -115.075 175.532 -1.24503 -115.16 175.55 -1.06839 -115.271 175.555 -1.01802 -115.3 175.56 -0.965189 -115.329 175.565 -0.909559 -115.356 175.57 -0.850686 -115.384 175.574 -0.788046 -115.41 175.579 -0.720936 -115.435 175.588 -0.577681 -115.481 175.592 -0.501739 -115.502 175.595 -0.417826 -115.522 175.599 -0.324575 -115.54 175.602 -0.22152 -115.555 175.603 -0.109621 -115.563 175.603 0.00883299 -115.563 175.601 0.180972 -115.553 175.6 0.235577 -115.548 175.599 0.28773 -115.542 175.598 0.337295 -115.534 175.596 0.384335 -115.526 175.594 0.429025 -115.517 175.593 0.471622 -115.507 175.587 0.57889 -115.48 175.584 0.640251 -115.462 175.581 0.697691 -115.443 175.577 0.751785 -115.424 175.573 0.802976 -115.403 175.569 0.851648 -115.382 175.565 0.898107 -115.36 175.556 1.00858 -115.305 175.55 1.07017 -115.271 175.544 1.12826 -115.236 175.538 1.18333 -115.2 175.532 1.23575 -115.163 175.526 1.28578 -115.125 175.52 1.33368 -115.086 175.503 1.46331 -114.974 175.493 1.5404 -114.899 175.482 1.61207 -114.82 175.472 1.67889 -114.738 175.462 1.74116 -114.652 175.452 1.79904 -114.561 175.443 1.85246 -114.466 175.426 1.94589 -114.271 175.419 1.98633 -114.174 175.412 2.02276 -114.07 175.406 2.05456 -113.96 175.4 2.08062 -113.842 175.397 2.09943 -113.717 175.395 2.10926 -113.586 175.395 2.10926 -113.451 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 8 + + + + + + + + 0 0 0 0 0 0 0 0 0 0.168959 0.168959 0.168959 0.168959 0.168959 0.168959 0.168959 0.371041 0.371041 0.371041 0.371041 0.371041 0.371041 0.371041 0.44691 0.44691 0.44691 0.44691 0.44691 0.44691 0.44691 0.519867 0.519867 0.519867 0.519867 0.519867 0.519867 0.519867 0.555601 0.555601 0.555601 0.555601 0.555601 0.555601 0.555601 0.613657 0.613657 0.613657 0.613657 0.613657 0.613657 0.613657 0.699566 0.699566 0.699566 0.699566 0.699566 0.699566 0.699566 0.856112 0.856112 0.856112 0.856112 0.856112 0.856112 0.856112 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + 164.808 10.7946 -102.112 + 1.21802e-016 0.707107 0.707107 + + + + + 10.7946 + + 0 0 1 -90 + 164.808 1.57772e-030 -102.112 + + + + 164.808 10.7946 -124.79 + -1.21802e-016 -0.707107 0.707107 + + + + + 10.7946 + + 0 0 1 -90 + 164.808 1.57772e-030 -124.79 + + + + 164.808 10.7946 554.027 + 0 0 -1 + + + + + + + 0 0 1 0 + + 165 0 -77 + + + + 10.2 + + 165 0 -149 + + + + 6 + + 165 0 -159 + + + + 0 0 1 0 + + 165 0 -149 + + + + 20.4122 + + 0 0 1 -90 + 44.9207 1.33102e-014 -124.337 + + + + 0 0 1 0 + + 20 -30 -104.1 + + + + 0 0 1 0 + + 20 -30 -123.5 + + + + 21.6369 + + 0 0 1 90 + 1 0 0 180 + 67.7687 34.7274 -13721.6 + + + + 0 0 1 0 + + 0 0 1 -90 + -13443.3 -32.3329 -104.742 + + + + 0 0 1 0 + + 0 0 1 -90 + -13443.3 -32.3329 -122.16 + + + + 0 0 1 0 + + 0 1 0 2.53594 + 1 0 0 -90 + 32.5576 11.5095 13494.7 + + + + 0 0 1 0 + + 0 1 0 -2.53594 + 1 0 0 90 + 32.5576 11.5095 -13721.6 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 47.6604 10.8406 -105.191 49.0652 10.7784 -105.191 50.47 10.7162 -105.191 84.9445 9.18932 -105.191 118.014 7.72468 -105.327 152.485 6.198 -105.327 153.886 6.13595 -105.327 155.286 6.07391 -105.327 47.6604 10.8406 -111.723 49.0652 10.7784 -111.723 50.47 10.7162 -111.723 84.9445 9.18932 -111.723 118.014 7.72468 -111.723 152.485 6.198 -111.723 153.886 6.13595 -111.723 155.286 6.07391 -111.723 47.3714 4.31512 -111.723 48.7762 4.2529 -111.723 50.181 4.19068 -111.723 84.6555 2.66382 -111.723 117.731 1.33513 -111.723 152.202 -0.191549 -111.723 153.603 -0.253591 -111.723 155.003 -0.315634 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 1 0.707107 0.707107 0.707107 0.707107 0.707107 0.707107 0.707107 0.707107 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 0 0 0 79.1671 79.1671 79.1671 + + + + + + + + -3.10003 -3.10003 -3.10003 -3.10003 0 0 72.9758 72.9758 76.0671 76.0671 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 61.178 10.2419 -127.846 61.2239 10.2399 -127.321 60.9806 10.2507 -126.772 60.6048 10.2673 -125.939 60.412 10.2759 -124.735 60.7245 10.262 -123.363 61.5887 10.2237 -122.209 62.7963 10.1703 -121.575 64.0038 10.1168 -121.575 50.8458 10.6995 -126.94 51.0667 10.6897 -124.5 51.8149 10.6566 -122.112 53.0743 10.6008 -119.912 54.7894 10.5249 -118.026 56.8649 10.4329 -116.56 59.1795 10.3304 -115.584 61.6016 10.2232 -115.127 64.0038 10.1168 -115.179 50.8424 0.317735 -126.98 51.0486 0.315619 -124.622 51.7484 0.704634 -122.306 52.9336 1.35162 -120.138 54.5761 2.11756 -118.229 56.6167 2.86194 -116.712 58.9146 3.45531 -115.686 61.3261 3.78081 -115.179 63.7209 3.72722 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 0.691347 0.691603 0.692468 0.693934 0.695961 0.698469 0.701277 0.704209 0.707107 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 8 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 8.50725e-017 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + + + 0 0 1 0 + + 0 0 1 180 + 1 0 0 180 + 151.084 13608.1 -111.723 + + + + + NURBS OPEN + + + + + + + + OPEN + + + + + + + + 47.3893 4.45054 -115.179 155.003 -0.315634 -115.179 47.6723 10.8401 -115.179 155.286 6.07391 -115.179 47.6723 10.8401 -121.575 155.286 6.07391 -121.575 + + + + + + + + + + 1 1 0.707107 0.707107 1 1 + + + + + + + + 2 + + + + + + + + 1 + + + + + + + + 0 0 0 79.1584 79.1584 79.1584 + + + + + + + + -3.09127 -3.09127 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + OPEN + + + + + + + + 47.3893 -4.45054 -111.723 155.003 0.315634 -111.723 47.6723 -10.8401 -111.723 155.286 -6.07391 -111.723 47.6723 -10.8401 -105.327 155.286 -6.07391 -105.327 + + + + + + + + + + 1 1 0.707107 0.707107 1 1 + + + + + + + + 2 + + + + + + + + 1 + + + + + + + + 0 0 0 79.1584 79.1584 79.1584 + + + + + + + + -3.09127 -3.09127 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + + + 0 0 1 0 + + 0 0 1 -180 + 151.084 -13608.1 -115.179 + + + + 0 0 1 0 + + 0 1 0 -2.53594 + 1 0 0 -90 + 32.5576 -11.5095 13494.7 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 47.6604 -10.8406 -121.711 49.0652 -10.7784 -121.711 50.47 -10.7162 -121.711 84.9445 -9.18932 -121.711 118.014 -7.72468 -121.575 152.485 -6.198 -121.575 153.886 -6.13595 -121.575 155.286 -6.07391 -121.575 47.6604 -10.8406 -115.179 49.0652 -10.7784 -115.179 50.47 -10.7162 -115.179 84.9445 -9.18932 -115.179 118.014 -7.72468 -115.179 152.485 -6.198 -115.179 153.886 -6.13595 -115.179 155.286 -6.07391 -115.179 47.3714 -4.31512 -115.179 48.7762 -4.2529 -115.179 50.181 -4.19068 -115.179 84.6555 -2.66382 -115.179 117.731 -1.33513 -115.179 152.202 0.191549 -115.179 153.603 0.253591 -115.179 155.003 0.315634 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 0.707107 0.707107 0.707107 0.707107 0.707107 0.707107 0.707107 0.707107 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 0 0 0 79.1671 79.1671 79.1671 + + + + + + + + -3.10003 -3.10003 -3.10003 -3.10003 0 0 72.9758 72.9758 76.0671 76.0671 76.0671 76.0671 + + + + + + + + + + + + + + + + + + + + + 0 0 1 0 + + 0 0 1 -90 + -13443.3 -32.3329 -104.742 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 61.178 -10.2419 -127.846 61.224 -10.2399 -127.32 60.9958 -10.25 -126.771 60.6442 -10.2656 -125.95 60.4727 -10.2732 -124.775 60.7909 -10.2591 -123.441 61.6426 -10.2213 -122.321 62.8261 -10.1689 -121.706 64.0096 -10.1165 -121.706 50.8458 -10.6995 -126.94 51.0668 -10.6897 -124.498 51.8155 -10.6566 -122.11 53.0759 -10.6008 -119.909 54.7923 -10.5247 -118.022 56.869 -10.4328 -116.557 59.1846 -10.3302 -115.582 61.6073 -10.2229 -115.126 64.0096 -10.1165 -115.179 50.8424 -0.317735 -126.98 51.0487 -0.315618 -124.621 51.749 -0.690017 -122.304 52.9351 -1.31269 -120.136 54.5782 -2.04974 -118.228 56.6179 -2.76591 -116.712 58.9149 -3.33655 -115.686 61.326 -3.64914 -115.179 63.7209 -3.59662 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 0.691347 0.691603 0.692469 0.693936 0.695964 0.698471 0.701278 0.704209 0.707107 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 8 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 -1.30868e-015 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + + + 21.6369 + + 0 0 1 90 + 1 0 0 180 + 67.7687 -34.7274 -13721.6 + + + + 0 0 1 0 + + 0 1 0 2.53594 + 1 0 0 90 + 32.5576 -11.5095 -13721.6 + + + + 0 0 1 0 + + 0 0 1 -90 + -13443.3 -32.3329 -122.16 + + + + 13.6081 + + 0 0 1 -90 + 44.9207 1.33102e-014 -140.667 + + + + 11 + + 45 0 -135 + + + + 0 0 1 0 + + 0 1 0 -2.53594 + 1 0 0 90 + 66.8114 13.1117 -13721.6 + + + + 0 0 1 0 + + 0 0 1 180 + 0 1 0 1.7272 + 1 0 0 180 + 167.744 13608.1 -107.728 + + + + 0 0 1 0 + + 0 1 0 1.7272 + 167.744 13608.1 -119.174 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 145.719 6.49762 -103.093 145.666 6.49998 -103.701 145.429 6.51051 -104.293 145.014 6.52887 -104.797 144.471 6.55293 -105.15 143.866 6.5797 -105.325 143.262 6.60648 -105.325 151.792 6.22866 -103.625 151.613 6.23659 -105.738 150.826 6.27147 -107.806 149.441 6.33282 -109.615 147.572 6.4156 -110.943 145.435 6.51024 -111.653 143.262 6.60648 -111.723 151.79 0.126647 -103.648 151.6 0.129001 -105.826 150.764 0.135315 -107.947 149.302 0.147342 -109.774 147.355 0.165114 -111.073 145.167 0.18772 -111.723 142.979 0.214528 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 0.722523 0.722193 0.720745 0.718214 0.714821 0.710976 0.707107 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 6 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + 0 0 0 0 0 0 0 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + + + 8.84527 + + 0 0 1 5 + 1 0 0 -90 + 142.979 6.26004 -102.877 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 146.093 6.4811 -127.532 145.971 6.4865 -126.138 145.495 6.50759 -124.775 144.678 6.54376 -123.553 143.578 6.59248 -122.575 142.287 6.64965 -121.907 140.904 6.71091 -121.575 139.521 6.77216 -121.575 152.118 6.21422 -127.003 151.889 6.22436 -124.33 151.012 6.26323 -121.705 149.497 6.33032 -119.317 147.425 6.4221 -117.355 144.945 6.53194 -115.969 142.245 6.6515 -115.239 139.521 6.77216 -115.179 152.116 0.159528 -126.98 151.878 0.164926 -124.252 150.964 0.176274 -121.582 149.394 0.196867 -119.171 147.257 0.228071 -117.212 144.718 0.269714 -115.857 141.978 0.321305 -115.179 139.238 0.382616 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 1 0.722523 0.72224 0.721158 0.719297 0.716757 0.71372 0.710422 0.707107 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 7 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 2.24152e-016 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 145.767 -6.49554 -103.097 145.712 -6.49794 -103.717 145.461 -6.50905 -104.32 145.026 -6.52832 -104.823 144.472 -6.55289 -105.161 143.867 -6.57968 -105.327 143.262 -6.60648 -105.327 151.792 -6.22866 -103.625 151.613 -6.23659 -105.738 150.826 -6.27148 -107.807 149.44 -6.33283 -109.615 147.571 -6.4156 -110.943 145.435 -6.51024 -111.653 143.262 -6.60648 -111.723 151.79 -0.173968 -103.648 151.6 -0.176369 -105.825 150.764 -0.173877 -107.946 149.303 -0.172734 -109.773 147.355 -0.176887 -111.074 145.167 -0.190101 -111.723 142.979 -0.216935 -111.723 + + + + + + + + + + 1 1 1 1 1 1 1 0.722523 0.722193 0.720746 0.718215 0.714821 0.710976 0.707107 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 6 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + 0 0 0 0 0 0 0 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + + + 12.9277 + + 0 0 1 5 + 1 0 0 90 + 139.238 -6.26004 -128.107 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 146.06 -6.48253 -127.535 145.919 -6.4888 -125.916 145.289 -6.51667 -124.341 144.191 -6.56532 -122.995 142.746 -6.62934 -122.05 141.133 -6.70074 -121.58 139.521 -6.77215 -121.58 152.118 -6.21422 -127.004 151.851 -6.22605 -123.884 150.676 -6.27811 -120.832 148.61 -6.36963 -118.178 145.839 -6.49233 -116.255 142.697 -6.63149 -115.249 139.521 -6.77215 -115.179 152.116 -0.127155 -126.98 151.838 -0.133421 -123.796 150.615 -0.153401 -120.695 148.477 -0.190186 -118.026 145.631 -0.24242 -116.127 142.434 -0.306022 -115.179 139.238 -0.377496 -115.179 + + + + + + + + + + 1 1 1 1 1 1 1 0.722523 0.722193 0.720744 0.718211 0.714818 0.710975 0.707107 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 6 + + + + + + + + 0 0 0 1.48344 1.48344 1.48344 + + + + + + + + 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.2385e-017 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 1.48344 + + + + + + + + + + + + + + + + + + + + + 0 0 1 0 + + 0 1 0 2.53594 + 1 0 0 90 + 66.8114 -13.1117 -13721.6 + + + + 0 0 1 0 + + 45 0 -110 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 157.528 12.0481 -111.148 157.59 12.0192 -111.797 157.652 11.9903 -112.447 157.714 11.9611 -113.096 157.916 11.8669 -115.2 158.112 11.7742 -117.233 158.302 11.6832 -119.201 158.404 11.6343 -120.255 158.506 11.585 -121.31 158.609 11.5354 -122.364 153.05 9.29226 -111.639 153.127 9.28888 -112.287 153.203 9.28548 -112.935 153.28 9.28206 -113.583 153.53 9.27099 -115.683 153.776 9.2601 -117.716 154.019 9.24937 -119.685 154.148 9.24364 -120.736 154.279 9.23786 -121.787 154.411 9.23201 -122.839 147.808 9.52442 -112.231 147.91 9.51992 -112.876 148.012 9.51539 -113.521 148.115 9.51083 -114.166 148.45 9.49602 -116.265 148.78 9.48139 -118.293 149.106 9.46694 -120.255 149.28 9.45922 -121.302 149.457 9.45141 -122.348 149.635 9.4435 -123.394 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 0.956356 0.95675 0.957146 0.957544 0.958832 0.960097 0.961339 0.962006 0.962677 0.963355 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 0 0 0 8.32114 8.32114 8.32114 + + + + + + + + -1.39162 -1.39162 -1.39162 -1.39162 0 0 0 4.5139 4.5139 4.5139 6.92953 6.92953 6.92953 6.92953 + + + + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 148.172 9.50833 -112.382 148.156 9.50901 -112.517 148.131 9.51015 -112.767 148.106 9.51123 -113.078 148.093 9.51183 -113.451 148.106 9.51123 -113.824 148.131 9.51015 -114.135 148.156 9.50901 -114.385 148.172 9.50833 -114.52 153.323 9.28019 -112.965 153.316 9.2805 -113.026 153.304 9.28102 -113.14 153.293 9.28151 -113.282 153.287 9.28178 -113.451 153.293 9.28151 -113.62 153.304 9.28102 -113.762 153.316 9.2805 -113.876 153.323 9.28019 -113.937 157.748 11.9452 -113.451 157.748 11.9452 -113.451 157.748 11.9452 -113.451 157.748 11.9452 -113.451 157.748 11.9452 -113.451 157.748 11.9452 -113.451 157.748 11.9452 -113.451 157.748 11.9452 -113.451 157.748 11.9452 -113.451 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 8 + + + + + + + + 0 0 0 1 1 1 + + + + + + + + 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 158.609 11.5354 -104.538 158.506 11.585 -105.592 158.404 11.6343 -106.647 158.302 11.6832 -107.701 158.112 11.7742 -109.669 157.916 11.8669 -111.702 157.714 11.9611 -113.806 157.652 11.9903 -114.455 157.59 12.0192 -115.105 157.528 12.0481 -115.754 154.411 9.23201 -104.063 154.279 9.23786 -105.115 154.148 9.24364 -106.166 154.019 9.24937 -107.217 153.776 9.2601 -109.186 153.53 9.27099 -111.219 153.28 9.28206 -113.319 153.203 9.28548 -113.967 153.127 9.28888 -114.615 153.05 9.29226 -115.263 149.635 9.4435 -103.508 149.457 9.45141 -104.554 149.28 9.45922 -105.6 149.106 9.46694 -106.647 148.78 9.48139 -108.609 148.45 9.49602 -110.637 148.115 9.51083 -112.736 148.012 9.51539 -113.381 147.91 9.51992 -114.026 147.808 9.52442 -114.671 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 0.963355 0.962677 0.962006 0.961339 0.960097 0.958832 0.957544 0.957146 0.95675 0.956356 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 0 0 0 8.32114 8.32114 8.32114 + + + + + + + + -2.41563 -2.41563 -2.41563 -2.41563 0 0 0 4.5139 4.5139 4.5139 5.90552 5.90552 5.90552 5.90552 + + + + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 149.635 -9.4435 -103.508 149.457 -9.45141 -104.554 149.28 -9.45922 -105.6 149.106 -9.46694 -106.647 148.78 -9.48139 -108.609 148.45 -9.49602 -110.637 148.115 -9.51083 -112.736 148.012 -9.51539 -113.381 147.91 -9.51992 -114.026 147.808 -9.52442 -114.671 154.411 -9.23201 -104.063 154.279 -9.23786 -105.115 154.148 -9.24364 -106.166 154.019 -9.24937 -107.217 153.776 -9.2601 -109.186 153.53 -9.27099 -111.219 153.28 -9.28206 -113.319 153.203 -9.28548 -113.967 153.127 -9.28888 -114.615 153.05 -9.29226 -115.263 158.609 -11.5354 -104.538 158.506 -11.585 -105.592 158.404 -11.6343 -106.647 158.302 -11.6832 -107.701 158.112 -11.7742 -109.669 157.916 -11.8669 -111.702 157.714 -11.9611 -113.806 157.652 -11.9903 -114.455 157.59 -12.0192 -115.105 157.528 -12.0481 -115.754 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 0.963355 0.962677 0.962006 0.961339 0.960097 0.958832 0.957544 0.957146 0.95675 0.956356 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 0 0 0 8.32114 8.32114 8.32114 + + + + + + + + -2.41563 -2.41563 -2.41563 -2.41563 0 0 0 4.5139 4.5139 4.5139 5.90552 5.90552 5.90552 5.90552 + + + + + + + + + + + + + + + + + + + + + 317.195 + 27.751 27.751 + 0 0 + + 0 0 1 90 + 1 0 0 180 + 164.808 1.57772e-030 -113.451 + + + + 317.195 + 27.751 27.751 + 0 0 + + 0 0 1 -90 + 164.808 1.57772e-030 -113.451 + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 147.808 -9.52442 -112.231 147.91 -9.51992 -112.876 148.012 -9.51539 -113.521 148.115 -9.51083 -114.166 148.45 -9.49602 -116.265 148.78 -9.48139 -118.293 149.106 -9.46694 -120.255 149.28 -9.45922 -121.302 149.457 -9.45141 -122.348 149.635 -9.4435 -123.394 153.05 -9.29226 -111.639 153.127 -9.28888 -112.287 153.203 -9.28548 -112.935 153.28 -9.28206 -113.583 153.53 -9.27099 -115.683 153.776 -9.2601 -117.716 154.019 -9.24937 -119.685 154.148 -9.24364 -120.736 154.279 -9.23786 -121.787 154.411 -9.23201 -122.839 157.528 -12.0481 -111.148 157.59 -12.0192 -111.797 157.652 -11.9903 -112.447 157.714 -11.9611 -113.096 157.916 -11.8669 -115.2 158.112 -11.7742 -117.233 158.302 -11.6832 -119.201 158.404 -11.6343 -120.255 158.506 -11.585 -121.31 158.609 -11.5354 -122.364 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 0.956356 0.95675 0.957146 0.957544 0.958832 0.960097 0.961339 0.962006 0.962677 0.963355 1 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 3 + + + + + + + + 0 0 0 8.32114 8.32114 8.32114 + + + + + + + + -1.39162 -1.39162 -1.39162 -1.39162 0 0 0 4.5139 4.5139 4.5139 6.92953 6.92953 6.92953 6.92953 + + + + + + + + + + + + + + + + + + + + + + NURBS OPEN + + + + + + + + NURBS NURBS NURBS NURBS NURBS NURBS NURBS OPEN + + + + + + + + 148.172 -9.50833 -114.52 148.156 -9.50901 -114.385 148.131 -9.51015 -114.135 148.106 -9.51123 -113.824 148.093 -9.51183 -113.451 148.106 -9.51123 -113.078 148.131 -9.51015 -112.767 148.156 -9.50901 -112.517 148.172 -9.50833 -112.382 153.323 -9.28019 -113.937 153.316 -9.2805 -113.876 153.304 -9.28102 -113.762 153.293 -9.28151 -113.62 153.287 -9.28178 -113.451 153.293 -9.28151 -113.282 153.304 -9.28102 -113.14 153.316 -9.2805 -113.026 153.323 -9.28019 -112.965 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 157.748 -11.9452 -113.451 + + + + + + + + + + 1 1 1 1 1 1 1 1 1 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 0.957762 1 1 1 1 1 1 1 1 1 + + + + + + + + 2 + + + + + + + + 8 + + + + + + + + 0 0 0 1 1 1 + + + + + + + + 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 + + + + + + + + + + + + + + + + + + + + + 4.21851 + 4.21851 4.21851 + 0 0 + + 0 1 0 -90 + 1 0 0 -90 + 177.644 -1.42506e-015 -113.451 + + + + 0 0 1 0 + + 0 0 1 -90 + 164.808 1.57772e-030 -101.568 + + + + 0 0 1 0 + + 0 0 1 -90 + 1 0 0 180 + 164.808 1.57772e-030 -125.334 + + + + 2.10926 + + 0 1 0 90 + 1 0 0 90 + 164.808 1.57772e-030 -113.451 + + + + 21.5893 + 21.5893 21.5893 + 0 0 + + 0 0 1 -90 + 164.808 1.57772e-030 -102.112 + + + + 21.5893 + 21.5893 21.5893 + 0 0 + + 0 0 1 90 + 1 0 0 180 + 164.808 1.57772e-030 -124.79 + + + + 10.7946 + + 0 0 1 -90 + 164.808 1.57772e-030 554.027 + + + + crankarm.stp.lib.geo.brep.curve2d-1 crankarm.stp.lib.geo.brep.curve2d-2 crankarm.stp.lib.geo.brep.curve2d-3 crankarm.stp.lib.geo.brep.curve2d-4 crankarm.stp.lib.geo.brep.curve2d-5 crankarm.stp.lib.geo.brep.curve2d-6 crankarm.stp.lib.geo.brep.curve2d-7 crankarm.stp.lib.geo.brep.curve2d-8 crankarm.stp.lib.geo.brep.curve2d-9 crankarm.stp.lib.geo.brep.curve2d-10 crankarm.stp.lib.geo.brep.curve2d-11 crankarm.stp.lib.geo.brep.curve2d-12 crankarm.stp.lib.geo.brep.curve2d-13 crankarm.stp.lib.geo.brep.curve2d-14 crankarm.stp.lib.geo.brep.curve2d-15 crankarm.stp.lib.geo.brep.curve2d-16 crankarm.stp.lib.geo.brep.curve2d-17 crankarm.stp.lib.geo.brep.curve2d-18 crankarm.stp.lib.geo.brep.curve2d-19 crankarm.stp.lib.geo.brep.curve2d-20 crankarm.stp.lib.geo.brep.curve2d-21 crankarm.stp.lib.geo.brep.curve2d-22 crankarm.stp.lib.geo.brep.curve2d-23 crankarm.stp.lib.geo.brep.curve2d-24 crankarm.stp.lib.geo.brep.curve2d-25 crankarm.stp.lib.geo.brep.curve2d-26 crankarm.stp.lib.geo.brep.curve2d-27 crankarm.stp.lib.geo.brep.curve2d-28 crankarm.stp.lib.geo.brep.curve2d-29 crankarm.stp.lib.geo.brep.curve2d-30 crankarm.stp.lib.geo.brep.curve2d-31 crankarm.stp.lib.geo.brep.curve2d-32 crankarm.stp.lib.geo.brep.curve2d-33 crankarm.stp.lib.geo.brep.curve2d-34 crankarm.stp.lib.geo.brep.curve2d-35 crankarm.stp.lib.geo.brep.curve2d-36 crankarm.stp.lib.geo.brep.curve2d-37 crankarm.stp.lib.geo.brep.curve2d-38 crankarm.stp.lib.geo.brep.curve2d-39 crankarm.stp.lib.geo.brep.curve2d-40 crankarm.stp.lib.geo.brep.curve2d-41 crankarm.stp.lib.geo.brep.curve2d-42 crankarm.stp.lib.geo.brep.curve2d-43 crankarm.stp.lib.geo.brep.curve2d-44 crankarm.stp.lib.geo.brep.curve2d-45 crankarm.stp.lib.geo.brep.curve2d-46 crankarm.stp.lib.geo.brep.curve2d-47 crankarm.stp.lib.geo.brep.curve2d-48 crankarm.stp.lib.geo.brep.curve2d-49 crankarm.stp.lib.geo.brep.curve2d-50 crankarm.stp.lib.geo.brep.curve2d-51 crankarm.stp.lib.geo.brep.curve2d-52 crankarm.stp.lib.geo.brep.curve2d-53 crankarm.stp.lib.geo.brep.curve2d-54 crankarm.stp.lib.geo.brep.curve2d-55 crankarm.stp.lib.geo.brep.curve2d-56 crankarm.stp.lib.geo.brep.curve2d-57 crankarm.stp.lib.geo.brep.curve2d-58 crankarm.stp.lib.geo.brep.curve2d-59 crankarm.stp.lib.geo.brep.curve2d-60 crankarm.stp.lib.geo.brep.curve2d-61 crankarm.stp.lib.geo.brep.curve2d-62 crankarm.stp.lib.geo.brep.curve2d-63 crankarm.stp.lib.geo.brep.curve2d-64 crankarm.stp.lib.geo.brep.curve2d-65 crankarm.stp.lib.geo.brep.curve2d-66 crankarm.stp.lib.geo.brep.curve2d-67 crankarm.stp.lib.geo.brep.curve2d-68 crankarm.stp.lib.geo.brep.curve2d-69 crankarm.stp.lib.geo.brep.curve2d-70 crankarm.stp.lib.geo.brep.curve2d-71 crankarm.stp.lib.geo.brep.curve2d-72 crankarm.stp.lib.geo.brep.curve2d-73 crankarm.stp.lib.geo.brep.curve2d-74 crankarm.stp.lib.geo.brep.curve2d-75 crankarm.stp.lib.geo.brep.curve2d-76 crankarm.stp.lib.geo.brep.curve2d-77 crankarm.stp.lib.geo.brep.curve2d-78 crankarm.stp.lib.geo.brep.curve2d-79 crankarm.stp.lib.geo.brep.curve2d-80 crankarm.stp.lib.geo.brep.curve2d-81 crankarm.stp.lib.geo.brep.curve2d-82 crankarm.stp.lib.geo.brep.curve2d-83 crankarm.stp.lib.geo.brep.curve2d-84 crankarm.stp.lib.geo.brep.curve2d-85 crankarm.stp.lib.geo.brep.curve2d-86 crankarm.stp.lib.geo.brep.curve2d-87 crankarm.stp.lib.geo.brep.curve2d-88 crankarm.stp.lib.geo.brep.curve2d-89 crankarm.stp.lib.geo.brep.curve2d-90 crankarm.stp.lib.geo.brep.curve2d-91 crankarm.stp.lib.geo.brep.curve2d-92 crankarm.stp.lib.geo.brep.curve2d-93 crankarm.stp.lib.geo.brep.curve2d-94 crankarm.stp.lib.geo.brep.curve2d-95 crankarm.stp.lib.geo.brep.curve2d-96 crankarm.stp.lib.geo.brep.curve2d-97 crankarm.stp.lib.geo.brep.curve2d-98 crankarm.stp.lib.geo.brep.curve2d-99 crankarm.stp.lib.geo.brep.curve2d-100 crankarm.stp.lib.geo.brep.curve2d-101 crankarm.stp.lib.geo.brep.curve2d-102 crankarm.stp.lib.geo.brep.curve2d-103 crankarm.stp.lib.geo.brep.curve2d-104 crankarm.stp.lib.geo.brep.curve2d-105 crankarm.stp.lib.geo.brep.curve2d-106 crankarm.stp.lib.geo.brep.curve2d-107 crankarm.stp.lib.geo.brep.curve2d-108 crankarm.stp.lib.geo.brep.curve2d-109 crankarm.stp.lib.geo.brep.curve2d-110 crankarm.stp.lib.geo.brep.curve2d-111 crankarm.stp.lib.geo.brep.curve2d-112 crankarm.stp.lib.geo.brep.curve2d-113 crankarm.stp.lib.geo.brep.curve2d-114 crankarm.stp.lib.geo.brep.curve2d-115 crankarm.stp.lib.geo.brep.curve2d-116 crankarm.stp.lib.geo.brep.curve2d-117 crankarm.stp.lib.geo.brep.curve2d-118 crankarm.stp.lib.geo.brep.curve2d-119 crankarm.stp.lib.geo.brep.curve2d-120 crankarm.stp.lib.geo.brep.curve2d-121 crankarm.stp.lib.geo.brep.curve2d-122 crankarm.stp.lib.geo.brep.curve2d-123 crankarm.stp.lib.geo.brep.curve2d-124 crankarm.stp.lib.geo.brep.curve2d-125 crankarm.stp.lib.geo.brep.curve2d-126 crankarm.stp.lib.geo.brep.curve2d-127 crankarm.stp.lib.geo.brep.curve2d-128 crankarm.stp.lib.geo.brep.curve2d-129 crankarm.stp.lib.geo.brep.curve2d-130 crankarm.stp.lib.geo.brep.curve2d-131 crankarm.stp.lib.geo.brep.curve2d-132 crankarm.stp.lib.geo.brep.curve2d-133 crankarm.stp.lib.geo.brep.curve2d-134 crankarm.stp.lib.geo.brep.curve2d-135 crankarm.stp.lib.geo.brep.curve2d-136 crankarm.stp.lib.geo.brep.curve2d-137 crankarm.stp.lib.geo.brep.curve2d-138 crankarm.stp.lib.geo.brep.curve2d-139 crankarm.stp.lib.geo.brep.curve2d-140 crankarm.stp.lib.geo.brep.curve2d-141 crankarm.stp.lib.geo.brep.curve2d-142 crankarm.stp.lib.geo.brep.curve2d-143 crankarm.stp.lib.geo.brep.curve2d-144 crankarm.stp.lib.geo.brep.curve2d-145 crankarm.stp.lib.geo.brep.curve2d-146 crankarm.stp.lib.geo.brep.curve2d-147 crankarm.stp.lib.geo.brep.curve2d-148 crankarm.stp.lib.geo.brep.curve2d-149 crankarm.stp.lib.geo.brep.curve2d-150 crankarm.stp.lib.geo.brep.curve2d-151 crankarm.stp.lib.geo.brep.curve2d-152 crankarm.stp.lib.geo.brep.curve2d-153 crankarm.stp.lib.geo.brep.curve2d-154 crankarm.stp.lib.geo.brep.curve2d-155 crankarm.stp.lib.geo.brep.curve2d-156 crankarm.stp.lib.geo.brep.curve2d-157 crankarm.stp.lib.geo.brep.curve2d-158 crankarm.stp.lib.geo.brep.curve2d-159 crankarm.stp.lib.geo.brep.curve2d-160 crankarm.stp.lib.geo.brep.curve2d-161 crankarm.stp.lib.geo.brep.curve2d-162 crankarm.stp.lib.geo.brep.curve2d-163 crankarm.stp.lib.geo.brep.curve2d-164 crankarm.stp.lib.geo.brep.curve2d-165 crankarm.stp.lib.geo.brep.curve2d-166 crankarm.stp.lib.geo.brep.curve2d-167 crankarm.stp.lib.geo.brep.curve2d-168 crankarm.stp.lib.geo.brep.curve2d-169 crankarm.stp.lib.geo.brep.curve2d-170 crankarm.stp.lib.geo.brep.curve2d-171 crankarm.stp.lib.geo.brep.curve2d-172 crankarm.stp.lib.geo.brep.curve2d-173 crankarm.stp.lib.geo.brep.curve2d-174 crankarm.stp.lib.geo.brep.curve2d-175 crankarm.stp.lib.geo.brep.curve2d-176 crankarm.stp.lib.geo.brep.curve2d-177 crankarm.stp.lib.geo.brep.curve2d-178 crankarm.stp.lib.geo.brep.curve2d-179 crankarm.stp.lib.geo.brep.curve2d-180 crankarm.stp.lib.geo.brep.curve2d-181 crankarm.stp.lib.geo.brep.curve2d-182 crankarm.stp.lib.geo.brep.curve2d-183 crankarm.stp.lib.geo.brep.curve2d-184 crankarm.stp.lib.geo.brep.curve2d-185 crankarm.stp.lib.geo.brep.curve2d-186 crankarm.stp.lib.geo.brep.curve2d-187 crankarm.stp.lib.geo.brep.curve2d-188 crankarm.stp.lib.geo.brep.curve2d-189 crankarm.stp.lib.geo.brep.curve2d-190 crankarm.stp.lib.geo.brep.curve2d-191 crankarm.stp.lib.geo.brep.curve2d-192 crankarm.stp.lib.geo.brep.curve2d-193 crankarm.stp.lib.geo.brep.curve2d-194 crankarm.stp.lib.geo.brep.curve2d-195 crankarm.stp.lib.geo.brep.curve2d-196 crankarm.stp.lib.geo.brep.curve2d-197 crankarm.stp.lib.geo.brep.curve2d-198 crankarm.stp.lib.geo.brep.curve2d-199 crankarm.stp.lib.geo.brep.curve2d-200 crankarm.stp.lib.geo.brep.curve2d-201 crankarm.stp.lib.geo.brep.curve2d-202 crankarm.stp.lib.geo.brep.curve2d-203 crankarm.stp.lib.geo.brep.curve2d-204 crankarm.stp.lib.geo.brep.curve2d-205 crankarm.stp.lib.geo.brep.curve2d-206 crankarm.stp.lib.geo.brep.curve2d-207 crankarm.stp.lib.geo.brep.curve2d-208 crankarm.stp.lib.geo.brep.curve2d-209 crankarm.stp.lib.geo.brep.curve2d-210 crankarm.stp.lib.geo.brep.curve2d-211 crankarm.stp.lib.geo.brep.curve2d-212 crankarm.stp.lib.geo.brep.curve2d-213 crankarm.stp.lib.geo.brep.curve2d-214 crankarm.stp.lib.geo.brep.curve2d-215 crankarm.stp.lib.geo.brep.curve2d-216 crankarm.stp.lib.geo.brep.curve2d-217 crankarm.stp.lib.geo.brep.curve2d-218 crankarm.stp.lib.geo.brep.curve2d-219 crankarm.stp.lib.geo.brep.curve2d-220 crankarm.stp.lib.geo.brep.curve2d-221 crankarm.stp.lib.geo.brep.curve2d-222 crankarm.stp.lib.geo.brep.curve2d-223 crankarm.stp.lib.geo.brep.curve2d-224 crankarm.stp.lib.geo.brep.curve2d-225 crankarm.stp.lib.geo.brep.curve2d-226 crankarm.stp.lib.geo.brep.curve2d-227 crankarm.stp.lib.geo.brep.curve2d-228 crankarm.stp.lib.geo.brep.curve2d-229 crankarm.stp.lib.geo.brep.curve2d-230 crankarm.stp.lib.geo.brep.curve2d-231 crankarm.stp.lib.geo.brep.curve2d-232 crankarm.stp.lib.geo.brep.curve2d-233 crankarm.stp.lib.geo.brep.curve2d-234 crankarm.stp.lib.geo.brep.curve2d-235 crankarm.stp.lib.geo.brep.curve2d-236 crankarm.stp.lib.geo.brep.curve2d-237 crankarm.stp.lib.geo.brep.curve2d-238 crankarm.stp.lib.geo.brep.curve2d-239 crankarm.stp.lib.geo.brep.curve2d-240 crankarm.stp.lib.geo.brep.curve2d-241 crankarm.stp.lib.geo.brep.curve2d-242 crankarm.stp.lib.geo.brep.curve2d-243 crankarm.stp.lib.geo.brep.curve2d-244 crankarm.stp.lib.geo.brep.curve2d-245 crankarm.stp.lib.geo.brep.curve2d-246 crankarm.stp.lib.geo.brep.curve2d-247 crankarm.stp.lib.geo.brep.curve2d-248 crankarm.stp.lib.geo.brep.curve2d-249 crankarm.stp.lib.geo.brep.curve2d-250 crankarm.stp.lib.geo.brep.curve2d-251 crankarm.stp.lib.geo.brep.curve2d-252 crankarm.stp.lib.geo.brep.curve2d-253 crankarm.stp.lib.geo.brep.curve2d-254 crankarm.stp.lib.geo.brep.curve2d-255 crankarm.stp.lib.geo.brep.curve2d-256 crankarm.stp.lib.geo.brep.curve2d-257 crankarm.stp.lib.geo.brep.curve2d-258 crankarm.stp.lib.geo.brep.curve2d-259 crankarm.stp.lib.geo.brep.curve2d-260 crankarm.stp.lib.geo.brep.curve2d-261 crankarm.stp.lib.geo.brep.curve2d-262 crankarm.stp.lib.geo.brep.curve2d-263 crankarm.stp.lib.geo.brep.curve2d-264 crankarm.stp.lib.geo.brep.curve2d-265 crankarm.stp.lib.geo.brep.curve2d-266 crankarm.stp.lib.geo.brep.curve2d-267 crankarm.stp.lib.geo.brep.curve2d-268 crankarm.stp.lib.geo.brep.curve2d-269 crankarm.stp.lib.geo.brep.curve2d-270 crankarm.stp.lib.geo.brep.curve2d-271 crankarm.stp.lib.geo.brep.curve2d-272 crankarm.stp.lib.geo.brep.curve2d-273 crankarm.stp.lib.geo.brep.curve2d-274 + + + crankarm.stp.lib.geo.brep.surface-1 crankarm.stp.lib.geo.brep.surface-2 crankarm.stp.lib.geo.brep.surface-3 crankarm.stp.lib.geo.brep.surface-4 crankarm.stp.lib.geo.brep.surface-5 crankarm.stp.lib.geo.brep.surface-6 crankarm.stp.lib.geo.brep.surface-7 crankarm.stp.lib.geo.brep.surface-8 crankarm.stp.lib.geo.brep.surface-9 crankarm.stp.lib.geo.brep.surface-10 crankarm.stp.lib.geo.brep.surface-11 crankarm.stp.lib.geo.brep.surface-12 crankarm.stp.lib.geo.brep.surface-13 crankarm.stp.lib.geo.brep.surface-14 crankarm.stp.lib.geo.brep.surface-15 crankarm.stp.lib.geo.brep.surface-16 crankarm.stp.lib.geo.brep.surface-17 crankarm.stp.lib.geo.brep.surface-18 crankarm.stp.lib.geo.brep.surface-19 crankarm.stp.lib.geo.brep.surface-20 crankarm.stp.lib.geo.brep.surface-21 crankarm.stp.lib.geo.brep.surface-22 crankarm.stp.lib.geo.brep.surface-23 crankarm.stp.lib.geo.brep.surface-24 crankarm.stp.lib.geo.brep.surface-25 crankarm.stp.lib.geo.brep.surface-26 crankarm.stp.lib.geo.brep.surface-27 crankarm.stp.lib.geo.brep.surface-28 crankarm.stp.lib.geo.brep.surface-29 crankarm.stp.lib.geo.brep.surface-30 crankarm.stp.lib.geo.brep.surface-31 crankarm.stp.lib.geo.brep.surface-32 crankarm.stp.lib.geo.brep.surface-33 crankarm.stp.lib.geo.brep.surface-34 crankarm.stp.lib.geo.brep.surface-35 crankarm.stp.lib.geo.brep.surface-36 crankarm.stp.lib.geo.brep.surface-37 crankarm.stp.lib.geo.brep.surface-38 crankarm.stp.lib.geo.brep.surface-39 crankarm.stp.lib.geo.brep.surface-40 crankarm.stp.lib.geo.brep.surface-41 crankarm.stp.lib.geo.brep.surface-42 crankarm.stp.lib.geo.brep.surface-43 crankarm.stp.lib.geo.brep.surface-44 crankarm.stp.lib.geo.brep.surface-45 crankarm.stp.lib.geo.brep.surface-46 crankarm.stp.lib.geo.brep.surface-47 crankarm.stp.lib.geo.brep.surface-48 crankarm.stp.lib.geo.brep.surface-49 crankarm.stp.lib.geo.brep.surface-50 crankarm.stp.lib.geo.brep.surface-51 crankarm.stp.lib.geo.brep.surface-52 crankarm.stp.lib.geo.brep.surface-53 + + + REVERSED FORWARD + + + + + + + + 0 6.28319 1.5708 7.85398 0 72 0 6.28319 10 82 1.5708 7.85398 0.837479 20.2375 3.14159 9.42478 3.14159 9.42478 -13616.8 -13599.4 0.522029 0.833203 2.1773 2.39053 0 1 0 1 6.10887 6.46399 0 1 0 1 2.1773 2.25282 5.44998 5.76116 -13616.8 -13599.4 5.44998 5.76116 19.0105 19.5957 0 1 6.10238 6.4575 0 1 19.1422 19.5957 0.522029 0.833203 3.14159 9.42478 1.5708 7.85398 4.75665 5.14752 13599.4 13616.8 4.75665 5.14752 6760.45 6766.55 -6777.98 -6774.86 6747.43 6749.33 -6766.55 -6760.45 6774.86 6777.98 6747.43 6749.33 7.89963 24.1905 -490.115 -474.04 1.26089 1.48344 8.92184 26.6576 474.04 493.473 9.88429 67.2221 0.263317 1.48344 0 1 0 0.872853 6.04551 6.47697 9.86286 67.222 0 1 0.245523 1.48344 9.86286 64.4703 7.89963 26.6576 0 1 0.26304 1.48344 9.88429 64.4705 5.88254 6.64266 6761.88 6767.98 108.36 127.792 0 0.866 0.246126 1.48344 0 1 8.92609 24.1905 1.13566 1.52654 6748.86 6750.76 -6800.91 -6797.79 1.25507 1.48344 1.13566 1.52654 13599.4 13616.8 -127.792 -111.718 -6767.98 -6761.88 6748.86 6750.76 6797.79 6800.91 30.6672 36.5672 3.14159 9.42478 11.5 25 1.5708 7.85398 -127.503 -47.0772 -127.503 -47.0772 0.395052 4.25982 0 1 0.254079 4.11885 474.33 554.756 7.21129e-012 1 6.1238 6.43484 0 1 0 1 0 1 2.38257 3.90062 0 1 0 1 0 1 0 1 2.38257 3.90062 0 1 0 1 474.33 554.756 0 1 6.07907 6.46331 0 1 0.425274 1.48344 0.425346 1.48344 0.61707 1.48344 0.617038 1.48344 0.395052 4.25982 0 1 0.254079 4.11885 0 1 0.254079 4.71029 0 1 0 1 -0.196391 4.25982 -0.196391 4.25982 0 1 1.03701 2.93454 0 1 3.34865 4.71239 -11.9287 0 4.71239 10.9956 4.71239 5.24618 0.254079 4.71029 -11.9287 -0 4.71239 10.9956 0 1 0 1 0 1 -1.05115 0 1.5708 7.85398 0 6.28319 0 6.28319 10.5866 12.8358 0 1 0 1 0 0.769791 0 6.28319 -0.769791 0 0 6.28319 656.139 678.817 + + + + + + + + + 175.2 -2.4982e-015 -77 171 0 -77 175.2 -2.4982e-015 -149 171 0 -149 44.9207 20.4122 -123.5 44.9207 20.4122 -104.1 58.6481 15.1068 -104.742 58.6481 15.1068 -122.16 62.6142 10.1783 -122.16 62.6142 10.1783 -121.947 63.8897 7.53893 -116.442 65.0002 3.67056 -115.179 65.0236 -3.54013 -115.179 63.8949 -7.52582 -116.497 62.6142 -10.1783 -122.085 62.6142 -10.1783 -122.16 58.6481 -15.1068 -122.16 58.6481 -15.1068 -104.742 62.6142 -10.1783 -104.742 62.6142 -10.1783 -105.327 65.0002 -3.67056 -111.723 65.0236 3.54013 -111.723 62.6142 10.1783 -105.195 62.6142 10.1783 -104.742 44.9207 13.6081 -104.1 56 3.63857e-014 -123.5 66.8114 13.1117 -122.16 66.8114 13.1117 -104.742 68.7102 9.90832 -104.742 68.7102 13.0276 -104.742 68.7102 9.90832 -122.16 68.7102 13.0276 -122.16 84.7613 9.19743 -105.226 64.0038 10.1168 -121.575 88.1152 9.04889 -121.575 142.979 0.214528 -111.723 143.252 6.38625 -106.99 142.979 -0.216935 -111.723 139.512 6.58172 -120.025 139.238 0.382616 -115.179 88.1152 -9.04889 -105.327 143.252 -6.38681 -106.99 139.238 -0.377496 -115.179 68.7102 -9.90832 -104.742 64.0096 -10.1165 -121.706 139.513 -6.58059 -120.025 84.7613 -9.19743 -121.676 66.8114 -13.1117 -104.742 68.7102 -13.0276 -104.742 66.8114 -13.1117 -122.16 68.7102 -9.90832 -122.16 68.7102 -13.0276 -122.16 44.9207 13.6081 -110 56 0 -110 149.02 9.47074 -119.738 149.02 9.47074 -107.164 148.172 9.50833 -112.382 148.172 9.50833 -114.52 149.02 -9.47074 -107.164 150.688 -0.174799 -107.214 150.688 0.136239 -107.214 158.327 11.6712 -107.444 155.145 9.19946 -107.348 155.145 -9.19946 -107.348 158.327 -11.6712 -107.444 158.327 11.6712 -119.458 155.145 9.19946 -119.554 155.145 -9.19946 -119.554 158.327 -11.6712 -119.458 149.02 -9.47074 -119.738 149.09 -0.180973 -119.736 149.09 0.203275 -119.736 148.172 -9.50833 -112.382 148.172 -9.50833 -114.52 157.748 11.9452 -113.451 157.748 -11.9452 -113.451 178.387 -2.85253 -113.451 178.387 2.85253 -113.451 164.808 13.8755 -113.451 164.808 12.8358 -101.568 164.808 12.8358 -125.334 177.644 2.10926 -113.451 164.808 11.339 -101.568 164.808 11.339 -125.334 175.395 2.10926 -113.451 175.395 -2.10926 -113.451 164.808 10.7946 -102.112 164.808 10.7946 -124.79 + + + + + + + + + + crankarm.stp.lib.geo.brep.curve-1 crankarm.stp.lib.geo.brep.curve-2 crankarm.stp.lib.geo.brep.curve-3 crankarm.stp.lib.geo.brep.curve-4 crankarm.stp.lib.geo.brep.curve-5 crankarm.stp.lib.geo.brep.curve-6 crankarm.stp.lib.geo.brep.curve-7 crankarm.stp.lib.geo.brep.curve-8 crankarm.stp.lib.geo.brep.curve-9 crankarm.stp.lib.geo.brep.curve-10 crankarm.stp.lib.geo.brep.curve-11 crankarm.stp.lib.geo.brep.curve-12 crankarm.stp.lib.geo.brep.curve-13 crankarm.stp.lib.geo.brep.curve-14 crankarm.stp.lib.geo.brep.curve-15 crankarm.stp.lib.geo.brep.curve-16 crankarm.stp.lib.geo.brep.curve-17 crankarm.stp.lib.geo.brep.curve-18 crankarm.stp.lib.geo.brep.curve-19 crankarm.stp.lib.geo.brep.curve-20 crankarm.stp.lib.geo.brep.curve-21 crankarm.stp.lib.geo.brep.curve-22 crankarm.stp.lib.geo.brep.curve-23 crankarm.stp.lib.geo.brep.curve-24 crankarm.stp.lib.geo.brep.curve-25 crankarm.stp.lib.geo.brep.curve-26 crankarm.stp.lib.geo.brep.curve-27 crankarm.stp.lib.geo.brep.curve-28 crankarm.stp.lib.geo.brep.curve-29 crankarm.stp.lib.geo.brep.curve-30 crankarm.stp.lib.geo.brep.curve-31 crankarm.stp.lib.geo.brep.curve-32 crankarm.stp.lib.geo.brep.curve-33 crankarm.stp.lib.geo.brep.curve-34 crankarm.stp.lib.geo.brep.curve-35 crankarm.stp.lib.geo.brep.curve-36 crankarm.stp.lib.geo.brep.curve-37 crankarm.stp.lib.geo.brep.curve-38 crankarm.stp.lib.geo.brep.curve-39 crankarm.stp.lib.geo.brep.curve-40 crankarm.stp.lib.geo.brep.curve-41 crankarm.stp.lib.geo.brep.curve-42 crankarm.stp.lib.geo.brep.curve-43 crankarm.stp.lib.geo.brep.curve-44 crankarm.stp.lib.geo.brep.curve-45 crankarm.stp.lib.geo.brep.curve-46 crankarm.stp.lib.geo.brep.curve-47 crankarm.stp.lib.geo.brep.curve-48 crankarm.stp.lib.geo.brep.curve-49 crankarm.stp.lib.geo.brep.curve-50 crankarm.stp.lib.geo.brep.curve-51 crankarm.stp.lib.geo.brep.curve-52 crankarm.stp.lib.geo.brep.curve-53 crankarm.stp.lib.geo.brep.curve-54 crankarm.stp.lib.geo.brep.curve-55 crankarm.stp.lib.geo.brep.curve-56 crankarm.stp.lib.geo.brep.curve-57 crankarm.stp.lib.geo.brep.curve-58 crankarm.stp.lib.geo.brep.curve-59 crankarm.stp.lib.geo.brep.curve-60 crankarm.stp.lib.geo.brep.curve-61 crankarm.stp.lib.geo.brep.curve-62 crankarm.stp.lib.geo.brep.curve-63 crankarm.stp.lib.geo.brep.curve-64 crankarm.stp.lib.geo.brep.curve-65 crankarm.stp.lib.geo.brep.curve-66 crankarm.stp.lib.geo.brep.curve-67 crankarm.stp.lib.geo.brep.curve-68 crankarm.stp.lib.geo.brep.curve-69 crankarm.stp.lib.geo.brep.curve-70 crankarm.stp.lib.geo.brep.curve-71 crankarm.stp.lib.geo.brep.curve-72 crankarm.stp.lib.geo.brep.curve-73 crankarm.stp.lib.geo.brep.curve-74 crankarm.stp.lib.geo.brep.curve-75 crankarm.stp.lib.geo.brep.curve-76 crankarm.stp.lib.geo.brep.curve-77 crankarm.stp.lib.geo.brep.curve-78 crankarm.stp.lib.geo.brep.curve-79 crankarm.stp.lib.geo.brep.curve-80 crankarm.stp.lib.geo.brep.curve-81 crankarm.stp.lib.geo.brep.curve-82 crankarm.stp.lib.geo.brep.curve-83 crankarm.stp.lib.geo.brep.curve-84 crankarm.stp.lib.geo.brep.curve-85 crankarm.stp.lib.geo.brep.curve-86 crankarm.stp.lib.geo.brep.curve-87 crankarm.stp.lib.geo.brep.curve-88 crankarm.stp.lib.geo.brep.curve-89 crankarm.stp.lib.geo.brep.curve-90 crankarm.stp.lib.geo.brep.curve-91 crankarm.stp.lib.geo.brep.curve-92 crankarm.stp.lib.geo.brep.curve-93 crankarm.stp.lib.geo.brep.curve-94 crankarm.stp.lib.geo.brep.curve-95 crankarm.stp.lib.geo.brep.curve-96 crankarm.stp.lib.geo.brep.curve-97 crankarm.stp.lib.geo.brep.curve-98 crankarm.stp.lib.geo.brep.curve-99 crankarm.stp.lib.geo.brep.curve-100 crankarm.stp.lib.geo.brep.curve-101 crankarm.stp.lib.geo.brep.curve-102 crankarm.stp.lib.geo.brep.curve-103 crankarm.stp.lib.geo.brep.curve-104 crankarm.stp.lib.geo.brep.curve-105 crankarm.stp.lib.geo.brep.curve-106 crankarm.stp.lib.geo.brep.curve-107 crankarm.stp.lib.geo.brep.curve-108 crankarm.stp.lib.geo.brep.curve-109 crankarm.stp.lib.geo.brep.curve-110 crankarm.stp.lib.geo.brep.curve-111 crankarm.stp.lib.geo.brep.curve-112 crankarm.stp.lib.geo.brep.curve-113 crankarm.stp.lib.geo.brep.curve-114 crankarm.stp.lib.geo.brep.curve-115 crankarm.stp.lib.geo.brep.curve-116 crankarm.stp.lib.geo.brep.curve-117 crankarm.stp.lib.geo.brep.curve-118 crankarm.stp.lib.geo.brep.curve-119 crankarm.stp.lib.geo.brep.curve-120 crankarm.stp.lib.geo.brep.curve-121 crankarm.stp.lib.geo.brep.curve-122 crankarm.stp.lib.geo.brep.curve-123 crankarm.stp.lib.geo.brep.curve-124 crankarm.stp.lib.geo.brep.curve-125 crankarm.stp.lib.geo.brep.curve-126 crankarm.stp.lib.geo.brep.curve-127 crankarm.stp.lib.geo.brep.curve-128 crankarm.stp.lib.geo.brep.curve-129 crankarm.stp.lib.geo.brep.curve-130 crankarm.stp.lib.geo.brep.curve-131 crankarm.stp.lib.geo.brep.curve-132 crankarm.stp.lib.geo.brep.curve-133 crankarm.stp.lib.geo.brep.curve-134 crankarm.stp.lib.geo.brep.curve-135 crankarm.stp.lib.geo.brep.curve-136 crankarm.stp.lib.geo.brep.curve-137 + + + + + + + + + + +

0 0 0 1 0 1 1 1 1 1 2 2 0 1 2 3 2 2 1 3 4 3 1 1 4 5 3 3 1 5 6 4 5 1 6 7 5 5 1 7 8 4 4 1 8 9 6 7 1 9 10 8 7 1 10 11 8 9 1 11 12 9 10 1 12 13 10 11 1 13 14 12 11 1 14 15 13 12 1 15 16 14 13 1 16 17 15 14 1 17 18 16 15 1 18 19 17 16 1 19 20 17 18 1 20 21 19 18 1 21 22 19 20 1 22 23 20 21 1 23 24 22 21 1 24 25 22 23 1 25 26 23 6 1 26 27 24 24 1 27 28 25 25 1 28 29 26 7 1 29 30 26 27 1 30 31 27 6 1 31 32 23 28 1 32 33 28 29 1 33 34 27 29 1 34 35 30 8 1 35 36 31 30 1 36 37 26 31 1 37 38 22 32 1 38 39 32 28 1 39 40 9 33 1 40 41 33 34 1 41 42 30 34 1 42 43 21 35 1 43 44 36 35 1 44 45 32 36 1 45 46 33 10 1 46 47 35 37 1 47 48 20 37 1 48 49 34 38 1 49 50 38 39 1 50 51 11 39 1 51 52 19 40 1 52 53 40 41 1 53 54 41 37 1 54 55 12 42 1 55 56 42 39 1 56 57 18 43 1 57 58 40 43 1 58 59 44 13 1 59 60 45 42 1 60 61 46 45 1 61 62 44 46 1 62 63 17 47 1 63 64 47 48 1 64 65 48 43 1 65 66 14 44 1 66 67 16 49 1 67 68 49 47 1 68 69 50 46 1 69 70 50 15 1 70 71 49 51 1 71 72 50 51 1 72 73 52 24 1 73 74 52 52 1 74 75 25 53 1 75 76 53 53 1 76 77 54 31 1 77 78 55 29 1 78 79 55 56 1 79 80 56 57 1 80 81 57 54 1 81 82 58 48 1 82 83 59 41 1 83 84 60 59 1 84 85 60 36 1 85 86 61 55 1 86 87 62 61 1 87 88 63 62 1 88 89 63 64 1 89 90 58 64 1 90 91 65 54 1 91 92 66 65 1 92 93 67 66 1 93 94 67 68 1 94 95 69 68 1 95 96 69 51 1 96 97 70 45 1 97 98 70 71 1 98 99 71 38 1 99 100 60 35 1 100 101 59 37 1 101 102 71 39 1 102 103 70 42 1 103 104 58 72 1 104 105 73 72 1 105 106 73 69 1 106 107 57 74 1 107 108 74 65 1 108 109 56 74 1 109 39 74 74 1 110 111 61 74 1 111 112 64 75 1 112 113 72 75 1 113 114 75 76 1 114 115 76 77 1 115 116 77 78 1 116 117 78 79 1 117 118 79 79 1 118 119 78 74 1 119 120 75 68 1 120 121 78 80 1 121 122 80 80 1 122 123 76 77 1 123 124 73 75 1 124 45 75 75 1 125 125 77 81 1 126 126 81 81 1 127 127 82 82 1 128 128 83 83 1 129 129 84 81 1 130 130 84 85 1 131 131 85 84 1 132 132 86 82 1 133 133 86 86 1 134 134 83 87 1 135 135 87 87 1 136 136 86 87 1 137

+
+ + + + 1 1 4 4 1 1 4 18 1 1 1 1 4 5 5 4 5 5 3 4 6 5 4 4 6 5 3 4 5 5 4 4 8 16 16 3 4 3 3 4 3 8 1 1 4 4 4 4 12 12 4 4 5 1 1 1 1 5 4 4 4 2 +

0 1 1 0 0 0 2 0 3 1 2 1 4 1 1 0 4 0 5 1 3 0 5 0 6 1 7 0 6 0 8 1 9 1 10 0 11 1 12 1 13 1 14 0 15 0 16 0 17 0 18 0 19 0 20 1 21 0 22 1 23 1 24 0 25 1 26 1 7 1 27 0 8 1 28 0 29 0 30 1 31 1 9 1 31 1 26 0 32 1 33 1 34 0 29 1 10 0 35 0 36 0 37 0 32 0 25 0 38 1 39 1 40 1 41 1 42 0 35 1 11 1 38 0 24 1 43 1 44 0 45 0 40 0 12 1 46 0 43 1 47 1 48 0 23 1 46 0 41 1 49 1 50 1 51 0 13 0 52 1 53 1 54 1 48 0 22 0 55 1 56 1 51 0 14 0 57 0 21 0 52 1 58 1 59 1 15 1 55 1 60 0 61 0 62 0 63 1 64 1 65 1 57 0 20 0 66 0 16 1 59 0 67 0 19 0 63 1 68 0 66 1 62 1 69 0 70 1 17 1 67 1 71 1 72 0 70 1 18 0 73 1 27 0 73 0 74 1 75 1 76 0 75 0 28 1 77 1 37 0 30 1 34 1 78 0 79 1 80 1 81 1 82 1 65 1 58 0 53 1 83 0 84 0 85 1 45 0 39 1 33 1 78 0 86 0 87 0 88 0 89 1 90 0 77 0 91 0 92 0 93 0 94 1 95 0 96 1 72 0 69 1 61 1 97 0 98 1 99 1 49 0 42 0 36 0 100 1 44 0 85 0 100 0 84 1 101 1 47 0 102 1 50 0 99 0 101 1 54 0 83 0 103 0 98 1 102 1 56 0 103 1 60 0 97 0 96 1 71 0 68 1 64 1 82 0 104 1 105 0 106 1 76 0 74 1 107 0 81 1 91 0 108 0 109 1 110 1 107 0 80 0 86 1 79 1 109 1 111 0 90 1 112 1 113 0 104 0 114 1 115 1 116 1 117 1 118 0 117 0 119 1 111 0 87 0 88 0 89 1 112 1 114 0 120 1 94 0 93 1 92 1 108 0 119 0 121 1 122 1 121 0 116 0 123 0 124 1 120 1 95 0 106 0 124 1 125 1 113 0 105 0 126 1 127 0 126 0 123 0 115 1 128 0 118 1 129 0 122 1 130 0 131 1 132 1 130 1 127 1 133 0 134 1 133 1 128 0 135 0 129 1 135 1 136 0 137 1 136 1 137 0 134 0 132 0 131 0

+
+ + + + + 2 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 2 1 1 1 2 +

0 0 1 0 1 1 1 2 1 2 3 1 3 4 0 3 5 1 4 6 1 4 7 1 5 8 1 5 9 1 6 10 1 6 11 1 7 12 1 8 13 1 9 14 1 10 15 1 11 16 1 12 17 1 13 18 1 14 19 1 15 20 1 16 21 1 17 22 1 18 23 1 19 24 1 20 25 1 21 26 1 22 27 1 23 28 1 24 29 1 25 30 1 26 31 1 27 32 1 28 33 1 29 34 0 30 35 1 31 36 1 32 37 1 33 38 1 34 39 1 35 40 1 36 41 1 37 42 1 37 43 1 38 44 1 39 45 1 40 46 1 41 47 1 42 48 1 43 49 1 44 50 1 45 51 1 46 52 1 47 53 1 47 54 1 48 55 0 48 56 0 49 57 1 50 58 1 51 59 1 52 60 1 52 61 1

+
+ + + + 4 49 +

0 1 1 1 2 0 3 0 4 1 5 1 6 0 7 0 8 1 9 0 10 1 11 0 12 1 13 0 14 0 15 1 16 1 17 0 18 0 19 1 20 1 21 1 22 0 23 1 24 0 25 0 26 0 27 1 28 0 29 0 30 0 31 0 32 1 33 1 34 0 35 0 36 0 37 1 38 0 39 1 40 0 41 0 42 1 43 1 44 0 45 1 46 0 47 1 48 1 49 0 50 0 51 0 52 0

+
+ + + + 1 1 +

0 1 1 1

+
+
+
+
+ + + + + + 0 0 0 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 1 1 1 + + + + + + + + + + + + + +
diff --git a/test/data/cube.cstm b/test/data/cube.cstm new file mode 100644 index 0000000..4f8430e --- /dev/null +++ b/test/data/cube.cstm @@ -0,0 +1,218 @@ + + + + + + alorino + Maya 7.0 | ColladaMaya v2.01 Jun 9 2006 at 16:08:19 | FCollada v1.11 + Collada Maya Export Options: bakeTransforms=0;exportPolygonMeshes=1;bakeLighting=0;isSampling=0; +curveConstrainSampling=0;exportCameraAsLookat=0; +exportLights=1;exportCameras=1;exportJointsAndSkin=1; +exportAnimations=1;exportTriangles=0;exportInvisibleNodes=0; +exportNormals=1;exportTexCoords=1;exportVertexColors=1;exportTangents=0; +exportTexTangents=0;exportConstraints=0;exportPhysics=0;exportXRefs=1; +dereferenceXRefs=0;cameraXFov=0;cameraYFov=1 + file://C|/Documents%20and%20Settings/ALorino/My%20Documents/maya/projects/default/untitled + + 2006-06-21T21:23:22Z + 2006-06-21T21:23:22Z + + Y_UP + + + + + + + 37.8493 + 1 + 10 + 1000 + + + + + + + + + 37.8501 + 1 + 0.01 + 1000 + + + + + + + + + + 1 1 1 + 1 + 0 + 0 + + + + 1.000000 + + + + + + 1 1 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + 0 0 0 1 + + + 0 0 0 1 + + + 0.137255 0.403922 0.870588 1 + + + 0.5 0.5 0.5 1 + + + 16 + + + 0 0 0 1 + + + 0.5 + + + 0 0 0 1 + + + 1 + + + 0 + + + + + + + + + + + -50 50 50 50 50 50 -50 -50 50 50 -50 50 -50 50 -50 50 50 -50 -50 -50 -50 50 -50 -50 + + + + + + + + + + 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 + + + + + + + + + + + + + + + 4 4 4 4 4 4 +

0 0 2 1 3 2 1 3 0 4 1 5 5 6 4 7 6 8 7 9 3 10 2 11 0 12 4 13 6 14 2 15 3 16 7 17 5 18 1 19 5 20 7 21 6 22 4 23

+
+
+
+
+ + + + -427.749 333.855 655.017 + 0 1 0 -33 + 1 0 0 -22.1954 + 0 0 1 0 + + + + -500 1000 400 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + + + + + + + -427.749 333.855 655.017 + 0 1 0 -33 + 1 0 0 -22.1954 + 0 0 1 0 + + + + 3 4 10 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + + + + + + + + this is some text + + + +
diff --git a/test/data/cube.dae b/test/data/cube.dae new file mode 100644 index 0000000..4f8430e --- /dev/null +++ b/test/data/cube.dae @@ -0,0 +1,218 @@ + + + + + + alorino + Maya 7.0 | ColladaMaya v2.01 Jun 9 2006 at 16:08:19 | FCollada v1.11 + Collada Maya Export Options: bakeTransforms=0;exportPolygonMeshes=1;bakeLighting=0;isSampling=0; +curveConstrainSampling=0;exportCameraAsLookat=0; +exportLights=1;exportCameras=1;exportJointsAndSkin=1; +exportAnimations=1;exportTriangles=0;exportInvisibleNodes=0; +exportNormals=1;exportTexCoords=1;exportVertexColors=1;exportTangents=0; +exportTexTangents=0;exportConstraints=0;exportPhysics=0;exportXRefs=1; +dereferenceXRefs=0;cameraXFov=0;cameraYFov=1 + file://C|/Documents%20and%20Settings/ALorino/My%20Documents/maya/projects/default/untitled + + 2006-06-21T21:23:22Z + 2006-06-21T21:23:22Z + + Y_UP + + + + + + + 37.8493 + 1 + 10 + 1000 + + + + + + + + + 37.8501 + 1 + 0.01 + 1000 + + + + + + + + + + 1 1 1 + 1 + 0 + 0 + + + + 1.000000 + + + + + + 1 1 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + 0 0 0 1 + + + 0 0 0 1 + + + 0.137255 0.403922 0.870588 1 + + + 0.5 0.5 0.5 1 + + + 16 + + + 0 0 0 1 + + + 0.5 + + + 0 0 0 1 + + + 1 + + + 0 + + + + + + + + + + + -50 50 50 50 50 50 -50 -50 50 50 -50 50 -50 50 -50 50 50 -50 -50 -50 -50 50 -50 -50 + + + + + + + + + + 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 + + + + + + + + + + + + + + + 4 4 4 4 4 4 +

0 0 2 1 3 2 1 3 0 4 1 5 5 6 4 7 6 8 7 9 3 10 2 11 0 12 4 13 6 14 2 15 3 16 7 17 5 18 1 19 5 20 7 21 6 22 4 23

+
+
+
+
+ + + + -427.749 333.855 655.017 + 0 1 0 -33 + 1 0 0 -22.1954 + 0 0 1 0 + + + + -500 1000 400 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + + + + + + + -427.749 333.855 655.017 + 0 1 0 -33 + 1 0 0 -22.1954 + 0 0 1 0 + + + + 3 4 10 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + + + + + + + + + this is some text + + + +
diff --git a/test/data/cube.dae.gz b/test/data/cube.dae.gz new file mode 100644 index 0000000..46b9305 Binary files /dev/null and b/test/data/cube.dae.gz differ diff --git a/test/data/duck.dae b/test/data/duck.dae new file mode 100644 index 0000000..3c904f6 --- /dev/null +++ b/test/data/duck.dae @@ -0,0 +1,186 @@ + + + + + + gcorson + Maya 7.0 | ColladaMaya v2.03b Jul 27 2006 at 18:43:34 | FCollada v1.13 + Collada Maya Export Options: bakeTransforms=0;exportPolygonMeshes=1;bakeLighting=0;isSampling=0; +curveConstrainSampling=0;exportCameraAsLookat=0; +exportLights=1;exportCameras=1;exportJointsAndSkin=1; +exportAnimations=1;exportTriangles=0;exportInvisibleNodes=0; +exportNormals=1;exportTexCoords=1;exportVertexColors=1;exportTangents=0; +exportTexTangents=0;exportConstraints=1;exportPhysics=1;exportXRefs=1; +dereferenceXRefs=0;cameraXFov=0;cameraYFov=1 + file:///C:/Documents%20and%20Settings/gcorson/My%20Documents/maya/projects/default/untitled + + 2006-08-23T22:29:59Z + 2006-08-23T22:30:00Z + + Y_UP + + + + + 0 -980 0 + 0.083 + + + + + + images/duckCM.tga + + + + + + + + + + + + + file2 + A8R8G8B8 + + + + + file2-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + 0 0 0 1 + + + 0 0 0 1 + + + + + + + 0 0 0 1 + + + 0.3 + + + 0 0 0 1 + + + 0.5 + + + 0 0 0 1 + + + 0 + + + 0 + + + + + + + + + + + 315.16 849.43 386.38 106.71 853.88 374.44 -32.73 878.5 301.82 -98.8 840.17 132.87 450.5 849.84 338.51 -568.84 -199.36 410.11 -368.95 -202.05 532.84 542 -117.38 564.24 729.2 -108.39 436.46 598.25 -201.96 377.25 -470.58 -111.4 624.7 -709.14 -104.88 470.88 685.07 -202.44 246.21 655.18 24.09 605.17 804.43 35.44 466.77 -601.94 44.28 657.53 -817.42 34.09 494.78 838.33 206.82 473.85 722.87 202.14 609.07 822.79 385.67 465.6 714.44 392.17 587.23 740.83 539.61 447.73 591.59 557.38 553.12 429.46 664.81 500.98 610.69 655.43 418.43 41.87 640.14 545.32 -320.74 641.88 461.18 41.08 707.26 460.77 -202.79 696.62 383.98 -491.46 698.95 174.33 -90.55 742.06 284.5 -895.32 857.37 190.43 -880.9 651.84 434.94 -752.97 694.41 423.52 -1030.64 640.54 167.61 -987.62 529.89 411.36 -736.22 469.93 603.21 -1033.44 416.21 364.35 -817.55 308.16 608.23 -944.47 236.55 449.27 -586.1 599.27 522.11 -603.85 754.31 187.46 493.5 737.37 372.27 303.02 730.53 430.54 52.56 741.44 400.54 -148.36 737.28 125 47.53 -202.29 562.3 76.09 -121.94 655.11 434.42 558.19 608.85 597.87 401.31 648.14 603.74 207.12 670.48 476.12 35.07 667.82 86.12 -68.4 683.68 -484.46 45.2 697.89 -658.06 246 670.4 -640.96 424.68 647.5 -483.1 544.8 605.64 -349.6 230.21 770.99 -20.28 234.93 798.45 -297.12 133.63 770.24 -352.84 348.87 759.61 -31.04 347.59 792.79 174.16 141.84 778.81 -5.89 124.3 780.56 207.29 244.8 784.4 185.88 386.78 773.46 -32.7 443.06 761.85 129.74 475.21 750.83 -306.44 417.09 749.6 -465.18 369.68 726.69 -459.17 228.23 743.47 -337.18 108.42 755.92 -359.78 449.68 718.68 8.73 70.52 765.31 223.14 115.48 765.62 313.93 239.37 762.48 297.7 397.76 746.15 177.95 498.52 726.78 -22.85 492.01 723.98 -66.39 783.87 109.41 -19.35 789.77 248.42 99.73 790.38 347.27 318.34 789.93 367.98 447.91 792.94 324.13 573.12 860.38 248.35 191.31 848.47 388.89 38.79 864.07 348.7 -76.38 851.89 207.49 639.95 858.13 116.68 -480.05 -200.6 484.02 -311.76 -220.75 473.39 -488.09 -219.76 370.65 -631.33 -198.6 310.12 672.91 -163.68 411.13 432 -202.02 475.98 487.06 -165.79 524.6 -419.66 -163.19 582.67 -643.66 -160.54 444.49 -601.34 -105.89 566.46 -779.97 -104.5 347.96 831.99 -108.73 272.36 771.72 -40.43 454.46 595.13 -52.73 591.03 -521.6 -39.67 651.59 -767.25 -37.03 488.23 -711.18 39.44 603.57 914.53 37.51 287.84 881.12 -39.66 281.2 825.85 117.53 473.56 695.75 109.91 608.35 946.89 211.83 296.77 934.36 121.11 292.45 734.07 298.71 600.45 840.85 298.43 471.52 924.07 388.13 299.72 943.23 302.53 299.92 668.13 480.12 574.15 789.21 466.76 457.41 852.53 538.4 295.04 891.95 466.82 297.2 675.83 601.93 433.35 748.93 661.44 295.52 808.93 603.82 295.93 -257.02 671 426.88 42.86 673.11 503.37 -439.73 655.46 359.76 -282.77 697.08 309.37 -125.74 739.89 215.47 -903.14 742.81 343.4 -752.04 761.64 355.45 -810 685.87 434.75 -1018.17 585.73 309.93 -942.96 596.57 427.44 -941.45 458.61 497.13 -834.17 571.53 517.53 -879.54 266.39 543.1 -1007.85 355 395.58 -1015.68 463.7 386.28 -891.28 28.74 362.98 -324.76 173.14 771.7 -860.94 103.75 489.23 -688.05 145.22 648.73 -1009.68 93.71 175.98 -359.1 292.53 766.7 -335.49 563.11 591.06 -438.3 613.99 497.17 -616.88 637.27 383.62 369.97 691.17 468.96 548 699.76 398.86 229.55 656.01 539.69 173.62 715.06 463.59 628.38 745.01 272.6 686.93 707.42 288.55 -697.49 632.53 462.5 -999.95 220.73 335.56 -1050.81 422.96 287.12 -782.99 393.21 615.14 465.11 767.23 341.68 555.57 824.19 237.44 171.83 739.56 427.4 79.44 766.38 363.23 315.27 816.55 366.75 -80.86 763.54 111.23 372.47 -221.25 421.67 513.68 -221.35 336.93 39.92 -221.14 499.98 223.3 -202.05 537.52 587.02 -220.89 225.18 60.29 -167.63 613.57 288.95 -117 629.2 97.97 132.12 780.43 -14.18 178.63 791.79 88.97 241.47 796.7 192.84 183.31 782.93 -25.9 292.45 797.86 71.05 366.76 789.88 205.23 316.43 781.86 -34.12 397.33 782.17 58.3 464.81 757.03 156.28 442.39 761.69 47.81 600.55 590.28 -670.83 542.25 578.76 -581.72 497.5 628.1 -331.65 391.51 754.4 -559.26 223.35 698.78 -408.9 64.31 716.18 -565.42 396.99 674.07 332.25 64.92 719.35 470.11 220.78 715.7 458.68 405.42 695.03 285.89 536.29 668.57 9.47 550.99 654.03 -415.48 158.39 750.91 -476.36 303.12 734.98 127.44 85.4 765.45 280.15 169.36 765.2 318.18 318.75 755.99 84.49 504.1 724.43 247.66 461.12 735.33 -432.67 421.27 720.23 -253.15 460.5 721.34 -232.03 418.91 754.22 -240.92 337.47 778.89 -237.52 228.98 788.21 -220.19 125.77 775.42 -234.12 81.42 760.46 -269.43 -115.13 656.11 -193.58 -203.2 562.96 -525.39 222.25 719.46 -533.37 386.21 698.52 -378.99 78.45 736.14 -407.87 485.25 686.15 26.58 22.33 745.49 401.07 229.65 738.34 279.61 85.09 743.77 388.63 403.77 719 233.57 521.03 696.88 -8.14 529.44 687.39 -668.75 -197.3 165.51 -835.19 -108.16 170.45 865.49 -108.11 110.78 709.71 -198.95 107.01 959.73 36.8 110.78 1001 212.16 110.78 988.08 388.45 115.07 920.93 536.7 115.07 826.31 664.24 113.17 -336.32 699.64 162.59 -729.37 878.33 192.82 -1050.78 215.35 173.52 -1074.03 432.99 165.52 -39 743.86 344.16 -40.54 765.35 256.08 -74.04 808.5 116.15 -17.64 822.63 259.89 -50.39 786.85 181.51 106.12 818.57 349.63 29.78 790.59 304.26 317.5 763.86 388.24 194.21 789.46 372.28 442.03 819.58 322.81 586.86 773.16 249.46 562.67 797.77 237.94 -409.78 -219.85 431 -542.28 -218.9 284.23 -543.58 -161.8 529.43 -709.47 -158.69 330.39 768.28 -164.63 260.98 -656 -35.94 591.54 497.05 616.98 528.4 -355.53 677.09 337.12 -825.04 775.12 351.24 -970.96 673.77 328.23 -892.98 518.84 515.2 -977.46 399.06 456.51 -840.27 -39.26 357.66 -766.01 118.34 598.23 -936.07 96.25 361.25 -528.83 637.68 379.92 201.84 681.76 501.58 -688.52 694.61 371.43 -1041.89 340.66 303.92 -761.9 605.93 504.37 -1041.57 500.96 294.44 184.1 765.43 391.88 6.25 766.46 314.92 192.97 -220.96 476.29 254.55 -166.05 586.67 91.81 183.21 790.01 81.4 304.52 797.06 60.52 420.7 776.76 277.92 606.96 583.29 536.6 489.16 630.35 620.22 303.56 662.47 556.52 116.67 672.37 331.27 -43.97 663.31 -585.68 137.7 688.55 -667.44 339.4 660.44 -507.31 136.98 708.79 -578.91 313.46 686.95 203.64 14.88 720.1 155.84 558.44 658.56 -289.54 514.82 644.82 -234.56 381.37 770.01 -242.78 284.94 787.22 -227.11 174.62 784.2 -333.46 -38.51 686.78 -227.61 -166.29 614.07 -166.37 -221.08 500.44 -545 308.36 708.91 -478.93 138.16 728.82 -490.3 446.75 690.06 -253.77 40.32 741.57 357.41 149.77 742.56 165.97 42.31 744.33 412.91 317.01 730.37 326.02 475.84 706.96 119.36 537.27 690.26 -278.01 497.06 685.94 -576.86 -219.01 157.25 -752.97 -158.52 169.3 795.56 -162.08 110.63 920.92 -40.4 110.78 983.57 120.66 110.78 1002.22 302.81 115.07 959.9 466.86 115.08 878.02 606.06 115.04 -416.19 693.3 170.08 -812.01 888.25 193.4 -968.61 782.24 182.83 -909.23 -45.39 175.4 -551.06 718.18 180.19 -657.68 833.08 191.37 -1074.42 339.48 167.62 -1059.72 528.84 166.59 612.6 -219.25 101.96 -67.65 764.27 187.68 -53.75 813.98 187.64 36.99 820.88 312.22 196.3 816.47 370.09 683.14 892.59 110.67 -138.53 577.97 591.58 -136.13 526.6 651.45 -139.37 509.09 686.98 -90.37 -221.33 508 -94.75 -203.13 570.98 -96.76 -168.41 623.62 -102.15 -121.69 663.8 -116.35 -66.91 690.16 -115.73 24.56 744.64 -115.26 70.51 763.4 -116.34 122.05 778.79 -121.96 175.27 790.03 -128.7 229.7 797.12 -133.5 284.73 796.59 -135.12 336.89 790.06 -134.24 383.33 778.96 -133.37 426.31 759.13 -136.68 473.3 723.37 -131.09 626.23 528.04 -108.01 667.71 483.15 -85.48 701.6 434.81 632.86 825.26 101.26 640.58 801.4 99.69 673.06 779.55 105.09 719 751.43 110.14 773.61 711.32 111.73 285.17 853.85 -339.2 90.29 849.83 -306.14 -40.2 851.85 -212.02 -124.93 862.69 -61.81 400.68 860.01 -316.03 -576.75 -201.38 -373.53 -375.56 -202.25 -492.97 -667.63 -198.11 -170.78 532.2 -115.74 -519.3 725.1 -108.39 -396.44 591.87 -201.53 -336.68 -463.51 -108.26 -578.59 -713.24 -104.88 -430.87 -830.32 -111.68 -191.26 680.29 -202.16 -205.89 642.79 27.68 -556.57 799.43 35.43 -425.94 -604.98 46.73 -612.83 -822.97 33.31 -455.21 833.87 207 -432.56 714.39 204.77 -557.29 826.12 386.94 -428.32 705 388.64 -543.54 750.61 539.83 -415.98 595.43 544.33 -524.6 435.65 650.86 -465.87 622.77 658.59 -389.32 52.39 630.96 -502.24 -321.99 640.3 -420.33 50.47 706.63 -407.87 -184.75 701.4 -326.41 -491.53 676.68 -194.93 -326.26 699.75 -167.16 -98.61 737.96 -254.78 -910.03 820.5 -226.61 -746.66 835.43 -229.85 -887.29 652.58 -395.97 -757.25 694.16 -382.92 -1040.71 622.87 -178.45 -992.91 530.67 -373.35 -743.42 459.11 -569.38 -1036.53 413.58 -326.94 -956.55 20.28 -201.8 -820.91 307.4 -567.8 -952.55 233.49 -408.83 -1052.03 212.92 -191.05 53.01 588.54 -550.35 -604.03 579.65 -488.21 -622.38 723.16 -219.68 499.62 738.82 -345.21 304.58 730.51 -390.81 66.36 737.86 -359.05 -147.39 738.83 -96.31 -1074.6 428.97 -169.19 42.14 -202.63 -522.55 71.03 -120.89 -614.12 -333.71 228.43 -722.58 -16.27 236.05 -752.76 -283 138.36 -725.31 -349 343.86 -711.81 -29.67 345.14 -738.49 169.81 143.71 -745.56 -3.59 125.91 -741.86 201.45 245.99 -751.7 186.22 378.79 -731.74 -35.73 439.51 -701.44 130.57 460.56 -700.43 -308.23 416.28 -697.26 -457.22 360.35 -684.44 -431.62 224.71 -701.79 -320.57 116.38 -713.42 -358.47 444.67 -673.67 8.56 71.62 -727.29 217.18 118.58 -731.32 299.98 243.97 -731.74 284.49 393.71 -711.1 174.17 487.14 -681.8 -26.51 484.31 -674.17 -72.1 785.15 -58.22 -23.13 789.22 -199.55 99.35 790.72 -299.56 311.69 790.83 -325.68 438.86 791.86 -290.15 528.94 866.74 -247.79 180.63 851.82 -332.87 17.6 849.91 -264.81 -86.33 855.27 -147.39 -113.41 838.6 34.39 610.61 854.79 -70.96 -485.5 -201.94 -446.25 -319.75 -221.39 -434.24 -496 -222.26 -336 -635.67 -199.29 -275.19 -574.87 -219.18 -158.15 665.53 -163.27 -369.79 422.52 -200.95 -433.58 476.33 -164.48 -479.08 -420.48 -162.57 -541.06 -649.34 -161.16 -405.79 -604.84 -105.69 -525.43 -752.32 -161.36 -181.05 -786.56 -108.11 -310.35 827.89 -108.73 -232.35 767.62 -40.43 -414.45 582.44 -49.89 -545.49 -519.77 -36.64 -605.13 -771.36 -37.03 -448.22 -715.21 39.6 -559.68 910.43 37.51 -247.82 877.02 -39.66 -241.19 821.49 117.59 -433.14 685.99 113.33 -558.2 942.79 211.83 -256.76 930.26 121.11 -252.43 722.29 298.65 -550.84 838.71 298.81 -431.95 931.06 390.32 -263.45 944.37 303.34 -261.04 662.78 472.56 -536.23 797.43 468.16 -425.08 861.74 541.03 -260.99 903.08 470.13 -263.41 692.35 602.09 -403.56 744.63 661.65 -258.3 806.82 604.14 -258.62 -249.69 670.63 -377.99 50.37 670.54 -453.78 -436.06 655.29 -317.56 -408.87 684.75 -184.72 -269.41 700.63 -256.21 -130.71 739.76 -176.38 -910.39 740.54 -313.94 -826.53 848.88 -231.86 -756.66 757.95 -319.58 -813.79 685.49 -394.61 -1024.63 583.32 -278.17 -989.53 748.43 -211.81 -950.05 597.55 -388.92 -945.51 458.3 -457.22 -838.43 571.5 -477.56 -888 264.15 -499.15 -1018.45 352.87 -360.55 -1019.51 462.9 -349.21 -898.44 -48.49 -198.3 -901.07 24.32 -327.42 -308.31 175.41 -725.02 -873.07 106.19 -448.47 -693.38 147.41 -605.91 -1008.65 95.15 -200.59 -348.92 287.5 -717.77 -562.77 686.61 -206.28 -448.21 605.38 -460.12 -619.26 640.58 -344.82 371.72 691.06 -429.03 554.85 702.27 -372.18 243.44 638.3 -496.03 182.92 713.56 -411.83 624.25 745.98 -242.06 684.25 708.22 -255.86 -702.03 632.68 -422.28 -678.17 785.31 -227.63 -1008.71 217.74 -304.51 -1074.89 335.12 -176.86 -1056.64 420.55 -261.85 -787.33 390.41 -577.58 -1062 521.91 -170.44 464.51 766.65 -315.17 530.02 821.47 -206.76 183.37 737.26 -378.81 84.51 766.03 -320.21 301.87 818.8 -320.39 -87.38 763.37 -70.44 366.06 -220.63 -382.22 508.97 -220.94 -297.4 34.14 -222.17 -462.47 216.97 -202.05 -497.41 585.09 -221.07 -185.16 53.7 -167.97 -574.42 285.12 -116.11 -587.19 97.05 133.07 -745.73 -10.72 180.49 -750.25 90.8 241.61 -756.03 187.68 185.36 -750.59 -22.54 291.78 -748.64 74.4 359 -740.36 202.98 314.17 -746.52 -35.49 394.1 -722.95 58.2 452.65 -702.09 156.75 429.23 -713.96 438.1 540.42 -568.74 286.75 588.6 -543.89 -685.84 517.88 -545.43 591.89 392.7 -600.16 534 475.45 -586.33 598.18 209.7 -620.51 612.57 302.13 -610.92 470.14 37.99 -623.54 551.78 120.37 -624.86 78.9 -67.53 -645.61 325.01 -42.49 -622.46 -492.58 53.27 -642.05 -664.27 246.44 -627.02 -594.04 143.61 -638.82 -647.04 406.47 -611.46 -671.01 329.81 -622.38 -495.18 532.83 -566.66 -332.97 388.71 -705.34 -556.43 220.18 -657.87 -396.2 76.84 -676.07 -575.93 384.98 -632.33 38.11 -10.3 -683.85 323.75 70.38 -679.41 450.79 226.98 -677.2 439.86 400.88 -658.16 282.66 525.17 -627.65 8.2 542.98 -607.61 -384.86 163.81 -708.19 -457.68 293.42 -693.5 125.51 85.72 -729.99 271.55 173.76 -733.13 304.69 320.5 -724.53 82.4 495.39 -676.14 239.27 452.09 -694.88 -426.86 413.69 -677.16 -254.84 457.92 -673.43 -233.52 420.04 -698.68 -238.22 336.47 -725.29 -227.64 230.14 -736.51 -210.67 129.92 -731.48 -226.75 87.54 -718.81 -340.44 -33.37 -638.46 -279.46 -111.28 -610.96 -201.16 -202.6 -521.93 -510.84 219.56 -678.78 -542.84 378.29 -655.66 -360.7 93.52 -694.86 -411.11 479.92 -642.24 23.01 18.56 -707.33 379.67 236.62 -704.99 271.86 90.54 -706.86 367.66 401.13 -685.35 227.6 511.57 -655.48 -10.43 523.98 -641.82 -680.35 -197.28 -69 -850.2 -110.6 -78.99 866.91 -109.72 -72.09 711 -200.72 -65.52 958.15 36.7 -73.83 997.51 212.14 -84.4 986.43 390.29 -96.29 916.86 539.36 -103.15 809.42 663.92 -100.24 -497.93 711.41 -81.21 -350.92 700.8 -71.58 -904.65 873.04 -133.28 -739.75 884.97 -130.8 -1041.18 652.55 -79.33 -980.53 22.08 -81.44 -597.05 786.04 -97.87 -1064.69 216.82 -76.07 -1086.23 435.32 -69.64 -149.88 737.93 -12.78 -28.75 737.26 -317.26 -44.24 765.74 -213.62 -82.61 812.75 -53.55 -71.49 781.87 20.94 -23.42 816.42 -198 -56.55 787.77 -133.01 101.37 817 -295.52 27.9 789.97 -255.89 315.28 764.18 -350.56 195.67 791.12 -324.42 420.49 820.46 -287.41 577.42 772.2 -219.56 546.71 795.1 -204.05 -415.86 -221.71 -395.03 -548.47 -220.6 -252.14 -548.3 -162.25 -490.49 -716.05 -161.54 -294.85 763.52 -164.47 -220.95 -658.57 -35.84 -547.83 506.29 600.76 -500.04 -353.65 677.14 -293.13 -830.12 771.52 -319.83 -981.6 670.37 -296.63 -899.83 520.96 -475.36 -984.03 396.89 -418.44 -847.79 -43.64 -321.06 -775.56 121.76 -553.53 -948.85 98.22 -325.6 -525.5 640.38 -337.93 208.68 678.68 -453.32 -691.89 696.77 -331.25 -1049.17 336.23 -277.19 -765.99 605.3 -464.23 -1045.31 499.16 -266.18 191.41 765.11 -345.32 6.6 766.03 -273.95 186.52 -222.14 -441.38 248.47 -165.95 -546.14 91.61 184.16 -754.77 85.4 301.49 -752.42 61.76 409.54 -722.84 -592.54 480.25 -592.52 -345.18 558.65 -548.22 -492.62 143.44 -668.67 -582.4 302.43 -646.05 199.21 14.82 -679.63 156.45 547.71 -615.17 -294.19 513.15 -603.84 -234.86 381.67 -714.59 -236 284.67 -732.7 -216.27 177.61 -735.97 -237.81 -164.51 -570.76 -169.7 -221.81 -462.63 -541.84 298.68 -667.67 -449.8 149.53 -688 -500.65 441.96 -646.28 -248.96 49.83 -700.5 342.27 157.86 -707.4 163.12 41.11 -706.72 390.57 320.35 -698.04 312.94 469.04 -669.6 118.46 531.11 -645.61 -281.07 494.97 -641.31 -586.01 -219.06 -63.44 -768.01 -160.59 -74.97 797.46 -164.31 -70.67 920.94 -41.05 -72.4 980.71 120.83 -78.12 1000.07 303.71 -91.06 958.36 469.45 -100.05 868.07 607.2 -109.53 -430.47 695.74 -80.26 -823.28 897.9 -135.47 -978.23 798.41 -120.71 -919.05 -47.64 -80.21 -1025.17 105.72 -79.49 -550.11 737.48 -83.23 -660.53 848.28 -124.87 -1087.97 340.2 -72.13 -1069.7 536.47 -70.32 -80.12 763.76 11.41 612.82 -220.07 -58.25 -75.78 764.28 -146.46 -83.57 805.38 27.16 -61.17 815.83 -131.38 30.09 816.4 -253.37 193.21 818.53 -319.45 -313.72 1299.83 188.27 -309.59 1298.62 201.92 -305.26 1294.23 215.3 -301.06 1286.86 227.4 -297.16 1276.85 237.63 -293.75 1264.68 245.53 -290.98 1250.93 250.71 -289.01 1236.24 252.95 -287.87 1221.31 252.12 -287.64 1206.85 248.28 -288.35 1193.52 241.56 -290.17 1181.68 231.51 -301.83 1166.74 188.73 -306.95 1369.46 184.64 -298.72 1367.08 212.03 -290.19 1358.37 238.69 -281.92 1343.74 262.81 -274.29 1323.84 283.26 -267.62 1299.6 299 -262.27 1272.2 309.37 -258.27 1242.94 313.53 -256.13 1213.26 311.82 -255.78 1184.54 304.11 -257.26 1158.1 290.62 -261.06 1134.65 270.56 -268.85 1114.4 239.36 -283.42 1101.54 186.35 -291.49 1437.63 178.53 -279.26 1434.11 219.24 -266.61 1421.21 258.75 -254.36 1399.52 294.49 -243.07 1370.05 324.8 -233.28 1334.18 348.26 -225.43 1293.58 363.76 -219.9 1250.16 370.59 -216.86 1205.99 368.18 -216.52 1163.19 356.86 -218.75 1124.02 336.67 -224.25 1089.83 305.67 -257.35 1038.2 181.97 -267.87 1503.46 170.09 -251.81 1498.85 223.52 -235.24 1481.95 275.3 -219.19 1453.52 322.15 -204.39 1414.9 361.87 -191.55 1367.89 392.61 -181.27 1314.69 412.93 -174.02 1257.78 421.89 -170.14 1199.83 419.05 -169.78 1143.65 404.3 -172.81 1092.53 377.27 -180.4 1047.79 336.58 -223.43 979.37 175.63 -236.44 1566 159.45 -216.79 1560.36 224.83 -196.54 1539.7 288.12 -176.91 1504.95 345.39 -158.82 1457.74 393.94 -143.13 1400.28 431.52 -130.56 1335.24 456.36 -121.7 1265.68 467.3 -116.96 1194.85 463.84 -116.57 1126.06 446.12 -120.49 1063.35 413.46 -130.18 1010.3 360.99 -182.88 927.19 166.74 -197.65 1624.32 146.76 -174.7 1617.75 223.13 -151.06 1593.63 297.02 -128.15 1553.06 363.86 -107.03 1497.95 420.54 -88.71 1430.87 464.41 -74.04 1354.96 493.4 -63.69 1273.76 506.18 -58.17 1191.07 502.13 -57.71 1110.77 481.45 -62.45 1037.55 443.29 -74.13 976.58 380.29 -139.53 878.35 151.01 -152.07 1677.58 132.21 -126.16 1670.16 218.46 -99.47 1642.94 301.86 -73.61 1597.15 377.31 -49.78 1534.94 441.29 -29.1 1459.23 490.8 -12.53 1373.54 523.53 -0.86 1281.88 537.95 5.38 1188.55 533.38 5.9 1097.9 510.04 0.59 1014.53 468.33 -12.27 945.01 397.16 -100.37 1725.01 116 -71.87 1716.85 210.87 -42.52 1686.92 302.57 -14.09 1636.58 385.53 12.11 1568.18 455.87 34.85 1484.93 510.31 53.07 1390.71 546.3 65.9 1289.94 562.15 72.76 1187.32 557.13 73.32 1087.66 531.47 67.48 996.05 485.74 54.86 921.46 418.99 -43.3 1765.91 98.39 -12.62 1757.13 200.49 18.95 1724.93 299.15 49.54 1670.76 388.4 77.73 1597.17 464.09 102.2 1507.6 522.66 121.79 1406.23 561.38 135.61 1297.81 578.43 142.99 1187.4 573.03 143.59 1080.17 545.42 137.17 982.06 495.84 123.67 903.53 429.85 18.31 1799.68 79.61 50.72 1790.41 187.46 84.05 1756.41 291.64 116.36 1699.21 385.89 146.13 1621.5 465.81 171.96 1526.92 527.66 192.65 1419.88 568.54 207.24 1305.39 586.56 215.03 1188.8 580.85 215.67 1075.56 551.69 209.06 971.26 500.13 196.2 889.19 432.53 83.56 1825.84 59.95 117.22 1816.21 171.96 151.84 1780.9 280.15 185.39 1721.5 378.02 216.3 1640.81 461.02 243.12 1542.59 525.24 264.61 1431.44 567.7 279.75 1312.55 586.4 288.39 1191.27 580.66 289.76 1073.55 550.63 282.3 965.18 497.23 273.92 876.22 424.91 220.87 1839.06 144.4 256.39 1802.82 255.41 290.82 1741.88 355.85 322.54 1659.07 441.01 350.07 1558.28 506.92 372.12 1444.22 550.49 387.39 1322.2 568.73 396.83 1197.33 561.6 400.75 1076.88 534.35 390 965.76 477.06 375.32 869.06 402.75 186.32 1848.94 29.41 291.45 1855.36 -1.43 325.89 1845.53 113.17 361.28 1809.42 223.78 395.58 1748.7 323.85 457.29 1669.16 396.91 476.16 1579.44 455.95 500.62 1480.04 489.03 491.91 1331.26 532 510.82 1212.27 533.04 516.06 1088.5 508.48 499.49 976.66 446.43 479.73 879.65 370.26 361.43 1848.42 -21.69 395.11 1838.8 90.41 429.73 1803.48 198.6 487.45 1736.71 305.69 560.21 1388.99 481.97 617.56 1264.84 480.52 621.77 1112.35 464.93 604.85 997.28 406.84 577.06 904.76 322.69 430.04 1833.14 -41.37 462.48 1823.88 66.61 522.77 1776.52 205.36 496.29 1809.76 -60.16 527.02 1800.99 42.12 575.41 1769.63 155.18 703.34 1256.45 413.53 704.78 1128.25 404.58 691.17 1022.49 353.06 662.4 939.8 269.48 559.21 1778.62 -77.79 587.77 1770.46 17.29 627.63 1746.14 109 750.46 1256.56 354.85 756.62 1144.3 340.95 751.49 1045.44 302.39 720.06 967.49 226.54 617.88 1740.16 -94.02 643.87 1732.75 -7.52 681.6 1707.16 72.53 782.84 1260.27 294.99 797.81 1158.05 282.2 792.87 1074.02 245.08 767.29 1002.35 181.72 671.44 1694.95 -108.6 694.47 1688.39 -31.94 730 1659.22 43.57 827.29 1175.46 208.57 822.11 1115.62 168.65 806.08 1028.87 -8.94 734.53 1617.23 -125.19 754.96 1608.36 -48.55 772.58 1594.67 7.32 802.09 1535.28 18.91 826.44 1470.46 27.25 840.26 1395.46 84.03 838.47 1316.96 164.03 786.8 1534.35 -138.51 812.22 1515.19 -59.57 -310.64 1230.41 189.53 697.42 1427.46 337.91 635.67 1596.5 333.92 746.62 1394.01 298.8 795.22 1516.62 149.83 698.92 1645.13 199.2 690.07 1440.14 306.68 724.67 1415.03 273.86 635.94 1555.94 298.31 654.28 1492.42 320.08 750.64 1414.88 235.51 650.69 1594.48 249.3 769.31 1447.05 201.02 688.16 1593.74 206.19 767.96 1502.16 178.25 734.82 1558.66 179.47 700.39 1443.71 310.94 734.82 1417.73 280.15 646.65 1564.34 305.73 761.26 1417.05 239.46 780.64 1449.59 201.27 697.09 1602.76 208.58 779.14 1508.77 175.82 744.24 1567.56 178.97 791.03 1372.84 242.83 820.95 1437.42 161.61 798.89 1528.03 123.53 615.94 1507.36 401.24 683.8 1412.8 378.03 751.75 1616.76 130.66 688.26 1688.19 181.24 632.29 1695.97 270.61 598.21 1630.89 363.8 752.07 1372.96 321.64 675.9 1515.04 299.77 653.65 1559.93 286.7 707.43 1472.99 292.6 732.24 1442.91 269.7 750.37 1436.83 244.66 763.71 1464.75 226.18 756.75 1509.88 216.79 728.27 1554.8 218.36 690.63 1585.57 229.4 660.29 1588.67 254.8 665.17 1496.32 325.81 664.18 1603.96 255.51 725.19 1425.47 272.22 708.61 1424.87 291.88 693.02 1450.93 302.38 659.63 1499.38 313.96 641.35 1525.12 314.75 640.97 1556.55 294.27 671.09 1463.11 316.53 749.36 1424.43 238.99 738.48 1411.31 254.74 639.11 1580.25 275.71 653.52 1592.28 251.07 766.89 1455.27 210.39 761.05 1426.72 217.19 667.54 1599.16 225.24 689.58 1590.91 214.07 763.83 1505.89 192.06 772.82 1473.05 187.35 711.25 1579.73 190.7 733.17 1557.59 193.35 754.28 1531.36 175.38 686.07 1577.15 249.84 666.44 1585.29 257.98 717.03 1547.26 248.52 744.91 1507.62 246.06 751.7 1446.44 249.15 743.75 1459.71 261.75 727.45 1494.87 273.24 698.58 1533.54 277.49 671.56 1566.96 272.3 780.24 1393.22 240.72 815.48 1482.43 135.51 808.23 1442.96 181.79 642.51 1453.86 392.43 651.43 1499.42 357.1 720.56 1658.29 151.68 750.76 1591.34 155.79 610.85 1672.46 321.19 660.08 1649.8 267.55 599.85 1571.81 392.04 722.36 1387.52 354.24 772.84 1367.29 284.22 777.46 1572.37 120.98 659.42 1702.14 222.01 810.49 1397.53 200.17 826.75 1419.13 129.6 805.25 1334.34 241.21 799 1535.95 81.93 657.63 1376.76 413.01 562.44 1496.57 450.12 654.45 1727.02 147.42 744.46 1642.02 91.99 523.37 1657.78 387.51 577.56 1736.94 261.25 743.87 1337.98 336 662.37 1538.07 295.9 691.72 1492.95 298.72 721.04 1456.01 282.21 741.12 1435.39 257.31 758.72 1447.47 233.71 763.26 1486.51 220.49 744.73 1533.12 215.93 709.49 1572.73 223.05 673.9 1591.43 238.91 652.53 1577.19 272.64 681.94 1466.39 320.93 652.36 1589.43 282.97 651.82 1531.09 320.91 718.48 1427.94 297.62 748.85 1413.87 260.2 772.14 1428.69 219.4 783.81 1477.47 185.87 765.06 1539.79 173.08 719.31 1588.88 191.56 678.96 1607.74 229.63 710.53 1435.85 288.62 646.82 1528.7 308.37 675.59 1472.5 311.5 737.95 1421.35 255.56 643.03 1578.7 274.51 759.48 1436.22 223.75 669.87 1596.43 229.86 769.03 1479.39 199.46 711.65 1577.57 201.92 751.33 1532.59 189.62 676.11 1586.09 248.37 700.72 1563.97 249.58 732.21 1527.93 246.94 753.08 1487.2 245.47 745.77 1447.28 257.49 737.64 1476.24 268.01 713.66 1514.16 276.37 683.8 1551.59 275.98 662.87 1577.13 269.24 797.13 1412.01 210.23 806.33 1479.25 161.04 672.64 1458.3 349.72 722.46 1622.64 174.16 645.37 1630.94 304.66 636.3 1548.31 351.75 724.47 1406.71 322.41 764.05 1388.93 270.15 775.91 1555.05 147.07 678.38 1654.77 230.5 822.02 1364.36 185.45 819.24 1479.43 94.13 605.17 1432.45 444.67 701.85 1689.67 112.78 544.44 1707.52 326.46 532.34 1589.06 433.08 705.81 1350.09 374.81 776.4 1332.97 294.15 774.16 1590.29 80.48 614.53 1743.3 200.09 756.45 1468.43 244.75 757.12 1454.96 242.99 809.32 1479.61 -143.8 818.21 1073.08 -134.74 841.43 1223.97 -146.82 857.14 1080.57 -148.4 919.95 1091.14 -166.99 1075.37 1120.12 -213.47 1033.74 1075.7 -199.7 912.34 1185.37 -167.05 970.28 1087.84 -181.45 977.27 1174.12 -184.96 994.58 1080.08 -188.37 845.68 1476.54 -154.34 907.78 1455.26 -171.97 961.62 1439.35 -187.31 988.21 1454.49 -195.43 1016.07 1487.33 -204.33 1063.34 1524.42 -219 1106.75 1524.61 -231.67 1124.06 1450.71 -234.99 1130.84 1505.4 -238.26 1084.93 1404.42 -222.49 1034.6 1354.47 -206.63 998.13 1329.21 -195.39 941.4 1303.62 -178.23 852.54 1205.85 -150.06 854.97 1251.02 -150.56 886.02 1085.65 -156.95 1063.01 1087.88 -208.53 879.07 1194.13 -157.61 946.96 1086.67 -174.77 946.43 1177.47 -175.92 1024.29 1170.23 -199.48 825.38 1484.36 -150.77 876.22 1466.89 -163.03 936.29 1445.21 -180.05 977.44 1444.1 -192.04 999.94 1467.62 -199.16 1132.16 1478.18 -238 1107.87 1426.99 -229.71 1058.36 1378.37 -214.12 1016.47 1339.11 -200.97 972.66 1318.55 -187.7 892.4 1282.94 -163.45 1069.05 1143.57 -212.22 820.68 1103.47 42.88 857.4 1375.35 33.97 827.5 1460.89 -85.68 854.18 1273.22 154.76 866.77 1228.96 -56 853.86 1215.83 -60.22 897.12 1358.22 11 873.74 1125.77 116.79 865.63 1102.58 11.04 945.62 1365.1 -8.63 877.02 1182 168.21 876.4 1265.08 153.1 954.05 1261.45 115.39 931.58 1111.06 -25.02 969.1 1231.1 104.43 962.22 1198.62 94.97 1089.39 1141.49 -128.51 1061.77 1135.99 -52.38 1129.55 1389.13 -31.12 1138.92 1488.76 -164.67 953.36 1256.64 -53.84 933.14 1199.86 -59.07 992.77 1324.18 46.71 986.9 1386.54 -29.76 999.28 1232.72 23.58 1013.82 1281.39 -57.37 1001.5 1247.29 75.52 1018.89 1421.15 -52.42 1039.83 1456.75 -78.71 1058.02 1280.4 -6.94 1114.01 1356.61 -58.7 1056.08 1311.2 -67.51 1094.1 1354.54 -89.06 1067.63 1296.52 31.52 986.96 1112.01 -58.86 1002.9 1191.45 33.81 1010.53 1102.65 -78.05 1066.61 1331.06 36.92 827.96 1085.3 -67.98 855.5 1213.31 -50.81 867.46 1208.87 -62.71 849.99 1224.91 -108.28 876.08 1363.4 19.7 866.11 1091.54 -77.21 844.84 1421.3 -21.1 890.33 1409.6 -36.39 921.13 1361.89 1.99 873.56 1226.77 172.25 916.53 1267.18 137.04 915.68 1185.5 150.8 899.51 1106.82 -7.1 923.37 1102.04 -112.61 939.8 1405.43 -51.09 968.77 1210.38 106.59 962.27 1181.75 118.39 1080.42 1109.53 -119.39 1085.35 1125.95 -171.75 1109.06 1419.38 -29.41 1140.02 1451.64 -83.82 948.36 1231.38 -17.56 908.08 1244.23 -54.79 898.51 1205.3 -60.93 943.69 1208.72 -1.33 920.03 1188.04 -129.74 969.5 1370.36 -20.38 969.5 1220.45 29.36 1006.34 1253.05 -18.67 986.13 1268.75 -55.29 998.88 1232.84 56.32 960.01 1209.25 67.85 976.25 1239.52 87.98 955.25 1289.97 -85.26 1017.8 1321.73 -90.74 1031.04 1440.74 -66.45 1087.55 1313.81 -26.01 1102.85 1354.3 -75.79 1077.79 1333.8 -77.92 1055.85 1292.66 -35.42 1063.15 1282 16.43 1103.1 1334.58 9.69 1124.83 1368.34 -42.44 1010.9 1445.72 -84.36 1037.39 1476.12 -103.2 1054.25 1349.51 -99.31 1095.94 1381.24 -116.5 1124.65 1401.83 -108.17 961.31 1114.11 -41.65 998.27 1172.98 42.91 975.26 1193.89 61.23 965.31 1196.52 -68.35 999.36 1196.62 -27.5 977.78 1100.39 -126.11 984.77 1179.1 -144.94 1038.59 1180.72 -4.98 1031.85 1158.65 0.91 1024.68 1189.7 -42.8 1072.46 1157.88 -65.34 1046.7 1099.07 -101.27 982.39 1416.41 -67.63 1036.05 1294.85 -60.92 1035.66 1264.31 56.77 1002.71 1280.16 78.69 1004.2 1403.05 -40.28 1027.46 1247.11 11.45 1072.81 1443.31 -50.39 1040.74 1373.92 9.54 943.34 1301.07 82.31 880.85 1292.06 110.83 941.5 1139.61 67.13 999.2 1137.19 22.09 867.7 1453.52 -96.66 923.48 1435.52 -112.03 974.99 1430.71 -126.32 1001.99 1451.44 -136.16 1029.98 1482.53 -150.14 1074.34 1512.94 -157.25 1115.98 1510.47 -160.52 1129.45 1434.47 -170.02 1095.02 1397.44 -165.38 1047.13 1356.38 -149.48 1008.67 1328.54 -139.34 955.18 1302.91 -124.58 1082.24 1160.97 -130.04 960.57 1203.75 63.79 1006.5 1197.41 10.44 870.06 1216.08 -47.98 860 1206.78 -115.69 868.5 1254.74 -99.65 863.18 1416.85 -28.92 915.03 1230.71 161.9 908.74 1127.55 93.52 894.99 1095.55 -91 915.41 1407.42 -43.21 951.3 1223.35 134.07 1074.44 1090.58 -167.31 1115.37 1475.47 -82.22 910.99 1213.72 -33.37 886.94 1195.74 -123.03 977.52 1243.05 -14.66 967.49 1222.31 66.78 990.19 1305.81 -88.97 1081.04 1320.75 -50.71 1096.73 1316.9 -4.27 1023.68 1461.69 -94.89 1075.47 1367.63 -108.18 1111.82 1389.97 -115.43 971.57 1141.88 43.15 971.6 1180.16 72.44 970.89 1202.79 -12.89 951.86 1102.42 -117.94 952.31 1182.85 -136.32 1002.01 1092.9 -136.03 1033.17 1174.06 -159.67 1032.61 1182.53 -80.55 1042.86 1082.48 -154.72 963.83 1405.47 -61.26 1036.75 1334.23 -93.8 1037.24 1298.98 57.78 1031.36 1269.98 -25.21 1077.47 1485.47 -94.21 1059.31 1406.74 -16.07 964.73 1307.84 63.5 916.34 1299.85 98.06 845.82 1225.84 177.42 1023.8 1128.42 -14.86 843.22 1461.51 -90.16 892.75 1445.26 -103.47 949.53 1429.4 -119.83 991.14 1439.19 -131.04 1014.49 1466.09 -142.66 1138.78 1460.87 -166.74 1115.63 1414.1 -170.89 1069.82 1376.67 -156.65 1028.19 1340.78 -144.1 984.45 1316.5 -133.27 905.58 1282.93 -113.06 1078.73 1148.75 -170.8 979.75 1201.88 37.4 972.27 1270.74 95.08 1037.56 1187.48 -22.9 1030.81 1248.51 40.63 1089.17 1371.36 10.9 1069.12 1170.57 -74.71 1135.38 1422.98 -96.65 1041.27 1115.36 -53.92 862.81 1287.36 120.46 901.92 1268.42 -82.33 999.11 1430.63 -74.27 1019.05 1346.3 30.22 953.98 1205.56 25.28 996.41 1190.61 -74.03 1036.91 1180.13 -122.56 991.67 1183.22 -111.98 958.71 1189.73 -104.64 926.07 1192.39 -97.21 892.25 1198.46 -91.8 863.87 1206.95 -86.79 851 1221.31 -80.63 864.39 1245.22 -75.49 784.8 1556.83 -54.41 759.51 1575.08 -131.49 824.97 1261.52 218.36 809.18 1059.81 80.36 779.58 1002.37 -124.03 840.8 1185.3 165.54 828.92 1138.91 119.19 827.04 1482 -72.97 804.85 1501.48 -143 805.75 1048.9 -132.66 843 1439.04 -0.03 857.2 1381.35 52.25 855.34 1290.95 154.91 844.78 1243.65 190.34 840.98 1183.18 178.94 833.58 1132.12 137.47 824.95 1086.03 58.08 954.91 1171.81 100.56 916.02 1147.95 115.16 923.96 1158.52 127.06 -294.01 1171.33 215.57 824.47 1065.16 -26.76 -235.85 1059.87 260.26 -195.73 1007.99 277.76 -147.89 964.47 291.26 -94.18 923.36 299.15 737.5 928.31 73.2 -317.6 1297.99 174.62 -321.12 1292.99 161.23 -323.97 1285.04 149.1 -326.26 1274.58 138.82 -327.5 1262.02 130.87 -327.77 1248 125.63 -327.09 1233.18 123.35 -325.5 1218.27 124.12 -323.04 1203.97 127.89 -319.86 1190.93 134.53 -315.9 1179.53 144.42 -314.71 1365.8 157.26 -321.74 1355.84 130.6 -327.56 1340.07 106.47 -331.89 1319.22 86.01 -334.52 1294.27 70.17 -335.34 1266.38 59.69 -334.22 1236.87 55.11 -331.19 1207.15 56.65 -326.39 1178.67 64.23 -320.14 1152.75 77.45 -312.49 1130.15 96.85 -301.9 1109.69 129.88 -303.02 1432.2 137.83 -313.45 1417.45 98.32 -322.06 1394.08 62.57 -328.47 1363.19 32.25 -332.37 1326.22 8.78 -333.58 1284.9 -6.75 -332.05 1241.16 -13.6 -327.83 1197.04 -11.46 -321.07 1154.66 -0.36 -311.81 1116.22 19.35 -300.66 1082.85 47.62 -283.01 1496.35 116.67 -296.67 1477.02 64.89 -307.96 1446.39 18.03 -316.36 1405.91 -21.7 -321.48 1357.46 -52.46 -323.06 1303.3 -72.8 -321.05 1245.98 -81.78 -315.53 1188.16 -78.98 -306.76 1132.56 -64.52 -294.62 1082.25 -38.5 -280.13 1038.63 -1.63 -254.96 1557.3 94.08 -271.66 1533.67 30.78 -285.46 1496.24 -26.49 -295.73 1446.75 -75.06 -301.98 1387.52 -112.66 -303.92 1321.32 -137.52 -301.46 1251.25 -148.5 -294.71 1180.58 -145.07 -283.72 1112.82 -127.03 -268.35 1052.05 -94.19 -249.08 999.99 -45.65 -219.29 1614.17 70.4 -238.78 1586.58 -3.49 -254.9 1542.89 -70.34 -266.88 1485.12 -127.04 -274.18 1415.98 -170.93 -276.44 1338.71 -199.96 -273.57 1256.91 -212.77 -265.69 1174.41 -208.77 -252.78 1095.41 -187.5 -235.16 1024.3 -149.49 -212.87 963.2 -94.45 -176.51 1666.12 45.97 -198.51 1634.99 -37.43 -216.7 1585.66 -112.89 -230.23 1520.46 -176.89 -238.47 1442.42 -226.43 -241.02 1355.19 -259.2 -237.78 1262.86 -273.66 -228.88 1169.74 -269.14 -214.58 1080.36 -245.52 -195.17 999.5 -203.44 -168.77 930.36 -143.65 -127.25 1712.41 21.15 -151.44 1678.17 -70.55 -171.44 1623.94 -153.52 -186.32 1552.25 -223.89 -195.37 1466.44 -278.36 -198.18 1370.54 -314.39 -194.61 1269.02 -330.29 -184.84 1166.64 -325.32 -169.31 1068.18 -299.71 -148.33 979.02 -254.07 -121.2 907.96 -195.41 -72.23 1752.35 -3.7 -98.26 1715.52 -102.36 -119.78 1657.17 -191.63 -135.78 1580.03 -267.34 -145.52 1487.71 -325.95 -148.54 1384.53 -364.71 -144.71 1275.31 -381.82 -134.19 1165.15 -376.47 -117.48 1059.21 -348.92 -94.58 964.78 -299.65 -66.93 896.75 -245.35 -12.24 1785.36 -28.22 -39.73 1746.47 -132.4 -62.45 1684.85 -226.67 -79.36 1603.4 -306.62 -89.64 1505.91 -368.5 -92.83 1396.96 -409.44 -88.78 1281.62 -427.5 -77.67 1165.3 -421.85 -60.03 1053.43 -392.76 -35.08 956.05 -340.99 -5.6 892.5 -292.67 51.82 1810.96 -52.05 23.28 1770.58 -160.24 -0.32 1706.6 -258.13 -17.87 1622.01 -341.14 -28.55 1520.78 -405.41 -31.86 1407.64 -447.91 -27.65 1287.87 -466.67 -16.12 1167.08 -460.81 2.2 1050.91 -430.6 32.41 951.45 -378.63 67.27 891.04 -333.11 153.74 1833.67 -85.56 124.45 1792.23 -196.57 100.23 1726.57 -297.03 82.23 1639.78 -382.22 71.26 1535.9 -448.16 67.86 1419.79 -491.78 72.18 1296.89 -511.03 84.02 1172.94 -505.01 102.82 1053.73 -474.01 128.87 952.25 -417.96 158.67 894.31 -366 258.98 1840.16 -116.01 229.8 1798.87 -226.62 205.68 1733.45 -326.71 219.42 1650.07 -417.97 204.71 1557.64 -473.96 208.72 1456.58 -510.93 177.73 1305.34 -539.93 189.52 1181.84 -533.93 208.25 1063.07 -503.04 233.62 962.58 -445.67 261.04 900.58 -384.07 329.67 1833.54 -133.79 301.12 1793.16 -241.97 293.04 1721.1 -360.3 263.66 1367.48 -538.35 399.45 1818.82 -149.33 376.26 1764.75 -296.52 302.87 1236.44 -558.94 318.55 1086.41 -532.02 340.26 983.15 -461.22 367.95 915.19 -384.39 467.31 1796.2 -162.42 447.71 1759.38 -282.29 417.02 1228.88 -558.63 422.47 1108.44 -539.8 443 1005.4 -476.71 480.63 923.33 -379.71 532.27 1766.01 -172.86 516.86 1737.25 -270.47 492.97 1231.41 -546.07 499.86 1126.92 -523.54 521.98 1026.41 -468.73 564.14 948.69 -372.84 593.37 1728.69 -180.5 582.46 1699.2 -267.09 554.75 1238.16 -512.31 566.03 1145.67 -485.82 587.86 1055.36 -441.94 635 985.42 -358.04 649.73 1684.79 -185.24 639.44 1651.95 -266.71 633.66 1163.15 -430.82 652.33 1105.3 -392.1 742.9 1008.96 -241.85 710.66 1604.8 -200.32 696.47 1588.33 -255.7 714.21 1526.18 -278.16 733.25 1454.38 -296.05 717.14 1372.06 -347.65 671.05 1280.45 -414.7 765.95 1509.03 -219.24 455.84 1408.11 -489.21 404.58 1577.94 -457.71 518.53 1376.06 -480.7 638.73 1504.51 -384.65 529.73 1631.55 -380.38 466.5 1422.2 -458.53 513.53 1398.02 -447.78 424.47 1538.96 -426.12 428.96 1474.31 -451.83 556.48 1399.06 -429.08 462.77 1579.39 -394.45 590.58 1432.74 -411.25 517.55 1580.05 -378.27 601.07 1488.69 -393.62 571.7 1545.57 -379.35 473.01 1425.4 -468.16 518.76 1400.5 -459.17 429.4 1546.89 -438.5 563.32 1401.12 -438.53 599.93 1435.05 -417.8 523.68 1588.83 -385.48 612.15 1495.52 -398.46 579.79 1554.36 -384.37 585.74 1356.2 -455.47 652.91 1421.56 -404.28 656.47 1516.87 -366.13 352.76 1486.19 -500.38 422.08 1392.06 -517.6 611.75 1605.56 -350.11 529.86 1675.47 -361.4 434.52 1680.09 -406.89 356.5 1611.49 -464.22 510.57 1354.06 -504.58 457.89 1497.53 -447.07 445.58 1543.23 -426.04 488.75 1455.4 -456.6 522.26 1425.98 -449.75 551.19 1420.79 -437.72 572.12 1449.37 -430.15 570.73 1494.95 -420.46 545.31 1540.11 -408.4 507.25 1570.84 -398.78 467.98 1573.23 -404 435.01 1477.82 -462.68 470.68 1588.43 -407.35 514.95 1408.6 -447.38 490.17 1407.44 -455.07 471.38 1433.02 -456.99 436.7 1481.48 -449.71 420.58 1507.39 -441.54 430.87 1539.68 -425.46 445.19 1444.87 -457.48 553.49 1408.67 -431.98 535.73 1395.1 -438.96 438.98 1564.19 -409.85 464.24 1577.08 -397.37 583.4 1440.54 -418.16 575.15 1411.73 -419.62 489.86 1584.9 -383.45 514.55 1576.86 -385.54 590.05 1491.94 -403.27 600.57 1459.22 -402.72 545.52 1566.42 -377.03 562.85 1543.91 -390.1 590.65 1518.22 -385.19 492.53 1561.61 -413.19 471.5 1569.63 -409.84 519.72 1531.42 -427.43 545.03 1491.57 -438.64 549.8 1430.2 -442.53 536.17 1443.02 -449.39 515.86 1477.89 -451.58 488.75 1516.7 -441.31 468.34 1550.64 -423.85 578.72 1376.77 -448.92 663.15 1468.74 -381.79 632.78 1429.32 -415.16 379.81 1432.63 -507.27 406.51 1479.72 -481.97 573.36 1646.48 -352.58 597.47 1578.96 -369.44 389.54 1654.69 -436.93 460.18 1633.75 -417.26 343.45 1551.23 -486.33 467.46 1367.57 -518.03 548.42 1349.67 -481.66 640.13 1560.84 -354.39 483.44 1688.01 -380.81 627.98 1382.45 -432.4 678.1 1400.97 -382.04 597.88 1319.16 -465.76 678.15 1525.49 -331.49 383.03 1358.87 -534.12 281.49 1473.97 -512.39 519.05 1716.15 -316.42 626.01 1632.64 -314.61 280.32 1638.27 -445.1 392.9 1722.11 -371.34 497.59 1314.79 -525.69 448.27 1520.88 -437.54 472.04 1475.3 -453.86 505.95 1438.68 -454.71 536.53 1418.9 -443.67 564.06 1431.84 -433.15 574.53 1471.35 -426.06 560.76 1518.35 -414.27 526.73 1558.05 -403.03 487.96 1576.5 -398.05 451.99 1561.09 -414.35 452.04 1447.83 -467.17 446.13 1572.87 -423.49 426.02 1512.96 -452.62 495.56 1410.23 -465.83 541.56 1397.32 -449.59 583.23 1413.56 -427.69 610.79 1463.63 -408.1 600.86 1526.6 -389.41 551.74 1575.42 -382.49 497.01 1593.14 -393.66 493.57 1418.33 -453.99 428.57 1511.18 -439.27 451.68 1454.46 -455.66 534.82 1404.92 -439.87 442.96 1562.64 -410.88 570.19 1421.02 -424.71 489.37 1581.94 -388.48 590.79 1465.08 -411.16 539.85 1563.78 -386.61 580.48 1518.87 -395.65 484.81 1570.73 -406.98 505.18 1548.27 -420.27 533.6 1511.98 -433.43 552.5 1471.09 -441.65 540.27 1430.75 -446.53 527.48 1459.36 -451.94 502.31 1497.19 -447.64 476.88 1534.97 -432.87 462.53 1561.04 -417.04 609.89 1397.23 -432.83 642.21 1466.28 -398.43 428.45 1438.5 -487.08 563.32 1609.87 -370.99 428.06 1613.49 -439.78 396.13 1529.03 -470.98 487.24 1387.91 -489.86 548.92 1371.84 -465.17 624.35 1542.21 -374.48 495.46 1640.09 -396.12 644.84 1344.61 -425.98 689.39 1463.52 -349 319.4 1409.56 -532.49 578.11 1679.74 -311.12 330.28 1690.33 -407.17 264.24 1567.54 -485.33 442.75 1326.38 -536.72 547.15 1313.13 -496.42 656.71 1582.45 -320.42 456.87 1730.64 -340 555.96 1452.33 -442.06 557.62 1438.94 -440.43 725.31 1094.1 -291.91 759.25 1354.48 -313.36 793.77 1455.45 -202.3 688.12 1257.14 -410.96 822.78 1225.6 -240.4 817.19 1214.33 -229.98 805.65 1340.48 -311.51 727.44 1114.34 -381.99 778.29 1095.57 -288.17 855.05 1353.45 -322.84 699.71 1169.53 -427.42 708.89 1251.61 -420.75 794.99 1248.27 -430.17 853.17 1104.77 -293.64 813.89 1218.37 -427.73 813.37 1186.67 -414.93 1040.61 1135.24 -292.39 977.32 1129.21 -341.68 1019.84 1380.32 -406.95 1098.3 1485.5 -303.84 889.1 1247.66 -287.91 870.83 1194.63 -271.41 863.5 1313.8 -396.14 898.88 1379.47 -331.29 882.47 1223.16 -376.3 939.2 1273.4 -318.19 856.33 1235.63 -421.78 937.6 1414.63 -330.9 968.93 1451.06 -321.56 947.91 1271.56 -384.16 1021.98 1349.23 -373.98 978.45 1304.97 -333.44 1021.54 1348.71 -337.62 935.12 1285.88 -422.41 918.04 1106.48 -294.97 879.25 1177.85 -384.4 948.34 1097.66 -291.07 930.92 1320.16 -427.9 789.23 1082.19 -200.63 814.19 1211.62 -237.78 825.88 1206.8 -234.2 832.63 1223.75 -185.22 783.59 1341.83 -308.1 826.28 1088.34 -213.65 776.08 1403.72 -263.55 823.33 1395.8 -272.52 829.73 1347.21 -317.44 694.57 1213.2 -432.68 751.43 1253.67 -428.6 743.67 1171.77 -435.83 816.55 1100.16 -291.3 893.46 1099.64 -215.09 872.16 1395.58 -286.05 812.58 1197.91 -428.71 801.03 1168.8 -433.95 1029.41 1105.44 -294.14 1061.48 1124.57 -254.18 1001.26 1410.72 -398.69 1056.22 1444.91 -370.91 859.49 1225.37 -315.06 844.36 1239.03 -264.67 847.72 1202.37 -251.45 850.56 1197.59 -323.74 898.5 1186.97 -202.26 880.49 1361.28 -327.35 854.19 1210.93 -364.56 911.38 1243.57 -345.28 918.36 1256.79 -303.17 864.63 1222.06 -403.58 825.96 1198.49 -391.36 828.55 1227.86 -418.35 906.44 1291.31 -267.55 958.62 1317.34 -294.03 955.14 1434.65 -326.47 982.64 1305.39 -385.43 1021.79 1347.8 -353.48 1002.07 1327.72 -337.33 961.24 1285.07 -359.54 939.64 1272.08 -406.67 976.28 1324.4 -424.74 1022.2 1360.1 -393.99 947.72 1440.65 -300.77 979.81 1471.5 -300.46 993.52 1344.64 -307.33 1037.52 1376.55 -316.66 1056.98 1396.4 -339.99 887.13 1108.16 -295.76 872.09 1162.85 -389.37 842.5 1182.91 -393.25 901.88 1191.53 -280.54 911.32 1193.01 -329.86 946.61 1097.89 -232.9 960.14 1174.34 -222.18 931.16 1170.58 -370.56 923.15 1149.92 -371.44 940.9 1187.4 -330.48 993.13 1149.74 -336.13 991.37 1094.63 -290.82 915.07 1411.01 -298.26 958.41 1287.96 -327.62 894.99 1253.02 -425.09 855.23 1268.32 -426.52 918.91 1396.2 -332.44 912.66 1237.86 -381.78 981.68 1436 -362.56 923.29 1364.5 -392.78 803.87 1289.15 -398.02 736.79 1275.24 -386.3 811.62 1129.18 -377.8 884.51 1127.98 -370.79 833.83 1449.58 -213.87 889.73 1430.43 -228.66 940.21 1427.91 -245.48 968 1448.71 -252.61 998.72 1480.02 -257.23 1039.55 1510.15 -276.41 1076.45 1507.29 -295.94 1093.87 1431.61 -291.91 1062.82 1394.86 -275.7 1014.41 1353.76 -261.56 976.88 1325.99 -248.21 924.34 1300.54 -230.97 1035.39 1154.15 -288.2 828.69 1193.16 -388.01 895.31 1184.86 -366.74 822.74 1213.3 -247.64 841.63 1204.84 -183.45 845.65 1253.84 -203.11 796.07 1400.59 -265.78 737.33 1215.91 -447.11 769.96 1116.41 -381.88 857.99 1092.58 -217.73 847.83 1396.15 -279.68 783.18 1208.96 -442.43 1050.37 1088.65 -249.76 1034.28 1468.95 -360.03 842.74 1207.7 -280.41 867.32 1194.18 -191.05 883.24 1236.88 -333.55 832.67 1211.49 -395.05 935.22 1304.41 -281.64 990.33 1313.47 -361.43 978.64 1307.42 -408.8 963.96 1456.9 -299.47 1015.95 1362.86 -312.07 1050.22 1385.02 -326.47 849.84 1132.11 -373.87 833.63 1169.08 -400.2 878.94 1193.37 -327.45 920.33 1099.88 -225.93 930.05 1182.37 -212.76 972.47 1090.52 -237.25 1009.46 1170.54 -237.51 967.18 1177.32 -302.26 1017.08 1080.41 -243.03 897.15 1397.56 -291.3 976 1329.35 -301.91 895.35 1287.59 -428.28 935.22 1261.68 -354.14 1008.64 1479.94 -329.99 952.31 1398.15 -382.61 831.68 1297.79 -394.46 773.42 1283.87 -394.99 667.15 1212.25 -420.57 925.23 1120.5 -352.53 809.5 1455.95 -208.92 858.92 1441.67 -220.65 915.76 1424.89 -236.03 956.25 1436.39 -250.56 981.85 1463.47 -254.5 1099.64 1457.72 -300.82 1082.95 1411.48 -282.86 1037.13 1374.04 -268.6 995.74 1338.17 -255.24 953.35 1314.01 -239.78 876.89 1281.96 -213.84 1054.9 1147.09 -252.36 858.12 1187.74 -375.72 821.2 1258.43 -423.31 940.55 1179.72 -354.51 899.78 1237.99 -408.21 963.42 1361.26 -419.86 995.04 1161.72 -326.99 1059.56 1416.89 -356.38 961.13 1108.92 -328.47 716.56 1269.35 -384.11 857.63 1273.93 -243.04 932.55 1425.28 -302.27 894.24 1336.28 -397.34 843.29 1195.06 -352.59 933.96 1190 -289.22 991.23 1172.11 -269.6 949.68 1181.65 -253.89 917.48 1186.22 -244.13 885.61 1190.41 -234.24 857.22 1197.05 -221.6 835.31 1206.17 -212.14 824.04 1219.98 -211.51 832.96 1243.18 -224.11 739.39 1553.7 -210.27 629.85 1245.37 -445.18 701.37 1035.24 -328.34 668.25 1174.17 -404.65 687.15 1128.51 -358.58 786.16 1476.64 -214.29 763.17 1419.72 -282.29 752.36 1358.57 -327.02 689.93 1271.58 -414.29 659.82 1230.66 -433.21 662.51 1171.24 -417.11 680.26 1121.45 -376.01 722.74 1072.61 -309 804.55 1159.73 -414.54 764.21 1135.76 -404.9 764.59 1145.39 -419.47 -310.36 1169.7 160.6 766.26 1057.38 -232.84 -284.67 1051.92 97.49 -259.18 999.21 62.67 -225.57 954.92 24.34 -182.63 911.01 -14.99 608.99 902.94 -243.5 677.97 947.63 -243.81 644.06 1539.7 336.33 658.3 1497.87 341.45 677.35 1462.35 335.33 699.04 1435.72 324.26 641.16 1580.42 319.82 721.71 1417.47 309.81 648.87 1610.19 293.81 740.71 1406.01 289.33 662.13 1626.88 261.53 756.47 1401.53 265.16 678.67 1631.26 230.07 770.71 1405.03 240.08 698.01 1623.94 203.89 784.53 1420.61 215.31 720.89 1605.76 182.86 795.29 1446.23 192.5 747.52 1579.41 167.4 795.67 1477.79 175.1 770.62 1547.02 160.52 787.33 1512.23 163.91 464.43 1416.76 -478.68 440.24 1443.16 -477.13 420.76 1478.77 -472.33 411.08 1520.99 -461.8 491.4 1399.07 -477.85 416.99 1562.42 -448.1 518.66 1388.28 -469.93 437.1 1593.18 -431.63 545.24 1384.58 -457.38 465.43 1611.09 -412.3 571.01 1388.89 -443.71 496.24 1616.61 -394.89 596.04 1405.56 -430.49 526.71 1610.19 -382.93 615.4 1432.78 -417.66 557.53 1592.65 -376.74 625.22 1464.66 -404.72 588.63 1566.66 -376.9 624.76 1499.28 -392.45 612.62 1534.39 -381.95 -138.57 574.15 -548.71 -137.26 520.89 -606.92 -142.42 505.79 -641.95 -95.18 -221.62 -469.59 -95.62 -202.26 -529.62 -99.49 -167.12 -581 -108.33 -119.01 -620.12 -122.79 -64.78 -649.01 -119.2 -6.43 -684.27 -116.48 25.88 -704.78 -112.41 73.08 -723.39 -110.61 124.99 -736.83 -114.83 178.15 -743.92 -121.66 232.32 -745.15 -128.19 286.16 -741.89 -132.83 337.55 -733.34 -135.05 384.52 -719.98 -136.37 427.73 -700.35 -140.4 469.48 -673.78 -127.5 626.74 -484.89 -101.91 666.68 -433.91 -73.76 702.86 -379.82 604.75 823.46 -64.82 621.87 798.48 -68.47 652.02 776.95 -73.73 699.05 749.87 -84.52 754.28 710.8 -94.29 -294.31 1104 154.97 -306.56 1167.43 173.32 -163.7 882.21 64.35 -273.47 1042.54 135.05 -244.22 985.81 110.93 -207.54 934.53 84.43 -967.93 24.65 178.06 -276.57 1105.79 211.65 -297.99 1167.99 201.63 -120.27 892.46 219.16 -247.85 1045.06 219.18 -211.32 988.06 223.83 -168.08 936.38 224.41 710.75 922.49 -97.53 652.54 876.62 -78.34 -312.84 -219.27 339.86 -231.37 -219.37 365.4 -372.02 -219.18 292.06 -417.92 -219.08 228.07 -461.19 -219.04 130.5 284.09 -219.55 321.07 385.88 -219.63 255.48 34.67 -219.45 381.97 150.3 -219.51 363.85 -120.77 -219.46 382.91 441.85 -219.58 173.23 -65.21 -219.46 390.03 471.05 -219.21 81.98 -463.8 -219.08 -47.54 470.49 -219.31 -41.57 -245.87 -219.39 -334.63 -327.14 -219.27 -310.18 -406.68 -219.09 -274.3 -449.87 -219.07 -205.74 -449.16 -219.14 -121.64 391.22 -219.47 -224.93 287.36 -219.29 -295.21 152.5 -219.15 -358.2 29.47 -219.1 -382.68 -128.66 -219.3 -366.44 446.6 -219.49 -138.12 -75.7 -219.3 -367.56 12.61 -218.97 19.81 641.1 882.03 191.88 -658.11 843.57 30.98 -586.14 -220.15 44.55 -496.46 -219.12 41.37 -817.65 916.77 24.83 -733.71 894.79 27.37 -767.46 -160.06 44.41 -680.53 -198.54 44.91 -852.68 -110.66 42.72 -923.83 -47.01 43.58 -984.36 23.72 44.15 -1029.62 104.54 45.13 -1070.64 219.41 45.65 -1091.87 345.65 44.38 -1088.9 440.49 44.35 -1074.53 541.91 44.65 -1051.63 661.83 42.56 -988.38 812.88 31.23 -905.04 891.11 25.45 -600.45 770.18 44.8 -550.59 727.83 48.48 -494.69 705.18 46.56 -423.33 694.52 44.91 -343.62 700.22 45.51 -149.12 737.61 56.11 -80.49 763.65 61.32 -69.41 782.69 58.09 -79.99 806.58 66.66 -106.79 837.87 86.09 -151.24 878.05 109.17 -195.26 927.29 125.72 -233.65 980.71 142.27 -265.58 1039.3 156.65 -289.36 1102.19 168.57 -304.67 1166.98 179.41 -517.97 463.24 660.13 -429.35 504.89 645.69 -270.88 14.21 721.7 44.4 -9.39 723.8 -115.47 -6.91 724.95 418.23 136.4 719.34 486.61 313.31 707.51 389.78 483.48 681.27 -433.39 496.22 -607.35 -529.84 454.83 -618.37 -269.64 23.61 -680.86 405.15 143.52 -679.71 464.66 315.02 -670.13 377.72 474.13 -642.96 -538.5 474.64 646.76 -441.74 514.83 633.74 -300.3 528.27 627.73 -135.89 544.97 627.3 -435.1 56.68 705.91 -534.18 135.77 700.13 -588.91 228.09 688.27 -606.73 319.93 676.14 -289.95 -3.79 707.11 -590.65 405.71 662.33 383.8 52.03 698.49 246.54 -6.85 698.62 64.05 -33.42 705.83 -115.08 -31.62 708.83 474.3 126.9 699.33 527.63 214.01 696.25 544.91 308.82 688.39 518.89 404.5 674.81 450.59 487.53 658.71 27.69 571.41 625.58 200.01 577.94 628.16 343.41 546.64 642.27 -136.46 537.08 -586.08 -307.39 527.1 -585.65 -450.45 507.15 -593.67 -551.58 463.78 -606.69 -612.34 308.73 -635.55 -592.71 225.72 -645.54 -532.61 140.97 -655.33 -432.24 65.09 -661.01 -292.76 2.39 -664.05 -600 390.67 -622.57 -120.4 -30.08 -668.37 57.1 -33.61 -667.05 240.72 -4.89 -658.31 377.97 56.02 -655.58 466.63 132.2 -654.36 517.34 217.76 -651.04 532.53 308.14 -643.16 508.01 396.88 -631.36 444.66 474.92 -616.9 343.76 531.22 -600.97 203.34 561.32 -586.85 26.68 559.17 -584.86 + + + + + + + + + + -0.192105 -0.934574 0.299444 -0.063137 -0.993627 0.093379 -0.038768 -0.993008 0.1115 -0.116943 -0.921307 0.370834 -0.085244 -0.993929 0.06956 -0.258206 -0.942078 0.214051 -0.30524 -0.944237 0.123468 -0.102996 -0.993875 0.040058 -0.109847 -0.993698 0.022299 -0.31987 -0.945465 0.06147 0.322014 -0.653115 0.685382 0.238003 -0.809448 0.536795 0.395576 -0.829373 0.394537 0.547108 -0.665776 0.507362 0.149282 -0.925886 0.34706 0.227377 -0.943125 0.242517 -0.182093 -0.790185 0.585193 -0.310546 -0.820659 0.479666 -0.418252 -0.841387 0.342247 -0.407245 -0.671921 0.618606 -0.544902 -0.711892 0.443048 -0.234362 -0.618085 0.750364 -0.474252 -0.857348 0.200096 -0.472506 -0.875417 0.101894 -0.601137 -0.750563 0.274389 -0.593416 -0.791429 0.146622 0.28227 -0.953511 0.105546 0.497191 -0.845397 0.195207 0.680188 -0.678638 0.277119 0.475424 -0.378708 0.794073 0.394705 -0.508079 0.765548 0.651802 -0.507547 0.563516 0.728712 -0.354445 0.585959 -0.28008 -0.456966 0.844238 -0.472077 -0.527464 0.706346 -0.629957 -0.589592 0.505506 -0.525513 -0.402807 0.749388 -0.688268 -0.483476 0.540868 -0.345689 -0.333642 0.87703 0.797507 -0.502743 0.333516 0.868862 -0.332167 0.367076 0.77923 -0.208314 0.591105 0.556737 -0.232341 0.797535 0.611427 -0.086962 0.786508 0.805964 -0.078024 0.5868 0.901017 -0.198566 0.385667 0.912955 -0.073238 0.401435 0.587301 0.316928 0.744738 0.626297 0.112266 0.771458 0.80759 0.102136 0.580833 0.767557 0.296272 0.5684 0.90596 0.097132 0.41207 0.868979 0.273142 0.412637 0.369046 0.664285 0.650024 0.498273 0.502361 0.706652 0.692858 0.459154 0.555991 0.584343 0.597973 0.548609 0.81307 0.415129 0.408148 0.751108 0.515142 0.412874 0.196275 0.766921 0.61099 0.270008 0.715602 0.644212 0.477417 0.672125 0.565969 0.380902 0.730921 0.566276 0.665621 0.613832 0.424452 0.560117 0.712908 0.421936 -0.142244 0.892593 0.427838 -0.115439 0.801946 0.586137 -0.145787 0.823133 0.548815 -0.183743 0.901337 0.392212 -0.170612 0.892161 0.418258 -0.198939 0.940455 0.275621 -0.083925 0.784602 0.614293 -0.10478 0.836918 0.537206 -0.071281 0.762801 0.642692 -0.083728 0.958156 0.273727 -0.15202 0.9639 0.218603 -0.043763 0.995476 0.08434 0.114346 0.98314 0.14269 -0.188558 0.971096 0.146348 -0.153656 0.986839 0.050394 -0.277869 0.955109 0.102745 -0.278502 0.959787 0.035287 -0.266254 0.943942 0.195147 -0.494479 0.642105 0.585826 -0.123696 0.744153 0.656457 -0.094312 0.919594 0.381382 -0.521994 0.776797 0.35229 0.287491 0.725141 0.625716 0.351054 0.8663 0.355366 -0.085417 0.659133 0.74716 0.224057 0.689812 0.688446 -0.411466 0.564911 0.715242 -0.896433 0.304314 0.322182 -0.755952 0.475948 0.449456 -0.804068 0.526335 0.276491 -0.929835 0.307417 0.202242 -0.651395 0.428272 0.626313 -0.812822 0.26113 0.520703 -0.700814 0.143516 0.698758 -0.528958 0.34005 0.777541 -0.323565 0.505561 0.799821 -0.384659 0.217755 0.897006 -0.267683 0.410287 0.871786 -0.517297 -0.021464 0.855537 -0.703155 -0.184805 0.686601 -0.802321 -0.033849 0.595932 -0.877921 -0.144525 0.456473 -0.806043 -0.267057 0.528181 -0.893238 0.116382 0.43426 -0.929772 -0.002536 0.368127 -0.693476 -0.636084 0.33836 -0.705366 -0.683814 0.186701 -0.755874 -0.532487 0.380935 -0.796558 -0.566462 0.211227 -0.077404 -0.240518 0.967553 -0.089779 -0.134756 0.986803 -0.16848 -0.121851 0.978145 -0.1385 -0.221469 0.965282 -0.113523 -0.03893 0.992772 -0.196004 -0.01747 0.980447 -0.602192 -0.290794 0.743508 -0.742443 -0.374888 0.555191 -0.432924 -0.200313 0.878892 -0.81811 -0.413901 0.399226 -0.879813 -0.419683 0.223148 -0.883197 -0.285159 0.372353 -0.940381 -0.263399 0.215185 -0.205308 0.092762 0.974291 -0.124591 0.080263 0.988956 -0.122229 0.178902 0.976245 -0.196018 0.189899 0.962037 -0.047896 0.778818 0.625419 -0.065643 0.712191 0.69891 -0.086262 0.666108 0.740851 -0.054126 0.736681 0.674071 0.32738 0.918427 0.222066 0.038281 0.947016 0.318896 -0.06742 0.912058 0.40448 0.299045 0.868082 0.396239 0.020784 0.86406 0.502959 0.600993 0.749845 0.276658 0.100131 0.787806 0.60773 0.137886 0.800725 0.582946 0.29315 0.782719 0.549012 0.251526 0.793734 0.553824 0.033788 0.760604 0.648336 0.012822 0.792841 0.609294 -0.001463 0.805932 0.592006 0.470183 0.782284 0.408607 0.406579 0.824127 0.394346 -0.228103 0.919665 0.319665 -0.149178 0.877206 0.456351 0.222002 0.775651 0.59083 0.47715 0.718895 0.505488 0.642217 0.702698 0.306223 -0.941955 -0.151987 0.299368 -0.977275 -0.097624 0.188159 -0.969668 0.027369 0.242887 -0.984275 0.065093 0.164214 -0.081931 0.660821 0.746058 -0.143877 0.635631 0.758467 -0.950765 0.179011 0.252985 -0.969442 0.180576 0.166054 0.433755 0.791155 0.431196 0.286616 0.730735 0.619578 0.635939 0.499322 0.588438 0.410198 0.415864 0.811662 -0.030926 0.832103 0.553758 -0.063271 0.738082 0.671738 -0.236424 0.785278 0.572225 -0.098467 0.365743 0.925492 -0.356851 0.365077 0.85987 0.116452 0.704273 0.700314 0.160352 0.369362 0.915346 -0.380382 0.818135 0.431237 -0.491183 0.823513 0.283841 -0.599124 0.341163 0.724333 -0.79874 0.301744 0.520542 0.047578 -0.992569 0.111995 0.069353 -0.994738 0.07541 0.015597 -0.990696 0.135198 0.028502 -0.991142 0.12971 0.086411 -0.911351 0.402459 0.046375 -0.905885 0.420978 -0.018846 -0.991895 0.125653 -0.057064 -0.909795 0.411117 0.087759 -0.995759 0.027609 0.126144 -0.779516 0.613549 0.06715 -0.760564 0.645781 0.153708 -0.607994 0.77892 0.075386 -0.576764 0.813425 -0.08524 -0.76005 0.644251 -0.102578 -0.56625 0.817826 0.045087 -0.227715 0.972683 0.047144 -0.133927 0.989869 0.005657 -0.158947 0.987271 0.006383 -0.238842 0.971037 0.058636 -0.040894 0.997441 0.002968 -0.056685 0.998388 0.127619 -0.116249 0.984987 0.152276 -0.014785 0.988227 0.100582 -0.205115 0.973556 0.059273 0.068169 0.995911 -0.006761 0.055533 0.998434 0.050298 0.180654 0.98226 -0.021937 0.163023 0.986378 0.163736 0.099064 0.981518 0.156174 0.22069 0.962759 0.020676 0.317859 0.947913 -0.05028 0.316737 0.94718 -0.0254 0.533871 0.845184 -0.08689 0.522774 0.848032 0.127715 0.356856 0.925388 0.071449 0.515979 0.853616 -0.061044 0.766613 0.639201 0.078283 0.74129 0.666604 0.208503 0.671411 0.71115 0.31329 0.499709 0.807552 0.378686 0.310584 0.871857 0.40034 0.118623 0.908657 0.381554 -0.070387 0.921663 0.331086 -0.227735 0.915707 0.260302 -0.364956 0.893896 0.178108 -0.473098 0.862819 0.071346 -0.485087 0.871551 -0.127927 -0.411335 0.902462 -0.21715 -0.272308 0.937387 -0.286126 -0.114594 0.951315 -0.297807 0.014156 0.954521 -0.259201 0.153068 0.953617 -0.214496 0.319775 0.922895 -0.151909 0.528651 0.835136 -0.103667 0.295325 0.949756 -0.165784 0.313165 0.935117 -0.083668 0.49287 0.866071 -0.119838 0.470098 0.874441 -0.087589 0.774562 0.626403 -0.256938 -0.123462 0.958509 -0.282895 0.013189 0.95906 -0.378704 -0.276753 0.883171 -0.438398 -0.070592 0.896004 -0.437713 -0.063566 0.896865 -0.390688 -0.276212 0.878106 -0.251501 -0.431258 0.866466 -0.276372 -0.456201 0.845872 -0.199071 -0.303262 0.931881 -0.274649 0.135234 0.951987 -0.24989 0.293919 0.922587 -0.442082 0.0996 0.891428 -0.416834 0.295751 0.859524 -0.412812 0.324044 0.851224 -0.438386 0.113041 0.89165 0.156414 -0.497415 0.853295 0.061408 -0.535723 0.842158 0.119444 -0.451978 0.883996 0.032666 -0.468593 0.88281 0.050042 -0.559279 0.827468 0.150719 -0.524692 0.837844 0.208737 -0.361481 0.908714 0.238763 -0.413598 0.878595 0.232431 -0.391683 0.890259 -0.125822 -0.451367 0.883423 -0.12867 -0.465577 0.875604 -0.150997 -0.530958 0.833836 0.284033 -0.235262 0.929504 0.269395 -0.199777 0.94208 0.293523 -0.238539 0.925712 0.286187 -0.032296 0.957629 0.310919 -0.056238 0.948771 0.312734 -0.062229 0.9478 0.322662 0.120176 0.938854 0.286699 0.125442 0.949773 0.312949 0.123788 0.941668 0.279721 0.29417 0.913904 0.303912 0.313653 0.899588 0.309098 0.311371 0.898614 0.037576 0.808427 0.587396 0.169809 0.698636 0.695034 -0.000992 0.780216 0.62551 0.138258 0.681303 0.718826 0.161534 0.715465 0.679718 0.018782 0.826535 0.562572 -0.099959 0.801373 0.589754 -0.09864 0.852959 0.512573 -0.076803 0.814817 0.574608 0.262913 0.511392 0.818141 0.242579 0.492018 0.836106 0.262902 0.521528 0.811721 -0.185717 0.495793 0.848351 -0.322475 0.528815 0.785089 -0.160238 0.722249 0.672815 -0.1463 0.77286 0.617482 -0.312054 0.577236 0.7546 -0.076566 0.797942 0.597851 -0.071614 0.840186 0.537549 -0.107373 0.80621 0.581804 -0.11299 0.848803 0.516494 -0.28755 -0.018158 0.957593 -0.24684 -0.156049 0.956409 -0.173541 -0.290822 0.940907 -0.283247 0.226808 0.931842 -0.297511 0.100471 0.949417 0.01455 -0.330323 0.943756 0.072167 -0.32917 0.941509 0.150157 -0.268874 0.951399 -0.091497 -0.34135 0.935472 0.211916 -0.141446 0.966998 0.233572 -0.009443 0.972294 0.240824 0.120377 0.963075 0.233783 0.260441 0.936758 0.102887 0.613162 0.783228 -0.030393 0.694002 0.719332 -0.098715 0.675429 0.730788 0.204906 0.428811 0.879849 -0.132488 0.557427 0.819586 -0.232969 0.388 0.891729 -0.07538 0.634763 0.769021 -0.096847 0.652624 0.751467 -0.092385 0.509498 0.855498 -0.081264 0.316519 0.945099 -0.068257 0.171979 0.982733 -0.054548 0.065366 0.996369 -0.043345 -0.055433 0.997521 -0.033398 -0.160142 0.986529 -0.028887 -0.245337 0.969007 -0.033309 -0.336013 0.941268 -0.042364 -0.467723 0.882859 -0.046571 -0.556121 0.829795 -0.037676 -0.519497 0.853641 -0.022573 -0.457443 0.888952 -0.012972 -0.556884 0.830489 -0.007748 -0.753866 0.656982 -0.003795 -0.90728 0.42051 -0.00113 -0.991208 0.132304 0.512332 -0.857387 0.049021 0.705549 -0.704427 0.077351 0.297091 -0.954566 0.023266 0.842868 -0.528877 0.099309 0.93026 -0.348815 0.113777 0.968095 -0.218407 0.122841 0.986592 -0.093128 0.134027 0.985675 0.081584 0.14761 0.952815 0.259744 0.15709 0.894832 0.417712 0.157458 0.84411 0.514902 0.149511 0.774081 0.618632 0.134512 0.673778 0.729236 0.119324 0.59428 0.795841 0.116055 0.520486 0.845859 0.116692 0.525073 0.841884 0.124619 0.765587 0.621617 0.165736 0.097104 -0.995262 0.004891 -0.565487 0.809409 0.158369 -0.611373 0.78929 0.056948 -0.920923 0.236246 0.309983 -0.979385 0.144836 0.140812 -0.738264 -0.362444 0.568859 -0.830425 -0.418736 0.367498 -0.844467 -0.498619 0.195587 -0.637332 -0.672703 0.375871 -0.668065 -0.709841 0.223194 -0.553906 -0.63586 0.537467 -0.346187 -0.290986 0.891898 -0.56422 -0.330576 0.756555 -0.43616 -0.617409 0.654653 -0.266325 -0.628621 0.730689 -0.097998 -0.251549 0.96287 -0.086914 -0.643904 0.760153 0.176808 -0.222937 0.958665 0.120692 -0.699227 0.704638 0.465191 -0.190484 0.864473 0.373031 -0.681738 0.629349 0.749166 -0.14147 0.647099 0.572084 -0.682023 0.455592 0.984146 0.022959 0.175865 0.738389 -0.656529 0.154114 -0.095642 0.769685 0.631219 -0.315046 -0.948906 0.017992 -0.110312 -0.993885 0.004937 -0.45769 -0.888534 0.032051 -0.589108 -0.80717 0.037794 0.510072 -0.858616 -0.051035 0.706228 -0.703128 -0.082783 0.29442 -0.955397 -0.023087 0.843868 -0.525188 -0.109836 0.928969 -0.346428 -0.1304 0.964677 -0.219443 -0.145749 0.981881 -0.104843 -0.15785 0.98501 0.058606 -0.162235 0.958193 0.238389 -0.158228 0.897815 0.414059 -0.149943 0.829346 0.538001 -0.150799 0.747692 0.644522 -0.159835 0.659158 0.734433 -0.161617 0.265067 0.963479 0.038045 0.039024 0.999086 0.017429 0.018608 0.997848 -0.062879 0.244851 0.96254 -0.116469 -0.130659 0.99135 0.012353 -0.138122 0.990161 -0.022438 -0.273264 0.961899 0.008832 -0.274223 0.961666 0.000456 -0.05358 0.998129 0.029446 -0.515921 0.8552 0.049574 0.344118 0.898832 -0.271449 -0.055876 0.956547 -0.286173 0.365292 0.93075 0.01632 -0.828134 0.557883 0.054407 -0.952772 0.299577 0.049792 -0.71172 -0.701466 0.037417 -0.905756 -0.418032 -0.069674 -0.8121 -0.578722 -0.07466 -0.818397 -0.573475 0.036781 -0.910275 -0.41206 0.040068 0.709534 0.701444 0.067368 0.515623 0.854186 0.067083 0.526247 0.835424 -0.158529 0.711552 0.677342 -0.186817 0.587213 0.793912 -0.15775 0.504741 0.8499 -0.15135 0.655698 0.754164 0.036014 0.627906 0.742235 -0.23414 -0.995756 -0.076044 0.051846 -0.966252 -0.253073 0.048067 -0.995209 0.084613 0.048994 -0.982451 0.18055 0.046815 0.5007 0.849411 -0.166736 0.699496 0.67424 -0.236864 -0.644953 0.764152 0.010324 -0.658148 0.752564 0.022105 -0.997005 0.052622 0.056674 -0.999009 0.030971 0.031971 0.095196 -0.995453 -0.003472 -0.828462 -0.551208 0.099097 -0.833527 -0.552249 0.015939 -0.680855 -0.72299 0.11714 -0.704394 -0.709809 0.000319 0.942478 0.129992 -0.307956 0.760785 -0.603242 -0.239385 -0.191595 -0.926135 -0.324907 -0.114053 -0.910401 -0.397695 -0.034542 -0.992382 -0.11826 -0.056323 -0.993627 -0.097634 -0.082295 -0.994468 -0.065269 -0.263911 -0.938065 -0.224465 -0.301453 -0.945273 -0.124838 -0.102697 -0.994174 -0.032737 -0.109858 -0.993814 -0.016288 -0.306209 -0.95011 -0.059387 0.319119 -0.647592 -0.691944 0.534298 -0.666951 -0.519328 0.385243 -0.830076 -0.403189 0.239588 -0.805169 -0.542495 0.228594 -0.939198 -0.256228 0.158282 -0.918606 -0.36209 -0.178478 -0.756748 -0.62887 -0.309478 -0.797511 -0.51788 -0.420816 -0.8318 -0.361971 -0.538666 -0.700905 -0.467516 -0.394207 -0.645973 -0.653697 -0.222741 -0.580398 -0.783278 -0.463931 -0.858392 -0.218933 -0.461417 -0.880379 -0.10967 -0.599795 -0.782409 -0.167574 -0.593082 -0.744351 -0.306913 0.280101 -0.952347 -0.12074 0.489168 -0.845973 -0.212238 0.674729 -0.677812 -0.292083 0.467445 -0.36492 -0.805188 0.712303 -0.345384 -0.61101 0.641582 -0.494013 -0.586791 0.391214 -0.48952 -0.779308 -0.257894 -0.431039 -0.864694 -0.450357 -0.520347 -0.725546 -0.610806 -0.588396 -0.529817 -0.665059 -0.488469 -0.564884 -0.505188 -0.409002 -0.759935 -0.312905 -0.315001 -0.896027 0.796289 -0.495911 -0.346405 0.865735 -0.328642 -0.377489 0.760431 -0.204646 -0.616332 0.545205 -0.224703 -0.807626 0.593643 -0.079999 -0.800742 0.783914 -0.086131 -0.614866 0.896385 -0.199745 -0.395723 0.906271 -0.095035 -0.411876 0.55148 0.253949 -0.794594 0.749755 0.226643 -0.621691 0.783116 0.056583 -0.619296 0.596901 0.085912 -0.797702 0.905261 0.045528 -0.422409 0.880717 0.218407 -0.42028 0.336343 0.599634 -0.726163 0.572034 0.582302 -0.57767 0.679989 0.408784 -0.608695 0.46199 0.4254 -0.778203 0.822753 0.398503 -0.405305 0.738654 0.550109 -0.389577 0.158289 0.71392 -0.682101 0.37644 0.723497 -0.578658 0.467119 0.676082 -0.569836 0.228365 0.685686 -0.691147 0.64837 0.657518 -0.383779 0.564634 0.73282 -0.379688 -0.132947 0.895479 -0.424786 -0.167833 0.911033 -0.376632 -0.127559 0.841932 -0.524289 -0.095043 0.810725 -0.57766 -0.191257 0.937853 -0.289573 -0.161108 0.887896 -0.430911 -0.099614 0.831055 -0.547197 -0.068855 0.78256 -0.618756 -0.042804 0.756721 -0.652336 -0.106608 0.957284 -0.26878 0.061838 0.967519 -0.245118 -0.090994 0.984178 -0.152029 -0.171427 0.958941 -0.225931 -0.17017 0.981995 -0.082019 -0.19565 0.967131 -0.162414 -0.282661 0.958483 -0.037587 -0.282513 0.952365 -0.114838 -0.26264 0.936926 -0.23063 -0.457703 0.605022 -0.651503 -0.494685 0.71531 -0.493577 -0.076215 0.822264 -0.56398 -0.087927 0.702017 -0.706712 0.319663 0.765999 -0.557728 0.294838 0.694845 -0.655943 0.224188 0.682817 -0.695342 -0.063718 0.649519 -0.757671 -0.387101 0.557985 -0.734034 -0.896045 0.261572 -0.358724 -0.944001 0.274388 -0.183229 -0.810196 0.488178 -0.324445 -0.74295 0.435413 -0.508371 -0.645643 0.412335 -0.642748 -0.811091 0.243391 -0.531877 -0.699154 0.136172 -0.701883 -0.530868 0.331813 -0.779794 -0.304277 0.511425 -0.803654 -0.248497 0.40863 -0.87822 -0.387329 0.198997 -0.900209 -0.511752 -0.03369 -0.858472 -0.688195 -0.178343 -0.703265 -0.790779 -0.260465 -0.553919 -0.872039 -0.112084 -0.476429 -0.79441 -0.013365 -0.607235 -0.920107 0.042305 -0.389375 -0.884542 0.127624 -0.448662 -0.67697 -0.636722 -0.369184 -0.702445 -0.678562 -0.214766 -0.780282 -0.577743 -0.239525 -0.733845 -0.540698 -0.411238 -0.092146 -0.181551 -0.979055 -0.144346 -0.166446 -0.975428 -0.159433 -0.0793 -0.984019 -0.09459 -0.066005 -0.993326 -0.168505 -9.8e-005 -0.985701 -0.104515 0.011536 -0.994456 -0.726294 -0.369683 -0.57951 -0.58845 -0.292203 -0.753886 -0.407289 -0.200727 -0.890968 -0.869482 -0.428707 -0.24538 -0.799739 -0.410778 -0.437812 -0.938756 -0.260148 -0.225964 -0.869601 -0.274802 -0.410217 -0.170544 0.079519 -0.982136 -0.161163 0.16971 -0.972227 -0.090406 0.181407 -0.979244 -0.103963 0.092063 -0.990311 -0.06148 0.779504 -0.623372 -0.054957 0.743776 -0.666166 -0.103094 0.668639 -0.736406 -0.089261 0.714201 -0.694225 0.31363 0.879361 -0.358275 0.027406 0.941997 -0.3345 -0.080633 0.891855 -0.445077 0.022354 0.831017 -0.555798 0.289188 0.850634 -0.439082 0.556014 0.699287 -0.449273 0.050619 0.77372 -0.631503 0.231632 0.808093 -0.541602 0.288864 0.771709 -0.566589 0.103253 0.74479 -0.659263 0.031941 0.724554 -0.688478 0.00327 0.749939 -0.661499 -0.026178 0.792686 -0.609067 0.482125 0.794986 -0.368174 0.39819 0.851477 -0.34122 -0.221082 0.901732 -0.371486 -0.143616 0.850846 -0.505407 0.234403 0.743588 -0.626204 0.4613 0.70383 -0.540209 0.562036 0.649806 -0.51173 -0.977475 -0.09125 -0.190304 -0.936548 -0.12725 -0.326627 -0.984002 0.070673 -0.163538 -0.961334 0.050437 -0.270725 -0.121369 0.620779 -0.774534 -0.05521 0.647509 -0.760056 -0.94446 0.162933 -0.285392 -0.972852 0.171495 -0.155397 0.237588 0.800477 -0.550262 0.395612 0.847698 -0.353412 0.352709 0.570394 -0.741786 0.568092 0.651952 -0.502225 -0.054492 0.806886 -0.588189 -0.221387 0.774334 -0.592785 -0.082145 0.728436 -0.680171 -0.342466 0.449464 -0.825045 -0.118412 0.432894 -0.893634 0.102365 0.477954 -0.8724 0.062161 0.735187 -0.675008 -0.351629 0.822967 -0.446187 -0.453204 0.83982 -0.298847 -0.753611 0.408046 -0.515334 -0.565572 0.457655 -0.686061 0.070664 -0.994095 -0.082349 0.053041 -0.99155 -0.11839 0.013214 -0.990079 -0.139887 0.042012 -0.89934 -0.435226 0.096958 -0.90473 -0.414805 0.032984 -0.990442 -0.133926 -0.056129 -0.897894 -0.436619 -0.016737 -0.990737 -0.134762 0.086451 -0.995646 -0.034867 0.061045 -0.750035 -0.658575 0.137192 -0.7745 -0.617518 0.069231 -0.578032 -0.813072 0.16572 -0.607502 -0.776838 -0.08926 -0.735219 -0.671927 -0.114232 -0.544749 -0.830782 0.0199 -0.230667 -0.972829 -0.03059 -0.214976 -0.97614 -0.045949 -0.097765 -0.994148 0.002652 -0.09551 -0.995425 -0.05214 0.011311 -0.998576 0.002126 0.018178 -0.999833 0.120703 0.014716 -0.99258 0.113382 -0.110686 -0.987367 0.096735 -0.223219 -0.969956 -0.055453 0.119903 -0.991236 -0.00362 0.136071 -0.990692 -0.05736 0.236921 -0.969834 -0.013518 0.263625 -0.96453 0.087312 0.29439 -0.951689 0.113303 0.153087 -0.981696 -0.061342 0.359864 -0.930986 -0.028723 0.371745 -0.92789 -0.069243 0.4799 -0.874586 -0.043065 0.485174 -0.873356 0.017105 0.479389 -0.877436 0.052658 0.398115 -0.915823 -0.034662 0.760895 -0.647949 0.071561 0.732107 -0.677421 0.19193 0.634438 -0.748767 0.303764 0.45856 -0.835135 0.384423 0.282016 -0.879025 0.419852 0.110043 -0.900897 0.406421 -0.062873 -0.91152 0.353948 -0.220409 -0.908923 0.281497 -0.354275 -0.891767 0.067514 -0.500145 -0.863306 0.193672 -0.469968 -0.861174 -0.149573 -0.414804 -0.897533 -0.228364 -0.298828 -0.926581 -0.288289 -0.161703 -0.943791 -0.298673 -0.022505 -0.95409 -0.190837 0.301541 -0.93416 -0.246393 0.126272 -0.960909 -0.150186 0.520269 -0.840693 -0.129719 0.30909 -0.942145 -0.066401 0.30513 -0.949993 -0.05506 0.462228 -0.88505 -0.090054 0.449043 -0.888961 -0.071737 0.766971 -0.637659 -0.28308 -0.028542 -0.958671 -0.281907 -0.191932 -0.940048 -0.35128 -0.084777 -0.932424 -0.309861 -0.241819 -0.919516 -0.329872 -0.25678 -0.908432 -0.37191 -0.083601 -0.924497 -0.244241 -0.370498 -0.896146 -0.261883 -0.399783 -0.878402 -0.239012 -0.350972 -0.905369 -0.228584 0.26964 -0.935438 -0.253339 0.114703 -0.960553 -0.387728 0.261522 -0.883897 -0.382104 0.068919 -0.921546 -0.395896 0.08722 -0.914144 -0.400449 0.295267 -0.867443 0.059717 -0.537345 -0.841246 0.170808 -0.490619 -0.854469 0.023676 -0.491989 -0.87028 0.13803 -0.482656 -0.864865 0.172547 -0.546783 -0.819302 0.048048 -0.585351 -0.809355 0.245352 -0.391125 -0.887031 0.271569 -0.425596 -0.863203 0.253368 -0.383228 -0.888223 -0.163913 -0.464506 -0.870268 -0.156065 -0.436285 -0.886171 -0.174109 -0.495956 -0.850713 0.311333 -0.23414 -0.921005 0.314461 -0.22766 -0.921567 0.331859 -0.25307 -0.908749 0.334949 -0.047464 -0.94104 0.358799 -0.06945 -0.930828 0.352028 -0.064116 -0.933791 0.370019 0.120945 -0.921118 0.325854 0.137848 -0.935317 0.365493 0.126797 -0.922137 0.293833 0.331416 -0.896563 0.34575 0.339236 -0.874858 0.349674 0.318497 -0.881072 0.181169 0.722007 -0.667745 0.050428 0.825992 -0.561421 0.124915 0.68236 -0.720265 -6.4e-005 0.771436 -0.636307 0.029383 0.862631 -0.504979 0.172419 0.753175 -0.634823 -0.088463 0.796994 -0.597474 -0.084754 0.878473 -0.470215 -0.056364 0.816907 -0.574008 0.287197 0.527288 -0.799678 0.229302 0.522437 -0.821267 0.284401 0.557632 -0.779848 -0.184805 0.4794 -0.857917 -0.159069 0.705704 -0.690419 -0.306813 0.513918 -0.801096 -0.31363 0.566778 -0.761839 -0.157736 0.765168 -0.624209 -0.07398 0.778037 -0.623847 -0.070336 0.835625 -0.544778 -0.087807 0.795682 -0.599317 -0.0906 0.859182 -0.503584 -0.232894 -0.14448 -0.96171 -0.244694 -0.029464 -0.969153 -0.189637 -0.261806 -0.946306 -0.25147 0.075308 -0.964931 -0.245158 0.195505 -0.949566 0.06974 -0.345483 -0.93583 -0.006893 -0.323083 -0.946346 0.169715 -0.300955 -0.938415 -0.116189 -0.315505 -0.941784 0.239136 -0.16692 -0.956531 0.255866 -0.011583 -0.966643 0.242803 0.152651 -0.95799 0.20225 0.315078 -0.927265 -0.03262 0.607099 -0.793957 0.060482 0.564264 -0.823376 -0.076308 0.598816 -0.797243 0.144813 0.453952 -0.87918 -0.202985 0.364192 -0.908934 -0.11608 0.523882 -0.843844 -0.061276 0.585859 -0.808093 -0.069249 0.590834 -0.803815 -0.061472 0.471179 -0.879893 -0.062085 0.339503 -0.938554 -0.069743 0.213082 -0.974542 -0.075706 0.107004 -0.991372 -0.074754 0.010258 -0.997149 -0.065912 -0.084881 -0.994209 -0.056368 -0.195516 -0.979079 -0.058266 -0.312571 -0.948106 -0.06995 -0.465685 -0.882182 -0.071192 -0.557979 -0.826796 -0.045759 -0.478407 -0.876945 -0.060654 -0.526507 -0.848004 -0.029987 -0.553196 -0.832511 -0.018383 -0.737566 -0.675025 -0.00908 -0.897437 -0.44105 -0.001567 -0.989994 -0.141104 -0.308311 -0.951069 -0.020317 -0.110716 -0.993809 -0.009213 -0.455218 -0.889798 -0.032192 -0.596473 -0.800897 -0.052764 -0.511404 0.823206 -0.246572 -0.95224 0.291333 -0.091451 -0.828385 0.538446 -0.154447 -0.712914 -0.697666 -0.070815 -0.964196 -0.256019 -0.069138 -0.99426 -0.077623 -0.073639 -0.993524 0.085059 -0.075332 -0.980406 0.180688 -0.078466 -0.618509 0.785229 -0.029372 -0.985083 0.143581 -0.094846 -0.540304 0.826149 -0.159842 -0.899961 0.302173 -0.314264 -0.858857 -0.489253 -0.151644 -0.711607 -0.680928 -0.173067 -0.767862 -0.270704 -0.580609 -0.848866 -0.38342 -0.363889 -0.671956 -0.656554 -0.342654 -0.602092 -0.614178 -0.510167 -0.382164 -0.137815 -0.91376 -0.607461 -0.181285 -0.773387 -0.492075 -0.563363 -0.66369 -0.327916 -0.537005 -0.777237 -0.137848 -0.132628 -0.981533 -0.138262 -0.548206 -0.824836 0.069956 -0.573928 -0.815912 0.118908 -0.117334 -0.985948 0.269632 -0.627689 -0.730278 0.418915 -0.085169 -0.904023 0.751137 0.018174 -0.659897 0.495872 -0.698086 -0.516515 -0.959308 0.03494 0.280191 -0.952246 0.032665 0.30358 -0.931439 0.167113 0.323256 -0.946666 0.171856 0.27256 -0.944873 0.025034 0.326479 -0.915523 0.15098 0.372858 -0.937561 0.012081 0.347611 -0.899991 0.123982 0.417906 -0.930687 -0.005709 0.365771 -0.88562 0.086935 0.456202 -0.924751 -0.02701 0.379614 -0.873362 0.042295 0.485232 -0.919722 -0.051962 0.389116 -0.863686 -0.010093 0.503929 -0.915882 -0.07818 0.393761 -0.857078 -0.06456 0.511126 -0.913923 -0.104025 0.392331 -0.85419 -0.11699 0.506629 -0.913693 -0.130232 0.384974 -0.854275 -0.170708 0.490992 -0.915233 -0.154922 0.371951 -0.856987 -0.224799 0.463722 -0.918585 -0.175592 0.354076 -0.86267 -0.271385 0.426792 -0.92433 -0.190963 0.330373 -0.87471 -0.302689 0.378498 -0.934899 -0.20202 0.291807 -0.900156 -0.325593 0.289324 -0.890605 -0.319629 0.323513 -0.930768 -0.199823 0.306172 -0.896015 0.289446 0.336717 -0.918723 0.296139 0.261248 -0.872121 0.265917 0.410723 -0.848721 0.226454 0.477904 -0.827128 0.172693 0.534823 -0.808599 0.107435 0.578469 -0.794367 0.032869 0.606548 -0.785332 -0.046839 0.6173 -0.781527 -0.126653 0.610881 -0.781925 -0.208794 0.587365 -0.785852 -0.293498 0.54433 -0.793926 -0.361166 0.489122 -0.811011 -0.403509 0.423605 -0.835249 -0.430591 0.341981 -0.847362 0.403787 0.344867 -0.877007 0.412522 0.246342 -0.816107 0.373007 0.441401 -0.785466 0.321457 0.528875 -0.757114 0.251747 0.602829 -0.732491 0.167253 0.659911 -0.712844 0.071978 0.697619 -0.699432 -0.030221 0.714059 -0.693359 -0.134971 0.707839 -0.69471 -0.244214 0.676563 -0.700164 -0.360048 0.616552 -0.70616 -0.453554 0.543716 -0.723571 -0.510433 0.464653 -0.757487 -0.546171 0.357646 -0.786224 0.510861 0.347668 -0.822285 0.521486 0.227814 -0.748155 0.473318 0.46501 -0.710822 0.410465 0.571184 -0.676281 0.325562 0.660798 -0.646302 0.222794 0.729833 -0.622399 0.10706 0.775344 -0.605757 -0.016287 0.795483 -0.597542 -0.142071 0.789151 -0.599085 -0.273393 0.752564 -0.60563 -0.422024 0.674617 -0.607327 -0.542223 0.580644 -0.620457 -0.609415 0.493606 -0.663097 -0.648857 0.373212 -0.713977 0.60914 0.345234 -0.755845 0.621474 0.206076 -0.669759 0.565415 0.481383 -0.626411 0.492244 0.604405 -0.586335 0.393519 0.708063 -0.551589 0.274196 0.78776 -0.523915 0.140003 0.840186 -0.50466 -0.002875 0.863313 -0.49473 -0.148064 0.856341 -0.496894 -0.296651 0.815533 -0.511217 -0.470317 0.719347 -0.523453 -0.603055 0.601932 -0.545143 -0.669199 0.504967 -0.589674 -0.712382 0.380521 -0.632099 0.697394 0.337775 -0.679096 0.71124 0.181568 -0.582486 0.648154 0.490516 -0.5339 0.565788 0.628358 -0.489044 0.454789 0.744314 -0.450209 0.320827 0.833296 -0.419313 0.170382 0.89171 -0.397824 0.010361 0.917403 -0.386724 -0.152177 0.909553 -0.388886 -0.314587 0.865911 -0.416833 -0.497639 0.760661 -0.461005 -0.625946 0.62902 -0.542095 0.774686 0.325568 -0.59349 0.789827 0.154737 -0.487905 0.720667 0.492532 -0.43493 0.630343 0.643043 -0.38611 0.508755 0.769472 -0.343915 0.36222 0.866325 -0.310386 0.197876 0.929788 -0.287067 0.023241 0.957628 -0.274986 -0.154067 0.949024 -0.274134 -0.330452 0.903134 -0.301719 -0.514593 0.802596 -0.360872 -0.638403 0.679863 -0.445437 0.840326 0.308929 -0.500465 0.856536 0.126018 -0.38753 0.782322 0.48764 -0.33105 0.685367 0.648597 -0.279115 0.554983 0.783638 -0.234315 0.398046 0.886936 -0.198757 0.222249 0.954516 -0.17402 0.035609 0.984098 -0.16115 -0.153814 0.97487 -0.161642 -0.341921 0.925722 -0.183317 -0.527133 0.829775 -0.220874 -0.657099 0.720719 -0.343537 0.893826 0.288198 -0.401407 0.910873 0.095829 -0.282794 0.832673 0.476113 -0.223705 0.730484 0.645251 -0.169507 0.59318 0.787022 -0.12285 0.428085 0.89535 -0.085859 0.243336 0.966134 -0.060462 0.047524 0.997039 -0.048288 -0.151037 0.987348 -0.051166 -0.346804 0.936541 -0.071344 -0.536886 0.840633 -0.087804 -0.68822 0.72017 -0.21987 0.940432 0.259317 -0.280041 0.958155 0.059292 -0.156941 0.876708 0.4547 -0.09594 0.770249 0.630486 -0.04016 0.627311 0.777732 0.007748 0.4556 0.890151 0.046906 0.262807 0.963708 0.076495 0.059131 0.995315 0.087975 -0.141669 0.985997 0.082651 -0.346527 0.934392 0.066742 -0.54311 0.837005 0.044894 -0.706862 0.705925 -0.074457 0.972487 0.220737 -0.135905 0.990585 0.016456 -0.010481 0.907321 0.420308 0.052437 0.798073 0.600275 0.112276 0.651464 0.750326 0.172846 0.475283 0.862688 0.224613 0.286577 0.931355 0.237251 0.088995 0.967363 0.218283 -0.113022 0.969319 0.208531 -0.342411 0.916117 0.208339 -0.548429 0.809827 0.177582 -0.726081 0.664283 0.072466 0.981536 0.177017 0.011192 0.999581 -0.026694 0.13045 0.917735 0.37516 0.173769 0.810669 0.559124 0.202231 0.677503 0.707172 0.281781 0.466259 0.838571 0.389458 0.279968 0.877462 0.380119 0.146892 0.913199 0.357392 -0.04095 0.933056 0.345942 -0.321256 0.881544 0.344131 -0.559381 0.7541 0.33176 -0.740655 0.584264 0.196149 0.971316 0.134431 0.140051 0.988071 -0.06404 0.222274 0.915545 0.335219 0.21521 0.826535 0.52012 0.485052 0.203685 0.850434 0.549193 0.08539 0.831322 0.518864 -0.274118 0.809716 0.494356 -0.559536 0.665231 0.486225 -0.71695 0.499567 0.288962 0.953067 0.090359 0.249178 0.963755 -0.095325 0.279428 0.910565 0.304616 0.388149 0.921066 0.031277 0.35571 0.926126 -0.125541 0.404047 0.903787 0.141123 0.685474 -0.217015 0.695004 0.70254 0.095579 0.705197 0.629526 -0.529045 0.569042 0.593735 -0.693072 0.408815 0.496704 0.867491 -0.02729 0.458288 0.875309 -0.154295 0.528057 0.848537 0.033781 0.80676 -0.152043 0.570983 0.808454 0.086816 0.582121 0.751948 -0.463858 0.468413 0.679152 -0.659904 0.32137 0.597194 0.799139 -0.068818 0.55546 0.811568 -0.181167 0.64161 0.766826 -0.017747 0.890952 -0.10638 0.441461 0.86652 0.068016 0.494487 0.874767 -0.373412 0.308782 0.812868 -0.546799 0.200642 0.71299 0.692171 -0.111997 0.675203 0.706014 -0.213647 0.759985 0.647969 -0.050594 0.881663 0.086623 0.46386 0.915062 -0.143099 0.377072 0.919428 -0.337742 0.201451 0.893268 -0.4335 0.118956 0.740474 -0.669061 0.063685 0.859372 -0.511103 0.015909 0.647034 -0.745123 -0.161673 0.622084 -0.770365 0.13982 0.519702 -0.840963 -0.150634 0.820483 0.555117 -0.136576 0.782454 0.574047 -0.241321 0.857426 0.511441 -0.057005 0.806656 0.536768 -0.247358 0.862458 0.496213 -0.099695 0.878975 0.473395 -0.057451 0.818207 0.51631 -0.252905 -0.955041 -0.087041 0.283408 0.458096 0.336508 0.822746 0.548616 0.436793 0.712904 0.498815 0.508154 0.702113 0.409055 0.43883 0.800064 0.458654 0.419397 0.783417 0.488571 0.295924 0.820809 0.338617 0.547524 0.765217 0.401093 0.540762 0.739392 0.447936 0.573943 0.685523 0.57256 0.090515 0.814851 0.659916 0.242583 0.711101 0.600733 0.356615 0.715504 0.50784 0.222844 0.832129 0.52547 0.175403 0.832535 0.592655 0.076762 0.80179 0.696504 -0.16077 0.699311 0.747172 -0.06053 0.661869 0.716343 0.089713 0.691957 0.643576 -0.04443 0.764091 0.679851 -0.004008 0.733339 0.751893 -0.071524 0.655394 0.836604 -0.293056 0.46283 0.828258 -0.230458 0.510762 0.762898 -0.199338 0.615021 0.753722 -0.259335 0.603861 0.803611 -0.130312 0.580714 0.857272 -0.175102 0.484174 0.916816 -0.199648 0.345817 0.913843 -0.162988 0.371922 0.958869 -0.051912 0.279061 0.954632 -0.015404 0.297391 0.878595 0.023662 0.476981 0.887849 -0.142316 0.437574 0.881607 0.374145 0.287723 0.786263 0.361349 0.501215 0.845784 0.202983 0.493403 0.93839 0.191482 0.28768 0.964719 0.141263 0.222175 0.91988 0.344652 0.18718 0.735863 0.601166 0.311616 0.665177 0.537764 0.518025 0.72411 0.464671 0.509653 0.811269 0.503435 0.297313 0.847371 0.503019 0.170099 0.757315 0.630389 0.170538 0.550937 0.76696 0.328999 0.550197 0.662462 0.508358 0.604133 0.603421 0.520486 0.650197 0.687413 0.323586 0.647224 0.739856 0.183613 0.520687 0.823175 0.226423 0.23274 0.841014 0.488392 0.333284 0.772356 0.540729 0.454201 0.758229 0.467751 0.39101 0.84687 0.360447 0.372508 0.869047 0.325569 0.284845 0.827646 0.483597 0.339999 0.673243 0.656616 0.238772 0.704795 0.668021 0.320576 0.691678 0.647157 0.829948 0.324212 0.453953 0.788174 0.413086 0.456226 0.818935 0.437732 0.371128 0.868596 0.367437 0.332463 0.594782 0.761687 -0.257038 0.732869 0.586054 -0.345607 0.753876 0.53386 0.382968 0.862993 0.204714 0.461882 0.86722 0.193655 0.458724 0.940854 -0.000458 0.338812 0.908491 -0.022391 0.417304 0.966399 -0.169019 -0.193661 0.923421 -0.383403 0.017201 0.951126 0.102708 0.291222 0.867322 0.198025 0.456661 0.856876 0.261314 0.444386 0.920107 0.262227 0.29093 0.845965 0.375507 -0.378599 0.934229 0.11539 -0.337494 0.724278 0.540157 0.428547 0.705129 0.593606 0.387848 0.719253 0.596045 0.356938 0.40553 0.913994 -0.012695 0.486479 0.862074 -0.142007 0.717856 0.605776 0.343102 0.730074 0.584365 0.354273 0.725706 0.562021 0.396841 0.693875 0.591778 0.410289 0.217409 0.868421 0.44562 0.312448 0.932857 0.179314 0.629761 0.545599 0.552922 0.214438 0.527563 0.822006 0.173051 0.702268 0.690559 0.576994 0.45965 0.67513 0.602466 0.389187 0.696827 0.688089 0.494063 0.531447 0.68934 0.382272 0.615368 0.751634 0.334485 0.568477 0.797561 0.361626 0.482828 0.671307 0.364972 0.645091 0.411192 0.319361 0.853774 0.313465 0.402297 0.860172 0.718019 0.380024 0.583121 0.802639 0.402776 0.439933 0.786622 0.41627 0.45601 0.726027 0.396227 0.56204 0.493875 0.121564 0.860994 0.469701 0.240945 0.849309 0.710331 0.363162 0.602946 0.767298 0.380841 0.51596 0.773688 0.312309 0.551243 0.718925 0.257257 0.645729 0.615731 -0.251593 0.74671 0.530838 -0.044525 0.846303 0.775476 0.113015 0.62118 0.813297 0.246182 0.527202 0.846512 0.21287 0.48796 0.849496 0.012345 0.527451 0.842447 -0.473971 0.256191 0.735799 -0.426285 0.526195 0.717886 0.082983 0.691197 0.784229 0.042303 0.619028 0.717886 0.082983 0.691197 0.6324 0.126373 0.764264 0.528397 0.414857 0.740736 0.538735 0.293136 0.789833 0.528397 0.414857 0.740736 0.489731 0.521318 0.69885 0.566743 0.187763 0.802214 0.6324 0.126373 0.764264 0.566743 0.187763 0.802214 0.538735 0.293136 0.789833 0.822361 -0.008804 0.568897 0.860775 -0.076325 0.503231 0.822361 -0.008804 0.568897 0.784229 0.042303 0.619028 0.412307 0.657775 0.630345 0.489731 0.521318 0.69885 0.412307 0.657775 0.630345 0.342528 0.801993 0.489368 0.907019 -0.108815 0.406786 0.950138 -0.042902 0.308863 0.907019 -0.108815 0.406786 0.860775 -0.076325 0.503231 0.385817 0.862741 0.326839 0.342528 0.801993 0.489368 0.385817 0.862741 0.326839 0.515096 0.833089 0.201592 0.963907 0.127114 0.233935 0.926348 0.333234 0.175596 0.963907 0.127114 0.233935 0.950138 -0.042902 0.308863 0.640156 0.755357 0.140129 0.515096 0.833089 0.201592 0.640156 0.755357 0.140129 0.758869 0.63844 0.128497 0.854654 0.50003 0.139773 0.758869 0.63844 0.128497 0.854654 0.50003 0.139773 0.926348 0.333234 0.175596 -0.035406 0.929348 -0.367504 0.063465 0.812158 -0.579976 0.063465 0.812158 -0.579976 0.138899 0.626319 -0.767093 0.396879 0.179876 -0.900073 0.563372 -0.104352 -0.819587 0.563372 -0.104352 -0.819587 0.678124 -0.411193 -0.609154 0.138899 0.626319 -0.767093 0.249398 0.412636 -0.876089 0.396879 0.179876 -0.900073 0.249398 0.412636 -0.876089 -0.257986 0.943569 0.207654 -0.166459 0.978908 -0.11845 -0.035406 0.929348 -0.367504 -0.166459 0.978908 -0.11845 0.678124 -0.411193 -0.609154 0.666104 -0.677096 -0.312805 0.666104 -0.677096 -0.312805 0.577645 -0.815992 0.021959 -0.159274 0.583893 0.796053 -0.249913 0.792509 0.556302 -0.257986 0.943569 0.207654 -0.249913 0.792509 0.556302 0.577645 -0.815992 0.021959 0.478517 -0.784466 0.394506 0.478517 -0.784466 0.394506 0.373276 -0.58569 0.719467 0.06516 0.225276 0.972114 -0.043199 0.395894 0.91728 -0.159274 0.583893 0.796053 -0.043199 0.395894 0.91728 0.373276 -0.58569 0.719467 0.28278 -0.35326 0.891764 0.28278 -0.35326 0.891764 0.210318 -0.150831 0.965928 0.210318 -0.150831 0.965928 0.146224 0.048119 0.988081 0.06516 0.225276 0.972114 0.146224 0.048119 0.988081 0.856807 0.237311 0.457783 0.923374 0.210648 0.320948 0.807883 0.342492 0.479609 0.926317 0.306424 0.219184 0.89303 0.401371 0.203464 0.707506 0.350532 0.613647 0.690024 0.404142 0.600447 0.701485 0.296816 0.647934 0.791752 0.518612 0.322755 0.75672 0.567342 0.324806 0.829448 0.472739 0.297547 0.598548 0.538422 0.593163 0.612014 0.432346 0.662205 0.636105 0.597406 0.48834 0.661735 0.334885 0.67079 0.723219 0.374625 0.580181 0.790329 0.347695 0.504469 0.811979 0.371805 0.449947 0.863789 0.442519 0.240928 0.701112 0.600433 0.384607 0.932764 0.160582 0.322746 0.970851 0.170411 0.16855 0.883636 0.175726 0.433944 0.958132 0.276011 0.076161 0.918468 0.391159 0.058409 0.596053 0.268918 0.756574 0.631701 0.239492 0.73729 0.526217 0.296747 0.796892 0.713347 0.696389 0.078596 0.607872 0.785113 0.118696 0.815342 0.574917 0.068473 0.317458 0.747594 0.583373 0.32877 0.607439 0.723138 0.38248 0.824584 0.416858 0.421224 0.422337 0.802622 0.694415 0.183055 0.695901 0.790984 0.142678 0.594969 0.85152 0.154666 0.50099 0.882062 0.467132 0.061279 0.494096 0.834445 0.244072 0.89839 0.239418 0.368204 0.928432 0.290661 0.231365 0.927903 0.362198 0.088369 0.906133 0.422892 -0.009259 0.502351 -0.531313 -0.682166 0.481402 0.03509 -0.875797 0.821596 0.007771 -0.570017 0.60106 0.059815 -0.796962 0.288313 0.933791 -0.211921 0.988467 0.045861 -0.144328 0.606734 0.786578 -0.114758 0.631178 0.754277 -0.180775 0.972577 0.018811 -0.231818 0.505485 0.858174 -0.089566 0.979449 0.125393 -0.157974 0.681304 -0.70444 -0.198968 0.649901 -0.67027 -0.358283 0.486331 -0.865846 -0.117446 0.446355 -0.866556 -0.223264 0.749971 -0.639348 -0.169641 0.164384 0.814398 0.556537 0.23088 0.745782 0.624902 0.513065 0.656839 0.552564 0.434027 0.729307 0.528897 0.671598 0.573694 0.468862 0.412743 0.628292 0.659463 0.124146 -0.973252 0.193309 0.05331 -0.971601 0.230543 0.174554 -0.974418 0.141566 0.18485 -0.973904 0.131684 0.162256 -0.986486 -0.022772 0.174554 -0.974418 0.141566 0.164893 -0.986064 -0.022075 0.404318 0.749496 0.524197 0.430589 0.757479 0.490733 0.671598 0.573694 0.468862 0.430589 0.757479 0.490733 0.245991 0.889625 0.384779 0.117529 0.901513 0.416487 0.316461 0.757984 0.570361 0.349515 0.870782 0.3458 0.299146 0.736414 0.6068 0.21028 0.76356 0.610539 0.17399 0.765394 0.619596 0.197236 0.787307 0.584162 0.208091 0.150686 0.966433 0.454121 0.145836 0.878923 0.34139 0.60658 0.717993 0.193891 0.65648 0.728999 0.702268 0.014837 0.711758 0.629728 0.408783 0.660559 0.464374 -0.299906 0.833315 0.195833 -0.470892 0.86018 0.247369 -0.957009 0.151468 0.400129 -0.846061 0.352246 0.156114 -0.842987 0.514782 0.487365 -0.796986 0.356774 0.242334 -0.955276 0.169473 0.220096 -0.968069 0.120002 0.144734 -0.978459 0.147209 0.183196 -0.982605 -0.030449 0.067654 -0.997702 0.003633 0.333632 0.885236 0.32411 0.262641 0.7868 0.558538 0.249014 0.818005 0.518518 0.310879 0.905695 0.288221 0.981634 -0.064618 0.179498 0.953489 -0.110064 0.280614 0.829075 -0.397083 0.393648 0.928588 0.156124 0.336675 0.777768 -0.421749 0.466052 0.769166 -0.579043 0.270356 0.99593 0.044411 0.078425 0.45297 -0.77236 0.445285 0.255608 -0.911572 0.322028 0.985608 -0.0138 -0.168484 0.724075 -0.68915 0.028062 0.669056 -0.721513 -0.178277 0.95985 -0.037465 -0.277999 0.142973 -0.970852 0.192368 0.080184 -0.99678 0.000349 0.399727 0.880191 0.255895 0.376443 0.743845 0.552255 0.932957 0.251932 0.25714 0.923536 0.376623 0.072366 0.341103 0.563925 0.752088 0.901142 0.062614 0.428978 0.473297 -0.704992 -0.528182 0.538546 0.034106 -0.841906 0.284694 -0.650003 -0.704589 0.28858 -0.71782 -0.633605 0.664843 -0.691251 -0.283118 0.687196 0.601578 -0.407266 0.194534 0.943344 -0.26881 0.142699 0.967472 -0.208889 0.158041 0.977382 -0.140528 0.267199 0.95697 -0.113199 0.206582 0.964838 -0.162517 0.111154 0.975921 -0.187678 0.290051 0.951394 -0.103532 0.197673 0.977651 -0.071585 0.133242 0.73077 0.669493 -0.021126 0.776463 0.629809 -0.048851 0.69245 0.71981 -0.267324 0.736759 0.621066 0.502193 -0.841775 -0.198034 0.347481 -0.823245 -0.448916 0.32325 -0.832151 -0.450592 0.365505 -0.90999 -0.195768 0.278983 -0.744777 -0.606198 0.310509 -0.724258 -0.615657 0.470559 -0.845706 0.251705 0.639964 -0.75177 0.159022 0.847598 -0.526664 -0.06483 0.931787 0.360539 -0.042237 0.731097 -0.373814 0.570753 0.545811 -0.440048 0.713055 0.286543 -0.807822 -0.515088 0.336234 -0.798387 -0.499524 0.390303 -0.778952 -0.490812 0.394906 -0.900383 -0.182645 0.453719 -0.877221 -0.156916 0.356795 -0.910868 -0.207406 -0.344168 0.695094 0.631183 -0.149439 0.640447 0.753323 -0.149048 0.665505 0.73136 -0.349751 0.693841 0.629491 -0.13624 0.702351 0.698672 -0.323456 0.705396 0.630708 0.682952 -0.682471 -0.260403 0.598976 -0.703987 -0.381615 0.629926 -0.65618 -0.415476 0.770976 -0.571235 -0.281578 0.427027 -0.693701 -0.580024 0.470893 -0.685647 -0.555112 0.547209 -0.734999 -0.400423 0.403884 -0.692271 -0.598029 0.639201 -0.729925 -0.24214 0.756326 -0.646175 0.102123 0.818367 -0.573534 0.036536 0.814857 -0.159418 0.557309 0.75347 -0.300751 0.584664 0.91633 -0.395267 -0.064054 -0.552303 0.717523 0.424408 -0.549872 0.723501 0.417357 -0.689144 0.695597 0.20304 -0.69216 0.693835 0.198768 -0.44995 0.772189 0.44863 -0.582334 0.776775 0.239806 0.459095 -0.73614 -0.497323 0.42852 -0.755071 -0.496224 0.469999 -0.756335 -0.455037 0.6044 -0.773478 -0.19087 0.573058 -0.784785 -0.236043 0.620503 -0.767488 -0.161053 -0.154628 0.83046 0.535188 -0.208055 0.933431 0.292266 0.84 -0.487972 -0.237242 0.649726 -0.668912 -0.361127 0.686327 -0.68519 -0.243864 0.87045 -0.456196 -0.184937 0.113929 -0.971139 0.209547 0.420145 -0.778454 0.466356 0.36716 -0.763208 0.531702 -0.025902 -0.968892 0.246126 0.73528 0.502717 0.454576 0.760751 -0.231881 0.606209 0.709768 -0.164691 0.684913 0.677072 0.518378 0.522357 0.15018 0.985892 -0.073907 0.110775 0.979195 -0.170016 0.149236 0.977328 -0.150198 0.102067 0.98066 -0.166995 0.092939 0.97652 -0.194346 0.035068 -0.98169 0.187228 -0.094114 -0.972522 0.212938 -0.040176 -0.998572 0.035218 -0.134395 -0.988941 0.062717 0.104978 0.981239 -0.161706 0.15135 0.986053 -0.069232 0.069999 0.986192 -0.150087 0.095114 0.99265 -0.074833 -0.031978 -0.959849 0.278687 0.395865 -0.77131 0.498369 0.753958 -0.269609 0.599048 0.811468 0.34565 0.471218 0.245719 0.963493 -0.10632 0.226765 0.963216 -0.144195 -0.201792 -0.975971 0.082225 -0.14467 -0.963789 0.224014 0.238383 0.953883 -0.182431 0.26323 0.95727 -0.119769 0.137236 0.954 0.266552 0.004079 0.860298 0.509775 -0.324346 0.823278 0.465847 -0.221073 0.946641 0.234514 0.552699 -0.819884 -0.149376 0.435649 -0.752677 -0.493646 0.365213 -0.70187 -0.611554 0.358282 0.298735 0.884529 0.369091 0.261787 0.891762 0.680602 -0.368607 0.633175 0.350239 0.273854 0.895732 -0.101408 0.652873 0.750649 -0.314146 0.712795 0.627085 0.528337 -0.819105 -0.223443 0.449038 -0.780507 -0.434941 0.341921 0.423681 0.838799 0.504872 0.340182 0.793335 0.412743 0.628292 0.659463 0.111975 0.119931 0.986447 0.465714 -0.606639 0.644282 0.117529 0.901513 0.416487 0.064578 0.996126 -0.059695 -0.173805 0.984758 0.006635 0.286402 0.951055 -0.116053 0.288677 0.95033 -0.116352 0.27569 0.953941 -0.118283 0.149938 0.985468 -0.079819 -0.160194 0.986884 0.019954 -0.55782 0.804212 0.205135 -0.528743 0.838025 0.134706 -0.690008 0.699754 0.185023 -0.704064 0.68439 0.189486 -0.638988 0.750436 0.168941 -0.301259 0.95128 0.065647 0.321998 0.939605 -0.116017 0.978364 -0.179417 -0.10302 0.950507 -0.146431 -0.274034 0.864768 0.428118 -0.262471 0.864506 -0.440507 -0.242037 0.7207 -0.665319 -0.194789 0.631828 -0.756971 -0.166699 0.640225 -0.749292 -0.169331 0.627461 -0.760893 -0.165332 0.542026 -0.82882 -0.1388 0.434782 -0.89428 -0.10596 0.396519 -0.913162 -0.094385 0.378162 -0.921221 -0.09135 0.733821 0.635397 -0.240371 0.720346 0.687761 -0.089928 0.744498 0.624576 -0.235857 0.345811 0.928573 0.134788 0.993128 0.093742 0.070064 0.356147 0.925039 0.132145 0.187298 0.978167 -0.090051 0.502413 0.858884 0.0995 0.251381 0.962393 -0.102992 0.653389 -0.73589 0.177622 0.651183 0.755562 0.071326 0.961659 -0.257766 -0.093637 0.412743 0.628292 0.659463 0.370002 -0.806268 -0.461553 -0.486876 0.759449 0.431497 0.942604 0.183022 -0.279287 0.902756 0.332126 -0.273357 0.941168 0.315323 -0.121546 0.965429 0.179834 -0.188698 0.95667 0.29046 0.020405 0.996395 0.077162 -0.035246 0.964428 0.229746 0.130752 0.952512 0.132336 0.274242 0.99396 -0.055334 0.094767 0.940578 -0.003272 0.339562 0.996322 -0.078838 -0.033562 0.973141 -0.138974 0.183527 0.986334 -0.164013 0.015677 0.985059 0.038451 -0.167872 0.800063 -0.569924 -0.187312 0.874326 -0.431967 -0.221266 0.945303 -0.326076 -0.008725 0.111975 0.119931 0.986447 -0.05605 -0.447101 0.892726 -0.087746 -0.839628 0.536027 0.05331 -0.971601 0.230543 0.985131 -0.170097 0.024176 -0.087746 -0.839628 0.536027 -0.05605 -0.447101 0.892726 0.982942 -0.181369 -0.030498 0.887459 -0.394772 -0.237848 0.965429 0.179834 -0.188698 0.978679 0.180695 -0.097652 0.978679 0.180695 -0.097652 0.996395 0.077162 -0.035246 0.99396 -0.055334 0.094767 0.984881 -0.09216 0.146681 0.984881 -0.09216 0.146681 0.996322 -0.078838 -0.033562 0.985059 0.038451 -0.167872 0.993141 0.09046 -0.074075 0.993141 0.09046 -0.074075 0.982942 -0.181369 -0.030498 0.796327 -0.523685 0.302682 0.474068 -0.734713 0.485237 -0.961035 0.165055 0.22174 -0.966024 0.031777 0.256492 -0.974177 0.146618 0.171705 -0.972342 0.022707 0.232454 -0.984797 0.118512 0.127006 -0.976769 0.011627 0.213978 -0.992784 0.080853 0.088559 -0.980419 -0.006183 0.196824 -0.997692 0.034742 0.058339 -0.983095 -0.030994 0.180453 -0.999083 -0.016539 0.039487 -0.983548 -0.055734 0.171833 -0.996953 -0.071051 0.032183 -0.982319 -0.081528 0.168529 -0.991357 -0.125857 0.037019 -0.979445 -0.107793 0.170496 -0.982536 -0.178327 0.053122 -0.975175 -0.132451 0.177455 -0.971182 -0.224991 0.078648 -0.969885 -0.153649 0.188982 -0.957833 -0.26378 0.113909 -0.963939 -0.1701 0.204666 -0.939605 -0.296372 0.171192 -0.955633 -0.183403 0.230495 -0.916161 -0.318391 0.243466 -0.943663 -0.194823 0.267479 -0.940076 0.285909 0.185779 -0.959429 0.258908 0.111632 -0.975319 0.216331 0.044198 -0.986983 0.160295 -0.013021 -0.993968 0.093473 -0.057357 -0.996061 0.018712 -0.086674 -0.993226 -0.060574 -0.099156 -0.985627 -0.14059 -0.093666 -0.972896 -0.220357 -0.070117 -0.95571 -0.292575 -0.03191 -0.9339 -0.356776 0.023254 -0.90454 -0.412785 0.106841 -0.874166 -0.443368 0.198139 -0.904883 0.399169 0.147819 -0.930054 0.363859 0.051058 -0.950608 0.308199 -0.036848 -0.965594 0.235009 -0.111355 -0.974465 0.147826 -0.169011 -0.976977 0.050772 -0.207213 -0.973155 -0.051658 -0.22428 -0.963024 -0.155856 -0.21976 -0.94516 -0.26363 -0.192802 -0.918343 -0.367418 -0.14714 -0.88447 -0.460322 -0.076263 -0.846408 -0.531745 0.029003 -0.816832 -0.56147 0.132426 -0.856197 0.505244 0.107963 -0.886726 0.462193 -0.00969 -0.911552 0.394349 -0.116452 -0.92955 0.305228 -0.206817 -0.940102 0.199206 -0.276631 -0.942964 0.081323 -0.322808 -0.938209 -0.042978 -0.343389 -0.925518 -0.170788 -0.338006 -0.903043 -0.303137 -0.304337 -0.869126 -0.431085 -0.242459 -0.825612 -0.542655 -0.154564 -0.786775 -0.615382 -0.047848 -0.763773 -0.641757 0.069276 -0.79522 0.602617 0.066921 -0.8306 0.552502 -0.069607 -0.859285 0.473548 -0.193345 -0.879994 0.369943 -0.297915 -0.892052 0.246862 -0.378553 -0.895221 0.110192 -0.431784 -0.889623 -0.033783 -0.455444 -0.875482 -0.181863 -0.447724 -0.852675 -0.331111 -0.404116 -0.8198 -0.473091 -0.322666 -0.773173 -0.597366 -0.212974 -0.732325 -0.67211 -0.109399 -0.703797 -0.710152 0.018802 -0.723296 0.690072 0.025366 -0.762981 0.633663 -0.127797 -0.795102 0.544818 -0.266432 -0.818238 0.42836 -0.383398 -0.831658 0.290202 -0.473422 -0.835126 0.136998 -0.532726 -0.828809 -0.024241 -0.559007 -0.813773 -0.188227 -0.549858 -0.791068 -0.350443 -0.5014 -0.757685 -0.507144 -0.410754 -0.712164 -0.640648 -0.28704 -0.672677 -0.725926 0.143309 -0.641829 0.766679 -0.016088 -0.685243 0.704824 -0.183482 -0.720376 0.607426 -0.334802 -0.74567 0.479887 -0.46226 -0.76033 0.328788 -0.560176 -0.764118 0.161448 -0.624547 -0.757229 -0.014506 -0.652989 -0.740588 -0.191827 -0.643997 -0.71348 -0.368155 -0.596161 -0.673205 -0.539521 -0.505681 -0.633618 -0.666506 -0.392807 -0.552223 0.831753 -0.056886 -0.59877 0.765363 -0.235998 -0.636482 0.660845 -0.397712 -0.663669 0.524109 -0.533716 -0.679468 0.362307 -0.63801 -0.683614 0.183322 -0.706445 -0.676314 -0.004718 -0.736598 -0.658115 -0.193713 -0.727571 -0.624989 -0.385406 -0.67886 -0.573323 -0.567513 -0.590956 -0.539731 -0.669883 -0.50985 -0.455844 0.884809 -0.096532 -0.50491 0.81484 -0.284783 -0.544756 0.704708 -0.454563 -0.573567 0.56074 -0.597153 -0.590401 0.390548 -0.706328 -0.594951 0.202463 -0.777845 -0.587406 0.005007 -0.809277 -0.568326 -0.193393 -0.799753 -0.531726 -0.39925 -0.746904 -0.472075 -0.58863 -0.656247 -0.438248 -0.663696 -0.606174 -0.336647 0.931056 -0.140723 -0.387852 0.85817 -0.336326 -0.429607 0.74346 -0.512548 -0.459957 0.593608 -0.660355 -0.477854 0.416613 -0.773362 -0.482917 0.221174 -0.847274 -0.475294 0.016126 -0.879679 -0.455529 -0.189839 -0.869744 -0.417915 -0.406054 -0.812691 -0.353572 -0.6042 -0.714093 -0.307966 -0.666624 -0.6788 -0.193718 0.962912 -0.187812 -0.246275 0.88839 -0.387442 -0.288626 0.77069 -0.568094 -0.317016 0.616998 -0.720288 -0.324377 0.43558 -0.839672 -0.320356 0.248906 -0.914012 -0.326175 0.04118 -0.944412 -0.317904 -0.181756 -0.930538 -0.279527 -0.404391 -0.870823 -0.213284 -0.614523 -0.759521 -0.156715 -0.682531 -0.713857 -0.046462 0.971988 -0.230391 -0.103319 0.898967 -0.425657 -0.16437 0.783521 -0.599231 -0.218305 0.64374 -0.733445 -0.220035 0.426952 -0.877096 -0.163379 0.257771 -0.952293 -0.189124 0.091233 -0.977706 -0.196115 -0.13799 -0.970823 -0.158485 -0.396012 -0.904465 -0.068785 -0.626695 -0.776223 0.011491 -0.702816 -0.711279 0.080833 0.962058 -0.260598 -0.004405 0.897346 -0.441305 -0.108661 0.800533 -0.589355 -0.077279 0.160781 -0.98396 -0.047358 -0.005125 -0.998865 -0.055308 -0.376845 -0.924624 0.024218 -0.640501 -0.767575 0.122665 -0.746284 -0.654228 0.183006 0.94456 -0.272608 0.060297 0.892972 -0.446056 0.298798 0.913892 -0.274812 0.253353 0.891688 -0.375107 0.114851 -0.33834 -0.933989 0.102213 0.013376 -0.994673 0.151774 -0.614691 -0.774028 0.247576 -0.78954 -0.561545 0.422481 0.861531 -0.281556 0.416312 0.839566 -0.349019 0.371991 -0.274901 -0.886596 0.353483 0.017641 -0.935275 0.378306 -0.507377 -0.774244 0.386429 -0.730108 -0.563574 0.530364 0.793801 -0.297647 0.540475 0.75922 -0.362589 0.588909 -0.200338 -0.782976 0.568642 0.014771 -0.822452 0.58245 -0.344011 -0.736484 0.575736 -0.569219 -0.586956 0.652413 0.687715 -0.318443 0.658925 0.6426 -0.391004 0.527972 0.032779 -0.848629 0.572258 -0.222359 -0.789352 0.647457 -0.27021 -0.712591 0.719563 -0.352043 -0.598578 0.761442 -0.513317 -0.395869 0.588703 -0.723991 -0.359537 0.425423 -0.82584 -0.370141 0.758286 0.54836 -0.352567 0.752445 0.495497 -0.433945 0.762859 0.455485 -0.458889 0.774528 0.480978 -0.410812 -0.059483 0.299679 -0.952184 -0.090605 0.399189 -0.912381 0.036579 0.471045 -0.881351 0.073662 0.399253 -0.913877 -0.030005 0.266287 -0.963427 -0.038599 0.381265 -0.92366 -0.132901 0.509668 -0.850045 -0.066255 0.503241 -0.861603 0.001778 0.538122 -0.842865 0.050731 0.065718 -0.996548 -0.019211 0.193593 -0.980894 0.117679 0.320506 -0.939908 0.173066 0.20966 -0.962336 0.074023 0.047448 -0.996127 -0.002776 0.154099 -0.988052 0.222597 -0.189656 -0.956285 0.142066 -0.070766 -0.987324 0.235959 0.06094 -0.96985 0.284022 -0.085324 -0.955014 0.284229 -0.119428 -0.951289 0.185032 -0.046923 -0.981612 0.470004 -0.314803 -0.824618 0.324829 -0.28655 -0.901319 0.327451 -0.221031 -0.918652 0.436313 -0.25166 -0.863885 0.473579 -0.208925 -0.855613 0.371626 -0.174252 -0.911883 0.59372 -0.220325 -0.773921 0.645608 -0.038911 -0.762677 0.659385 -0.074781 -0.748077 0.577232 -0.188454 -0.794536 0.520238 -0.164922 -0.837946 0.486649 -0.003444 -0.873591 0.583798 0.350235 -0.732472 0.634015 0.167077 -0.755056 0.445881 0.172545 -0.878304 0.388815 0.329874 -0.860236 0.670902 0.324567 -0.666743 0.692143 0.119567 -0.711788 0.445222 0.577833 -0.684022 0.517715 0.479867 -0.708307 0.330547 0.433077 -0.83856 0.275441 0.506475 -0.817077 0.538798 0.612846 -0.578028 0.616803 0.484378 -0.62043 0.277888 0.745039 -0.606379 0.36548 0.664555 -0.65176 0.221829 0.572729 -0.78916 0.182137 0.632912 -0.752495 0.306833 0.806005 -0.506171 0.437578 0.723025 -0.534565 -0.077003 0.816147 -0.57269 0.125148 0.825525 -0.550315 0.121836 0.731545 -0.670819 -0.019521 0.744032 -0.667859 -0.030329 0.802339 -0.596097 0.128026 0.849417 -0.511958 -0.166791 0.672235 -0.721305 -0.074924 0.639929 -0.764773 -0.08644 0.658998 -0.747161 0.419307 0.406733 -0.811634 0.452871 0.310468 -0.835773 0.550382 0.354544 -0.755896 0.489061 0.426312 -0.760972 0.798456 0.589599 -0.121823 0.629651 0.764842 -0.13622 0.428157 0.516651 -0.741453 0.481993 0.162728 -0.860931 0.476594 0.173694 -0.861794 0.541782 -0.051832 -0.838919 0.610995 -0.026941 -0.791176 0.774058 -0.395394 -0.494467 0.920973 -0.172666 -0.349279 0.643944 0.078047 -0.761081 0.480769 0.233778 -0.845109 0.483134 0.167181 -0.859437 0.61672 0.24005 -0.749688 0.967778 0.117795 -0.222553 0.913203 0.379901 -0.147428 0.390583 0.591126 -0.705702 0.382913 0.53513 -0.753003 0.41411 0.577572 -0.703508 0.4764 0.860741 -0.179354 0.34037 0.907831 -0.244932 0.4215 0.58441 -0.693399 0.405455 0.540986 -0.736845 0.431484 0.576056 -0.694248 0.364968 0.565615 -0.739512 0.16023 0.921088 -0.354857 -0.06388 0.850389 -0.522262 0.231918 0.516483 -0.824293 -0.235018 0.674549 -0.699821 -0.263861 0.488622 -0.83164 0.143751 0.349007 -0.926029 0.121946 0.430142 -0.894487 0.244204 0.368163 -0.897118 0.28685 0.465637 -0.837197 0.431849 0.3089 -0.8474 0.349117 0.306222 -0.885633 0.242845 0.317455 -0.916651 -0.193261 0.358349 -0.913365 -0.108962 0.280342 -0.953696 0.308778 0.342284 -0.887411 0.400312 0.380088 -0.833837 0.437109 0.358487 -0.824877 0.306968 0.362843 -0.879838 -0.062587 0.201397 -0.977508 -0.048046 0.078069 -0.99579 0.266944 0.326921 -0.906567 0.35021 0.27807 -0.894444 0.354965 0.347412 -0.867931 0.255425 0.219956 -0.941476 -0.00699 -0.087705 -0.996122 0.120739 -0.291331 -0.948972 0.318315 0.076311 -0.944909 0.448575 0.180922 -0.875241 0.399053 0.212925 -0.891863 0.432383 -0.021143 -0.901442 0.342735 -0.45784 -0.820314 0.578427 -0.495167 -0.648253 0.327081 -0.016361 -0.944855 0.235034 0.026083 -0.971637 0.235034 0.026083 -0.971637 0.123423 0.087662 -0.988475 0.030247 0.267878 -0.962978 0.043904 0.378525 -0.924549 0.043904 0.378525 -0.924549 0.03052 0.484447 -0.874288 0.123423 0.087662 -0.988475 0.047495 0.167443 -0.984737 0.047495 0.167443 -0.984737 0.030247 0.267878 -0.962978 0.465663 -0.119132 -0.876907 0.391041 -0.061614 -0.918308 0.391041 -0.061614 -0.918308 0.327081 -0.016361 -0.944855 0.03052 0.484447 -0.874288 0.000362 0.624694 -0.78087 0.000362 0.624694 -0.78087 0.015518 0.775735 -0.630868 0.635813 -0.066864 -0.768941 0.552606 -0.139163 -0.821742 0.552606 -0.139163 -0.821742 0.465663 -0.119132 -0.876907 0.015518 0.775735 -0.630868 0.138643 0.842895 -0.51991 0.138643 0.842895 -0.51991 0.315347 0.81705 -0.482686 0.68312 0.313511 -0.659589 0.685418 0.105132 -0.720521 0.685418 0.105132 -0.720521 0.635813 -0.066864 -0.768941 0.315347 0.81705 -0.482686 0.454804 0.740477 -0.49482 0.454804 0.740477 -0.49482 0.562612 0.622685 -0.543812 0.562612 0.622685 -0.543812 0.639517 0.482489 -0.598517 0.639517 0.482489 -0.598517 0.68312 0.313511 -0.659589 0.354135 0.838779 0.413567 0.154696 0.945163 0.28764 0.354135 0.838779 0.413567 0.524773 0.658667 0.539233 0.917154 -0.078299 0.390765 0.819532 0.201619 0.536392 0.917154 -0.078299 0.390765 0.904413 -0.393024 0.16604 0.683487 0.434713 0.586405 0.524773 0.658667 0.539233 0.683487 0.434713 0.586405 0.819532 0.201619 0.536392 -0.088432 0.984424 0.151949 -0.342777 0.937241 -0.063904 -0.088432 0.984424 0.151949 0.154696 0.945163 0.28764 0.738281 -0.6713 -0.065553 0.904413 -0.393024 0.16604 0.738281 -0.6713 -0.065553 0.485451 -0.823393 -0.293874 -0.526546 0.771976 -0.356093 -0.578929 0.552074 -0.600047 -0.526546 0.771976 -0.356093 -0.342777 0.937241 -0.063904 0.201162 -0.806729 -0.555628 0.485451 -0.823393 -0.293874 0.201162 -0.806729 -0.555628 -0.064801 -0.620857 -0.781241 -0.553229 0.356102 -0.753079 -0.489535 0.180502 -0.853097 -0.553229 0.356102 -0.753079 -0.578929 0.552074 -0.600047 -0.236666 -0.394964 -0.887689 -0.064801 -0.620857 -0.781241 -0.236666 -0.394964 -0.887689 -0.340184 -0.195029 -0.919912 -0.414881 0.001699 -0.909874 -0.340184 -0.195029 -0.919912 -0.414881 0.001699 -0.909874 -0.489535 0.180502 -0.853097 0.612446 0.206799 -0.762984 0.464896 0.248372 -0.849814 0.407418 0.351969 -0.842691 0.648174 0.357769 -0.672214 0.67175 0.259946 -0.693672 0.260774 0.444268 -0.857102 0.266259 0.359017 -0.894546 0.23952 0.282378 -0.92892 0.456139 0.54321 -0.704883 0.485 0.494854 -0.721038 0.523396 0.452675 -0.721901 0.154425 0.395608 -0.905344 0.178861 0.504727 -0.844547 0.266144 0.567704 -0.779025 0.193271 0.300008 -0.934153 0.427529 0.439369 -0.790047 0.30767 0.464103 -0.830631 0.465677 0.41908 -0.779434 0.585969 0.418408 -0.693956 0.376687 0.574387 -0.726765 0.723989 0.167915 -0.669062 0.615206 0.144242 -0.775058 0.538482 0.19443 -0.819899 0.755978 0.352655 -0.551481 0.765033 0.251831 -0.59271 0.10429 0.25187 -0.962125 0.084605 0.265317 -0.960442 0.005849 0.281942 -0.959414 0.438739 0.771535 -0.460698 0.549064 0.684585 -0.47945 0.639075 0.567112 -0.519584 -0.119331 0.571463 -0.811906 -0.05548 0.717653 -0.694188 0.087904 0.800933 -0.592266 -0.082243 0.383976 -0.919673 0.371972 0.25102 -0.893659 0.168158 0.254222 -0.952415 0.515848 0.24491 -0.820926 0.711725 0.448678 -0.540496 0.274784 0.816837 -0.507219 0.645681 0.281912 -0.709663 0.539239 0.220462 -0.812784 0.769033 0.394069 -0.503287 0.726738 0.338645 -0.597638 0.910648 0.13263 0.391317 0.999593 0.019615 0.020732 0.954033 0.02481 0.298674 0.445681 0.894715 -0.029203 0.965907 0.006398 -0.258812 0.638115 0.749792 -0.174987 0.564465 0.80877 -0.16514 0.95591 0.074364 -0.284087 0.833041 -0.550981 -0.049633 0.747784 -0.638846 -0.180817 0.496235 -0.862298 -0.10096 -0.20791 0.848121 -0.487304 0.067716 0.763957 -0.641704 0.127353 0.626153 -0.769229 -0.218772 0.72838 -0.649309 0.372493 0.501153 -0.781086 -0.001976 0.635051 -0.772468 0.017323 -0.981176 -0.192335 0.100694 -0.980828 -0.166846 0.090117 -0.981619 -0.168234 -0.055458 -0.980045 -0.190882 0.164893 -0.986064 -0.022075 0.090117 -0.981619 -0.168234 0.372493 0.501153 -0.781086 0.078895 0.682679 -0.726447 0.016606 0.67434 -0.738234 0.078895 0.682679 -0.726447 -0.201579 0.842141 -0.500164 -0.052373 0.836039 -0.546165 0.07316 0.824548 -0.561042 -0.110485 0.686575 -0.718615 -0.15501 0.743094 -0.650987 -0.209717 0.80644 -0.552877 -0.277232 0.748353 -0.602586 -0.254313 0.755765 -0.603443 -0.358088 0.092571 -0.929087 -0.250906 0.673343 -0.695453 -0.112669 0.603166 -0.789618 -0.091999 0.08968 -0.991713 0.154606 0.382327 -0.911001 0.205444 -0.026492 -0.97831 -0.072558 -0.353021 -0.932798 -0.315092 -0.516195 -0.796404 0.13782 -0.965905 -0.219165 -0.147076 -0.862048 -0.485017 0.153538 -0.866541 -0.474904 0.229067 -0.817724 -0.528068 0.125207 -0.96468 -0.231767 0.05519 -0.985648 -0.159539 0.133222 -0.975043 -0.177602 0.081618 0.84569 -0.527396 0.078783 0.875266 -0.477182 -0.135905 0.783091 -0.606876 -0.143137 0.731129 -0.667054 0.652226 -0.134275 -0.746037 0.728512 -0.084547 -0.679796 0.489924 -0.423039 -0.762242 0.60415 0.140094 -0.784459 0.789901 0.03703 -0.612116 0.511142 -0.597091 -0.618236 0.415468 -0.442457 -0.794744 0.053816 -0.927772 -0.369246 0.152168 -0.796509 -0.585165 0.917438 -0.016262 -0.397547 0.603226 -0.69911 -0.38388 0.02941 -0.980046 -0.196582 0.188294 0.863216 -0.468405 0.734914 0.36148 -0.573788 0.645073 0.228818 -0.729057 0.011027 0.714507 -0.699541 0.528237 0.032676 -0.848468 -0.123952 0.526587 -0.841036 0.708983 -0.679175 0.189905 0.54883 -0.680138 0.486003 0.696643 -0.536166 0.47667 0.93705 0.142013 0.319015 0.883644 -0.39109 0.257335 0.772063 0.621063 -0.134906 0.801974 -0.58299 -0.130233 0.360444 0.931913 0.040218 0.246723 0.968981 0.014266 0.199406 0.97991 0.003676 0.202578 0.978354 0.042268 0.2974 0.95475 0.002265 0.296891 0.953345 -0.054681 -0.448241 0.750304 -0.485927 -0.29922 0.711331 -0.635984 -0.449947 0.662018 -0.599399 -0.604384 0.702652 -0.375501 0.543727 -0.837742 -0.050487 0.418255 -0.908306 0.006517 0.525653 -0.828012 0.195157 0.513357 -0.837463 0.187406 0.632464 -0.69016 0.351665 0.562968 -0.723476 0.399561 0.270896 -0.86072 -0.431018 0.466068 -0.760811 -0.451605 0.785459 -0.470969 -0.401549 0.80717 0.379356 -0.45229 0.311666 -0.406113 -0.859032 0.080125 -0.476446 -0.875545 0.492223 -0.783278 0.379726 0.564233 -0.759375 0.324023 0.615454 -0.747387 0.250257 0.467322 -0.880776 -0.07644 0.423551 -0.905124 -0.036805 0.38818 -0.92131 -0.022438 -0.638299 0.67148 -0.376416 -0.642081 0.670371 -0.371935 -0.5273 0.635136 -0.564408 -0.539124 0.609161 -0.581609 -0.499391 0.673195 -0.54536 -0.620714 0.681531 -0.387595 0.724375 -0.679145 -0.118503 0.808567 -0.568216 -0.152806 0.762726 -0.645517 0.039449 0.719028 -0.694348 0.029644 0.704111 -0.666921 0.243811 0.680626 -0.67334 0.288724 0.675454 -0.668576 0.311077 0.688802 -0.721754 0.067992 0.678716 -0.726029 -0.110572 0.590841 -0.659385 -0.464885 0.324611 -0.335182 -0.884466 0.389289 -0.193584 -0.900544 0.677493 -0.584843 -0.446051 0.811922 -0.403648 -0.421723 -0.702861 0.705436 -0.091357 -0.699138 0.693275 0.174862 -0.698916 0.694811 0.169568 -0.697097 0.711681 -0.086984 -0.629665 0.772974 0.077672 -0.630289 0.75771 -0.169148 0.665438 -0.718371 0.202818 0.637598 -0.738285 0.220009 0.650436 -0.741847 0.16308 0.619921 -0.781023 -0.075507 0.621911 -0.772072 -0.130886 0.619377 -0.767579 -0.164909 -0.428598 0.808465 -0.403346 -0.344315 0.922491 -0.174518 0.841866 -0.487823 -0.230847 0.839011 -0.458721 -0.292635 0.718361 -0.682618 -0.134126 0.750354 -0.660833 -0.01641 -0.004393 -0.980638 -0.19578 0.11324 -0.803094 -0.584993 0.033243 -0.790017 -0.612184 -0.141971 -0.97821 -0.151488 0.398832 0.500369 -0.768482 0.284866 0.522089 -0.803912 0.240801 -0.182237 -0.953312 0.326027 -0.256899 -0.909785 0.106099 0.992627 0.058613 0.101916 0.991713 -0.078224 0.185122 0.981751 0.043528 0.161247 0.983157 0.086038 0.203665 0.9761 0.07583 -0.181238 -0.979627 -0.086513 -0.058426 -0.98924 -0.134132 0.186936 0.98177 0.034395 0.160893 0.986549 0.028903 -0.164715 -0.970507 -0.176028 0.07547 -0.797033 -0.599202 0.419602 0.33226 -0.844711 0.322596 -0.288795 -0.901404 0.338122 0.937702 -0.079923 0.299592 0.953205 -0.040561 -0.230193 -0.970709 -0.068807 0.273764 0.960656 -0.046823 -0.093643 0.935084 -0.341831 -0.357731 0.927415 -0.109222 -0.580211 0.784643 -0.218382 -0.370228 0.823898 -0.429096 0.555427 -0.82036 -0.136052 0.648216 -0.730747 0.214069 0.665059 -0.670139 0.329559 -0.177342 0.255732 -0.950343 0.237951 -0.404146 -0.883202 -0.171653 0.218373 -0.96065 -0.191226 0.229743 -0.95428 -0.611011 0.68896 -0.389871 -0.497351 0.621084 -0.60572 0.578563 -0.812145 -0.075406 0.636764 -0.76092 0.12463 -0.16812 0.382732 -0.908434 -0.015784 0.298583 -0.954253 -0.001976 0.635051 -0.772468 -0.453742 0.063198 -0.888889 0.030795 -0.642019 -0.76607 -0.201579 0.842141 -0.500164 -0.173805 0.984758 0.006635 -0.590699 0.801573 0.092497 0.882451 -0.187119 -0.431587 0.631214 0.690223 -0.353781 0.716752 0.651156 -0.249525 0.810107 0.079404 -0.58088 0.218424 0.918025 -0.33094 0.14095 0.983257 -0.11549 0.1784 0.905091 -0.385983 0.364291 0.81705 -0.446902 0.299811 0.939833 -0.163791 0.464621 -0.750473 -0.470019 0.536197 0.720638 -0.439516 0.86431 -0.265582 -0.427124 -0.001976 0.635051 -0.772468 0.648814 -0.746751 0.146295 -0.652045 0.746187 -0.134319 0.942604 0.183022 -0.279287 0.916386 0.167363 -0.36363 0.854449 0.301528 -0.423082 0.797836 0.265939 -0.541049 0.890683 -0.009998 -0.454515 0.801722 -0.192439 -0.565871 0.649277 0.072739 -0.757066 0.753411 0.191795 -0.628956 0.604365 -0.070384 -0.793593 0.885831 -0.070677 -0.458594 0.910114 0.100761 -0.401919 0.805467 -0.097274 -0.584603 0.710899 -0.181825 -0.679383 0.859555 -0.250968 -0.445175 -0.52683 -0.492626 -0.692654 -0.453742 0.063198 -0.888889 -0.055458 -0.980045 -0.190882 -0.354768 -0.856003 -0.37603 0.83859 -0.043733 -0.543005 -0.354768 -0.856003 -0.37603 -0.52683 -0.492626 -0.692654 0.87042 -0.142791 -0.471147 0.887459 -0.394772 -0.237848 0.916386 0.167363 -0.36363 0.890596 0.155916 -0.427235 0.890596 0.155916 -0.427235 0.890683 -0.009998 -0.454515 0.801722 -0.192439 -0.565871 0.782365 -0.172664 -0.598408 0.782365 -0.172664 -0.598408 0.885831 -0.070677 -0.458594 0.910114 0.100761 -0.401919 0.869884 0.148906 -0.470244 0.869884 0.148906 -0.470244 0.87042 -0.142791 -0.471147 0.516732 -0.546543 -0.658998 0.137676 -0.761331 -0.633577 -0.07353 0.769687 -0.634173 -0.902887 -0.325788 0.280458 -0.936479 -0.200695 0.287627 -0.858837 -0.448077 0.248247 -0.800561 -0.564102 0.202213 -0.740863 -0.649576 0.170804 -0.640525 -0.727809 0.244992 -0.852271 -0.443437 0.277486 -0.785155 -0.56124 0.261804 -0.709365 -0.657189 0.254763 0.578733 -0.759749 0.296393 -0.000108 -0.999989 -0.004593 -0.000519 -0.999977 -0.006835 -2.6e-005 -0.999995 -0.003091 -0.000597 -0.999998 -0.00167 0.001315 -0.999998 0.001283 -0.003463 -0.999976 -0.006059 -0.004198 -0.999979 -0.004986 -0.000628 -0.99997 -0.007745 -0.001975 -0.999974 -0.006923 -2.7e-005 -0.99997 -0.0077 -0.002648 -0.99998 -0.005712 -4.7e-005 -0.999967 -0.008163 -0.001418 -0.999996 -0.002489 0.003648 -0.999993 6.6e-005 -0.002678 -0.999991 0.003219 0.002716 -0.999944 0.010229 0.004924 -0.999932 0.010565 0.006766 -0.99992 0.010673 0.004599 -0.999966 0.006806 0.001139 -0.999997 0.002306 -0.004828 -0.999982 0.003532 -0.003596 -0.999964 0.007716 -0.002976 -0.999888 0.014666 -0.001249 -0.999863 0.016533 0.001872 -0.999933 0.011459 -0.004407 -0.999983 0.003681 0.001135 -0.999907 0.013602 0.001342 -0.999999 -0.000697 -0.000333 -1 -0.000292 + + + + + + + + + + 0.245158 0.423975 0.25011 0.468112 0.150442 0.543685 0.148569 0.498875 0.302841 0.416173 0.345064 0.636086 0.339502 0.673242 0.260986 0.672117 0.283208 0.642063 0.331126 0.714598 0.241009 0.71553 0.233372 0.762934 0.302959 0.373132 0.224027 0.289653 0.23558 0.359702 0.143764 0.429085 0.134156 0.320572 0.298228 0.319321 0.288073 0.263566 0.326898 0.757163 0.328393 0.797118 0.23841 0.805793 0.60087 0.640918 0.866606 0.398924 0.510699 0.676291 0.517366 0.634965 0.871384 0.397619 0.505796 0.719121 0.878048 0.397558 0.87416 0.398826 0.86606 0.397625 0.86057 0.399008 0.501279 0.762876 0.856321 0.39906 0.497144 0.804816 0.862375 0.397683 0.860024 0.397676 0.853776 0.399148 0.494669 0.842655 0.936097 0.40457 0.495808 0.877438 0.932361 0.401286 0.944998 0.401429 0.333511 0.830512 0.255441 0.838224 0.335539 0.859065 0.275714 0.857682 0.13703 0.645509 0.099669 0.709478 0.072436 0.710311 0.114209 0.64461 0.217381 0.600094 0.193334 0.589335 0.083907 0.774978 0.093256 0.834193 0.067488 0.842396 0.056643 0.778851 0.948825 0.405179 0.543475 0.557405 0.5578 0.533271 0.685834 0.551732 0.928618 0.398828 0.939922 0.398832 0.318062 0.571086 0.304302 0.551225 0.870712 0.401462 0.862287 0.401557 0.855482 0.401642 0.85836 0.405349 0.85103 0.405417 0.86725 0.404976 0.851008 0.401767 0.84805 0.401779 0.618068 0.949096 0.595914 0.442419 0.701364 0.36472 0.704143 0.312403 0.595493 0.387203 0.757075 0.288915 0.749567 0.262372 0.79867 0.019963 0.720188 0.090411 0.342229 0.232442 0.353643 0.285267 0.846214 0.405443 0.84246 0.405195 0.945825 0.3988 0.51556 0.94314 0.529717 0.959537 0.951482 0.401365 0.955814 0.405156 0.355112 0.336459 0.416748 0.23909 0.409212 0.301844 0.412385 0.174765 0.722678 0.141004 0.371257 0.129527 0.316583 0.183819 0.278107 0.146712 0.815355 0.094326 0.586596 0.164171 0.31201 0.090946 0.272238 0.213152 0.591566 0.221736 0.775513 0.183818 0.258385 0.177707 0.714664 0.225413 0.594393 0.311859 0.803506 0.201004 0.853165 0.100422 0.240207 0.064107 0.220228 0.127313 0.134162 0.116701 0.137886 0.045291 0.20962 0.176711 0.132836 0.176022 0.393776 0.367451 0.346805 0.380154 0.21424 0.228892 0.133514 0.241035 0.127886 0.880246 0.194162 0.909528 0.176891 0.924466 0.105635 0.892789 0.298575 0.918513 0.289302 0.932026 0.41004 0.927663 0.412647 0.940987 0.152917 0.714025 0.188039 0.660899 0.251002 0.622891 0.148083 0.821618 0.139091 0.770988 0.529124 0.59406 0.624566 0.605374 0.943792 0.414167 0.33386 0.602351 0.939709 0.408955 0.951716 0.40979 0.95394 0.414936 0.863781 0.409841 0.854643 0.410095 0.847079 0.410021 0.50373 0.914675 0.043999 0.560029 0.039161 0.51728 0.035514 0.442488 0.02836 0.327681 0.57657 0.399149 0.579657 0.45714 0.483058 0.467543 0.484696 0.402538 0.027211 0.11532 0.026409 0.041836 0.027231 0.176259 0.027041 0.244825 0.496033 0.232082 0.498386 0.171519 0.545104 0.178866 0.55478 0.242428 0.486973 0.320445 0.572701 0.32584 0.253473 0.42034 0.198325 0.471074 0.201641 0.514357 0.257191 0.464291 0.304409 0.414784 0.305266 0.371658 0.230885 0.286168 0.167912 0.306331 0.188981 0.401339 0.242536 0.354324 0.300813 0.31779 0.290984 0.262458 0.644363 0.422582 0.643061 0.366324 0.70337 0.314326 0.703499 0.366966 0.745969 0.26707 0.75382 0.293297 0.343946 0.231017 0.355397 0.284532 0.356783 0.335152 0.414764 0.29281 0.419941 0.236001 0.413771 0.173263 0.370421 0.125545 0.313385 0.086563 0.282902 0.142155 0.319456 0.18046 0.261679 0.175104 0.275739 0.211488 0.247515 0.05956 0.175872 0.043369 0.166908 0.113803 0.230266 0.122298 0.162066 0.173298 0.220575 0.173418 0.399643 0.347472 0.348371 0.378515 0.850892 0.415208 0.23283 0.882474 0.174218 0.860862 0.318561 0.890705 0.412205 0.900441 0.414872 0.864697 0.414169 0.832004 0.413463 0.796679 0.414763 0.757 0.418623 0.715141 0.424042 0.67374 0.797949 0.022112 0.816816 0.093012 0.720595 0.147032 0.715991 0.092651 0.636546 0.210325 0.627672 0.148444 0.772502 0.189202 0.711355 0.231084 0.641706 0.289174 0.223314 0.226619 0.162858 0.235961 0.139391 0.505963 0.140772 0.546375 0.105327 0.324975 0.131454 0.436403 0.855305 0.0942 0.800674 0.205793 0.103269 0.042003 0.100779 0.11305 0.099208 0.173793 0.099637 0.242841 0.428561 0.633258 0.429426 0.594048 0.429051 0.559095 0.429259 0.535162 0.35272 0.639241 0.294558 0.645659 0.274212 0.673847 0.348213 0.675519 0.253789 0.714174 0.339072 0.715472 0.241562 0.759109 0.241492 0.801977 0.330569 0.796358 0.332348 0.756954 0.843668 0.414845 0.519216 0.636196 0.513483 0.677706 0.858319 0.415536 0.509018 0.719971 0.595108 0.724198 0.959154 0.409842 0.961426 0.415077 0.955396 0.420505 0.503982 0.762367 0.946551 0.419988 0.498249 0.80295 0.581926 0.813498 0.948394 0.426244 0.956245 0.426562 0.493564 0.840197 0.962774 0.420748 0.49337 0.874734 0.5689 0.884732 0.963626 0.426902 0.947821 0.439136 0.254385 0.836095 0.333265 0.830744 0.334347 0.859927 0.274272 0.857068 0.111374 0.707428 0.160452 0.654158 0.126019 0.649524 0.074711 0.707898 0.232092 0.611555 0.203545 0.598866 0.085639 0.828171 0.086444 0.767612 0.053832 0.770468 0.05904 0.833261 0.5406 0.554531 0.653253 0.57169 0.949156 0.432796 0.552741 0.532581 0.956416 0.432776 0.955188 0.438695 0.321928 0.578317 0.3053 0.558373 0.963377 0.433055 0.962074 0.438861 0.939469 0.450342 0.944673 0.445101 0.952905 0.444195 0.949616 0.449137 0.959891 0.444199 0.95721 0.449055 0.928445 0.45763 0.933041 0.454385 0.647892 0.957038 0.945196 0.453364 0.513713 0.938992 0.528694 0.953445 0.940767 0.456994 0.954246 0.453493 0.191556 0.905473 0.119561 0.876603 0.09609 0.886393 0.173642 0.917872 0.296111 0.916924 0.285563 0.930752 0.407594 0.925155 0.699705 0.808301 0.767751 0.813767 0.770203 0.857847 0.710393 0.859091 0.67046 0.86001 0.652167 0.800156 0.732575 0.902022 0.706983 0.910753 0.776574 0.894725 0.709069 0.706824 0.772884 0.721001 0.769128 0.766819 0.69961 0.756109 0.650715 0.739559 0.665169 0.685443 0.747389 0.629544 0.781976 0.645207 0.777571 0.679447 0.726035 0.663915 0.69251 0.641696 0.7256 0.608173 0.800842 0.598447 0.800844 0.613722 0.782354 0.62203 0.77064 0.606739 0.761516 0.586356 0.801211 0.57812 0.833474 0.606525 0.843418 0.585771 0.884582 0.608278 0.861681 0.62927 0.826927 0.645008 0.821482 0.621769 0.901508 0.709495 0.841154 0.721344 0.835351 0.679466 0.88519 0.664947 0.920582 0.64464 0.946246 0.692573 0.905321 0.811872 0.840491 0.814502 0.842749 0.767471 0.908491 0.759591 0.957769 0.748636 0.953229 0.808266 0.87648 0.901039 0.832824 0.894364 0.83647 0.858222 0.893987 0.860506 0.934495 0.863509 0.904941 0.908789 0.811165 0.93926 0.808557 0.928096 0.833115 0.918674 0.850764 0.928355 0.866017 0.939324 0.815782 0.955298 0.781351 0.919619 0.767445 0.930389 0.756778 0.947206 0.874321 0.260529 0.87457 0.258357 0.870642 0.262514 0.870232 0.260129 0.875205 0.262091 0.87418 0.274349 0.878088 0.275377 0.879128 0.284194 0.875282 0.284248 0.876451 0.268146 0.87176 0.26763 0.879196 0.270887 0.875496 0.265391 0.893101 0.28442 0.892287 0.271326 0.879947 0.284131 0.862255 0.219399 0.877309 0.242158 0.869772 0.241647 0.855575 0.218438 0.862432 0.239621 0.84944 0.210845 0.867315 0.244511 0.849901 0.240235 0.863194 0.266321 0.876212 0.265675 0.880423 0.283451 0.866718 0.283089 0.870498 0.254293 0.863904 0.253791 0.870234 0.270504 0.864805 0.270607 0.879852 0.25405 0.878645 0.27023 0.884908 0.221559 0.894641 0.243235 0.885819 0.242521 0.87478 0.219802 0.853855 0.205189 0.868038 0.204565 0.870975 0.210424 0.856654 0.209577 0.882303 0.208527 0.885027 0.21281 0.869343 0.207181 0.855354 0.205901 0.879862 0.246326 0.872817 0.221463 0.859409 0.2185 0.885826 0.225344 0.891813 0.248223 0.886742 0.266822 0.897889 0.269881 0.890434 0.283337 0.902191 0.283202 0.887267 0.269985 0.888486 0.253806 0.897003 0.253871 0.897865 0.269734 0.890567 0.21382 0.890889 0.214313 0.887336 0.211472 0.940502 0.247339 0.935827 0.245027 0.948386 0.259727 0.952135 0.261243 0.929477 0.246937 0.935892 0.257903 0.955141 0.271935 0.951237 0.271687 0.951697 0.282445 0.956107 0.282705 0.939971 0.271031 0.941535 0.28252 0.963745 0.266939 0.955791 0.248173 0.96377 0.246708 0.971434 0.266214 0.948554 0.235961 0.955224 0.234835 0.896396 0.245174 0.886107 0.251776 0.887306 0.25714 0.901578 0.253513 0.893935 0.234459 0.893306 0.241625 0.88488 0.259333 0.895682 0.256287 0.898524 0.274248 0.887363 0.275119 0.885952 0.26722 0.897217 0.265981 0.888292 0.284017 0.899782 0.283788 0.893557 0.224473 0.903384 0.244263 0.904117 0.226402 0.909834 0.245212 0.898452 0.232315 0.90536 0.242289 0.914901 0.24109 0.908475 0.23147 0.912117 0.251402 0.92111 0.249824 0.905103 0.223634 0.894105 0.223477 0.891627 0.223783 0.892209 0.224715 0.894785 0.217728 0.904032 0.218825 0.905292 0.26092 0.916745 0.259188 0.925679 0.257542 0.919312 0.270264 0.927598 0.269904 0.909165 0.270372 0.922229 0.248254 0.923018 0.231732 0.931448 0.236491 0.927474 0.250713 0.939132 0.243721 0.931475 0.252998 0.941395 0.236759 0.941774 0.24318 0.951181 0.24757 0.953028 0.242625 0.943442 0.249961 0.949719 0.251412 0.932269 0.241398 0.935522 0.24909 0.930136 0.234395 0.929446 0.228394 0.942151 0.230847 0.942787 0.227016 0.929372 0.224433 0.954848 0.237908 0.922857 0.256527 0.927955 0.258098 0.929776 0.270263 0.925166 0.269641 0.93313 0.259066 0.935431 0.270899 0.938091 0.256867 0.945703 0.257403 0.953024 0.257866 0.948714 0.269472 0.957575 0.269677 0.940805 0.269454 0.944953 0.253898 0.950208 0.269278 0.961307 0.253711 0.957956 0.256418 0.964661 0.269455 0.96896 0.268209 0.902892 0.249987 0.897745 0.228849 0.908596 0.231834 0.912735 0.252197 0.897122 0.224227 0.89485 0.22181 0.90624 0.226903 0.908607 0.228742 0.903082 0.242361 0.906809 0.256103 0.917237 0.255133 0.919494 0.264606 0.908311 0.265315 0.907454 0.269025 0.916487 0.269043 0.911531 0.283044 0.919593 0.2829 0.909419 0.273405 0.911476 0.28336 0.920571 0.273041 0.922157 0.283218 0.922114 0.255039 0.920062 0.238863 0.921052 0.234472 0.923775 0.23538 0.929369 0.253983 0.934895 0.263753 0.927988 0.282737 0.92516 0.269608 0.937386 0.272947 0.938515 0.283177 0.906903 0.269654 0.905634 0.25451 0.912156 0.254648 0.915624 0.269303 0.934262 0.269581 0.931993 0.256855 0.928513 0.24901 0.928512 0.223212 0.917128 0.220406 0.916725 0.220767 0.9041 0.217973 0.914088 0.228391 0.916363 0.246441 0.918617 0.23227 0.923487 0.240784 0.938248 0.22777 0.892821 0.216321 0.844542 0.206031 0.874322 0.212263 0.870581 0.286403 0.864795 0.285932 0.877377 0.285736 0.887924 0.285532 0.898823 0.285311 0.908672 0.285115 0.917425 0.284957 0.921216 0.269224 0.922914 0.284906 0.926665 0.284912 0.930758 0.284928 0.936388 0.28496 0.952837 0.284936 0.967867 0.284724 0.971593 0.266723 0.976556 0.284338 0.976161 0.284497 0.973686 0.284223 0.968029 0.284169 0.960033 0.284154 0.950775 0.284138 0.942494 0.284121 0.936182 0.284123 0.929809 0.284158 0.920968 0.284223 0.910111 0.284292 0.952943 0.272204 0.950019 0.262148 0.953976 0.282879 0.900909 0.229617 0.889642 0.217102 0.912068 0.234085 0.913562 0.243735 0.925227 0.239763 0.92311 0.245509 0.916786 0.225007 0.940372 0.24984 0.963568 0.250138 0.888081 0.264217 0.918118 0.254988 0.844126 0.209259 0.844951 0.221286 0.886769 0.216308 0.872985 0.215718 0.879346 0.309871 0.875833 0.306046 0.875654 0.308144 0.879007 0.306407 0.876295 0.294136 0.878977 0.293033 0.879812 0.300399 0.876175 0.301094 0.880254 0.30345 0.882198 0.297454 0.893175 0.297687 0.865817 0.349629 0.859181 0.350621 0.872916 0.327332 0.880252 0.326495 0.865713 0.330422 0.852822 0.359205 0.869257 0.322943 0.877097 0.301439 0.864055 0.301093 0.852819 0.327816 0.866118 0.317194 0.872679 0.31623 0.865658 0.301152 0.871305 0.301562 0.879516 0.300927 0.881998 0.315802 0.888262 0.347411 0.878301 0.348969 0.888479 0.326114 0.897047 0.325511 0.857019 0.363938 0.860381 0.359999 0.874655 0.358691 0.872015 0.364197 0.888629 0.3558 0.886097 0.359632 0.872907 0.361011 0.858128 0.36229 0.881706 0.320824 0.862423 0.349295 0.875903 0.346079 0.888714 0.341972 0.893556 0.318638 0.898554 0.296744 0.887564 0.300041 0.888147 0.300674 0.898715 0.300283 0.89883 0.31539 0.89048 0.315686 0.894383 0.353795 0.894065 0.354129 0.890921 0.356254 0.942171 0.318343 0.9529 0.304272 0.949521 0.305533 0.937705 0.320863 0.937122 0.30759 0.931259 0.318903 0.955735 0.293528 0.951772 0.293299 0.940544 0.294181 0.964624 0.302435 0.972337 0.302695 0.965634 0.321964 0.957594 0.320997 0.957663 0.333351 0.950951 0.332759 0.897685 0.323309 0.904388 0.314564 0.887892 0.312338 0.888936 0.316243 0.699423 0.809253 0.710111 0.860044 0.769921 0.8588 0.767468 0.81472 0.651885 0.801109 0.669688 0.860514 0.732293 0.902975 0.706453 0.911484 0.776292 0.895678 0.708787 0.707777 0.699329 0.757062 0.768846 0.767772 0.772602 0.721954 0.664887 0.686395 0.650433 0.740512 0.747107 0.630497 0.725753 0.664868 0.777288 0.6804 0.781693 0.64616 0.725318 0.609127 0.692228 0.642648 0.80056 0.5994 0.770358 0.607692 0.782072 0.622983 0.800562 0.614675 0.800928 0.579073 0.761234 0.587309 0.833192 0.607478 0.861399 0.630223 0.8843 0.609231 0.843136 0.586725 0.8212 0.622722 0.826645 0.645961 0.901226 0.710448 0.884907 0.6659 0.835069 0.680418 0.840872 0.722297 0.945964 0.693526 0.920299 0.645594 0.905039 0.812825 0.908209 0.760544 0.842467 0.768423 0.840209 0.815454 0.952947 0.809219 0.957487 0.749588 0.876198 0.901993 0.893705 0.861459 0.836187 0.859175 0.832541 0.895317 0.904659 0.909742 0.934213 0.864462 0.810883 0.940213 0.850482 0.929308 0.832833 0.919627 0.808275 0.929049 0.815494 0.955807 0.865735 0.940277 0.767163 0.931342 0.781069 0.920572 0.878641 0.308129 0.757688 0.947696 0.89571 0.326063 0.896265 0.333541 0.887647 0.308911 0.896958 0.311973 0.898883 0.293285 0.897963 0.301935 0.887703 0.301029 0.887878 0.29293 0.905567 0.324686 0.896731 0.344468 0.906991 0.342485 0.911791 0.324251 0.900908 0.335596 0.911043 0.336295 0.917143 0.326675 0.907054 0.325968 0.923285 0.31808 0.915184 0.316034 0.908088 0.344187 0.897103 0.344536 0.894607 0.344154 0.895142 0.343144 0.898106 0.350443 0.90726 0.349181 0.907871 0.308374 0.918398 0.309598 0.927049 0.310818 0.928305 0.298442 0.920004 0.298182 0.909927 0.298243 0.924036 0.321254 0.929162 0.318872 0.933826 0.332572 0.925629 0.337191 0.941158 0.32555 0.933051 0.316658 0.943727 0.330971 0.955075 0.325269 0.952983 0.320359 0.943791 0.324629 0.951332 0.316568 0.945126 0.31796 0.937248 0.318798 0.934373 0.326359 0.932584 0.333273 0.932192 0.3393 0.932318 0.343421 0.945607 0.340893 0.944776 0.336887 0.957129 0.33006 0.924262 0.313255 0.925922 0.300164 0.930502 0.299579 0.929283 0.311724 0.936126 0.298969 0.93441 0.310774 0.939442 0.311396 0.947027 0.310849 0.954323 0.310334 0.958291 0.298597 0.94944 0.298819 0.941532 0.298832 0.946483 0.315703 0.950981 0.300512 0.962811 0.314479 0.969751 0.300159 0.965388 0.298807 0.959326 0.311738 0.904541 0.316598 0.900452 0.33816 0.911146 0.334819 0.914268 0.314088 0.900043 0.343367 0.910827 0.338483 0.909045 0.340214 0.897918 0.345703 0.907714 0.311836 0.905082 0.324826 0.918749 0.311513 0.909052 0.30192 0.920236 0.301846 0.91718 0.297035 0.908155 0.297332 0.909931 0.29344 0.92041 0.293444 0.923496 0.310879 0.922253 0.327378 0.925923 0.331262 0.923469 0.332076 0.930583 0.312153 0.934974 0.302503 0.925817 0.29614 0.93758 0.293425 0.907706 0.300101 0.916398 0.300537 0.913653 0.315103 0.907277 0.314776 0.934984 0.298714 0.933344 0.311407 0.930312 0.318902 0.931529 0.345055 0.919853 0.347075 0.920283 0.347817 0.907379 0.350402 0.918259 0.323025 0.916863 0.340467 0.921166 0.335346 0.925584 0.327014 0.941044 0.340685 0.896265 0.352186 0.847118 0.363087 0.877923 0.355511 0.921992 0.300554 0.972463 0.301867 0.950828 0.303658 0.953466 0.293583 0.892951 0.350759 0.90326 0.337983 0.915596 0.322974 0.91417 0.333036 0.927312 0.326701 0.92504 0.320904 0.919699 0.342662 0.941871 0.316003 0.965254 0.318221 0.889956 0.306147 0.919598 0.314755 0.845891 0.359181 0.847322 0.346695 0.890112 0.35133 0.87636 0.352039 0.950166 0.457401 0.877438 0.456074 0.890333 0.455013 0.891902 0.457826 0.881771 0.45805 0.893433 0.460126 0.885457 0.459788 0.90216 0.458193 0.902038 0.46051 0.902093 0.455956 0.869348 0.456995 0.875073 0.458463 0.870949 0.459563 0.865831 0.459946 0.88002 0.459819 0.876379 0.459992 0.890696 0.462723 0.889158 0.462546 0.893089 0.46287 0.842115 0.409869 0.837426 0.409453 0.838646 0.414482 0.833434 0.414204 0.847163 0.42056 0.840709 0.41957 0.839445 0.430603 0.83503 0.428579 0.852464 0.422383 0.843659 0.433436 0.835601 0.419062 0.830596 0.418889 0.831257 0.427506 0.827802 0.427141 0.876435 0.450731 0.866399 0.449489 0.869211 0.447456 0.878828 0.448367 0.861778 0.461251 0.86329 0.45579 0.869445 0.454182 0.919848 0.462088 0.9244 0.459418 0.936505 0.460001 0.932799 0.462552 0.914853 0.457033 0.912969 0.45878 0.983064 0.742705 0.970242 0.681277 0.978343 0.807461 0.961861 0.871181 0.925 0.920764 0.93957 0.629718 0.896636 0.591965 0.87816 0.953598 0.820182 0.969676 0.849136 0.56846 0.801508 0.561342 0.753635 0.961316 0.693916 0.922274 0.756457 0.570463 0.715065 0.59271 0.62759 0.729278 0.628526 0.797321 0.647916 0.672373 0.648988 0.865355 0.678001 0.627321 0.970524 0.680324 0.983346 0.741752 0.978626 0.806509 0.962143 0.870229 0.925282 0.919811 0.896919 0.591012 0.939853 0.628765 0.878442 0.952645 0.819304 0.969461 0.80179 0.560389 0.849419 0.567507 0.753465 0.960832 0.694447 0.921544 0.715348 0.591757 0.756739 0.569509 0.628808 0.796368 0.627873 0.728326 0.648199 0.671421 0.648584 0.866073 0.678283 0.626368 0.411737 0.936637 0.212659 0.665019 0.175067 0.711347 0.264355 0.628942 0.154113 0.763611 0.154483 0.81452 0.911051 0.461039 0.528987 0.594894 0.945951 0.460521 0.339791 0.607004 0.94197 0.46307 0.896594 0.462992 0.902819 0.462828 0.939147 0.46498 0.588358 0.917245 0.930869 0.464578 0.500784 0.908814 0.937502 0.466649 0.178893 0.855096 0.23388 0.878659 0.317203 0.888741 0.409219 0.897533 0.412456 0.865776 0.413517 0.832907 0.415303 0.797177 0.41903 0.758087 0.424284 0.717135 0.429773 0.675932 0.433166 0.635493 0.431719 0.596003 0.42845 0.560105 0.426262 0.535529 0.166927 0.932027 0.089131 0.90146 0.412839 0.954955 0.280654 0.94225 0.092604 0.643694 0.172265 0.583534 0.034269 0.783775 0.048602 0.713913 0.288973 0.53753 0.047197 0.849027 0.9297 0.466322 0.910929 0.462701 0.429574 0.516361 0.573602 0.514995 0.911763 0.464455 0.904647 0.46452 0.91245 0.466086 0.906026 0.466148 0.920833 0.464349 0.682918 0.980037 0.544365 0.975068 0.92089 0.466118 0.274953 0.94136 0.412382 0.948959 0.078614 0.893197 0.159929 0.926191 0.045546 0.712112 0.029763 0.775258 0.174568 0.589926 0.093871 0.647648 0.286715 0.542233 0.039682 0.837587 0.568016 0.514851 0.425296 0.517534 0.89967 0.464526 0.715649 0.536695 0.89649 0.46445 0.90127 0.466162 0.89793 0.466107 0.92457 0.397524 0.934172 0.397517 0.90196 0.397532 0.543555 0.96576 0.912366 0.397543 0.914428 0.398827 0.902477 0.39881 0.887934 0.397535 0.886084 0.398748 0.939158 0.397548 0.916553 0.401268 0.903345 0.401161 0.918892 0.404595 0.904419 0.40426 0.88377 0.401252 0.880927 0.404722 0.905294 0.428912 0.905488 0.424961 0.912357 0.424967 0.91334 0.429138 0.905906 0.421495 0.911087 0.422154 0.904076 0.437412 0.90478 0.43319 0.913199 0.433998 0.911884 0.43877 0.90321 0.444063 0.903361 0.441071 0.909872 0.442542 0.908067 0.444769 0.902496 0.453271 0.918142 0.453706 0.928783 0.450398 0.93573 0.445715 0.939896 0.439756 0.941415 0.433124 0.940295 0.426582 0.937084 0.420446 0.931618 0.414911 0.921769 0.409549 0.905101 0.407893 0.876573 0.40992 0.866307 0.415598 0.859425 0.421874 0.854503 0.429219 0.846009 0.439206 0.853866 0.435555 0.855666 0.44134 0.849189 0.44441 0.859693 0.44628 0.853635 0.449316 0.859396 0.453185 0.889827 0.45174 0.862926 0.421743 0.859205 0.428005 0.869662 0.416377 0.857993 0.434235 0.859086 0.440054 0.916008 0.412068 0.903601 0.410265 0.918257 0.418305 0.91053 0.415402 0.913091 0.413541 0.921836 0.416936 0.92534 0.416062 0.879532 0.412275 0.931494 0.42114 0.923547 0.422692 0.927682 0.421785 0.926515 0.428111 0.931209 0.427509 0.93512 0.42705 0.936295 0.433481 0.92732 0.434037 0.932331 0.433786 0.925669 0.439922 0.930432 0.440034 0.934525 0.439972 0.912845 0.451737 0.922595 0.449614 0.907361 0.448978 0.915126 0.447877 0.918684 0.448912 0.909842 0.450414 0.901128 0.451294 0.929882 0.445604 0.921412 0.444811 0.925747 0.445329 0.862632 0.44473 0.90791 0.418325 0.914417 0.420366 0.918293 0.424021 0.92059 0.42877 0.920879 0.434155 0.919487 0.439514 0.911345 0.446349 0.90499 0.446728 0.916084 0.443813 0.891421 0.410387 0.891335 0.407994 0.8923 0.404278 0.892667 0.401108 0.892803 0.398753 0.893101 0.397518 0.953337 0.401538 0.958091 0.405199 0.9475 0.399036 0.96186 0.409791 0.964499 0.415028 0.96612 0.420717 0.967305 0.426924 0.967388 0.433074 0.966427 0.438883 0.96451 0.444202 0.961861 0.44894 0.958944 0.453645 0.955428 0.457592 0.951844 0.460785 0.948132 0.463506 0.945008 0.465414 0.9428 0.466896 0.940897 0.39766 0.894646 0.464377 0.893748 0.464327 0.895819 0.465909 0.894732 0.465707 0.898046 0.468336 0.895591 0.467749 0.894211 0.467377 0.894053 0.470321 0.892528 0.469525 0.89702 0.472125 0.906461 0.46806 0.901761 0.468217 0.901883 0.471147 0.906501 0.470456 0.912592 0.467918 0.912253 0.470089 0.920682 0.467923 0.920674 0.470154 0.9293 0.468129 0.929876 0.470181 0.93702 0.468441 0.938213 0.470896 0.942275 0.468514 0.942757 0.470744 0.890006 0.4495 0.852976 0.399065 0.859393 0.397599 0.847065 0.401675 0.84127 0.405026 0.953466 0.401386 0.958188 0.405089 0.947588 0.398916 0.961862 0.409747 0.964391 0.415022 0.965926 0.420729 0.967068 0.426923 0.967242 0.433135 0.966314 0.439008 0.964406 0.444378 0.961584 0.44912 0.958267 0.453722 0.954279 0.457569 0.865611 0.460368 0.870463 0.459645 0.869977 0.459728 0.865391 0.460791 0.875883 0.460032 0.875386 0.460071 0.889107 0.462568 0.889055 0.46259 0.836433 0.409343 0.829542 0.419704 0.832578 0.41403 0.832317 0.414141 0.82924 0.419624 0.86181 0.461905 0.861843 0.46256 0.95053 0.46075 0.946775 0.4634 0.943577 0.465237 0.941527 0.466697 0.893773 0.464335 0.893798 0.464342 0.894526 0.465626 0.894385 0.465571 0.940912 0.397604 0.893807 0.467247 0.893563 0.467166 0.891985 0.469369 0.891535 0.469419 0.940364 0.468392 0.940762 0.470517 0.866236 0.398834 0.873711 0.398813 0.877506 0.397514 0.870971 0.397493 0.865522 0.397455 0.860032 0.398872 0.856026 0.399014 0.861954 0.397568 0.860159 0.397664 0.853853 0.399094 0.935431 0.404681 0.948546 0.405179 0.944496 0.401457 0.931632 0.401375 0.939488 0.398861 0.927974 0.398901 0.870657 0.401504 0.861966 0.401526 0.855096 0.4016 0.850751 0.405417 0.858121 0.405363 0.867731 0.405188 0.850561 0.401575 0.848094 0.401586 0.842791 0.404957 0.845766 0.405198 0.9455 0.398818 0.951158 0.401375 0.955535 0.405156 0.94295 0.41441 0.9536 0.414936 0.951437 0.40979 0.938847 0.409148 0.863906 0.410047 0.854469 0.410101 0.8468 0.410021 0.843291 0.414792 0.850618 0.415218 0.858112 0.415702 0.958875 0.409842 0.961147 0.415077 0.9551 0.420509 0.945887 0.42022 0.947818 0.426423 0.955942 0.426574 0.962495 0.420748 0.963347 0.426902 0.947179 0.438896 0.955415 0.438781 0.95627 0.432802 0.948355 0.432791 0.963455 0.433109 0.96255 0.43901 0.93973 0.449457 0.950281 0.449152 0.953464 0.44429 0.944309 0.444589 0.960647 0.444424 0.957836 0.449233 0.928866 0.456683 0.941589 0.457208 0.946319 0.453375 0.933669 0.453285 0.954103 0.453514 0.949874 0.457416 0.877353 0.455968 0.882269 0.458025 0.892317 0.457757 0.890577 0.455047 0.886684 0.460112 0.89423 0.460211 0.902677 0.460467 0.90267 0.458019 0.902808 0.455334 0.869597 0.456984 0.865825 0.458435 0.871446 0.458982 0.8752 0.458466 0.877063 0.46 0.880928 0.46006 0.889224 0.462652 0.890358 0.462714 0.892541 0.462593 0.841603 0.409572 0.838159 0.409243 0.834209 0.413908 0.837981 0.414182 0.839885 0.419736 0.846514 0.420792 0.834481 0.428371 0.838869 0.430451 0.84343 0.433385 0.852102 0.422532 0.830666 0.418987 0.834732 0.419195 0.827717 0.426976 0.830662 0.427303 0.875777 0.450429 0.878346 0.448288 0.868619 0.446935 0.865577 0.448677 0.860982 0.459109 0.863516 0.455972 0.868771 0.453598 0.919955 0.462087 0.933215 0.46265 0.936971 0.460171 0.92452 0.45941 0.915797 0.455832 0.913434 0.458571 0.911682 0.460937 0.945768 0.460575 0.941689 0.463136 0.897291 0.462545 0.903757 0.462585 0.930828 0.464538 0.938505 0.464915 0.929084 0.466249 0.936418 0.466469 0.911714 0.462545 0.904992 0.464496 0.91226 0.464434 0.906001 0.466171 0.912549 0.466198 0.920438 0.466178 0.920682 0.464371 0.899694 0.464496 0.896238 0.464476 0.897673 0.46607 0.901142 0.46612 0.933851 0.397545 0.924135 0.397565 0.901567 0.397461 0.902111 0.398787 0.913998 0.398826 0.911927 0.397463 0.885568 0.398789 0.887707 0.397486 0.939027 0.397536 0.902897 0.401138 0.916139 0.401275 0.904075 0.404332 0.918631 0.404656 0.883077 0.401373 0.880245 0.404983 0.905419 0.428922 0.912942 0.429219 0.912006 0.425106 0.905474 0.425025 0.910791 0.422281 0.905844 0.421559 0.904305 0.436885 0.911907 0.438227 0.913047 0.433844 0.905052 0.432984 0.903203 0.443238 0.908124 0.443775 0.909903 0.441649 0.903445 0.440313 0.90285 0.452456 0.918742 0.45246 0.929033 0.449192 0.935553 0.444785 0.939489 0.439171 0.940895 0.433027 0.939916 0.426757 0.936762 0.420698 0.931211 0.415109 0.90461 0.407951 0.921344 0.40965 0.876099 0.410269 0.865754 0.416146 0.858856 0.422274 0.85408 0.42925 0.845714 0.439016 0.8487 0.443676 0.855252 0.440105 0.853622 0.434905 0.852614 0.447663 0.858958 0.44511 0.858176 0.451853 0.889824 0.45148 0.858947 0.427844 0.863033 0.422095 0.869857 0.416948 0.858451 0.439034 0.857612 0.433475 0.903128 0.410252 0.915613 0.4122 0.910336 0.415321 0.91773 0.418674 0.921258 0.417307 0.91279 0.413538 0.924944 0.416332 0.879341 0.412694 0.930972 0.4215 0.922517 0.423241 0.926792 0.422268 0.92506 0.428584 0.929895 0.42793 0.93442 0.427304 0.935453 0.433435 0.925801 0.434263 0.930838 0.433902 0.924243 0.439743 0.929152 0.439726 0.933786 0.439455 0.922618 0.448568 0.913071 0.450609 0.91472 0.447235 0.9073 0.44856 0.909883 0.449686 0.918464 0.448158 0.90106 0.450464 0.929479 0.444749 0.920523 0.44435 0.924927 0.444695 0.861743 0.443993 0.907779 0.418347 0.914012 0.420577 0.917709 0.42432 0.919641 0.429082 0.919962 0.434273 0.918588 0.43924 0.904848 0.446138 0.911088 0.445577 0.915514 0.4432 0.890897 0.408138 0.891059 0.410492 0.89188 0.404459 0.892481 0.401195 0.892744 0.398811 0.892774 0.397499 0.852987 0.39915 0.859402 0.397672 0.847027 0.401638 0.84144 0.40503 0.836758 0.409301 0.826856 0.427241 0.893304 0.464316 0.894343 0.465793 0.894093 0.464377 0.895401 0.465971 0.893628 0.467665 0.890751 0.471053 0.897653 0.467915 0.895086 0.467874 0.893376 0.47055 0.896513 0.470318 0.906138 0.467954 0.901291 0.467913 0.900442 0.470186 0.905385 0.470181 0.912382 0.468058 0.911527 0.470316 0.918635 0.470453 0.91977 0.468076 0.926488 0.470872 0.927835 0.468189 0.935282 0.468257 0.935209 0.471328 0.877915 0.500707 0.878197 0.500625 0.878935 0.505269 0.878376 0.50543 0.87849 0.500327 0.879515 0.504678 0.878776 0.499827 0.880077 0.503685 0.879041 0.499148 0.880596 0.502336 0.879273 0.498323 0.88105 0.500691 0.879461 0.49739 0.881414 0.498833 0.879595 0.496393 0.881685 0.496848 0.879673 0.495381 0.881831 0.494834 0.879688 0.4944 0.881855 0.492886 0.879641 0.493495 0.881754 0.491093 0.879517 0.492692 0.881496 0.489502 0.879256 0.49199 0.880966 0.488128 0.878724 0.491679 0.879976 0.487255 0.880441 0.487544 0.878985 0.491764 0.880259 0.509816 0.879427 0.510054 0.881118 0.508941 0.881951 0.507469 0.882719 0.50547 0.883385 0.503037 0.883918 0.500283 0.884295 0.497337 0.884501 0.494341 0.884524 0.491438 0.884373 0.488781 0.883999 0.486461 0.88321 0.484429 0.882394 0.483424 0.882124 0.514208 0.881033 0.51452 0.883251 0.513061 0.884343 0.511133 0.885349 0.508513 0.886222 0.505324 0.886921 0.501715 0.887414 0.497854 0.887677 0.493924 0.887702 0.490113 0.887496 0.486645 0.88698 0.48361 0.885938 0.48091 0.884878 0.479558 0.884506 0.51838 0.88317 0.518762 0.885883 0.516979 0.887217 0.514621 0.888447 0.511419 0.889514 0.507521 0.890369 0.503109 0.890971 0.49839 0.891293 0.493586 0.89132 0.488919 0.891054 0.484665 0.890395 0.481066 0.88919 0.477958 0.887817 0.476052 0.887367 0.522273 0.885807 0.522719 0.888975 0.520637 0.890533 0.517885 0.891968 0.514147 0.893214 0.509596 0.894212 0.504446 0.894915 0.498938 0.895291 0.493329 0.895322 0.487882 0.895 0.482915 0.894205 0.478779 0.892842 0.475169 0.891068 0.473073 0.890668 0.525829 0.888906 0.526332 0.892483 0.523982 0.894241 0.520876 0.895861 0.516656 0.897267 0.51152 0.898394 0.505707 0.899187 0.499489 0.899612 0.493158 0.899646 0.487009 0.899286 0.481354 0.898411 0.476638 0.894359 0.528996 0.892421 0.529549 0.896354 0.526965 0.898288 0.52355 0.900069 0.518911 0.901615 0.513263 0.902854 0.506872 0.903726 0.500036 0.904193 0.493075 0.904231 0.486314 0.903834 0.4801 0.902975 0.47504 0.898388 0.531728 0.896302 0.532323 0.900534 0.529543 0.902614 0.525869 0.904531 0.520877 0.906194 0.514801 0.907527 0.507925 0.908466 0.50057 0.908967 0.493081 0.909009 0.485806 0.908572 0.479151 0.907654 0.473824 0.902694 0.533986 0.900491 0.534614 0.90496 0.531679 0.907157 0.527799 0.909181 0.522528 0.910937 0.516111 0.912345 0.50885 0.913336 0.501084 0.913866 0.493175 0.913909 0.485494 0.91346 0.478418 0.912585 0.472851 0.907215 0.535736 0.904927 0.536388 0.909569 0.53334 0.91185 0.529311 0.913952 0.523838 0.915776 0.517175 0.917237 0.509635 0.918266 0.50157 0.918854 0.493342 0.918947 0.485357 0.91844 0.478006 0.91787 0.471971 0.914263 0.537286 0.911914 0.537955 0.916678 0.534827 0.919019 0.530693 0.921175 0.525076 0.923047 0.518239 0.924546 0.510502 0.925585 0.502224 0.926227 0.493754 0.926493 0.485583 0.925762 0.478045 0.924764 0.471485 0.921403 0.537724 0.919062 0.538392 0.92381 0.535275 0.926142 0.531156 0.930338 0.525761 0.93162 0.519674 0.933283 0.512932 0.932692 0.502839 0.933977 0.494768 0.934333 0.486371 0.933206 0.478784 0.931863 0.472204 0.92611 0.537268 0.92382 0.53792 0.928464 0.534872 0.932388 0.530343 0.937335 0.506755 0.941235 0.498334 0.941521 0.487989 0.940371 0.480184 0.938481 0.473907 0.930691 0.536256 0.928485 0.536884 0.934789 0.533043 0.935078 0.534703 0.932989 0.535298 0.938368 0.532576 0.947164 0.489068 0.947066 0.497764 0.946239 0.481893 0.944283 0.476284 0.939209 0.532632 0.937267 0.533185 0.941919 0.530982 0.950689 0.490156 0.950271 0.497772 0.95034 0.48345 0.948203 0.478162 0.943023 0.530074 0.941256 0.530577 0.945589 0.528338 0.95349 0.491089 0.952472 0.498024 0.953154 0.485389 0.951415 0.480527 0.946464 0.527065 0.944898 0.52751 0.948879 0.525086 0.955336 0.498108 0.955494 0.49227 0.955142 0.488211 0.954263 0.484425 0.949389 0.475505 0.954052 0.482326 0.94757 0.475109 0.945693 0.473082 0.943613 0.471998 0.950577 0.521636 0.949187 0.522238 0.951775 0.520708 0.950886 0.519379 0.952605 0.518141 0.95447 0.515316 0.952742 0.516616 0.878125 0.495997 0.943537 0.514246 0.944979 0.511457 0.945299 0.511731 0.944004 0.514141 0.946866 0.510467 0.945612 0.512005 0.946775 0.509925 0.944125 0.524447 0.943125 0.523168 0.943363 0.52176 0.944265 0.522893 0.943213 0.51865 0.9436 0.520352 0.942839 0.519741 0.942465 0.520831 0.942508 0.517563 0.943036 0.516979 0.944472 0.514036 0.943564 0.516394 0.946664 0.509365 0.948503 0.507957 0.948316 0.508687 0.949207 0.508705 0.948096 0.509397 0.949608 0.50791 0.950009 0.507096 0.951195 0.506751 0.950679 0.507606 0.951005 0.508659 0.950161 0.508443 0.951647 0.507843 0.952323 0.510866 0.951744 0.509448 0.952587 0.5089 0.953318 0.510638 0.952296 0.507042 0.953444 0.508317 0.954198 0.510416 0.954069 0.512878 0.953344 0.512779 0.95222 0.51488 0.952538 0.512757 0.952777 0.515115 0.953314 0.515413 0.952001 0.51802 0.951641 0.517475 0.949848 0.518868 0.951263 0.516984 0.950071 0.519673 0.950291 0.520481 0.948367 0.522605 0.94826 0.52146 0.946642 0.521256 0.948152 0.520315 0.946704 0.522693 0.946766 0.524131 0.94537 0.524785 0.945389 0.52319 0.944404 0.521338 0.945409 0.521595 0.948517 0.508521 0.947425 0.509189 0.946164 0.510225 0.943731 0.513771 0.942852 0.515989 0.942484 0.51808 0.944874 0.511783 0.950283 0.508511 0.949456 0.508269 0.942699 0.51973 0.943487 0.520694 0.951552 0.510694 0.95099 0.509314 0.944633 0.521012 0.946034 0.520645 0.951461 0.514432 0.951791 0.512457 0.947604 0.519694 0.949207 0.518265 0.95053 0.516413 0.954352 0.507334 0.955064 0.51004 0.953029 0.50566 0.954691 0.513093 0.953563 0.516187 0.942931 0.511155 0.945738 0.50837 0.941124 0.514785 0.948237 0.525023 0.946042 0.527051 0.950358 0.522206 0.940778 0.525984 0.939919 0.523165 0.942236 0.527579 0.940031 0.519157 0.94836 0.506655 0.95038 0.505668 0.951792 0.505283 0.952106 0.519194 0.94408 0.527997 0.955136 0.505085 0.955458 0.508799 0.953996 0.503048 0.954947 0.51289 0.953571 0.516724 0.940392 0.509704 0.943959 0.505926 0.937487 0.514053 0.946965 0.527152 0.943743 0.529685 0.949863 0.52392 0.936263 0.528363 0.934831 0.524989 0.938515 0.530358 0.93544 0.520327 0.947235 0.504116 0.949823 0.503295 0.952034 0.502955 0.951882 0.52041 0.941028 0.53079 0.956255 0.501869 0.956376 0.507194 0.955436 0.512282 0.95378 0.516679 0.954272 0.512902 0.953969 0.514386 0.955477 0.513065 0.955509 0.511632 0.956562 0.510151 0.957541 0.50583 0.957528 0.506237 0.957401 0.500104 0.957323 0.498901 0.956684 0.496896 0.956413 0.492938 0.956425 0.492794 0.955922 0.48933 0.955605 0.489791 0.952251 0.480529 0.95403 0.483685 0.955302 0.484788 0.955335 0.486204 0.955539 0.486154 0.954877 0.485325 0.956687 0.508947 0.956754 0.495687 0.955045 0.487387 0.877848 0.505182 0.877652 0.500582 0.87737 0.504506 0.877412 0.500243 0.876974 0.503437 0.877218 0.499703 0.87668 0.502023 0.877063 0.498994 0.876501 0.50033 0.876979 0.498142 0.876446 0.498438 0.87696 0.497191 0.876522 0.496436 0.877006 0.496186 0.876728 0.49442 0.877115 0.495174 0.877054 0.492488 0.877281 0.494204 0.877479 0.49073 0.877498 0.49332 0.877999 0.489197 0.877767 0.492546 0.878719 0.487808 0.878144 0.491879 0.879235 0.487423 0.878402 0.491725 0.878643 0.509686 0.877934 0.508686 0.877348 0.507101 0.876912 0.505005 0.876647 0.502497 0.876565 0.499694 0.876669 0.496727 0.876956 0.493734 0.877416 0.490859 0.878045 0.488251 0.878803 0.485988 0.879891 0.48389 0.880652 0.483253 0.880004 0.514038 0.879075 0.512727 0.878307 0.510649 0.877736 0.507903 0.877388 0.504616 0.87728 0.500942 0.877417 0.497054 0.877793 0.493132 0.878389 0.48936 0.879214 0.485947 0.880199 0.482989 0.881623 0.480314 0.882641 0.479405 0.881911 0.518172 0.880775 0.516569 0.879836 0.51403 0.879138 0.510673 0.878713 0.506655 0.878582 0.502165 0.878749 0.497412 0.879208 0.492618 0.879955 0.488021 0.881001 0.483899 0.88231 0.480367 0.883909 0.47731 0.885135 0.475926 0.884336 0.52203 0.883011 0.520159 0.881915 0.517195 0.8811 0.513276 0.880604 0.508586 0.88045 0.503344 0.880646 0.497795 0.881181 0.492199 0.882059 0.48684 0.883257 0.482017 0.884772 0.477872 0.886828 0.474331 0.888116 0.472377 0.887245 0.525554 0.885749 0.523442 0.884512 0.520096 0.883592 0.515673 0.883032 0.510379 0.882858 0.504462 0.883079 0.498199 0.883683 0.491882 0.884656 0.485819 0.885976 0.480334 0.887771 0.475644 0.888962 0.472096 0.890594 0.528694 0.888949 0.526372 0.887589 0.522693 0.886578 0.51783 0.885962 0.512009 0.885771 0.505504 0.886014 0.498617 0.886678 0.491672 0.887734 0.484992 0.889161 0.478945 0.891005 0.474124 0.894335 0.531403 0.892565 0.528905 0.891102 0.524947 0.890014 0.519714 0.889351 0.513452 0.889146 0.506453 0.889407 0.499043 0.890122 0.491571 0.891258 0.484384 0.892815 0.477978 0.894695 0.473363 0.898413 0.533643 0.896544 0.531004 0.894999 0.526825 0.89385 0.5213 0.893151 0.514687 0.892934 0.507295 0.893209 0.499472 0.893965 0.491581 0.895164 0.483992 0.89686 0.477387 0.898865 0.473076 0.902769 0.53538 0.900829 0.53264 0.899224 0.5283 0.898031 0.522562 0.897305 0.515695 0.897079 0.50802 0.897366 0.499895 0.89815 0.491701 0.899396 0.483821 0.901449 0.477074 0.903819 0.472976 0.909699 0.53692 0.907707 0.534109 0.906061 0.529655 0.904836 0.523767 0.904091 0.516721 0.90386 0.508844 0.904153 0.500507 0.904958 0.492099 0.906237 0.484012 0.908008 0.477129 0.910034 0.473198 0.916854 0.53736 0.91487 0.534559 0.91323 0.530122 0.914164 0.524465 0.913164 0.518196 0.913437 0.51134 0.91133 0.50108 0.912131 0.492703 0.913405 0.484646 0.91513 0.47783 0.916994 0.473623 0.92166 0.536911 0.919719 0.534172 0.91917 0.529284 0.917172 0.505296 0.919838 0.496406 0.920904 0.486229 0.92238 0.479225 0.924263 0.474614 0.926405 0.535913 0.924828 0.532245 0.931019 0.534378 0.929686 0.53188 0.92797 0.487724 0.927599 0.495894 0.929366 0.480734 0.931925 0.475167 0.935435 0.53233 0.934387 0.530379 0.933232 0.488977 0.932764 0.496065 0.934736 0.482159 0.937602 0.476887 0.93959 0.529799 0.938848 0.527798 0.937731 0.490249 0.936964 0.496523 0.939215 0.484123 0.942421 0.479379 0.943421 0.526821 0.942722 0.524593 0.94207 0.497013 0.942329 0.491435 0.943599 0.487511 0.946933 0.482758 0.949756 0.480976 0.945342 0.476815 0.940652 0.473783 0.947564 0.521395 0.9466 0.520277 0.951324 0.514898 0.949518 0.517928 0.928377 0.510114 0.926885 0.51291 0.927854 0.512845 0.929178 0.51043 0.92998 0.510746 0.931406 0.509225 0.930823 0.508639 0.92835 0.521984 0.930534 0.523359 0.930891 0.521821 0.928964 0.520607 0.929579 0.519229 0.928441 0.517467 0.927597 0.51852 0.926179 0.516255 0.926753 0.519573 0.927195 0.51571 0.928211 0.515165 0.928823 0.512781 0.932374 0.506682 0.930239 0.508053 0.932657 0.507439 0.93294 0.508196 0.934517 0.507536 0.93451 0.506707 0.936567 0.505592 0.934502 0.505878 0.936317 0.506456 0.936067 0.50732 0.937546 0.507578 0.93807 0.506748 0.938901 0.508422 0.940036 0.50988 0.941088 0.509726 0.939772 0.507879 0.940713 0.507314 0.938594 0.505926 0.942911 0.511998 0.942269 0.509491 0.941755 0.511888 0.940774 0.511818 0.940867 0.513981 0.941724 0.514237 0.941696 0.517149 0.942674 0.514592 0.940898 0.516619 0.940099 0.51609 0.938667 0.517973 0.939267 0.518807 0.937547 0.521739 0.939868 0.519641 0.937153 0.52057 0.936759 0.519402 0.934851 0.520311 0.935057 0.52176 0.932933 0.523788 0.935263 0.523209 0.932985 0.522196 0.933038 0.520604 0.931248 0.520284 0.932573 0.508007 0.934161 0.507367 0.930964 0.509008 0.927841 0.514787 0.928411 0.512543 0.928106 0.516928 0.929515 0.510546 0.935671 0.507169 0.937081 0.507438 0.929093 0.51864 0.93071 0.519671 0.938351 0.508298 0.9394 0.509723 0.932552 0.520045 0.934434 0.519715 0.940079 0.511519 0.940113 0.513519 0.936336 0.518792 0.938116 0.517377 0.939405 0.515521 0.943638 0.508965 0.941943 0.506311 0.939071 0.504531 0.94388 0.51543 0.944335 0.512165 0.927944 0.506963 0.925069 0.509715 0.923231 0.513349 0.935271 0.526189 0.938229 0.524222 0.940839 0.521447 0.923484 0.521848 0.925731 0.524779 0.928789 0.526502 0.922597 0.517761 0.93396 0.504385 0.931029 0.505302 0.936534 0.504088 0.942769 0.518413 0.932116 0.527039 0.945351 0.507568 0.943089 0.503744 0.939896 0.502018 0.945354 0.516015 0.946118 0.511811 0.925289 0.504712 0.920962 0.50815 0.918385 0.51252 0.934537 0.528948 0.938552 0.526478 0.941809 0.523283 0.918305 0.523665 0.921702 0.527196 0.925959 0.529352 0.917212 0.518867 0.933078 0.501722 0.929349 0.502508 0.936447 0.501609 0.943896 0.519878 0.930309 0.529931 0.948005 0.505607 0.944871 0.499392 0.947806 0.516062 0.9491 0.511191 0.953215 0.511264 0.952698 0.512701 0.951135 0.50884 0.950868 0.504414 0.946032 0.497811 0.946155 0.49879 0.9504 0.504692 0.944108 0.496015 0.944681 0.492183 0.945966 0.489086 0.945497 0.488606 0.944291 0.491984 0.951345 0.48426 0.948386 0.485293 0.952907 0.485943 0.952013 0.507755 0.944606 0.494766 0.94856 0.486751 0.889967 0.448966 0.879572 0.4873 0.878531 0.491695 0.881189 0.483034 0.883359 0.479059 0.88597 0.475436 0.826451 0.427416 0.889758 0.472115 0.881748 0.482959 0.884054 0.478968 0.886811 0.475429 0.942835 0.472365 0.877975 0.397658 0.883515 0.397651 0.873951 0.397664 0.870831 0.397671 0.867889 0.397674 0.918562 0.397639 0.925482 0.397634 0.901603 0.397646 0.909465 0.397642 0.891034 0.397645 0.929288 0.397637 0.894812 0.397645 0.931273 0.397662 0.86549 0.397668 0.931235 0.397655 0.882529 0.39765 0.877003 0.397658 0.871595 0.397671 0.868659 0.397671 0.868707 0.397667 0.925845 0.397644 0.918784 0.397657 0.909614 0.397666 0.901249 0.39767 0.890498 0.397656 0.92961 0.397643 0.894099 0.397656 0.867711 0.397671 0.900103 0.397679 0.595916 0.679782 0.593633 0.724091 0.587548 0.772055 0.579229 0.819401 0.570764 0.860428 0.56898 0.893979 0.055194 0.327681 0.056512 0.244825 0.056323 0.176259 0.056343 0.11532 0.057144 0.041836 0.468306 0.320445 0.459246 0.232082 0.470583 0.402538 0.456894 0.171519 0.044392 0.51728 0.04804 0.442488 0.039555 0.560029 0.472222 0.467543 0.655545 0.572596 0.685594 0.967391 0.590033 0.92387 0.595756 0.680499 0.590769 0.76975 0.682275 0.551691 0.647404 0.965201 0.571758 0.851938 0.600135 0.64164 0.623018 0.605621 0.617347 0.944413 0.720327 0.535205 + + + + + + + + + + + + + + + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 +

89 0 23 243 1 26 90 2 28 6 3 29 91 4 30 243 1 26 89 0 23 5 5 31 92 6 33 244 7 35 91 4 30 5 5 31 299 8 36 244 7 35 92 6 33 218 9 37 7 10 39 95 11 41 93 12 42 8 13 57 93 12 42 95 11 41 94 14 61 9 15 62 96 16 65 245 17 66 89 0 23 6 3 29 89 0 23 245 17 66 97 18 67 5 5 31 97 18 67 245 17 66 98 19 68 11 20 69 98 19 68 245 17 66 96 16 65 10 21 70 97 18 67 246 22 71 92 6 33 5 5 31 92 6 33 246 22 71 300 23 72 218 9 37 300 23 72 246 22 71 99 24 84 219 25 85 99 24 84 246 22 71 97 18 67 11 20 69 12 26 86 247 27 89 93 12 42 9 15 62 93 12 42 247 27 89 100 28 90 8 13 57 13 29 135 102 30 137 101 31 138 14 32 139 101 31 138 102 30 137 7 10 39 8 13 57 103 33 140 248 34 141 98 19 68 10 21 70 98 19 68 248 34 141 104 35 142 11 20 69 104 35 142 248 34 141 105 36 200 16 37 246 105 36 200 248 34 141 103 33 140 15 38 249 100 28 90 107 39 252 101 31 138 8 13 57 101 31 138 107 39 252 106 40 253 14 32 139 108 41 254 109 42 256 13 29 135 14 32 139 18 43 259 109 42 256 108 41 254 17 44 260 106 40 253 111 45 262 108 41 254 14 32 139 108 41 254 111 45 262 110 46 265 17 44 260 20 47 266 112 48 283 113 49 285 19 50 286 113 49 285 112 48 283 18 43 259 17 44 260 110 46 265 115 51 289 113 49 285 17 44 260 113 49 285 115 51 289 114 52 290 19 50 286 22 53 291 116 54 292 117 55 293 21 56 294 117 55 293 116 54 292 20 47 266 19 50 286 114 52 290 119 57 295 117 55 293 19 50 286 117 55 293 119 57 295 118 58 296 21 56 294 23 59 297 249 60 298 120 61 300 24 62 303 120 61 300 249 60 298 22 53 291 21 56 294 118 58 296 122 63 304 120 61 300 21 56 294 120 61 300 122 63 304 121 64 884 24 62 303 26 65 885 339 66 886 340 67 887 123 68 888 123 68 888 340 67 887 341 69 889 28 70 890 341 69 889 340 67 887 124 71 891 27 72 892 124 71 891 340 67 887 339 66 886 25 73 893 125 74 894 250 75 895 307 76 896 29 77 897 307 76 896 250 75 895 126 78 898 227 79 899 126 78 898 250 75 895 123 68 888 28 70 890 123 68 888 250 75 895 125 74 894 26 65 885 126 78 898 127 80 900 45 81 901 227 79 899 126 78 898 28 70 890 30 82 902 127 80 900 128 83 0 251 84 1 308 85 2 31 86 3 308 85 74 251 84 75 129 87 76 228 88 77 129 87 76 251 84 75 130 89 78 33 90 79 130 89 4 251 84 1 128 83 0 32 91 12 131 92 13 252 93 14 309 94 15 34 95 16 309 94 15 252 93 14 128 83 0 31 86 3 128 83 0 252 93 14 132 96 17 32 91 12 132 96 17 252 93 14 131 92 13 35 97 18 133 98 82 253 99 83 132 96 17 35 97 18 132 96 17 253 99 83 134 100 91 32 91 12 134 100 91 253 99 83 156 101 92 36 102 93 156 101 92 253 99 83 133 98 82 38 103 94 135 104 96 254 105 97 136 106 98 39 107 101 136 106 98 254 105 97 137 108 102 37 109 105 137 108 102 254 105 97 133 98 82 35 97 18 133 98 82 254 105 97 135 104 96 38 103 94 104 35 142 255 110 903 99 24 84 11 20 69 99 24 84 255 110 903 310 111 904 219 25 85 310 111 904 255 110 903 138 112 905 1978 113 906 138 112 905 255 110 903 104 35 142 16 37 246 204 114 5 285 115 6 139 116 7 59 117 8 139 116 7 285 115 6 203 118 9 57 119 10 105 36 200 256 120 907 140 121 908 16 37 246 140 121 908 256 120 907 135 104 909 39 107 910 135 104 909 256 120 907 141 122 911 38 103 912 141 122 911 256 120 907 105 36 200 15 38 249 138 112 905 257 123 913 142 124 914 1978 113 906 142 124 914 257 123 913 154 125 915 229 126 916 154 125 915 257 123 913 140 121 908 39 107 910 140 121 908 257 123 913 138 112 905 16 37 246 143 127 11 284 128 19 202 129 20 60 130 21 203 118 9 284 128 19 143 127 11 57 119 10 144 131 917 56 132 918 2065 133 919 2066 134 920 311 135 921 258 136 922 125 74 894 29 77 897 125 74 894 258 136 922 145 137 923 26 65 885 145 137 80 258 136 81 146 138 95 40 139 99 146 138 95 258 136 81 311 135 100 41 140 103 43 141 924 147 142 925 148 143 926 42 144 927 148 143 926 147 142 925 23 59 297 24 62 303 149 145 928 259 146 929 124 71 891 25 73 893 124 71 891 259 146 929 150 147 976 27 72 892 150 147 976 259 146 929 147 142 925 43 141 924 147 142 925 259 146 929 149 145 928 23 59 297 121 64 884 152 148 978 148 143 926 24 62 303 148 143 926 152 148 978 151 149 980 42 144 927 231 150 981 30 82 902 28 70 890 341 69 889 231 150 981 341 69 889 27 72 892 44 151 982 153 152 104 260 153 106 129 87 76 33 90 79 129 87 76 260 153 106 312 154 107 228 88 77 312 154 107 260 153 106 146 138 95 41 140 103 146 138 95 260 153 106 153 152 104 40 139 99 154 125 110 261 155 111 313 156 112 229 126 113 313 156 112 261 155 111 155 157 114 230 158 115 155 157 114 261 155 111 136 106 98 37 109 105 136 106 98 261 155 111 154 125 110 39 107 101 153 152 104 262 159 108 181 160 109 40 139 99 181 160 116 262 159 117 134 100 91 36 102 93 134 100 91 262 159 117 130 89 4 32 91 12 130 89 78 262 159 108 153 152 104 33 90 79 137 108 102 263 161 118 155 157 114 37 109 105 155 157 114 263 161 118 314 162 119 230 158 115 314 162 119 263 161 118 131 92 13 34 95 16 131 92 13 263 161 118 137 108 102 35 97 18 151 149 980 241 163 983 157 164 985 42 144 927 157 164 985 241 163 983 242 165 987 83 166 1012 159 167 1013 264 168 1016 160 169 1017 44 151 982 160 169 1017 264 168 1016 239 170 1018 81 171 1019 239 170 1018 264 168 1016 238 172 1020 82 173 1023 238 172 1020 264 168 1016 159 167 1013 43 141 924 82 173 1023 238 172 1020 157 164 985 83 166 1012 157 164 985 238 172 1020 43 141 924 42 144 927 160 169 1017 265 174 1036 231 150 981 44 151 982 231 150 981 265 174 1036 232 175 1038 30 82 902 232 175 1038 265 174 1036 237 176 1039 80 177 1040 237 176 1039 265 174 1036 160 169 1017 81 171 1019 94 14 61 163 178 1041 164 179 1042 9 15 62 165 180 1043 266 181 1045 166 182 1046 46 183 1047 166 182 1046 266 181 1045 163 178 1041 94 14 61 90 2 28 288 184 1048 207 185 1049 6 3 29 164 179 1042 167 186 1050 12 26 86 9 15 62 166 182 1046 267 187 1051 168 188 1052 46 183 1047 168 188 1052 267 187 1051 169 189 1053 47 190 1054 169 189 1053 267 187 1051 95 11 41 7 10 39 95 11 41 267 187 1051 166 182 1046 94 14 61 207 185 1049 287 191 1055 96 16 65 6 3 29 96 16 65 287 191 1055 206 192 1056 10 21 70 170 193 22 268 194 2246 171 195 24 63 196 25 171 195 24 268 194 2246 172 197 2247 58 198 27 172 197 1057 268 194 1058 173 199 1059 64 200 1060 173 199 1059 268 194 1058 170 193 1061 62 201 1062 172 197 2247 269 202 2248 174 203 32 58 198 27 174 203 32 269 202 2248 175 204 2249 61 205 34 175 204 1063 269 202 1064 176 206 1065 65 207 1066 176 206 1065 269 202 1064 172 197 1057 64 200 1060 175 204 2249 270 208 2250 177 209 38 61 205 34 177 209 38 270 208 2250 178 210 2251 66 211 40 178 210 1067 270 208 1068 179 212 1069 67 213 1070 179 212 1069 270 208 1068 175 204 1063 65 207 1066 180 214 1071 271 215 1072 149 145 928 25 73 893 149 145 928 271 215 1072 249 60 298 23 59 297 249 60 298 271 215 1072 48 216 1073 22 53 291 150 147 976 159 167 1013 44 151 982 27 72 892 159 167 1013 150 147 976 43 141 924 48 216 1073 272 217 1074 116 54 292 22 53 291 116 54 292 272 217 1074 49 218 1075 20 47 266 49 218 1075 273 219 1076 112 48 283 20 47 266 112 48 283 273 219 1076 50 220 1077 18 43 259 50 220 1077 274 221 1078 109 42 256 18 43 259 109 42 256 274 221 1078 51 222 1079 13 29 135 169 189 1053 275 223 1080 52 224 1081 47 190 1054 51 222 1079 275 223 1080 102 30 137 13 29 135 102 30 137 275 223 1080 169 189 1053 7 10 39 206 192 1056 286 225 1082 103 33 140 10 21 70 103 33 140 286 225 1082 53 226 1083 15 38 249 53 226 1083 276 227 1084 141 122 911 15 38 249 141 122 911 276 227 1084 54 228 1085 38 103 912 156 101 1086 277 229 1087 55 230 1088 36 102 1089 54 228 1085 277 229 1087 156 101 1086 38 103 912 55 230 1088 182 231 1090 181 160 1091 36 102 1089 181 160 1091 182 231 1090 56 132 918 40 139 1092 202 129 20 283 232 43 183 233 44 60 130 21 201 234 45 68 235 46 183 233 44 283 232 43 56 132 918 144 131 917 145 137 923 40 139 1092 144 131 917 321 236 1093 339 66 886 26 65 885 145 137 923 276 227 1084 2069 237 1094 2070 238 1095 54 228 1085 290 239 47 208 240 48 184 241 49 278 242 50 210 243 51 290 239 47 278 242 50 185 244 52 2068 245 1096 2069 237 1094 276 227 1084 53 226 1083 277 229 1087 2071 246 1097 2073 247 1098 55 230 1088 289 248 53 209 249 54 186 250 55 279 251 56 208 240 48 289 248 53 279 251 56 184 241 49 2070 238 1095 2071 246 1097 277 229 1087 54 228 1085 275 223 1080 2075 252 1099 2076 253 1100 52 224 1081 294 254 2265 212 255 58 2053 256 59 280 257 60 214 258 1101 294 254 1102 280 257 1103 187 259 1104 2074 260 1105 2075 252 1099 275 223 1080 51 222 1079 286 225 1082 2072 261 1106 2068 245 1096 53 226 1083 292 262 63 210 243 51 185 244 52 2052 263 64 274 221 1078 2078 264 1107 2074 260 1105 51 222 1079 293 265 1108 214 258 1101 187 259 1104 2055 266 1109 213 267 1110 293 265 1108 2055 266 1109 188 268 1111 2079 269 1112 2078 264 1107 274 221 1078 50 220 1077 273 219 1076 2080 270 1113 2079 269 1112 50 220 1077 295 271 1114 213 267 1110 188 268 1111 2056 272 1115 215 273 1116 295 271 1114 2056 272 1115 189 274 1117 2081 275 1118 2080 270 1113 273 219 1076 49 218 1075 271 215 1072 2084 276 1119 2085 277 1120 48 216 1073 297 278 1121 216 279 1122 190 280 1123 281 281 1124 217 282 87 297 278 73 281 281 2271 191 283 88 2083 284 1125 2084 276 1119 271 215 1072 180 214 1071 272 217 1074 2082 285 1126 2081 275 1118 49 218 1075 296 286 1127 215 273 1116 189 274 1117 2057 287 1128 216 279 1122 296 286 1127 2057 287 1128 190 280 1123 2085 277 1120 2082 285 1126 272 217 1074 48 216 1073 182 231 1090 2064 288 1129 2065 133 919 56 132 918 291 289 120 211 290 121 2051 291 122 2050 292 123 209 249 54 291 289 120 2050 292 123 186 250 55 2073 247 1098 2064 288 1129 182 231 1090 55 230 1088 211 290 121 298 293 124 282 294 125 2051 291 122 298 293 124 323 295 126 322 296 127 282 294 125 70 297 128 192 298 129 139 116 7 57 119 10 59 117 8 139 116 7 192 298 129 71 299 130 69 300 131 193 301 132 143 127 11 60 130 21 70 297 128 57 119 10 143 127 11 193 301 132 73 302 133 194 303 134 170 193 22 63 196 25 62 201 1062 170 193 1061 194 303 1130 74 304 1131 59 117 8 71 299 130 205 305 136 204 114 5 62 201 1062 74 304 1131 195 306 1132 173 199 1059 64 200 1060 173 199 1059 195 306 1132 75 307 1133 64 200 1060 75 307 1133 196 308 1134 176 206 1065 65 207 1066 176 206 1065 196 308 1134 76 309 1135 77 310 1136 197 311 1137 178 210 1067 67 213 1070 66 211 40 178 210 2251 197 311 2267 78 312 143 65 207 1066 76 309 1135 198 313 1138 179 212 1069 77 310 1136 67 213 1070 179 212 1069 198 313 1138 72 314 201 199 315 202 183 233 44 68 235 46 69 300 131 60 130 21 183 233 44 199 315 202 200 316 203 72 314 201 68 235 46 201 234 45 338 317 204 200 316 203 201 234 45 337 318 205 338 317 204 337 318 205 66 211 40 78 312 143 283 232 43 336 319 206 337 318 205 201 234 45 177 209 38 336 319 206 335 320 207 61 205 34 284 128 19 334 321 208 335 320 207 202 129 20 174 203 32 334 321 208 333 322 209 58 198 27 285 115 6 332 323 210 333 322 209 203 118 9 171 195 24 332 323 210 331 324 232 63 196 25 331 324 232 204 114 5 205 305 136 330 325 233 331 324 232 330 325 233 73 302 133 63 196 25 329 326 234 292 262 63 2052 263 64 2054 327 235 2076 253 1100 2077 328 1139 328 329 1140 52 224 1081 52 224 1081 328 329 1140 327 330 1141 47 190 1054 287 191 1055 326 331 1142 327 330 1141 206 192 1056 168 188 1052 326 331 1142 325 332 1143 46 183 1047 288 184 1048 324 333 1144 325 332 1143 207 185 1049 193 301 132 289 248 53 208 240 48 70 297 128 209 249 54 289 248 53 193 301 132 69 300 131 210 243 51 292 262 63 205 305 136 71 299 130 208 240 48 290 239 47 192 298 129 70 297 128 192 298 129 290 239 47 210 243 51 71 299 130 199 315 202 291 289 120 209 249 54 69 300 131 211 290 121 291 289 120 199 315 202 72 314 201 292 262 63 329 326 234 330 325 233 205 305 136 2053 256 59 212 255 58 329 326 234 2054 327 235 195 306 1132 293 265 1108 213 267 1110 75 307 1133 214 258 1101 293 265 1108 195 306 1132 74 304 1131 212 255 58 294 254 2265 194 303 134 73 302 133 194 303 1130 294 254 1102 214 258 1101 74 304 1131 213 267 1110 295 271 1114 196 308 1134 75 307 1133 196 308 1134 295 271 1114 215 273 1116 76 309 1135 215 273 1116 296 286 1127 198 313 1138 76 309 1135 198 313 1138 296 286 1127 216 279 1122 77 310 1136 323 295 126 217 282 87 191 283 88 322 296 127 217 282 87 323 295 126 338 317 204 78 312 143 216 279 1122 297 278 1121 197 311 1137 77 310 1136 197 311 2267 297 278 73 217 282 87 78 312 143 200 316 203 298 293 124 211 290 121 72 314 201 247 27 89 301 334 1145 220 335 1146 100 28 90 221 336 1147 301 334 1145 247 27 89 12 26 86 107 39 252 302 337 1148 222 338 1149 106 40 253 220 335 1146 302 337 1148 107 39 252 100 28 90 111 45 262 303 339 1150 223 340 1151 110 46 265 222 338 1149 303 339 1150 111 45 262 106 40 253 115 51 289 304 341 1152 224 342 1153 114 52 290 223 340 1151 304 341 1152 115 51 289 110 46 265 119 57 295 305 343 1154 225 344 1155 118 58 296 224 342 1153 305 343 1154 119 57 295 114 52 290 122 63 304 306 345 1156 226 346 1157 121 64 884 225 344 1155 306 345 1156 122 63 304 118 58 296 152 148 978 346 347 1158 345 348 1159 151 149 980 152 148 978 121 64 884 226 346 1157 346 347 1158 241 163 983 344 349 1160 343 350 1161 242 165 987 241 163 983 151 149 980 345 348 1159 344 349 1160 167 186 1050 315 351 1162 221 336 1147 12 26 86 232 175 1038 316 352 1163 127 80 900 30 82 902 127 80 900 316 352 1163 162 353 1164 45 81 901 162 353 1164 316 352 1163 235 354 1165 79 355 1166 235 354 1165 316 352 1163 232 175 1038 80 177 1040 234 356 1167 317 357 1168 235 354 1165 80 177 1040 235 354 1165 317 357 1168 233 358 1169 79 355 1166 233 358 1169 317 357 1168 87 359 1170 3 360 1171 87 359 1170 317 357 1168 234 356 1167 2 361 1172 236 362 1173 318 363 1174 237 176 1039 81 171 1019 237 176 1039 318 363 1174 234 356 1167 80 177 1040 234 356 1167 318 363 1174 86 364 1175 2 361 1172 86 364 1175 318 363 1174 236 362 1173 1 365 1176 239 170 1018 319 366 1177 236 362 1173 81 171 1019 236 362 1173 319 366 1177 85 367 1178 1 365 1176 85 367 1178 319 366 1177 161 368 1179 0 369 1180 161 368 1179 319 366 1177 239 170 1018 82 173 1023 0 369 1180 161 368 1179 240 370 1181 4 371 1182 240 370 1181 161 368 1179 82 173 1023 83 166 1012 242 165 987 158 372 1183 240 370 1181 83 166 1012 240 370 1181 158 372 1183 84 373 1184 4 371 1182 343 350 1161 342 374 1185 158 372 1183 242 165 987 158 372 1183 342 374 1185 88 375 1186 84 373 1184 144 131 917 2066 134 920 2067 376 1187 321 236 1093 339 66 886 321 236 1093 180 214 1071 25 73 893 2067 376 1187 2083 284 1125 180 214 1071 321 236 1093 46 183 1047 325 332 1143 324 333 1144 165 180 1043 207 185 1049 325 332 1143 326 331 1142 287 191 1055 47 190 1054 327 330 1141 326 331 1142 168 188 1052 206 192 1056 327 330 1141 328 329 1140 286 225 1082 286 225 1082 328 329 1140 2077 328 1139 2072 261 1106 73 302 133 330 325 233 329 326 234 212 255 58 204 114 5 331 324 232 332 323 210 285 115 6 58 198 27 333 322 209 332 323 210 171 195 24 203 118 9 333 322 209 334 321 208 284 128 19 61 205 34 335 320 207 334 321 208 174 203 32 202 129 20 335 320 207 336 319 206 283 232 43 66 211 40 337 318 205 336 319 206 177 209 38 200 316 203 338 317 204 323 295 126 298 293 124 299 8 36 218 9 37 2022 377 1188 2017 378 1189 218 9 37 300 23 72 2021 379 1190 2022 377 1188 300 23 72 219 25 85 2023 380 1191 2021 379 1190 220 335 1146 301 334 1145 674 381 1192 592 382 1193 301 334 1145 221 336 1147 593 383 1194 674 381 1192 222 338 1149 302 337 1148 675 384 1195 594 385 1196 302 337 1148 220 335 1146 592 382 1193 675 384 1195 223 340 1151 303 339 1150 676 386 1197 595 387 1198 303 339 1150 222 338 1149 594 385 1196 676 386 1197 224 342 1153 304 341 1152 677 388 1199 596 389 1200 304 341 1152 223 340 1151 595 387 1198 677 388 1199 225 344 1155 305 343 1154 678 390 1201 597 391 1202 305 343 1154 224 342 1153 596 389 1200 678 390 1201 226 346 1157 306 345 1156 679 392 1203 598 393 1204 306 345 1156 225 344 1155 597 391 1202 679 392 1203 2036 394 1205 2037 395 1206 680 396 1207 599 397 1208 2037 395 1206 2038 398 1209 600 399 1210 680 396 1207 2038 398 1209 2039 400 1211 608 401 1212 600 399 1210 31 86 3 308 85 2 2019 402 144 2033 403 2261 602 404 148 681 405 149 2019 402 2264 2020 406 2259 34 95 16 309 94 15 2032 407 2262 2031 408 2252 309 94 15 31 86 3 2033 403 2261 2032 407 2262 219 25 85 310 111 904 2024 409 1213 2023 380 1191 684 410 1214 604 411 1215 2025 412 1216 2026 413 1217 2034 414 2258 2035 415 2260 685 416 158 605 417 159 2035 415 1218 2036 394 1205 599 397 1208 685 416 1219 345 348 1159 346 347 1158 1971 418 1220 1970 419 1221 346 347 1158 226 346 1157 598 393 1204 1971 418 1220 2020 406 2259 2016 420 2257 686 421 161 602 404 148 2016 420 2257 2034 414 2258 605 417 159 686 421 161 229 126 113 313 156 112 2028 422 2255 2027 423 2256 313 156 112 230 158 115 2029 424 2254 2028 422 2255 230 158 115 314 162 119 2030 425 2253 2029 424 2254 314 162 119 34 95 16 2031 408 2252 2030 425 2253 343 350 1161 344 349 1160 1969 426 1222 1968 427 1223 344 349 1160 345 348 1159 1970 419 1221 1969 426 1222 2039 400 1211 2040 428 1224 689 429 1225 608 401 1212 2040 428 1224 2041 430 1226 612 431 1227 689 429 1225 221 336 1147 315 351 1162 690 432 1228 593 383 1194 2041 430 1226 2042 433 1229 692 434 1230 612 431 1227 2042 433 1229 2043 435 1231 434 436 1232 692 434 1230 88 375 1186 342 374 1185 1967 437 1233 435 438 1234 342 374 1185 343 350 1161 1968 427 1223 1967 437 1233 436 439 1235 353 440 1236 437 441 1237 622 442 1238 438 443 1239 352 444 1240 436 439 1235 622 442 1238 439 445 1241 352 444 1240 438 443 1239 623 446 1242 440 447 1243 354 448 1244 439 445 1241 623 446 1242 355 449 1245 356 450 1246 441 451 1247 443 452 1248 441 451 1247 357 453 1249 442 454 1250 443 452 1248 444 455 1251 353 440 1236 436 439 1235 624 456 1252 436 439 1235 352 444 1240 445 457 1253 624 456 1252 445 457 1253 359 458 1254 446 459 1255 624 456 1252 446 459 1255 358 460 1256 444 455 1251 624 456 1252 445 457 1253 352 444 1240 439 445 1241 625 461 1257 439 445 1241 354 448 1244 447 462 1258 625 461 1257 447 462 1258 360 463 1259 448 464 1260 625 461 1257 448 464 1260 359 458 1254 445 457 1253 625 461 1257 361 465 1261 357 453 1249 441 451 1247 626 466 1262 441 451 1247 356 450 1246 449 467 1263 626 466 1262 362 468 1264 363 469 1265 450 470 1266 451 471 1267 450 470 1266 356 450 1246 355 449 1245 451 471 1267 452 472 1268 358 460 1256 446 459 1255 627 473 1269 446 459 1255 359 458 1254 453 474 1270 627 473 1269 453 474 1270 365 475 1271 454 476 1272 627 473 1269 454 476 1272 364 477 1273 452 472 1268 627 473 1269 449 467 1263 356 450 1246 450 470 1266 456 478 1274 450 470 1266 363 469 1265 455 479 1275 456 478 1274 457 480 1276 363 469 1265 362 468 1264 458 481 1277 367 482 1278 366 483 1279 457 480 1276 458 481 1277 455 479 1275 363 469 1265 457 480 1276 460 484 1280 457 480 1276 366 483 1279 459 485 1281 460 484 1280 369 486 1282 368 487 1283 462 488 1284 461 489 1285 462 488 1284 366 483 1279 367 482 1278 461 489 1285 459 485 1281 366 483 1279 462 488 1284 464 490 1286 462 488 1284 368 487 1283 463 491 1287 464 490 1286 371 492 1288 370 493 1289 466 494 1290 465 495 1291 466 494 1290 368 487 1283 369 486 1282 465 495 1291 463 491 1287 368 487 1283 466 494 1290 468 496 1292 466 494 1290 370 493 1289 467 497 1293 468 496 1292 372 498 1294 373 499 1295 469 500 1296 628 501 1297 469 500 1296 370 493 1289 371 492 1288 628 501 1297 467 497 1293 370 493 1289 469 500 1296 471 502 1298 469 500 1296 373 499 1295 470 503 1299 471 502 1298 375 504 1300 472 505 1301 1965 506 1302 1964 507 1303 472 505 1301 377 508 1304 1966 509 1305 1965 506 1302 1966 509 1305 376 510 1306 473 511 1307 1965 506 1302 473 511 1307 374 512 1308 1964 507 1303 1965 506 1302 474 513 1309 378 514 1310 475 515 1311 629 516 1312 475 515 1311 379 517 1313 476 518 1314 629 516 1312 476 518 1314 377 508 1304 472 505 1301 629 516 1312 472 505 1301 375 504 1300 474 513 1309 629 516 1312 476 518 1314 379 517 1313 399 519 1315 477 520 1316 476 518 1314 477 520 1316 380 521 1317 377 508 1304 478 522 162 381 523 163 479 524 164 630 525 165 479 524 174 382 526 175 480 527 176 630 525 177 480 527 176 384 528 178 481 529 179 630 525 177 481 529 166 383 530 167 478 522 162 630 525 165 482 531 168 385 532 169 483 533 170 631 534 171 483 533 170 381 523 163 478 522 162 631 534 171 478 522 162 383 530 167 484 535 172 631 534 171 484 535 172 386 536 173 482 531 168 631 534 171 485 537 180 386 536 173 484 535 172 632 538 181 484 535 172 383 530 167 486 539 182 632 538 181 486 539 182 387 540 183 511 541 184 632 538 181 511 541 184 390 542 185 485 537 180 632 538 181 487 543 186 391 544 187 488 545 188 633 546 189 488 545 188 388 547 190 489 548 191 633 546 189 489 548 191 386 536 173 485 537 180 633 546 189 485 537 180 390 542 185 487 543 186 633 546 189 453 474 1270 359 458 1254 448 464 1260 634 549 1318 448 464 1260 360 463 1259 490 550 1319 634 549 1318 490 550 1319 389 551 1320 491 552 1321 634 549 1318 491 552 1321 365 475 1271 453 474 1270 634 549 1318 575 553 236 405 554 237 492 555 238 659 556 239 492 555 238 403 557 240 574 558 241 659 556 239 454 476 1272 365 475 1271 493 559 1322 635 560 1323 493 559 1322 391 544 1324 487 543 1325 635 560 1323 487 543 1325 390 542 1326 494 561 1327 635 560 1323 494 561 1327 364 477 1273 454 476 1272 635 560 1323 491 552 1321 389 551 1320 495 562 1328 636 563 1329 495 562 1328 392 564 1330 508 565 1331 636 563 1329 508 565 1331 391 544 1324 493 559 1322 636 563 1329 493 559 1322 365 475 1271 491 552 1321 636 563 1329 496 566 242 406 567 243 573 568 244 658 569 245 574 558 241 403 557 240 496 566 242 658 569 245 651 570 1332 2087 571 1333 2088 572 1334 552 573 1335 497 574 1336 378 514 1310 474 513 1309 637 575 1337 474 513 1309 375 504 1300 498 576 1338 637 575 1337 498 576 211 394 577 212 499 578 213 637 575 214 499 578 213 395 579 215 497 574 216 637 575 214 397 580 1339 396 581 1340 501 582 1341 500 583 1342 501 582 1341 373 499 1295 372 498 1294 500 583 1342 502 584 1343 374 512 1308 473 511 1307 638 585 1344 473 511 1307 376 510 1306 503 586 1345 638 585 1344 503 586 1345 397 580 1339 500 583 1342 638 585 1344 500 583 1342 372 498 1294 502 584 1343 638 585 1344 470 503 1299 373 499 1295 501 582 1341 505 587 1346 501 582 1341 396 581 1340 504 588 1347 505 587 1346 609 589 1348 1966 509 1305 377 508 1304 380 521 1317 609 589 1348 398 590 1349 376 510 1306 1966 509 1305 506 591 217 384 528 178 480 527 176 639 592 218 480 527 176 382 526 175 507 593 219 639 592 218 507 593 219 395 579 215 499 578 213 639 592 218 499 578 213 394 577 212 506 591 217 639 592 218 508 565 192 392 564 193 509 594 194 640 595 195 509 594 194 400 596 196 510 597 197 640 595 195 510 597 197 388 547 190 488 545 188 640 595 195 488 545 188 391 544 187 508 565 192 640 595 195 506 591 217 394 577 212 538 598 226 641 599 227 538 598 198 387 540 183 486 539 182 641 599 199 486 539 182 383 530 167 481 529 166 641 599 199 481 529 179 384 528 178 506 591 217 641 599 227 489 548 191 388 547 190 510 597 197 642 600 220 510 597 197 400 596 196 512 601 221 642 600 220 512 601 221 385 532 169 482 531 168 642 600 220 482 531 168 386 536 173 489 548 191 642 600 220 504 588 1347 396 581 1340 513 602 1350 620 603 1351 513 602 1350 429 604 1352 621 605 1353 620 603 1351 515 606 1354 398 590 1349 516 607 1355 643 608 1356 516 607 1355 427 609 1357 618 610 1358 643 608 1356 618 610 1358 428 611 1359 617 612 1360 643 608 1356 617 612 1360 397 580 1339 515 606 1354 643 608 1356 428 611 1359 429 604 1352 513 602 1350 617 612 1360 513 602 1350 396 581 1340 397 580 1339 617 612 1360 516 607 1355 398 590 1349 609 589 1348 644 613 1361 609 589 1348 380 521 1317 610 614 1362 644 613 1361 610 614 1362 426 615 1363 616 616 1364 644 613 1361 616 616 1364 427 609 1357 516 607 1355 644 613 1361 442 454 1250 357 453 1249 520 617 1365 519 618 1366 521 619 1367 401 620 1368 522 621 1369 645 622 1370 522 621 1369 442 454 1250 519 618 1366 645 622 1370 437 441 1237 353 440 1236 579 623 1371 661 624 1372 520 617 1365 357 453 1249 361 465 1261 523 625 1373 522 621 1369 401 620 1368 524 626 1374 646 627 1375 524 626 1374 402 628 1376 525 629 1377 646 627 1375 525 629 1377 355 449 1245 443 452 1248 646 627 1375 443 452 1248 442 454 1250 522 621 1369 646 627 1375 579 623 1371 353 440 1236 444 455 1251 660 630 1378 444 455 1251 358 460 1256 578 631 1379 660 630 1378 526 632 2273 409 633 247 527 634 248 647 635 2268 527 634 248 404 636 250 528 637 251 647 635 2268 528 637 1380 410 638 1381 529 639 1382 647 635 1383 529 639 1382 408 640 1384 526 632 1385 647 635 1383 528 637 251 404 636 250 530 641 255 648 642 2269 530 641 255 407 643 257 531 644 258 648 642 2269 531 644 1386 411 645 1387 532 646 1388 648 642 1389 532 646 1388 410 638 1381 528 637 1380 648 642 1389 531 644 258 407 643 257 533 647 261 649 648 2272 533 647 261 412 649 263 534 650 264 649 648 2272 534 650 1390 413 651 1391 535 652 1392 649 648 1393 535 652 1392 411 645 1387 531 644 1386 649 648 1393 393 653 1394 374 512 1308 502 584 1343 537 654 1395 502 584 1343 372 498 1294 628 501 1297 537 654 1395 628 501 1297 371 492 1288 536 655 1396 537 654 1395 503 586 1345 376 510 1306 398 590 1349 515 606 1354 515 606 1354 397 580 1339 503 586 1345 536 655 1396 371 492 1288 465 495 1291 540 656 1397 465 495 1291 369 486 1282 539 657 1398 540 656 1397 539 657 1398 369 486 1282 461 489 1285 542 658 1399 461 489 1285 367 482 1278 541 659 1400 542 658 1399 541 659 1400 367 482 1278 458 481 1277 544 660 1401 458 481 1277 362 468 1264 543 661 1402 544 660 1401 525 629 1377 402 628 1376 545 662 1403 546 663 1404 543 661 1402 362 468 1264 451 471 1267 546 663 1404 451 471 1267 355 449 1245 525 629 1377 546 663 1404 578 631 1379 358 460 1256 452 472 1268 577 664 1405 452 472 1268 364 477 1273 547 665 1406 577 664 1405 547 665 1406 364 477 1273 494 561 1327 549 666 1407 494 561 1327 390 542 1326 548 667 1408 549 666 1407 511 541 1409 387 540 1410 550 668 1411 551 669 1412 548 667 1408 390 542 1326 511 541 1409 551 669 1412 550 668 1411 387 540 1410 538 598 1413 650 670 1414 538 598 1413 394 577 1415 552 573 1335 650 670 1414 573 568 244 406 567 243 553 671 267 657 672 268 572 673 269 657 672 268 553 671 267 414 674 270 552 573 1335 394 577 1415 498 576 1338 651 570 1332 651 570 1332 498 576 1338 375 504 1300 1964 507 1303 1945 675 1416 549 666 1407 548 667 1408 2091 676 1417 2092 677 1418 580 678 271 663 679 272 652 680 273 554 681 274 663 679 272 582 682 275 555 683 276 652 680 273 2093 684 1419 547 665 1406 549 666 1407 2092 677 1418 551 669 1412 550 668 1411 2095 685 1420 2090 686 1421 581 687 277 662 688 278 653 689 279 556 690 280 662 688 278 580 678 271 554 681 274 653 689 279 2091 676 1417 548 667 1408 551 669 1412 2090 686 1421 546 663 1404 545 662 1403 2097 691 1422 2098 692 1423 584 693 281 667 694 282 654 695 2270 557 696 284 667 694 1424 586 697 1425 558 698 1426 654 695 1427 2099 699 1428 543 661 1402 546 663 1404 2098 692 1423 577 664 1405 547 665 1406 2093 684 1419 2094 700 1429 582 682 275 665 701 287 2060 702 288 555 683 276 544 660 1401 543 661 1402 2099 699 1428 2100 703 1430 586 697 1425 666 704 1431 2061 705 1432 558 698 1426 666 704 1431 585 706 1433 559 707 1434 2061 705 1432 2101 708 1435 541 659 1400 544 660 1401 2100 703 1430 542 658 1399 541 659 1400 2101 708 1435 2102 709 1436 585 706 1433 668 710 1437 2062 711 1438 559 707 1434 668 710 1437 587 712 1439 560 713 1440 2062 711 1438 2103 714 1441 539 657 1398 542 658 1399 2102 709 1436 537 654 1395 536 655 1396 2105 715 1442 2106 716 1443 588 717 1444 670 718 1445 655 719 1446 561 720 1447 670 718 2275 589 721 301 562 722 302 655 719 299 2107 723 1448 393 653 1394 537 654 1395 2106 716 1443 540 656 1397 539 657 1398 2103 714 1441 2104 724 1449 587 712 1439 669 725 1450 2063 726 1451 560 713 1440 669 725 1450 588 717 1444 561 720 1447 2063 726 1451 2105 715 1442 536 655 1396 540 656 1397 2104 724 1449 650 670 1414 552 573 1335 2088 572 1334 2089 727 1452 583 728 305 664 729 306 2059 730 307 2058 731 308 664 729 306 581 687 277 556 690 280 2059 730 307 2095 685 1420 550 668 1411 650 670 1414 2089 727 1452 671 732 309 583 728 305 2058 731 308 656 733 310 1947 734 311 671 732 309 656 733 310 1946 735 970 563 736 971 416 737 972 403 557 240 492 555 238 563 736 971 492 555 238 405 554 237 417 738 973 564 739 974 415 740 975 406 567 243 496 566 242 564 739 974 496 566 242 403 557 240 416 737 972 565 741 2274 419 742 977 409 633 247 526 632 2273 565 741 1453 526 632 1385 408 640 1384 420 743 1454 576 744 979 417 738 973 405 554 237 575 553 236 566 745 1455 420 743 1454 408 640 1384 529 639 1382 566 745 1455 529 639 1382 410 638 1381 421 746 1456 567 747 1457 421 746 1456 410 638 1381 532 646 1388 567 747 1457 532 646 1388 411 645 1387 422 748 1458 568 749 1459 423 750 1460 413 651 1391 534 650 1390 568 749 984 534 650 264 412 649 263 424 751 986 569 752 1461 422 748 1458 411 645 1387 535 652 1392 569 752 1461 535 652 1392 413 651 1391 423 750 1460 570 753 988 418 754 989 414 674 270 553 671 267 570 753 988 553 671 267 406 567 243 415 740 975 414 674 270 418 754 989 571 755 990 572 673 269 572 673 269 571 755 990 1963 756 991 1962 757 992 424 751 986 412 649 263 1962 757 992 1963 756 991 657 672 268 572 673 269 1962 757 992 1961 758 993 533 647 261 407 643 257 1960 759 994 1961 758 993 658 569 245 573 568 244 1960 759 994 1959 760 995 530 641 255 404 636 250 1958 761 996 1959 760 995 659 556 239 574 558 241 1958 761 996 1957 762 997 527 634 248 409 633 247 1956 763 998 1957 762 997 576 744 979 575 553 236 1956 763 998 1955 764 999 409 633 247 419 742 977 1955 764 999 1956 763 998 2060 702 288 665 701 287 1954 765 1000 1953 766 1001 2097 691 1422 545 662 1403 1952 767 1462 2096 768 1463 545 662 1403 402 628 1376 1951 769 1464 1952 767 1462 660 630 1378 578 631 1379 1951 769 1464 1950 770 1465 524 626 1374 401 620 1368 1949 771 1466 1950 770 1465 661 624 1372 579 623 1371 1949 771 1466 1948 772 1467 564 739 974 416 737 972 580 678 271 662 688 278 581 687 277 415 740 975 564 739 974 662 688 278 582 682 275 417 738 973 576 744 979 665 701 287 580 678 271 416 737 972 563 736 971 663 679 272 563 736 971 417 738 973 582 682 275 663 679 272 570 753 988 415 740 975 581 687 277 664 729 306 583 728 305 418 754 989 570 753 988 664 729 306 665 701 287 576 744 979 1955 764 999 1954 765 1000 1954 765 1000 584 693 281 557 696 284 1953 766 1001 566 745 1455 421 746 1456 585 706 1433 666 704 1431 586 697 1425 420 743 1454 566 745 1455 666 704 1431 584 693 281 419 742 977 565 741 2274 667 694 282 565 741 1453 420 743 1454 586 697 1425 667 694 1424 585 706 1433 421 746 1456 567 747 1457 668 710 1437 567 747 1457 422 748 1458 587 712 1439 668 710 1437 587 712 1439 422 748 1458 569 752 1461 669 725 1450 569 752 1461 423 750 1460 588 717 1444 669 725 1450 589 721 301 1947 734 311 1946 735 970 562 722 302 589 721 301 424 751 986 1963 756 991 1947 734 311 588 717 1444 423 750 1460 568 749 1459 670 718 1445 568 749 984 424 751 986 589 721 301 670 718 2275 571 755 990 418 754 989 583 728 305 671 732 309 590 773 1468 354 448 1244 440 447 1243 672 774 1469 447 462 1258 354 448 1244 590 773 1468 673 775 1470 591 776 1471 360 463 1259 447 462 1258 673 775 1470 626 466 1262 449 467 1263 592 382 1193 674 381 1192 593 383 1194 361 465 1261 626 466 1262 674 381 1192 456 478 1274 455 479 1275 594 385 1196 675 384 1195 592 382 1193 449 467 1263 456 478 1274 675 384 1195 460 484 1280 459 485 1281 595 387 1198 676 386 1197 594 385 1196 455 479 1275 460 484 1280 676 386 1197 464 490 1286 463 491 1287 596 389 1200 677 388 1199 595 387 1198 459 485 1281 464 490 1286 677 388 1199 468 496 1292 467 497 1293 597 391 1202 678 390 1201 596 389 1200 463 491 1287 468 496 1292 678 390 1201 471 502 1298 470 503 1299 598 393 1204 679 392 1203 597 391 1202 467 497 1293 471 502 1298 679 392 1203 475 515 1311 378 514 1310 599 397 1208 680 396 1207 600 399 1210 379 517 1313 475 515 1311 680 396 1207 399 519 1315 379 517 1313 600 399 1210 608 401 1212 479 524 164 381 523 163 601 777 222 681 405 223 602 404 148 382 526 175 479 524 174 681 405 149 483 533 170 385 532 169 603 778 224 682 779 225 601 777 222 381 523 163 483 533 170 682 779 225 490 550 1319 360 463 1259 591 776 1471 683 780 1472 604 411 1215 389 551 1320 490 550 1319 683 780 1472 495 562 1328 389 551 1320 604 411 1215 684 410 1214 606 781 1473 392 564 1330 495 562 1328 684 410 1214 497 574 216 395 579 215 605 417 159 685 416 158 599 397 1208 378 514 1310 497 574 1336 685 416 1219 505 587 1346 504 588 1347 1970 419 1221 1971 418 1220 505 587 1346 1971 418 1220 598 393 1204 470 503 1299 507 593 219 382 526 175 602 404 148 686 421 161 605 417 159 395 579 215 507 593 219 686 421 161 509 594 194 392 564 193 606 781 228 687 782 229 607 783 230 400 596 196 509 594 194 687 782 229 512 601 221 400 596 196 607 783 230 688 784 231 603 778 224 385 532 169 512 601 221 688 784 231 620 603 1351 621 605 1353 1968 427 1223 1969 426 1222 620 603 1351 1969 426 1222 1970 419 1221 504 588 1347 518 785 1474 399 519 1315 608 401 1212 689 429 1225 612 431 1227 425 786 1475 518 785 1474 689 429 1225 523 625 1373 361 465 1261 593 383 1194 690 432 1228 610 614 1362 380 521 1317 477 520 1316 691 787 1476 477 520 1316 399 519 1315 518 785 1474 691 787 1476 518 785 1474 425 786 1475 614 788 1477 691 787 1476 614 788 1477 426 615 1363 610 614 1362 691 787 1476 611 789 1478 425 786 1475 612 431 1227 692 434 1230 434 436 1232 350 790 1479 611 789 1478 692 434 1230 613 791 1480 426 615 1363 614 788 1477 693 792 1481 614 788 1477 425 786 1475 611 789 1478 693 792 1481 611 789 1478 350 790 1479 433 793 1482 693 792 1481 433 793 1482 349 794 1483 613 791 1480 693 792 1481 615 795 1484 427 609 1357 616 616 1364 694 796 1485 616 616 1364 426 615 1363 613 791 1480 694 796 1485 613 791 1480 349 794 1483 432 797 1486 694 796 1485 432 797 1486 348 798 1487 615 795 1484 694 796 1485 618 610 1358 427 609 1357 615 795 1484 695 799 1488 615 795 1484 348 798 1487 431 800 1489 695 799 1488 431 800 1489 347 801 1490 517 802 1491 695 799 1488 517 802 1491 428 611 1359 618 610 1358 695 799 1488 347 801 1490 351 803 1492 619 804 1493 517 802 1491 619 804 1493 429 604 1352 428 611 1359 517 802 1491 621 605 1353 429 604 1352 619 804 1493 514 805 1494 619 804 1493 351 803 1492 430 806 1495 514 805 1494 1968 427 1223 621 605 1353 514 805 1494 1967 437 1233 514 805 1494 430 806 1495 435 438 1234 1967 437 1233 696 807 1496 697 808 1497 710 809 1498 709 810 1499 697 808 1497 698 811 1500 711 812 1501 710 809 1498 698 811 1500 699 813 1502 712 814 1503 711 812 1501 699 813 1502 700 815 1504 713 816 1505 712 814 1503 700 815 1504 701 817 1506 714 818 1507 713 816 1505 701 817 1506 702 819 1508 715 820 1509 714 818 1507 702 819 1508 703 821 1510 716 822 1511 715 820 1509 703 821 1510 704 823 1512 717 824 1513 716 822 1511 704 823 1512 705 825 1514 718 826 1515 717 824 1513 705 825 1514 706 827 1516 719 828 1517 718 826 1515 706 827 1516 707 829 1518 720 830 1519 719 828 1517 707 829 1518 1331 831 1520 721 832 1521 720 830 1519 708 833 1522 722 834 1523 1979 835 1524 1980 836 1525 709 810 1499 710 809 1498 724 837 1526 723 838 1527 710 809 1498 711 812 1501 725 839 1528 724 837 1526 711 812 1501 712 814 1503 726 840 1529 725 839 1528 712 814 1503 713 816 1505 727 841 1530 726 840 1529 713 816 1505 714 818 1507 728 842 1531 727 841 1530 714 818 1507 715 820 1509 729 843 1532 728 842 1531 715 820 1509 716 822 1511 730 844 1533 729 843 1532 716 822 1511 717 824 1513 731 845 1534 730 844 1533 717 824 1513 718 826 1515 732 846 1535 731 845 1534 718 826 1515 719 828 1517 733 847 1536 732 846 1535 719 828 1517 720 830 1519 734 848 1537 733 847 1536 1333 849 1538 721 832 1521 1979 835 1524 1982 850 1539 723 838 1527 724 837 1526 737 851 1540 736 852 1541 724 837 1526 725 839 1528 738 853 1542 737 851 1540 725 839 1528 726 840 1529 739 854 1543 738 853 1542 726 840 1529 727 841 1530 740 855 1544 739 854 1543 727 841 1530 728 842 1531 741 856 1545 740 855 1544 728 842 1531 729 843 1532 742 857 1546 741 856 1545 729 843 1532 730 844 1533 743 858 1547 742 857 1546 730 844 1533 731 845 1534 744 859 1548 743 858 1547 731 845 1534 732 846 1535 745 860 1549 744 859 1548 732 846 1535 733 847 1536 746 861 1550 745 860 1549 733 847 1536 734 848 1537 747 862 1551 746 861 1550 1334 863 1552 1333 849 1538 1982 850 1539 1983 864 1553 736 852 1541 737 851 1540 750 865 1554 749 866 1555 737 851 1540 738 853 1542 751 867 1556 750 865 1554 738 853 1542 739 854 1543 752 868 1557 751 867 1556 739 854 1543 740 855 1544 753 869 1558 752 868 1557 740 855 1544 741 856 1545 754 870 1559 753 869 1558 741 856 1545 742 857 1546 755 871 1560 754 870 1559 742 857 1546 743 858 1547 756 872 1561 755 871 1560 743 858 1547 744 859 1548 757 873 1562 756 872 1561 744 859 1548 745 860 1549 758 874 1563 757 873 1562 745 860 1549 746 861 1550 759 875 1564 758 874 1563 746 861 1550 747 862 1551 760 876 1565 759 875 1564 1335 877 1566 1334 863 1552 1983 864 1553 1984 878 1567 749 866 1555 750 865 1554 763 879 1568 762 880 1569 750 865 1554 751 867 1556 764 881 1570 763 879 1568 751 867 1556 752 868 1557 765 882 1571 764 881 1570 752 868 1557 753 869 1558 766 883 1572 765 882 1571 753 869 1558 754 870 1559 767 884 1573 766 883 1572 754 870 1559 755 871 1560 768 885 1574 767 884 1573 755 871 1560 756 872 1561 769 886 1575 768 885 1574 756 872 1561 757 873 1562 770 887 1576 769 886 1575 757 873 1562 758 874 1563 771 888 1577 770 887 1576 758 874 1563 759 875 1564 772 889 1578 771 888 1577 759 875 1564 760 876 1565 773 890 1579 772 889 1578 1336 891 1580 1335 877 1566 1984 878 1567 1981 892 1581 762 880 1569 763 879 1568 776 893 1582 775 894 1583 763 879 1568 764 881 1570 777 895 1584 776 893 1582 764 881 1570 765 882 1571 778 896 1585 777 895 1584 765 882 1571 766 883 1572 779 897 1586 778 896 1585 766 883 1572 767 884 1573 780 898 1587 779 897 1586 767 884 1573 768 885 1574 781 899 1588 780 898 1587 768 885 1574 769 886 1575 782 900 1589 781 899 1588 769 886 1575 770 887 1576 783 901 1590 782 900 1589 770 887 1576 771 888 1577 784 902 1591 783 901 1590 771 888 1577 772 889 1578 785 903 1592 784 902 1591 772 889 1578 773 890 1579 786 904 1593 785 903 1592 2 361 1172 1336 891 1580 1981 892 1581 87 359 1170 775 894 1583 776 893 1582 788 905 1594 787 906 1595 776 893 1582 777 895 1584 789 907 1596 788 905 1594 777 895 1584 778 896 1585 790 908 1597 789 907 1596 778 896 1585 779 897 1586 791 909 1598 790 908 1597 779 897 1586 780 898 1587 792 910 1599 791 909 1598 780 898 1587 781 899 1588 793 911 1600 792 910 1599 781 899 1588 782 900 1589 794 912 1601 793 911 1600 782 900 1589 783 901 1590 795 913 1602 794 912 1601 783 901 1590 784 902 1591 796 914 1603 795 913 1602 784 902 1591 785 903 1592 797 915 1604 796 914 1603 785 903 1592 786 904 1593 798 916 1605 797 915 1604 787 906 1595 788 905 1594 800 917 1606 799 918 1607 788 905 1594 789 907 1596 801 919 1608 800 917 1606 789 907 1596 790 908 1597 802 920 1609 801 919 1608 790 908 1597 791 909 1598 803 921 1610 802 920 1609 791 909 1598 792 910 1599 804 922 1611 803 921 1610 792 910 1599 793 911 1600 805 923 1612 804 922 1611 793 911 1600 794 912 1601 806 924 1613 805 923 1612 794 912 1601 795 913 1602 807 925 1614 806 924 1613 795 913 1602 796 914 1603 808 926 1615 807 925 1614 796 914 1603 797 915 1604 809 927 1616 808 926 1615 797 915 1604 798 916 1605 810 928 1617 809 927 1616 799 918 1607 800 917 1606 812 929 1618 811 930 1619 800 917 1606 801 919 1608 813 931 1620 812 929 1618 801 919 1608 802 920 1609 814 932 1621 813 931 1620 802 920 1609 803 921 1610 815 933 1622 814 932 1621 803 921 1610 804 922 1611 816 934 1623 815 933 1622 804 922 1611 805 923 1612 817 935 1624 816 934 1623 805 923 1612 806 924 1613 818 936 1625 817 935 1624 806 924 1613 807 925 1614 819 937 1626 818 936 1625 807 925 1614 808 926 1615 820 938 1627 819 937 1626 808 926 1615 809 927 1616 821 939 1628 820 938 1627 809 927 1616 810 928 1617 822 940 1629 821 939 1628 811 930 1619 812 929 1618 824 941 1630 823 942 1631 812 929 1618 813 931 1620 825 943 1632 824 941 1630 813 931 1620 814 932 1621 826 944 1633 825 943 1632 814 932 1621 815 933 1622 827 945 1634 826 944 1633 815 933 1622 816 934 1623 828 946 1635 827 945 1634 816 934 1623 817 935 1624 829 947 1636 828 946 1635 817 935 1624 818 936 1625 830 948 1637 829 947 1636 818 936 1625 819 937 1626 831 949 1638 830 948 1637 819 937 1626 820 938 1627 832 950 1639 831 949 1638 820 938 1627 821 939 1628 833 951 1640 832 950 1639 821 939 1628 822 940 1629 834 952 1641 833 951 1640 823 942 1631 824 941 1630 835 953 1642 846 954 1643 824 941 1630 825 943 1632 836 955 1644 835 953 1642 825 943 1632 826 944 1633 837 956 1645 836 955 1644 826 944 1633 827 945 1634 838 957 1646 837 956 1645 827 945 1634 828 946 1635 839 958 1647 838 957 1646 828 946 1635 829 947 1636 840 959 1648 839 958 1647 829 947 1636 830 948 1637 841 960 1649 840 959 1648 830 948 1637 831 949 1638 842 961 1650 841 960 1649 831 949 1638 832 950 1639 843 962 1651 842 961 1650 832 950 1639 833 951 1640 844 963 1652 843 962 1651 833 951 1640 834 952 1641 845 964 1653 844 963 1652 846 954 1643 835 953 1642 848 965 1654 847 966 1655 835 953 1642 836 955 1644 849 967 1656 848 965 1654 836 955 1644 837 956 1645 850 968 1657 849 967 1656 837 956 1645 838 957 1646 851 969 1658 850 968 1657 838 957 1646 839 958 1647 852 970 1659 851 969 1658 839 958 1647 840 959 1648 853 971 1660 852 970 1659 840 959 1648 841 960 1649 854 972 1661 853 971 1660 841 960 1649 842 961 1650 855 973 1662 854 972 1661 842 961 1650 843 962 1651 856 974 1663 855 973 1662 843 962 1651 844 963 1652 857 975 1664 856 974 1663 844 963 1652 845 964 1653 858 976 1665 857 975 1664 847 966 1655 848 965 1654 860 977 1666 859 978 1667 848 965 1654 849 967 1656 861 979 1668 860 977 1666 849 967 1656 850 968 1657 862 980 1669 861 979 1668 853 971 1660 854 972 1661 863 981 1670 854 972 1661 855 973 1662 864 982 1671 863 981 1670 855 973 1662 856 974 1663 865 983 1672 864 982 1671 856 974 1663 857 975 1664 866 984 1673 865 983 1672 857 975 1664 858 976 1665 867 985 1674 866 984 1673 859 978 1667 860 977 1666 869 986 1675 868 987 1676 860 977 1666 861 979 1668 870 988 1677 869 986 1675 868 987 1676 869 986 1675 872 989 1678 871 990 1679 869 986 1675 870 988 1677 873 991 1680 872 989 1678 875 992 1681 874 993 1682 864 982 1671 865 983 1672 865 983 1672 866 984 1673 876 994 1683 875 992 1681 866 984 1673 867 985 1674 877 995 1684 876 994 1683 871 990 1679 872 989 1678 879 996 1685 878 997 1686 872 989 1678 873 991 1680 880 998 1687 879 996 1685 882 999 1688 881 1000 1689 874 993 1682 875 992 1681 875 992 1681 876 994 1683 883 1001 1690 882 999 1688 876 994 1683 877 995 1684 884 1002 1691 883 1001 1690 878 997 1686 879 996 1685 886 1003 1692 885 1004 1693 879 996 1685 880 998 1687 887 1005 1694 886 1003 1692 889 1006 1695 888 1007 1696 881 1000 1689 882 999 1688 882 999 1688 883 1001 1690 890 1008 1697 889 1006 1695 883 1001 1690 884 1002 1691 891 1009 1698 890 1008 1697 885 1004 1693 886 1003 1692 893 1010 1699 892 1011 1700 886 1003 1692 887 1005 1694 894 1012 1701 893 1010 1699 1313 1013 1702 888 1007 1696 889 1006 1695 895 1014 1703 889 1006 1695 890 1008 1697 896 1015 1704 895 1014 1703 890 1008 1697 891 1009 1698 1314 1016 1705 896 1015 1704 891 1009 1698 1337 1017 1706 897 1018 1707 1314 1016 1705 1985 1019 1708 1337 1017 1706 320 1020 1709 1986 1021 1710 892 1011 1700 893 1010 1699 899 1022 1711 898 1023 1712 893 1010 1699 894 1012 1701 900 1024 1713 899 1022 1711 1312 1025 1714 1311 1026 1715 906 1027 1716 905 1028 1717 697 808 1497 696 807 1496 907 1029 1718 698 811 1500 697 808 1497 907 1029 1718 699 813 1502 698 811 1500 907 1029 1718 700 815 1504 699 813 1502 907 1029 1718 701 817 1506 700 815 1504 907 1029 1718 702 819 1508 701 817 1506 907 1029 1718 703 821 1510 702 819 1508 907 1029 1718 704 823 1512 703 821 1510 907 1029 1718 705 825 1514 704 823 1512 907 1029 1718 706 827 1516 705 825 1514 907 1029 1718 707 829 1518 706 827 1516 907 1029 1718 707 829 1518 907 1029 1718 1331 831 1520 708 833 1522 1980 836 1525 907 1029 1718 941 1030 312 980 1031 313 1044 1032 314 1007 1033 315 1007 1033 315 1028 1034 316 956 1035 317 941 1030 312 942 1036 318 958 1037 319 1028 1034 316 1007 1033 315 1007 1033 315 1044 1032 314 981 1038 320 942 1036 318 943 1039 321 979 1040 322 1043 1041 323 1008 1042 324 1008 1042 324 1029 1043 325 955 1044 326 943 1039 321 941 1030 312 956 1035 317 1029 1043 325 1008 1042 324 1008 1042 324 1043 1041 323 980 1031 313 941 1030 312 944 1045 327 978 1046 328 1042 1047 329 1009 1048 330 1009 1048 330 1027 1049 331 953 1050 332 944 1045 327 943 1039 321 955 1044 326 1027 1049 331 1009 1048 330 1009 1048 330 1042 1047 329 979 1040 322 943 1039 321 945 1051 333 977 1052 334 1041 1053 335 1010 1054 336 1010 1054 336 1030 1055 337 960 1056 338 945 1051 333 944 1045 327 953 1050 332 1030 1055 337 1010 1054 336 1010 1054 336 1041 1053 335 978 1046 328 944 1045 327 1011 1057 339 1032 1058 340 964 1059 341 946 1060 342 945 1051 333 960 1056 338 1032 1058 340 1011 1057 339 1011 1057 339 946 1060 342 1066 1061 343 1067 1062 344 947 1063 345 976 1064 346 1040 1065 347 1012 1066 348 1012 1066 348 1034 1067 349 968 1068 350 947 1063 345 946 1060 342 964 1059 341 1034 1067 349 1012 1066 348 1012 1066 348 1040 1065 347 1066 1061 343 946 1060 342 948 1069 351 975 1070 352 1039 1071 353 1013 1072 354 1013 1072 354 1036 1073 355 971 1074 356 948 1069 351 947 1063 345 968 1068 350 1036 1073 355 1013 1072 354 1013 1072 354 1039 1071 353 976 1064 346 947 1063 345 949 1075 357 973 1076 358 1038 1077 359 1014 1078 360 1014 1078 360 1035 1079 361 967 1080 362 949 1075 357 948 1069 351 971 1074 356 1035 1079 361 1014 1078 360 1014 1078 360 1038 1077 359 975 1070 352 948 1069 351 950 1081 363 974 1082 364 1037 1083 365 1015 1084 366 1015 1084 366 1033 1085 367 963 1086 368 950 1081 363 949 1075 357 967 1080 362 1033 1085 367 1015 1084 366 1015 1084 366 1037 1083 365 973 1076 358 949 1075 357 942 1036 318 981 1038 320 1045 1087 369 1016 1088 370 1016 1088 370 1031 1089 371 958 1037 319 942 1036 318 950 1081 363 963 1086 368 1031 1089 371 1016 1088 370 1016 1088 370 1045 1087 369 974 1082 364 950 1081 363 1044 1032 314 1038 1077 359 973 1076 358 981 1038 320 986 1090 1719 1048 1091 1720 1907 1092 1721 1906 1093 1722 923 1094 1723 1017 1095 1724 1907 1092 1721 1908 1096 1725 990 1097 1726 1050 1098 1727 1911 1099 1728 1913 1100 1729 925 1101 1730 1018 1102 1731 1911 1099 1728 1909 1103 1732 909 1104 1733 1051 1105 1734 1905 1106 1735 1909 1103 1732 951 1107 1736 1019 1108 1737 1905 1106 1735 1906 1093 1722 908 1109 1738 1052 1110 1739 1910 1111 1740 1908 1096 1725 924 1112 1741 1020 1113 1742 1910 1111 1740 1912 1114 1743 910 1115 1744 1053 1116 1745 1914 1117 1746 1912 1114 1743 926 1118 1747 1021 1119 1748 1914 1117 1746 1916 1120 1749 927 1121 1750 1022 1122 1751 1918 1123 1752 1920 1124 1753 982 1125 1754 1046 1126 1755 1918 1123 1752 1916 1120 1749 984 1127 1756 1047 1128 1757 1922 1129 1758 1920 1124 1753 929 1130 1759 1023 1131 1760 1922 1129 1758 1924 1132 1761 911 1133 1762 1054 1134 1763 1923 1135 1764 1924 1132 1761 930 1136 1765 1024 1137 1766 1923 1135 1764 1921 1138 1767 988 1139 1768 1049 1140 1769 1919 1141 1770 1921 1138 1767 928 1142 1771 1025 1143 1772 1919 1141 1770 1917 1144 1773 912 1145 1774 1055 1146 1775 1915 1147 1776 1917 1144 1773 952 1148 1777 1026 1149 1778 1915 1147 1776 1913 1100 1729 953 1050 332 1027 1049 331 954 1150 969 914 1151 963 954 1152 969 1027 1049 331 955 1044 326 913 1153 967 956 1035 317 1028 1034 316 957 1154 968 916 1155 965 957 1156 968 1028 1034 316 958 1037 319 915 1157 962 955 1044 326 1029 1043 325 959 1158 966 913 1159 967 959 1160 966 1029 1043 325 956 1035 317 916 1161 965 960 1056 338 1030 1055 337 961 1162 964 917 1163 959 961 1164 964 1030 1055 337 953 1050 332 914 1165 963 958 1037 319 1031 1089 371 962 1166 961 915 1167 962 962 1168 961 1031 1089 371 963 1086 368 918 1169 958 964 1059 341 1032 1058 340 965 1170 960 919 1171 955 965 1172 960 1032 1058 340 960 1056 338 917 1173 959 963 1086 368 1033 1085 367 966 1174 957 918 1175 958 966 1176 957 1033 1085 367 967 1080 362 920 1177 954 968 1068 350 1034 1067 349 969 1178 956 921 1179 950 969 1180 956 1034 1067 349 964 1059 341 919 1181 955 967 1080 362 1035 1079 361 970 1182 953 920 1183 954 970 1184 953 1035 1079 361 971 1074 356 922 1185 952 971 1074 356 1036 1073 355 972 1186 951 922 1187 952 972 1188 951 1036 1073 355 968 1068 350 921 1189 950 914 1190 1779 954 1191 1780 1020 1113 1742 924 1112 1741 923 1094 1723 1020 1113 1742 954 1192 1780 913 1193 1781 916 1194 1782 957 1195 1783 1019 1108 1737 951 1107 1736 925 1101 1730 1019 1108 1737 957 1196 1783 915 1197 1784 923 1094 1723 913 1198 1781 959 1199 1785 1017 1095 1724 916 1200 1782 951 1107 1736 1017 1095 1724 959 1201 1785 917 1202 1786 961 1203 1787 1021 1119 1748 926 1118 1747 914 1204 1779 924 1112 1741 1021 1119 1748 961 1205 1787 925 1101 1730 915 1206 1784 962 1207 1788 1018 1102 1731 952 1148 1777 1018 1102 1731 962 1208 1788 918 1209 1789 919 1210 1790 965 1211 1791 1022 1122 1751 927 1121 1750 917 1212 1786 926 1118 1747 1022 1122 1751 965 1213 1791 952 1148 1777 918 1214 1789 966 1215 1792 1026 1149 1778 928 1142 1771 1026 1149 1778 966 1216 1792 920 1217 1793 921 1218 1794 969 1219 1795 1023 1131 1760 929 1130 1759 919 1220 1790 927 1121 1750 1023 1131 1760 969 1221 1795 928 1142 1771 920 1222 1793 970 1223 1796 1025 1143 1772 930 1136 1765 1025 1143 1772 970 1224 1796 922 1225 1797 930 1136 1765 922 1226 1797 972 1227 1798 1024 1137 1766 921 1228 1794 929 1130 1759 1024 1137 1766 972 1229 1798 984 1127 1756 1046 1126 1755 996 1230 1799 932 1231 1800 996 1230 1799 1046 1126 1755 982 1125 1754 931 1232 1801 911 1133 1762 1047 1128 1757 983 1233 1802 933 1234 1803 983 1233 1802 1047 1128 1757 984 1127 1756 932 1231 1800 908 1109 1738 1048 1091 1720 985 1235 1804 935 1236 1805 985 1235 1804 1048 1091 1720 986 1090 1719 934 1237 1806 912 1145 1774 1049 1140 1769 987 1238 1807 937 1239 1808 987 1238 1807 1049 1140 1769 988 1139 1768 936 1240 1809 909 1104 1733 1050 1098 1727 989 1241 1810 939 1242 1811 989 1241 1810 1050 1098 1727 990 1097 1726 938 1243 1812 986 1090 1719 1051 1105 1734 991 1244 1813 934 1237 1806 991 1244 1813 1051 1105 1734 909 1104 1733 939 1242 1811 910 1115 1744 1052 1110 1739 992 1245 1814 940 1246 1815 992 1245 1814 1052 1110 1739 908 1109 1738 935 1236 1805 982 1125 1754 1053 1116 1745 993 1247 1816 931 1232 1801 993 1247 1816 1053 1116 1745 910 1115 1744 940 1246 1815 988 1139 1768 1054 1134 1763 994 1248 1817 936 1240 1809 994 1248 1817 1054 1134 1763 911 1133 1762 933 1234 1803 990 1097 1726 1055 1146 1775 995 1249 1818 938 1243 1812 995 1249 1818 1055 1146 1775 912 1145 1774 937 1239 1808 996 1230 1799 1056 1250 1819 997 1251 1820 932 1231 1800 998 1252 1821 1056 1250 1819 996 1230 1799 931 1232 1801 983 1233 1802 1057 1253 1822 999 1254 1823 933 1234 1803 997 1251 1820 1057 1253 1822 983 1233 1802 932 1231 1800 985 1235 1804 1058 1255 1824 1000 1256 1825 935 1236 1805 1001 1257 1826 1058 1255 1824 985 1235 1804 934 1237 1806 987 1238 1807 1059 1258 1827 1002 1259 1828 937 1239 1808 1003 1260 1829 1059 1258 1827 987 1238 1807 936 1240 1809 989 1241 1810 1060 1261 1830 1004 1262 1831 939 1242 1811 1005 1263 1832 1060 1261 1830 989 1241 1810 938 1243 1812 991 1244 1813 1061 1264 1833 1001 1257 1826 934 1237 1806 1004 1262 1831 1061 1264 1833 991 1244 1813 939 1242 1811 992 1245 1814 1062 1265 1834 1006 1266 1835 940 1246 1815 1000 1256 1825 1062 1265 1834 992 1245 1814 935 1236 1805 993 1247 1816 1063 1267 1836 998 1252 1821 931 1232 1801 1006 1266 1835 1063 1267 1836 993 1247 1816 940 1246 1815 994 1248 1817 1064 1268 1837 1003 1260 1829 936 1240 1809 999 1254 1823 1064 1268 1837 994 1248 1817 933 1234 1803 995 1249 1818 1065 1269 1838 1005 1263 1832 938 1243 1812 1002 1259 1828 1065 1269 1838 995 1249 1818 937 1239 1808 973 1076 358 1037 1083 365 974 1082 364 1045 1087 369 981 1038 320 980 1031 313 1043 1041 323 1039 1071 353 975 1070 352 1044 1032 314 980 1031 313 975 1070 352 1038 1077 359 1043 1041 323 979 1040 322 976 1064 346 1039 1071 353 978 1046 328 1041 1053 335 977 1052 334 1067 1062 344 1066 1061 343 979 1040 322 1042 1047 329 1040 1065 347 976 1064 346 1011 1057 339 1067 1062 344 977 1052 334 945 1051 333 978 1046 328 1066 1061 343 1040 1065 347 1042 1047 329 997 1251 1820 1056 1250 1819 904 1270 1839 903 1271 1840 1056 1250 1819 998 1252 1821 1313 1013 1702 904 1270 1839 999 1254 1823 1057 1253 1822 902 1272 1841 901 1273 1842 1000 1256 1825 1058 1255 1824 863 981 1670 864 982 1671 1058 1255 1824 1001 1257 1826 853 971 1660 863 981 1670 1002 1259 1828 1059 1258 1827 887 1005 1694 880 998 1687 1059 1258 1827 1003 1260 1829 894 1012 1701 887 1005 1694 1004 1262 1831 1060 1261 1830 862 980 1669 851 969 1658 1060 1261 1830 1005 1263 1832 870 988 1677 862 980 1669 1001 1257 1826 1061 1264 1833 852 970 1659 853 971 1660 1061 1264 1833 1004 1262 1831 851 969 1658 852 970 1659 1006 1266 1835 1062 1265 1834 874 993 1682 881 1000 1689 1062 1265 1834 1000 1256 1825 864 982 1671 874 993 1682 1063 1267 1836 1006 1266 1835 881 1000 1689 888 1007 1696 1003 1260 1829 1064 1268 1837 900 1024 1713 894 1012 1701 1064 1268 1837 999 1254 1823 901 1273 1842 900 1024 1713 1005 1263 1832 1065 1269 1838 873 991 1680 870 988 1677 1065 1269 1838 1002 1259 1828 880 998 1687 873 991 1680 1057 1253 1822 997 1251 1820 903 1271 1840 902 1272 1841 870 988 1677 861 979 1668 862 980 1669 862 980 1669 850 968 1657 851 969 1658 1063 1267 1836 888 1007 1696 1313 1013 1702 998 1252 1821 1116 1274 372 1237 1275 373 1117 1276 374 1151 1277 375 1237 1275 373 1152 1278 376 1117 1276 374 1153 1279 377 1238 1280 378 1092 1281 379 1070 1282 380 1308 1283 381 1238 1280 378 1153 1279 377 1309 1284 382 1153 1279 377 1239 1285 383 1310 1286 384 1309 1284 382 1110 1287 385 1287 1288 386 1239 1285 383 1093 1289 387 1093 1289 387 1239 1285 383 1153 1279 377 1070 1282 380 1219 1290 388 1118 1291 389 1154 1292 390 1297 1293 391 1113 1294 392 1115 1295 393 1297 1293 391 1154 1292 390 1120 1296 394 1112 1297 395 1150 1298 396 1155 1299 397 1071 1300 398 1155 1299 397 1150 1301 396 1069 1302 399 1154 1292 390 1240 1303 400 1156 1304 401 1113 1305 392 1156 1306 401 1240 1303 400 1277 1307 402 1114 1308 403 1277 1307 402 1240 1303 400 1157 1309 404 1222 1310 405 1157 1309 404 1240 1303 400 1154 1292 390 1118 1291 389 1218 1311 406 1121 1312 407 1158 1313 408 1274 1314 409 1219 1290 388 1274 1314 409 1158 1313 408 1118 1291 389 1159 1315 410 1241 1316 411 1160 1317 412 1123 1318 413 1160 1317 412 1241 1316 411 1245 1319 414 1124 1320 415 1245 1319 414 1241 1316 411 1161 1321 416 1161 1321 416 1241 1316 411 1159 1315 410 1122 1322 417 1162 1323 418 1242 1324 419 1119 1325 420 1120 1296 394 1220 1326 421 1242 1324 419 1162 1323 418 1125 1327 422 1162 1323 418 1243 1328 423 1163 1329 424 1125 1327 422 1163 1329 424 1243 1328 423 1094 1330 425 1072 1331 426 1094 1330 425 1243 1328 423 1155 1299 397 1071 1300 398 1155 1299 397 1243 1328 423 1162 1323 418 1120 1296 394 1278 1332 427 1244 1333 428 1164 1334 429 1223 1335 430 1164 1334 429 1244 1333 428 1158 1313 408 1121 1312 407 1158 1313 408 1244 1333 428 1157 1309 404 1118 1291 389 1157 1309 404 1244 1333 428 1278 1332 427 1222 1310 405 1124 1320 415 1245 1319 414 1165 1336 431 1126 1337 432 1165 1336 431 1245 1319 414 1166 1338 433 1208 1339 434 1129 1340 435 1167 1341 436 1128 1342 437 1167 1341 436 1129 1340 435 1296 1343 438 1209 1344 439 1168 1345 440 1246 1346 441 1095 1347 442 1073 1348 443 1095 1347 442 1246 1346 441 1266 1349 444 1074 1350 445 1266 1349 444 1246 1346 441 1167 1341 436 1209 1344 439 1167 1341 436 1246 1346 441 1168 1345 440 1128 1342 437 1228 1351 446 1247 1352 447 1170 1353 448 1131 1354 449 1170 1353 448 1247 1352 447 1169 1355 450 1130 1356 451 1171 1357 452 1248 1358 453 1172 1359 454 1132 1360 455 1172 1359 454 1248 1358 453 1237 1275 373 1116 1274 372 1171 1357 452 1301 1361 456 1174 1362 457 1248 1358 453 1237 1275 373 1248 1358 453 1173 1363 458 1152 1278 376 1173 1363 458 1248 1358 453 1174 1362 457 1133 1364 459 1175 1365 460 1249 1366 461 1307 1367 462 1306 1368 463 1307 1367 462 1249 1366 461 1238 1280 378 1308 1283 381 1238 1280 378 1249 1366 461 1096 1369 464 1092 1281 379 1096 1369 464 1249 1366 461 1175 1365 460 1075 1370 465 1218 1311 406 1273 1371 466 1176 1372 467 1121 1312 407 1134 1373 468 1135 1374 469 1176 1372 467 1273 1371 466 1177 1375 470 1250 1376 471 1178 1377 472 1136 1378 473 1178 1377 472 1250 1376 471 1179 1379 474 1137 1380 475 1179 1379 474 1250 1376 471 1171 1357 452 1132 1360 455 1180 1381 476 1251 1382 477 1177 1375 470 1136 1378 473 1181 1383 478 1235 1384 479 1174 1362 457 1301 1361 456 1181 1383 478 1251 1382 477 1182 1385 480 1126 1337 432 1182 1385 480 1251 1382 477 1180 1381 476 1138 1386 481 1183 1387 482 1252 1388 483 1179 1379 474 1132 1360 455 1179 1379 474 1252 1388 483 1184 1389 484 1137 1380 475 1184 1389 484 1252 1388 483 1286 1390 485 1232 1391 486 1286 1390 485 1252 1388 483 1183 1387 482 1233 1392 487 1139 1393 488 1217 1394 489 1272 1395 490 1185 1396 491 1216 1397 492 1140 1398 493 1185 1396 491 1272 1395 490 1186 1399 494 1253 1400 495 1187 1401 496 1142 1402 497 1187 1401 496 1253 1400 495 1188 1403 498 1144 1404 499 1188 1403 498 1253 1400 495 1189 1405 500 1143 1406 501 1189 1405 500 1253 1400 495 1186 1399 494 1141 1407 502 1190 1408 503 1254 1409 504 1191 1410 505 1145 1411 506 1191 1410 505 1254 1409 504 1192 1412 507 1130 1356 451 1192 1412 507 1254 1409 504 1186 1399 494 1142 1402 497 1186 1399 494 1254 1409 504 1190 1408 503 1141 1407 502 1193 1413 508 1255 1414 509 1281 1415 510 1225 1416 511 1281 1415 510 1255 1414 509 1194 1417 512 1226 1418 513 1194 1417 512 1255 1414 509 1185 1396 491 1140 1398 493 1185 1396 491 1255 1414 509 1193 1413 508 1139 1393 488 1195 1419 514 1256 1420 515 1188 1403 498 1143 1406 501 1188 1403 498 1256 1420 515 1196 1421 516 1144 1404 499 1196 1421 516 1256 1420 515 1284 1422 517 1230 1423 518 1284 1422 517 1256 1420 515 1195 1419 514 1231 1424 519 1216 1397 492 1271 1425 520 1194 1417 512 1140 1398 493 1227 1426 521 1226 1418 513 1194 1417 512 1271 1425 520 1197 1427 522 1257 1428 523 1283 1429 524 1229 1430 525 1283 1429 524 1257 1428 523 1196 1421 516 1230 1423 518 1196 1421 516 1257 1428 523 1187 1401 496 1144 1404 499 1187 1401 496 1257 1428 523 1197 1427 522 1142 1402 497 1198 1431 526 1258 1432 527 1220 1326 421 1125 1327 422 1221 1433 528 1258 1432 527 1198 1431 526 1146 1434 529 1200 1435 530 1259 1436 531 1199 1437 532 1147 1438 533 1174 1362 457 1260 1439 534 1201 1440 535 1133 1364 459 1302 1441 536 1304 1442 537 1305 1443 538 1201 1440 535 1198 1431 526 1261 1444 539 1203 1445 540 1146 1434 529 1203 1445 540 1261 1444 539 1097 1446 541 1076 1447 542 1097 1446 541 1261 1444 539 1163 1329 424 1072 1331 426 1163 1329 424 1261 1444 539 1198 1431 526 1125 1327 422 1305 1443 538 1262 1448 543 1175 1365 460 1306 1368 463 1175 1365 460 1262 1448 543 1098 1449 544 1075 1370 465 1098 1449 544 1262 1448 543 1204 1450 545 1077 1451 546 1204 1450 545 1262 1448 543 1305 1443 538 1304 1442 537 1148 1452 547 1276 1453 548 1221 1433 528 1146 1434 529 1199 1437 532 1206 1454 549 1205 1455 550 1147 1438 533 1265 1456 551 1303 1457 552 1304 1442 537 1302 1441 536 1078 1458 553 1263 1459 554 1203 1445 540 1076 1447 542 1203 1445 540 1263 1459 554 1148 1452 547 1146 1434 529 1204 1450 545 1264 1460 555 1099 1461 556 1077 1451 546 1303 1457 552 1264 1460 555 1204 1450 545 1304 1442 537 1206 1454 549 1129 1340 435 1208 1339 434 1205 1455 550 1074 1350 445 1266 1349 444 1263 1459 554 1078 1458 553 1263 1459 554 1266 1349 444 1209 1344 439 1148 1452 547 1279 1462 557 1267 1463 558 1210 1464 559 1224 1465 560 1210 1464 559 1267 1463 558 1176 1372 467 1135 1374 469 1176 1372 467 1267 1463 558 1164 1334 429 1121 1312 407 1164 1334 429 1267 1463 558 1279 1462 557 1223 1335 430 1285 1466 561 1268 1467 562 1184 1389 484 1232 1391 486 1184 1389 484 1268 1467 562 1211 1468 563 1137 1380 475 1211 1468 563 1268 1467 562 1195 1419 514 1143 1406 501 1195 1419 514 1268 1467 562 1285 1466 561 1231 1424 519 1149 1469 564 1269 1470 565 1212 1471 566 1145 1411 506 1212 1471 566 1269 1470 565 1213 1472 567 1138 1386 481 1134 1373 468 1300 1473 568 1214 1474 569 1135 1374 469 1139 1393 488 1214 1474 569 1300 1473 568 1217 1394 489 1215 1475 570 1270 1476 571 1189 1405 500 1141 1407 502 1189 1405 500 1270 1476 571 1211 1468 563 1143 1406 501 1211 1468 563 1270 1476 571 1178 1377 472 1137 1380 475 1178 1377 472 1270 1476 571 1215 1475 570 1136 1378 473 1227 1426 521 1271 1425 520 1247 1352 447 1228 1351 446 1247 1352 447 1271 1425 520 1216 1397 492 1169 1355 450 1216 1397 492 1272 1395 490 1293 1477 572 1169 1355 450 1293 1477 572 1272 1395 490 1217 1394 489 1149 1469 564 1134 1373 468 1273 1371 466 1290 1478 573 1213 1472 567 1290 1478 573 1273 1371 466 1218 1311 406 1124 1320 415 1218 1311 406 1274 1314 409 1160 1317 412 1124 1320 415 1160 1317 412 1274 1314 409 1219 1290 388 1123 1318 413 1115 1479 393 1275 1480 574 1159 1315 410 1123 1318 413 1330 1481 575 1161 1321 416 1122 1322 417 1259 1436 531 1258 1432 527 1221 1433 528 1199 1437 532 1221 1433 528 1276 1453 548 1206 1454 549 1199 1437 532 1276 1453 548 1296 1343 438 1129 1340 435 1206 1454 549 1114 1482 403 1277 1307 402 1100 1483 576 1068 1484 577 1100 1483 576 1277 1307 402 1222 1310 405 1079 1485 578 1222 1310 405 1278 1332 427 1101 1486 579 1079 1485 578 1101 1486 579 1278 1332 427 1223 1335 430 1080 1487 580 1223 1335 430 1279 1462 557 1102 1488 581 1080 1487 580 1102 1488 581 1279 1462 557 1224 1465 560 1081 1489 582 1224 1465 560 1280 1490 583 1103 1491 584 1081 1489 582 1103 1491 584 1280 1490 583 1225 1416 511 1082 1492 585 1225 1416 511 1281 1415 510 1104 1493 586 1082 1492 585 1104 1493 586 1281 1415 510 1226 1418 513 1083 1494 587 1083 1494 587 1226 1418 513 1227 1426 521 1084 1495 588 1084 1495 588 1227 1426 521 1228 1351 446 1085 1496 589 1131 1354 449 1282 1497 590 1105 1498 591 1087 1499 592 1105 1498 591 1282 1497 590 1229 1430 525 1086 1500 593 1106 1501 594 1283 1429 524 1230 1423 518 1088 1502 595 1229 1430 525 1283 1429 524 1106 1501 594 1086 1500 593 1230 1423 518 1284 1422 517 1107 1503 596 1088 1502 595 1107 1503 596 1284 1422 517 1231 1424 519 1089 1504 597 1108 1505 598 1285 1466 561 1232 1391 486 1090 1506 599 1231 1424 519 1285 1466 561 1108 1505 598 1089 1504 597 1232 1391 486 1286 1390 485 1109 1507 600 1090 1506 599 1109 1507 600 1286 1390 485 1233 1392 487 1091 1508 601 1233 1392 487 1287 1288 386 1110 1287 385 1091 1508 601 1168 1345 440 1288 1509 602 1234 1510 603 1128 1342 437 1234 1510 603 1288 1509 602 1264 1460 555 1303 1457 552 1264 1460 555 1288 1509 602 1111 1511 604 1099 1461 556 1111 1511 604 1288 1509 602 1168 1345 440 1073 1348 443 1085 1496 589 1228 1351 446 1131 1354 449 1087 1499 592 1200 1435 530 1289 1512 605 1235 1384 479 1127 1513 606 1235 1384 479 1289 1512 605 1260 1439 534 1174 1362 457 1260 1439 534 1289 1512 605 1236 1514 607 1202 1515 608 1236 1514 607 1289 1512 605 1200 1435 530 1147 1438 533 1213 1472 567 1290 1478 573 1182 1385 480 1138 1386 481 1126 1337 432 1182 1385 480 1290 1478 573 1124 1320 415 1205 1455 550 1291 1516 609 1236 1514 607 1147 1438 533 1236 1514 607 1291 1516 609 1207 1517 610 1202 1515 608 1215 1475 570 1292 1518 611 1180 1381 476 1136 1378 473 1180 1381 476 1292 1518 611 1212 1471 566 1138 1386 481 1212 1471 566 1292 1518 611 1190 1408 503 1145 1411 506 1190 1408 503 1292 1518 611 1215 1475 570 1141 1407 502 1208 1339 434 1294 1519 612 1291 1516 609 1205 1455 550 1291 1516 609 1294 1519 612 1265 1456 551 1207 1517 610 1169 1355 450 1293 1477 572 1191 1410 505 1130 1356 451 1191 1410 505 1293 1477 572 1149 1469 564 1145 1411 506 1234 1510 603 1294 1519 612 1208 1339 434 1128 1342 437 1282 1497 590 1295 1520 613 1197 1427 522 1229 1430 525 1197 1427 522 1295 1520 613 1192 1412 507 1142 1402 497 1192 1412 507 1295 1520 613 1170 1353 448 1130 1356 451 1170 1353 448 1295 1520 613 1282 1497 590 1131 1354 449 1209 1344 439 1296 1343 438 1276 1453 548 1148 1452 547 1219 1290 388 1297 1293 391 1115 1521 393 1123 1318 413 1235 1384 479 1181 1383 478 1126 1337 432 1165 1336 431 1127 1513 606 1183 1387 482 1298 1522 614 1287 1288 386 1233 1392 487 1287 1288 386 1298 1522 614 1239 1285 383 1239 1285 383 1298 1522 614 1310 1286 384 1172 1359 454 1298 1522 614 1183 1387 482 1132 1360 455 1210 1464 559 1299 1523 615 1280 1490 583 1224 1465 560 1280 1490 583 1299 1523 615 1193 1413 508 1225 1416 511 1193 1413 508 1299 1523 615 1214 1474 569 1139 1393 488 1214 1474 569 1299 1523 615 1210 1464 559 1135 1374 469 1217 1394 489 1300 1473 568 1269 1470 565 1149 1469 564 1269 1470 565 1300 1473 568 1134 1373 468 1213 1472 567 1301 1361 456 1177 1375 470 1251 1382 477 1181 1383 478 1171 1357 452 1250 1376 471 1177 1375 470 1301 1361 456 1202 1515 608 1207 1517 610 1265 1456 551 1302 1441 536 1201 1440 535 1260 1439 534 1202 1515 608 1302 1441 536 1265 1456 551 1294 1519 612 1234 1510 603 1303 1457 552 1201 1440 535 1305 1443 538 1306 1368 463 1133 1364 459 1307 1367 462 1173 1363 458 1133 1364 459 1306 1368 463 1173 1363 458 1307 1367 462 1308 1283 381 1152 1278 376 1152 1278 376 1308 1283 381 1309 1284 382 1117 1276 374 1310 1286 384 1116 1274 372 1117 1276 374 1309 1284 382 1298 1522 614 1172 1359 454 1116 1274 372 1310 1286 384 1068 1524 1843 1319 1525 1844 1318 1526 1845 1114 1527 1846 902 1272 1841 1321 1528 1847 1318 1526 1845 906 1027 1716 902 1272 1841 906 1027 1716 1311 1026 1715 901 1273 1842 1311 1026 1715 899 1022 1711 900 1024 1713 901 1273 1842 898 1023 1712 899 1022 1711 1311 1026 1715 1312 1025 1714 1113 1529 1848 1322 1530 1849 1323 1531 1850 1115 1532 1851 1313 1013 1702 1324 1533 1852 1323 1531 1850 904 1270 1839 1316 1534 1853 1325 1535 1854 1326 1536 1855 1317 1537 1856 1315 1538 1857 1320 1539 1858 1332 1540 1859 897 1018 1707 903 1271 1840 1322 1530 1849 1321 1528 1847 902 1272 1841 895 1014 1703 1325 1535 1854 1324 1533 1852 1313 1013 1702 1159 1315 410 1275 1541 574 1316 1542 616 1122 1322 417 1120 1296 394 1119 1325 420 1317 1543 617 1112 1544 395 1314 1016 1705 1327 1545 1860 1326 1536 1855 896 1015 1704 1317 1546 617 1119 1325 420 1122 1322 417 1316 1547 616 906 1027 1716 1318 1526 1845 1319 1525 1844 905 1028 1717 1150 1548 1861 1332 1540 1859 1320 1539 1858 1069 1549 1862 1114 1550 1846 1318 1526 1845 1321 1528 1847 1156 1551 1863 1156 1552 1863 1321 1528 1847 1322 1530 1849 1113 1553 1848 904 1270 1839 1323 1531 1850 1322 1530 1849 903 1271 1840 1115 1554 1851 1323 1531 1850 1324 1533 1852 1275 1555 1864 1275 1556 1864 1324 1533 1852 1325 1535 1854 1316 1557 1853 896 1015 1704 1326 1536 1855 1325 1535 1854 895 1014 1703 1317 1558 1856 1326 1536 1855 1327 1545 1860 1112 1559 1865 1112 1560 1865 1327 1545 1860 1332 1540 1859 1150 1561 1861 1328 1562 618 1259 1436 531 1200 1435 530 1127 1513 606 1220 1326 421 1258 1432 527 1259 1436 531 1328 1562 618 1329 1563 619 1242 1324 419 1220 1326 421 1328 1562 618 1166 1338 433 1328 1562 618 1127 1513 606 1165 1336 431 1330 1481 575 1329 1563 619 1328 1562 618 1166 1338 433 1119 1325 420 1329 1563 619 1330 1481 575 1122 1322 417 1119 1325 420 1242 1324 419 1329 1563 619 1161 1321 416 1330 1481 575 1166 1338 433 1245 1319 414 1314 1016 1705 897 1018 1707 1332 1540 1859 1327 1545 1860 720 830 1519 721 832 1521 1333 849 1538 734 848 1537 734 848 1537 1333 849 1538 1334 863 1552 747 862 1551 747 862 1551 1334 863 1552 1335 877 1566 760 876 1565 760 876 1565 1335 877 1566 1336 891 1580 773 890 1579 773 890 1579 1336 891 1580 2 361 1172 786 904 1593 786 904 1593 2 361 1172 86 364 1175 798 916 1605 884 1002 1691 320 1020 1709 1337 1017 1706 891 1009 1698 696 807 1496 709 810 1499 1349 1564 1866 1338 1565 1867 1338 1565 1867 1349 1564 1866 1350 1566 1868 1339 1567 1869 1339 1567 1869 1350 1566 1868 1351 1568 1870 1340 1569 1871 1340 1569 1871 1351 1568 1870 1352 1570 1872 1341 1571 1873 1341 1571 1873 1352 1570 1872 1353 1572 1874 1342 1573 1875 1342 1573 1875 1353 1572 1874 1354 1574 1876 1343 1575 1877 1343 1575 1877 1354 1574 1876 1355 1576 1878 1344 1577 1879 1344 1577 1879 1355 1576 1878 1356 1578 1880 1345 1579 1881 1345 1579 1881 1356 1578 1880 1357 1580 1882 1346 1581 1883 1346 1581 1883 1357 1580 1882 1358 1582 1884 1347 1583 1885 1347 1583 1885 1358 1582 1884 1359 1584 1886 1348 1585 1887 1348 1585 1887 1359 1584 1886 1360 1586 1888 1897 1587 1889 1897 1587 1889 1360 1586 1888 1972 1588 1890 1973 1589 1891 709 810 1499 723 838 1527 1361 1590 1892 1349 1564 1866 1349 1564 1866 1361 1590 1892 1362 1591 1893 1350 1566 1868 1350 1566 1868 1362 1591 1893 1363 1592 1894 1351 1568 1870 1351 1568 1870 1363 1592 1894 1364 1593 1895 1352 1570 1872 1352 1570 1872 1364 1593 1895 1365 1594 1896 1353 1572 1874 1353 1572 1874 1365 1594 1896 1366 1595 1897 1354 1574 1876 1354 1574 1876 1366 1595 1897 1367 1596 1898 1355 1576 1878 1355 1576 1878 1367 1596 1898 1368 1597 1899 1356 1578 1880 1356 1578 1880 1368 1597 1899 1369 1598 1900 1357 1580 1882 1357 1580 1882 1369 1598 1900 1370 1599 1901 1358 1582 1884 1358 1582 1884 1370 1599 1901 1371 1600 1902 1359 1584 1886 1360 1586 1888 1899 1601 1903 1975 1602 1904 1972 1588 1890 723 838 1527 736 852 1541 1372 1603 1905 1361 1590 1892 1361 1590 1892 1372 1603 1905 1373 1604 1906 1362 1591 1893 1362 1591 1893 1373 1604 1906 1374 1605 1907 1363 1592 1894 1363 1592 1894 1374 1605 1907 1375 1606 1908 1364 1593 1895 1364 1593 1895 1375 1606 1908 1376 1607 1909 1365 1594 1896 1365 1594 1896 1376 1607 1909 1377 1608 1910 1366 1595 1897 1366 1595 1897 1377 1608 1910 1378 1609 1911 1367 1596 1898 1367 1596 1898 1378 1609 1911 1379 1610 1912 1368 1597 1899 1368 1597 1899 1379 1610 1912 1380 1611 1913 1369 1598 1900 1369 1598 1900 1380 1611 1913 1381 1612 1914 1370 1599 1901 1370 1599 1901 1381 1612 1914 1382 1613 1915 1371 1600 1902 1899 1601 1903 1900 1614 1916 1976 1615 1917 1975 1602 1904 736 852 1541 749 866 1555 1383 1616 1918 1372 1603 1905 1372 1603 1905 1383 1616 1918 1384 1617 1919 1373 1604 1906 1373 1604 1906 1384 1617 1919 1385 1618 1920 1374 1605 1907 1374 1605 1907 1385 1618 1920 1386 1619 1921 1375 1606 1908 1375 1606 1908 1386 1619 1921 1387 1620 1922 1376 1607 1909 1376 1607 1909 1387 1620 1922 1388 1621 1923 1377 1608 1910 1377 1608 1910 1388 1621 1923 1389 1622 1924 1378 1609 1911 1378 1609 1911 1389 1622 1924 1390 1623 1925 1379 1610 1912 1379 1610 1912 1390 1623 1925 1391 1624 1926 1380 1611 1913 1380 1611 1913 1391 1624 1926 1392 1625 1927 1381 1612 1914 1381 1612 1914 1392 1625 1927 1393 1626 1928 1382 1613 1915 1900 1614 1916 1901 1627 1929 1977 1628 1930 1976 1615 1917 749 866 1555 762 880 1569 1394 1629 1931 1383 1616 1918 1383 1616 1918 1394 1629 1931 1395 1630 1932 1384 1617 1919 1384 1617 1919 1395 1630 1932 1396 1631 1933 1385 1618 1920 1385 1618 1920 1396 1631 1933 1397 1632 1934 1386 1619 1921 1386 1619 1921 1397 1632 1934 1398 1633 1935 1387 1620 1922 1387 1620 1922 1398 1633 1935 1399 1634 1936 1388 1621 1923 1388 1621 1923 1399 1634 1936 1400 1635 1937 1389 1622 1924 1389 1622 1924 1400 1635 1937 1401 1636 1938 1390 1623 1925 1390 1623 1925 1401 1636 1938 1402 1637 1939 1391 1624 1926 1391 1624 1926 1402 1637 1939 1403 1638 1940 1392 1625 1927 1392 1625 1927 1403 1638 1940 1404 1639 1941 1393 1626 1928 1901 1627 1929 1902 1640 1942 1974 1641 1943 1977 1628 1930 762 880 1569 775 894 1583 1405 1642 1944 1394 1629 1931 1394 1629 1931 1405 1642 1944 1406 1643 1945 1395 1630 1932 1395 1630 1932 1406 1643 1945 1407 1644 1946 1396 1631 1933 1396 1631 1933 1407 1644 1946 1408 1645 1947 1397 1632 1934 1397 1632 1934 1408 1645 1947 1409 1646 1948 1398 1633 1935 1398 1633 1935 1409 1646 1948 1410 1647 1949 1399 1634 1936 1399 1634 1936 1410 1647 1949 1411 1648 1950 1400 1635 1937 1400 1635 1937 1411 1648 1950 1412 1649 1951 1401 1636 1938 1401 1636 1938 1412 1649 1951 1413 1650 1952 1402 1637 1939 1402 1637 1939 1413 1650 1952 1414 1651 1953 1403 1638 1940 1403 1638 1940 1414 1651 1953 1415 1652 1954 1404 1639 1941 2043 435 1231 2044 1653 1955 1974 1641 1943 434 436 1232 775 894 1583 787 906 1595 1416 1654 1956 1405 1642 1944 1405 1642 1944 1416 1654 1956 1417 1655 1957 1406 1643 1945 1406 1643 1945 1417 1655 1957 1418 1656 1958 1407 1644 1946 1407 1644 1946 1418 1656 1958 1419 1657 1959 1408 1645 1947 1408 1645 1947 1419 1657 1959 1420 1658 1960 1409 1646 1948 1409 1646 1948 1420 1658 1960 1421 1659 1961 1410 1647 1949 1410 1647 1949 1421 1659 1961 1422 1660 1962 1411 1648 1950 1411 1648 1950 1422 1660 1962 1423 1661 1963 1412 1649 1951 1412 1649 1951 1423 1661 1963 1424 1662 1964 1413 1650 1952 1413 1650 1952 1424 1662 1964 1425 1663 1965 1414 1651 1953 1414 1651 1953 1425 1663 1965 1426 1664 1966 1415 1652 1954 787 906 1595 799 918 1607 1427 1665 1967 1416 1654 1956 1416 1654 1956 1427 1665 1967 1428 1666 1968 1417 1655 1957 1417 1655 1957 1428 1666 1968 1429 1667 1969 1418 1656 1958 1418 1656 1958 1429 1667 1969 1430 1668 1970 1419 1657 1959 1419 1657 1959 1430 1668 1970 1431 1669 1971 1420 1658 1960 1420 1658 1960 1431 1669 1971 1432 1670 1972 1421 1659 1961 1421 1659 1961 1432 1670 1972 1433 1671 1973 1422 1660 1962 1422 1660 1962 1433 1671 1973 1434 1672 1974 1423 1661 1963 1423 1661 1963 1434 1672 1974 1435 1673 1975 1424 1662 1964 1424 1662 1964 1435 1673 1975 1436 1674 1976 1425 1663 1965 1425 1663 1965 1436 1674 1976 1437 1675 1977 1426 1664 1966 799 918 1607 811 930 1619 1438 1676 1978 1427 1665 1967 1427 1665 1967 1438 1676 1978 1439 1677 1979 1428 1666 1968 1428 1666 1968 1439 1677 1979 1440 1678 1980 1429 1667 1969 1429 1667 1969 1440 1678 1980 1441 1679 1981 1430 1668 1970 1430 1668 1970 1441 1679 1981 1442 1680 1982 1431 1669 1971 1431 1669 1971 1442 1680 1982 1443 1681 1983 1432 1670 1972 1432 1670 1972 1443 1681 1983 1444 1682 1984 1433 1671 1973 1433 1671 1973 1444 1682 1984 1445 1683 1985 1434 1672 1974 1434 1672 1974 1445 1683 1985 1446 1684 1986 1435 1673 1975 1435 1673 1975 1446 1684 1986 1447 1685 1987 1436 1674 1976 1436 1674 1976 1447 1685 1987 1448 1686 1988 1437 1675 1977 811 930 1619 823 942 1631 1449 1687 1989 1438 1676 1978 1438 1676 1978 1449 1687 1989 1450 1688 1990 1439 1677 1979 1439 1677 1979 1450 1688 1990 1451 1689 1991 1440 1678 1980 1440 1678 1980 1451 1689 1991 1452 1690 1992 1441 1679 1981 1441 1679 1981 1452 1690 1992 1453 1691 1993 1442 1680 1982 1442 1680 1982 1453 1691 1993 1454 1692 1994 1443 1681 1983 1443 1681 1983 1454 1692 1994 1455 1693 1995 1444 1682 1984 1444 1682 1984 1455 1693 1995 1456 1694 1996 1445 1683 1985 1445 1683 1985 1456 1694 1996 1457 1695 1997 1446 1684 1986 1446 1684 1986 1457 1695 1997 1458 1696 1998 1447 1685 1987 1447 1685 1987 1458 1696 1998 1459 1697 1999 1448 1686 1988 823 942 1631 846 954 1643 1460 1698 2000 1449 1687 1989 1449 1687 1989 1460 1698 2000 1461 1699 2001 1450 1688 1990 1450 1688 1990 1461 1699 2001 1462 1700 2002 1451 1689 1991 1451 1689 1991 1462 1700 2002 1463 1701 2003 1452 1690 1992 1452 1690 1992 1463 1701 2003 1464 1702 2004 1453 1691 1993 1453 1691 1993 1464 1702 2004 1465 1703 2005 1454 1692 1994 1454 1692 1994 1465 1703 2005 1466 1704 2006 1455 1693 1995 1455 1693 1995 1466 1704 2006 1467 1705 2007 1456 1694 1996 1456 1694 1996 1467 1705 2007 1468 1706 2008 1457 1695 1997 1457 1695 1997 1468 1706 2008 1469 1707 2009 1458 1696 1998 1458 1696 1998 1469 1707 2009 1470 1708 2010 1459 1697 1999 846 954 1643 847 966 1655 1471 1709 2011 1460 1698 2000 1460 1698 2000 1471 1709 2011 1472 1710 2012 1461 1699 2001 1461 1699 2001 1472 1710 2012 1473 1711 2013 1462 1700 2002 1462 1700 2002 1473 1711 2013 1474 1712 2014 1463 1701 2003 1463 1701 2003 1474 1712 2014 1475 1713 2015 1464 1702 2004 1464 1702 2004 1475 1713 2015 1476 1714 2016 1465 1703 2005 1465 1703 2005 1476 1714 2016 1477 1715 2017 1466 1704 2006 1466 1704 2006 1477 1715 2017 1478 1716 2018 1467 1705 2007 1467 1705 2007 1478 1716 2018 1479 1717 2019 1468 1706 2008 1468 1706 2008 1479 1717 2019 1480 1718 2020 1469 1707 2009 1469 1707 2009 1480 1718 2020 1481 1719 2021 1470 1708 2010 847 966 1655 859 978 1667 1482 1720 2022 1471 1709 2011 1471 1709 2011 1482 1720 2022 1483 1721 2023 1472 1710 2012 1472 1710 2012 1483 1721 2023 1484 1722 2024 1473 1711 2013 1476 1714 2016 1485 1723 2025 1477 1715 2017 1477 1715 2017 1485 1723 2025 1488 1724 2026 1478 1716 2018 1478 1716 2018 1488 1724 2026 1489 1725 2027 1479 1717 2019 1479 1717 2019 1489 1725 2027 1490 1726 2028 1480 1718 2020 1480 1718 2020 1490 1726 2028 1491 1727 2029 1481 1719 2021 859 978 1667 868 987 1676 1486 1728 2030 1482 1720 2022 1482 1720 2022 1486 1728 2030 1487 1729 2031 1483 1721 2023 868 987 1676 871 990 1679 1492 1730 2032 1486 1728 2030 1486 1728 2030 1492 1730 2032 1493 1731 2033 1487 1729 2031 1495 1732 2034 1489 1725 2027 1488 1724 2026 1494 1733 2035 1489 1725 2027 1495 1732 2034 1496 1734 2036 1490 1726 2028 1490 1726 2028 1496 1734 2036 1497 1735 2037 1491 1727 2029 871 990 1679 878 997 1686 1498 1736 2038 1492 1730 2032 1492 1730 2032 1498 1736 2038 1499 1737 2039 1493 1731 2033 1501 1738 2040 1495 1732 2034 1494 1733 2035 1500 1739 2041 1495 1732 2034 1501 1738 2040 1502 1740 2042 1496 1734 2036 1496 1734 2036 1502 1740 2042 1503 1741 2043 1497 1735 2037 878 997 1686 885 1004 1693 1504 1742 2044 1498 1736 2038 1498 1736 2038 1504 1742 2044 1505 1743 2045 1499 1737 2039 1507 1744 2046 1501 1738 2040 1500 1739 2041 1506 1745 2047 1501 1738 2040 1507 1744 2046 1508 1746 2048 1502 1740 2042 1502 1740 2042 1508 1746 2048 1509 1747 2049 1503 1741 2043 885 1004 1693 892 1011 1700 1510 1748 2050 1504 1742 2044 1504 1742 2044 1510 1748 2050 1511 1749 2051 1505 1743 2045 1882 1750 2052 1512 1751 2053 1507 1744 2046 1506 1745 2047 1507 1744 2046 1512 1751 2053 1513 1752 2054 1508 1746 2048 1508 1746 2048 1513 1752 2054 1883 1753 2055 1509 1747 2049 1509 1747 2049 1883 1753 2055 1514 1754 2056 1904 1755 2057 1904 1755 2057 1985 1019 1708 1986 1021 1710 1903 1756 2058 892 1011 1700 898 1023 1712 1515 1757 2059 1510 1748 2050 1510 1748 2050 1515 1757 2059 1516 1758 2060 1511 1749 2051 1312 1025 1714 905 1028 1717 1521 1759 2061 1881 1760 2062 1338 1565 1867 907 1029 1718 696 807 1496 1339 1567 1869 907 1029 1718 1338 1565 1867 1340 1569 1871 907 1029 1718 1339 1567 1869 1341 1571 1873 907 1029 1718 1340 1569 1871 1342 1573 1875 907 1029 1718 1341 1571 1873 1343 1575 1877 907 1029 1718 1342 1573 1875 1344 1577 1879 907 1029 1718 1343 1575 1877 1345 1579 1881 907 1029 1718 1344 1577 1879 1346 1581 1883 907 1029 1718 1345 1579 1881 1347 1583 1885 907 1029 1718 1346 1581 1883 1348 1585 1887 907 1029 1718 1347 1583 1885 1348 1585 1887 1897 1587 1889 907 1029 1718 1973 1589 1891 907 1029 1718 1897 1587 1889 1555 1761 692 1621 1762 693 1658 1763 694 1594 1764 695 1621 1762 693 1555 1761 692 1570 1765 696 1642 1766 697 1556 1767 698 1621 1762 693 1642 1766 697 1572 1768 699 1621 1762 693 1556 1767 698 1595 1769 700 1658 1763 694 1557 1770 701 1622 1771 702 1657 1772 703 1593 1773 704 1622 1771 702 1557 1770 701 1569 1774 705 1643 1775 706 1555 1761 692 1622 1771 702 1643 1775 706 1570 1765 696 1622 1771 702 1555 1761 692 1594 1764 695 1657 1772 703 1558 1776 707 1623 1777 708 1656 1778 709 1592 1779 710 1623 1777 708 1558 1776 707 1567 1780 711 1641 1781 712 1557 1770 701 1623 1777 708 1641 1781 712 1569 1774 705 1623 1777 708 1557 1770 701 1593 1773 704 1656 1778 709 1559 1782 713 1624 1783 714 1655 1784 715 1591 1785 716 1624 1783 714 1559 1782 713 1574 1786 717 1644 1787 718 1558 1776 707 1624 1783 714 1644 1787 718 1567 1780 711 1624 1783 714 1558 1776 707 1592 1779 710 1655 1784 715 1625 1788 719 1560 1789 720 1578 1790 721 1646 1791 722 1559 1782 713 1625 1788 719 1646 1791 722 1574 1786 717 1625 1788 719 1681 1792 723 1680 1793 724 1560 1789 720 1561 1794 725 1626 1795 726 1654 1796 727 1590 1797 728 1626 1795 726 1561 1794 725 1582 1798 729 1648 1799 730 1560 1789 720 1626 1795 726 1648 1799 730 1578 1790 721 1626 1795 726 1560 1789 720 1680 1793 724 1654 1796 727 1562 1800 731 1627 1801 732 1653 1802 733 1589 1803 734 1627 1801 732 1562 1800 731 1585 1804 735 1650 1805 736 1561 1794 725 1627 1801 732 1650 1805 736 1582 1798 729 1627 1801 732 1561 1794 725 1590 1797 728 1653 1802 733 1563 1806 737 1628 1807 738 1652 1808 739 1587 1809 740 1628 1807 738 1563 1806 737 1581 1810 741 1649 1811 742 1562 1800 731 1628 1807 738 1649 1811 742 1585 1804 735 1628 1807 738 1562 1800 731 1589 1803 734 1652 1808 739 1564 1812 743 1629 1813 744 1651 1814 745 1588 1815 746 1629 1813 744 1564 1812 743 1577 1816 747 1647 1817 748 1563 1806 737 1629 1813 744 1647 1817 748 1581 1810 741 1629 1813 744 1563 1806 737 1587 1809 740 1651 1814 745 1556 1767 698 1630 1818 749 1659 1819 750 1595 1769 700 1630 1818 749 1556 1767 698 1572 1768 699 1645 1820 752 1564 1812 743 1630 1818 749 1645 1820 752 1577 1816 747 1630 1818 749 1564 1812 743 1588 1815 746 1659 1819 750 1658 1763 694 1595 1769 700 1587 1809 740 1652 1808 739 1662 1821 2063 1600 1822 2064 1927 1823 2065 1926 1824 2066 1631 1825 2067 1537 1826 2068 1925 1827 2069 1926 1824 2066 1664 1828 2070 1604 1829 2071 1934 1830 2072 1932 1831 2073 1632 1832 2074 1539 1833 2075 1930 1834 2076 1932 1831 2073 1665 1835 2077 1523 1836 2078 1930 1834 2076 1928 1837 2079 1633 1838 2080 1565 1839 2081 1927 1823 2065 1928 1837 2079 1666 1840 2082 1522 1841 2083 1925 1827 2069 1929 1842 2084 1634 1843 2085 1538 1844 2086 1931 1845 2087 1929 1842 2084 1667 1846 2088 1524 1847 2089 1931 1845 2087 1933 1848 2090 1635 1849 2091 1540 1850 2092 1935 1851 2093 1933 1848 2090 1636 1852 2094 1541 1853 2095 1939 1854 2096 1937 1855 2097 1660 1856 2098 1596 1857 2099 1935 1851 2093 1937 1855 2097 1661 1858 2100 1598 1859 2101 1939 1854 2096 1941 1860 2102 1637 1861 2103 1543 1862 2104 1943 1863 2105 1941 1860 2102 1668 1864 2106 1525 1865 2107 1943 1863 2105 1944 1866 2108 1638 1867 2109 1544 1868 2110 1942 1869 2111 1944 1866 2108 1663 1870 2112 1602 1871 2113 1942 1869 2111 1940 1872 2114 1639 1873 2115 1542 1874 2116 1938 1875 2117 1940 1872 2114 1669 1876 2118 1526 1877 2119 1938 1875 2117 1936 1878 2120 1640 1879 2121 1566 1880 2122 1934 1830 2072 1936 1878 2120 1567 1780 711 1528 1881 944 1568 1882 949 1641 1781 712 1568 1883 949 1527 1884 947 1569 1774 705 1641 1781 712 1570 1765 696 1530 1885 946 1571 1886 948 1642 1766 697 1571 1887 948 1529 1888 942 1572 1768 699 1642 1766 697 1569 1774 705 1527 1889 947 1573 1890 945 1643 1775 706 1573 1891 945 1530 1892 946 1570 1765 696 1643 1775 706 1574 1786 717 1531 1893 940 1575 1894 943 1644 1787 718 1575 1895 943 1528 1896 944 1567 1780 711 1644 1787 718 1572 1768 699 1529 1897 942 1576 1898 941 1645 1820 752 1576 1899 941 1532 1900 938 1577 1816 747 1645 1820 752 1578 1790 721 1533 1901 936 1579 1902 939 1646 1791 722 1579 1903 939 1531 1904 940 1574 1786 717 1646 1791 722 1577 1816 747 1532 1905 938 1580 1906 937 1647 1817 748 1580 1907 937 1534 1908 934 1581 1810 741 1647 1817 748 1582 1798 729 1535 1909 931 1583 1910 935 1648 1799 730 1583 1911 935 1533 1912 936 1578 1790 721 1648 1799 730 1581 1810 741 1534 1913 934 1584 1914 933 1649 1811 742 1584 1915 933 1536 1916 932 1585 1804 735 1649 1811 742 1585 1804 735 1536 1917 932 1586 1918 930 1650 1805 736 1586 1919 930 1535 1920 931 1582 1798 729 1650 1805 736 1568 1921 2123 1528 1922 2124 1538 1844 2086 1634 1843 2085 1568 1923 2123 1634 1843 2085 1537 1826 2068 1527 1924 2125 1571 1925 2126 1530 1926 2127 1565 1839 2081 1633 1838 2080 1571 1927 2126 1633 1838 2080 1539 1833 2075 1529 1928 2128 1573 1929 2129 1527 1930 2125 1537 1826 2068 1631 1825 2067 1573 1931 2129 1631 1825 2067 1565 1839 2081 1530 1932 2127 1575 1933 2130 1531 1934 2131 1540 1850 2092 1635 1849 2091 1575 1935 2130 1635 1849 2091 1538 1844 2086 1528 1936 2124 1576 1937 2132 1529 1938 2128 1539 1833 2075 1632 1832 2074 1576 1939 2132 1632 1832 2074 1566 1880 2122 1532 1940 2133 1579 1941 2134 1533 1942 2135 1541 1853 2095 1636 1852 2094 1579 1943 2134 1636 1852 2094 1540 1850 2092 1531 1944 2131 1580 1945 2136 1532 1946 2133 1566 1880 2122 1640 1879 2121 1580 1947 2136 1640 1879 2121 1542 1874 2116 1534 1948 2137 1583 1949 2138 1535 1950 2139 1543 1862 2104 1637 1861 2103 1583 1951 2138 1637 1861 2103 1541 1853 2095 1533 1952 2135 1584 1953 2140 1534 1954 2137 1542 1874 2116 1639 1873 2115 1584 1955 2140 1639 1873 2115 1544 1868 2110 1536 1956 2141 1586 1957 2142 1536 1958 2141 1544 1868 2110 1638 1867 2109 1586 1959 2142 1638 1867 2109 1543 1862 2104 1535 1960 2139 1598 1859 2101 1546 1961 2143 1610 1962 2144 1660 1856 2098 1610 1962 2144 1545 1963 2145 1596 1857 2099 1660 1856 2098 1525 1865 2107 1547 1964 2146 1597 1965 2147 1661 1858 2100 1597 1965 2147 1546 1961 2143 1598 1859 2101 1661 1858 2100 1522 1841 2083 1549 1966 2148 1599 1967 2149 1662 1821 2063 1599 1967 2149 1548 1968 2150 1600 1822 2064 1662 1821 2063 1526 1877 2119 1551 1969 2151 1601 1970 2152 1663 1870 2112 1601 1970 2152 1550 1971 2153 1602 1871 2113 1663 1870 2112 1523 1836 2078 1553 1972 2154 1603 1973 2155 1664 1828 2070 1603 1973 2155 1552 1974 2156 1604 1829 2071 1664 1828 2070 1600 1822 2064 1548 1968 2150 1605 1975 2157 1665 1835 2077 1605 1975 2157 1553 1972 2154 1523 1836 2078 1665 1835 2077 1524 1847 2089 1554 1976 2158 1606 1977 2159 1666 1840 2082 1606 1977 2159 1549 1966 2148 1522 1841 2083 1666 1840 2082 1596 1857 2099 1545 1963 2145 1607 1978 2160 1667 1846 2088 1607 1978 2160 1554 1976 2158 1524 1847 2089 1667 1846 2088 1602 1871 2113 1550 1971 2153 1608 1979 2161 1668 1864 2106 1608 1979 2161 1547 1964 2146 1525 1865 2107 1668 1864 2106 1604 1829 2071 1552 1974 2156 1609 1980 2162 1669 1876 2118 1609 1980 2162 1551 1969 2151 1526 1877 2119 1669 1876 2118 1610 1962 2144 1546 1961 2143 1611 1981 2163 1670 1982 2164 1612 1983 2165 1545 1963 2145 1610 1962 2144 1670 1982 2164 1597 1965 2147 1547 1964 2146 1613 1984 2166 1671 1985 2167 1611 1981 2163 1546 1961 2143 1597 1965 2147 1671 1985 2167 1599 1967 2149 1549 1966 2148 1614 1986 2168 1672 1987 2169 1615 1988 2170 1548 1968 2150 1599 1967 2149 1672 1987 2169 1601 1970 2152 1551 1969 2151 1616 1989 2171 1673 1990 2172 1617 1991 2173 1550 1971 2153 1601 1970 2152 1673 1990 2172 1603 1973 2155 1553 1972 2154 1618 1992 2174 1674 1993 2175 1619 1994 2176 1552 1974 2156 1603 1973 2155 1674 1993 2175 1605 1975 2157 1548 1968 2150 1615 1988 2170 1675 1995 2177 1618 1992 2174 1553 1972 2154 1605 1975 2157 1675 1995 2177 1606 1977 2159 1554 1976 2158 1620 1996 2178 1676 1997 2179 1614 1986 2168 1549 1966 2148 1606 1977 2159 1676 1997 2179 1607 1978 2160 1545 1963 2145 1612 1983 2165 1677 1998 2180 1620 1996 2178 1554 1976 2158 1607 1978 2160 1677 1998 2180 1608 1979 2161 1550 1971 2153 1617 1991 2173 1678 1999 2181 1613 1984 2166 1547 1964 2146 1608 1979 2161 1678 1999 2181 1609 1980 2162 1552 1974 2156 1619 1994 2176 1679 2000 2182 1616 1989 2171 1551 1969 2151 1609 1980 2162 1679 2000 2182 1587 1809 740 1595 1769 700 1659 1819 750 1588 1815 746 1651 1814 745 1594 1764 695 1589 1803 734 1653 1802 733 1657 1772 703 1658 1763 694 1652 1808 739 1589 1803 734 1594 1764 695 1657 1772 703 1653 1802 733 1590 1797 728 1593 1773 704 1592 1779 710 1680 1793 724 1681 1792 723 1591 1785 716 1655 1784 715 1593 1773 704 1590 1797 728 1654 1796 727 1656 1778 709 1625 1788 719 1559 1782 713 1591 1785 716 1681 1792 723 1592 1779 710 1656 1778 709 1654 1796 727 1680 1793 724 1611 1981 2163 1519 2001 2183 1520 2002 2184 1670 1982 2164 1670 1982 2164 1520 2002 2184 1882 1750 2052 1612 1983 2165 1613 1984 2166 1517 2003 2185 1518 2004 2186 1671 1985 2167 1614 1986 2168 1488 1724 2026 1485 1723 2025 1672 1987 2169 1672 1987 2169 1485 1723 2025 1476 1714 2016 1615 1988 2170 1616 1989 2171 1499 1737 2039 1505 1743 2045 1673 1990 2172 1673 1990 2172 1505 1743 2045 1511 1749 2051 1617 1991 2173 1618 1992 2174 1474 1712 2014 1484 1722 2024 1674 1993 2175 1674 1993 2175 1484 1722 2024 1487 1729 2031 1619 1994 2176 1615 1988 2170 1476 1714 2016 1475 1713 2015 1675 1995 2177 1675 1995 2177 1475 1713 2015 1474 1712 2014 1618 1992 2174 1620 1996 2178 1500 1739 2041 1494 1733 2035 1676 1997 2179 1676 1997 2179 1494 1733 2035 1488 1724 2026 1614 1986 2168 1677 1998 2180 1506 1745 2047 1500 1739 2041 1620 1996 2178 1617 1991 2173 1511 1749 2051 1516 1758 2060 1678 1999 2181 1678 1999 2181 1516 1758 2060 1517 2003 2185 1613 1984 2166 1619 1994 2176 1487 1729 2031 1493 1731 2033 1679 2000 2182 1679 2000 2182 1493 1731 2033 1499 1737 2039 1616 1989 2171 1671 1985 2167 1518 2004 2186 1519 2001 2183 1611 1981 2163 1487 1729 2031 1484 1722 2024 1483 1721 2023 1484 1722 2024 1474 1712 2014 1473 1711 2013 1677 1998 2180 1612 1983 2165 1882 1750 2052 1506 1745 2047 1807 2005 620 1687 2006 621 1721 2007 622 1721 2007 622 1687 2006 621 1722 2008 623 1807 2005 620 1723 2009 624 1070 1282 380 1092 1281 379 1808 2010 625 1878 2011 626 1879 2012 627 1723 2009 624 1808 2010 625 1723 2009 624 1879 2012 627 1880 2013 628 1809 2014 629 1110 1287 385 1093 1289 387 1809 2014 629 1857 2015 630 1093 1289 387 1070 1282 380 1723 2009 624 1809 2014 629 1789 2016 631 1867 2017 632 1724 2018 633 1688 2019 634 1683 2020 635 1724 2018 633 1867 2017 632 1685 2021 636 1690 2022 637 1725 2023 638 1720 2024 639 1682 2025 640 1071 1300 398 1069 2026 399 1720 2027 639 1725 2023 638 1724 2018 633 1683 2028 635 1726 2029 641 1810 2030 642 1726 2031 641 1684 2032 643 1847 2033 644 1810 2030 642 1847 2033 644 1792 2034 645 1727 2035 646 1810 2030 642 1727 2035 646 1688 2019 634 1724 2018 633 1810 2030 642 1788 2036 647 1844 2037 648 1728 2038 649 1691 2039 650 1789 2016 631 1688 2019 634 1728 2038 649 1844 2037 648 1729 2040 651 1693 2041 652 1730 2042 653 1811 2043 654 1730 2042 653 1694 2044 655 1815 2045 656 1811 2043 654 1815 2045 656 1731 2046 657 1811 2043 654 1731 2046 657 1692 2047 658 1729 2040 651 1811 2043 654 1732 2048 659 1690 2022 637 1689 2049 660 1812 2050 661 1790 2051 662 1695 2052 663 1732 2048 659 1812 2050 661 1732 2048 659 1695 2052 663 1733 2053 664 1813 2054 665 1733 2053 664 1072 1331 426 1094 1330 425 1813 2054 665 1094 1330 425 1071 1300 398 1725 2023 638 1813 2054 665 1725 2023 638 1690 2022 637 1732 2048 659 1813 2054 665 1848 2055 666 1793 2056 667 1734 2057 668 1814 2058 669 1734 2057 668 1691 2039 650 1728 2038 649 1814 2058 669 1728 2038 649 1688 2019 634 1727 2035 646 1814 2058 669 1727 2035 646 1792 2034 645 1848 2055 666 1814 2058 669 1694 2044 655 1696 2059 670 1735 2060 671 1815 2045 656 1735 2060 671 1736 2061 672 1815 2045 656 1778 2062 673 1698 2063 674 1737 2064 675 1699 2065 676 1737 2064 675 1779 2066 677 1866 2067 678 1699 2065 676 1738 2068 679 1073 1348 443 1095 1347 442 1816 2069 680 1095 1347 442 1074 1350 445 1836 2070 681 1816 2069 680 1836 2070 681 1779 2066 677 1737 2064 675 1816 2069 680 1737 2064 675 1698 2063 674 1738 2068 679 1816 2069 680 1798 2071 682 1701 2072 683 1740 2073 684 1817 2074 685 1740 2073 684 1700 2075 686 1739 2076 687 1817 2074 685 1741 2077 688 1702 2078 689 1742 2079 690 1818 2080 691 1742 2079 690 1686 2081 751 1807 2005 620 1818 2080 691 1741 2077 688 1818 2080 691 1744 2082 753 1871 2083 754 1807 2005 620 1722 2008 623 1743 2084 755 1818 2080 691 1743 2084 755 1703 2085 756 1744 2082 753 1818 2080 691 1745 2086 757 1876 2087 758 1877 2088 759 1819 2089 760 1877 2088 759 1878 2011 626 1808 2010 625 1819 2089 760 1808 2010 625 1092 1281 379 1096 1369 464 1819 2089 760 1096 1369 464 1075 1370 465 1745 2086 757 1819 2089 760 1788 2036 647 1691 2039 650 1746 2090 761 1843 2091 762 1704 2092 763 1843 2091 762 1746 2090 761 1705 2093 764 1747 2094 765 1706 2095 766 1748 2096 767 1820 2097 768 1748 2096 767 1707 2098 769 1749 2099 770 1820 2097 768 1749 2099 770 1702 2078 689 1741 2077 688 1820 2097 768 1750 2100 771 1706 2095 766 1747 2094 765 1821 2101 772 1751 2102 773 1871 2083 754 1744 2082 753 1805 2103 774 1751 2102 773 1696 2059 670 1752 2104 775 1821 2101 772 1752 2104 775 1708 2105 776 1750 2100 771 1821 2101 772 1753 2106 777 1702 2078 689 1749 2099 770 1822 2107 778 1749 2099 770 1707 2098 769 1754 2108 779 1822 2107 778 1754 2108 779 1802 2109 780 1856 2110 781 1822 2107 778 1856 2110 781 1803 2111 782 1753 2106 777 1822 2107 778 1709 2112 783 1755 2113 784 1842 2114 785 1787 2115 786 1786 2116 787 1842 2114 785 1755 2113 784 1710 2117 788 1756 2118 789 1712 2119 790 1757 2120 791 1823 2121 792 1757 2120 791 1714 2122 793 1758 2123 794 1823 2121 792 1758 2123 794 1713 2124 795 1759 2125 796 1823 2121 792 1759 2125 796 1711 2126 797 1756 2118 789 1823 2121 792 1760 2127 798 1715 2128 799 1761 2129 800 1824 2130 801 1761 2129 800 1700 2075 686 1762 2131 802 1824 2130 801 1762 2131 802 1712 2119 790 1756 2118 789 1824 2130 801 1756 2118 789 1711 2126 797 1760 2127 798 1824 2130 801 1763 2132 803 1795 2133 804 1851 2134 805 1825 2135 806 1851 2134 805 1796 2136 807 1764 2137 808 1825 2135 806 1764 2137 808 1710 2117 788 1755 2113 784 1825 2135 806 1755 2113 784 1709 2112 783 1763 2132 803 1825 2135 806 1765 2138 809 1713 2124 795 1758 2123 794 1826 2139 810 1758 2123 794 1714 2122 793 1766 2140 811 1826 2139 810 1766 2140 811 1800 2141 812 1854 2142 813 1826 2139 810 1854 2142 813 1801 2143 814 1765 2138 809 1826 2139 810 1786 2116 787 1710 2117 788 1764 2137 808 1841 2144 815 1797 2145 816 1841 2144 815 1764 2137 808 1796 2136 807 1767 2146 817 1799 2147 818 1853 2148 819 1827 2149 820 1853 2148 819 1800 2141 812 1766 2140 811 1827 2149 820 1766 2140 811 1714 2122 793 1757 2120 791 1827 2149 820 1757 2120 791 1712 2119 790 1767 2146 817 1827 2149 820 1768 2150 821 1695 2052 663 1790 2051 662 1828 2151 822 1791 2152 823 1716 2153 824 1768 2150 821 1828 2151 822 1770 2154 825 1717 2155 826 1769 2156 827 1829 2157 828 1744 2082 753 1703 2085 756 1771 2158 829 1830 2159 830 1872 2160 831 1771 2158 829 1875 2161 832 1874 2162 833 1768 2150 821 1716 2153 824 1773 2163 834 1831 2164 835 1773 2163 834 1076 1447 542 1097 1446 541 1831 2164 835 1097 1446 541 1072 1331 426 1733 2053 664 1831 2164 835 1733 2053 664 1695 2052 663 1768 2150 821 1831 2164 835 1875 2161 832 1876 2087 758 1745 2086 757 1832 2165 836 1745 2086 757 1075 1370 465 1098 1449 544 1832 2165 836 1098 1449 544 1077 1451 546 1774 2166 837 1832 2165 836 1774 2166 837 1874 2162 833 1875 2161 832 1832 2165 836 1718 2167 838 1716 2153 824 1791 2152 823 1846 2168 839 1769 2156 827 1717 2155 826 1775 2169 840 1776 2170 841 1835 2171 842 1872 2160 831 1874 2162 833 1873 2172 843 1078 1458 553 1076 1447 542 1773 2163 834 1833 2173 844 1773 2163 834 1716 2153 824 1718 2167 838 1833 2173 844 1774 2166 837 1077 1451 546 1099 1461 556 1834 2174 845 1873 2172 843 1874 2162 833 1774 2166 837 1834 2174 845 1776 2170 841 1775 2169 840 1778 2062 673 1699 2065 676 1074 1350 445 1078 1458 553 1833 2173 844 1836 2070 681 1833 2173 844 1718 2167 838 1779 2066 677 1836 2070 681 1849 2175 846 1794 2176 847 1780 2177 848 1837 2178 849 1780 2177 848 1705 2093 764 1746 2090 761 1837 2178 849 1746 2090 761 1691 2039 650 1734 2057 668 1837 2178 849 1734 2057 668 1793 2056 667 1849 2175 846 1837 2178 849 1855 2179 850 1802 2109 780 1754 2108 779 1838 2180 851 1754 2108 779 1707 2098 769 1781 2181 852 1838 2180 851 1781 2181 852 1713 2124 795 1765 2138 809 1838 2180 851 1765 2138 809 1801 2143 814 1855 2179 850 1838 2180 851 1719 2182 853 1715 2128 799 1782 2183 854 1839 2184 855 1782 2183 854 1708 2105 776 1783 2185 856 1839 2184 855 1704 2092 763 1705 2093 764 1784 2186 857 1870 2187 858 1709 2112 783 1787 2115 786 1870 2187 858 1784 2186 857 1785 2188 859 1711 2126 797 1759 2125 796 1840 2189 860 1759 2125 796 1713 2124 795 1781 2181 852 1840 2189 860 1781 2181 852 1707 2098 769 1748 2096 767 1840 2189 860 1748 2096 767 1706 2095 766 1785 2188 859 1840 2189 860 1797 2145 816 1798 2071 682 1817 2074 685 1841 2144 815 1817 2074 685 1739 2076 687 1786 2116 787 1841 2144 815 1786 2116 787 1739 2076 687 1863 2190 861 1842 2114 785 1863 2190 861 1719 2182 853 1787 2115 786 1842 2114 785 1704 2092 763 1783 2185 856 1860 2191 862 1843 2091 762 1860 2191 862 1694 2044 655 1788 2036 647 1843 2091 762 1788 2036 647 1694 2044 655 1730 2042 653 1844 2037 648 1730 2042 653 1693 2041 652 1789 2016 631 1844 2037 648 1685 2192 636 1693 2041 652 1729 2040 651 1845 2193 863 1896 2194 864 1692 2047 658 1731 2046 657 1829 2157 828 1769 2156 827 1791 2152 823 1828 2151 822 1791 2152 823 1769 2156 827 1776 2170 841 1846 2168 839 1846 2168 839 1776 2170 841 1699 2065 676 1866 2067 678 1684 2195 643 1068 2196 577 1100 1483 576 1847 2033 644 1100 1483 576 1079 1485 578 1792 2034 645 1847 2033 644 1792 2034 645 1079 1485 578 1101 1486 579 1848 2055 666 1101 1486 579 1080 1487 580 1793 2056 667 1848 2055 666 1793 2056 667 1080 1487 580 1102 1488 581 1849 2175 846 1102 1488 581 1081 1489 582 1794 2176 847 1849 2175 846 1794 2176 847 1081 1489 582 1103 1491 584 1850 2197 865 1103 1491 584 1082 1492 585 1795 2133 804 1850 2197 865 1795 2133 804 1082 1492 585 1104 1493 586 1851 2134 805 1104 1493 586 1083 1494 587 1796 2136 807 1851 2134 805 1083 1494 587 1084 1495 588 1797 2145 816 1796 2136 807 1084 1495 588 1085 1496 589 1798 2071 682 1797 2145 816 1701 2072 683 1087 1499 592 1105 1498 591 1852 2198 866 1105 1498 591 1086 1500 593 1799 2147 818 1852 2198 866 1106 1501 594 1088 1502 595 1800 2141 812 1853 2148 819 1799 2147 818 1086 1500 593 1106 1501 594 1853 2148 819 1800 2141 812 1088 1502 595 1107 1503 596 1854 2142 813 1107 1503 596 1089 1504 597 1801 2143 814 1854 2142 813 1108 1505 598 1090 1506 599 1802 2109 780 1855 2179 850 1801 2143 814 1089 1504 597 1108 1505 598 1855 2179 850 1802 2109 780 1090 1506 599 1109 1507 600 1856 2110 781 1109 1507 600 1091 1508 601 1803 2111 782 1856 2110 781 1803 2111 782 1091 1508 601 1110 1287 385 1857 2015 630 1738 2068 679 1698 2063 674 1804 2199 867 1858 2200 868 1804 2199 867 1873 2172 843 1834 2174 845 1858 2200 868 1834 2174 845 1099 1461 556 1111 1511 604 1858 2200 868 1111 1511 604 1073 1348 443 1738 2068 679 1858 2200 868 1085 1496 589 1087 1499 592 1701 2072 683 1798 2071 682 1770 2154 825 1697 2201 869 1805 2103 774 1859 2202 870 1805 2103 774 1744 2082 753 1830 2159 830 1859 2202 870 1830 2159 830 1772 2203 871 1806 2204 872 1859 2202 870 1806 2204 872 1717 2155 826 1770 2154 825 1859 2202 870 1783 2185 856 1708 2105 776 1752 2104 775 1860 2191 862 1696 2059 670 1694 2044 655 1860 2191 862 1752 2104 775 1775 2169 840 1717 2155 826 1806 2204 872 1861 2205 873 1806 2204 872 1772 2203 871 1777 2206 874 1861 2205 873 1785 2188 859 1706 2095 766 1750 2100 771 1862 2207 875 1750 2100 771 1708 2105 776 1782 2183 854 1862 2207 875 1782 2183 854 1715 2128 799 1760 2127 798 1862 2207 875 1760 2127 798 1711 2126 797 1785 2188 859 1862 2207 875 1778 2062 673 1775 2169 840 1861 2205 873 1864 2208 876 1861 2205 873 1777 2206 874 1835 2171 842 1864 2208 876 1739 2076 687 1700 2075 686 1761 2129 800 1863 2190 861 1761 2129 800 1715 2128 799 1719 2182 853 1863 2190 861 1804 2199 867 1698 2063 674 1778 2062 673 1864 2208 876 1852 2198 866 1799 2147 818 1767 2146 817 1865 2209 877 1767 2146 817 1712 2119 790 1762 2131 802 1865 2209 877 1762 2131 802 1700 2075 686 1740 2073 684 1865 2209 877 1740 2073 684 1701 2072 683 1852 2198 866 1865 2209 877 1779 2066 677 1718 2167 838 1846 2168 839 1866 2067 678 1789 2016 631 1693 2041 652 1685 2210 636 1867 2017 632 1805 2103 774 1697 2201 869 1735 2060 671 1696 2059 670 1751 2102 773 1753 2106 777 1803 2111 782 1857 2015 630 1868 2211 878 1857 2015 630 1809 2014 629 1868 2211 878 1809 2014 629 1880 2013 628 1868 2211 878 1742 2079 690 1702 2078 689 1753 2106 777 1868 2211 878 1780 2177 848 1794 2176 847 1850 2197 865 1869 2212 879 1850 2197 865 1795 2133 804 1763 2132 803 1869 2212 879 1763 2132 803 1709 2112 783 1784 2186 857 1869 2212 879 1784 2186 857 1705 2093 764 1780 2177 848 1869 2212 879 1787 2115 786 1719 2182 853 1839 2184 855 1870 2187 858 1839 2184 855 1783 2185 856 1704 2092 763 1870 2187 858 1871 2083 754 1751 2102 773 1821 2101 772 1747 2094 765 1741 2077 688 1871 2083 754 1747 2094 765 1820 2097 768 1772 2203 871 1872 2160 831 1835 2171 842 1777 2206 874 1771 2158 829 1872 2160 831 1772 2203 871 1830 2159 830 1835 2171 842 1873 2172 843 1804 2199 867 1864 2208 876 1771 2158 829 1703 2085 756 1876 2087 758 1875 2161 832 1877 2088 759 1876 2087 758 1703 2085 756 1743 2084 755 1743 2084 755 1722 2008 623 1878 2011 626 1877 2088 759 1722 2008 623 1687 2006 621 1879 2012 627 1878 2011 626 1880 2013 628 1879 2012 627 1687 2006 621 1686 2081 751 1868 2211 878 1880 2013 628 1686 2081 751 1742 2079 690 1068 2213 1843 1684 2214 2187 1886 2215 2188 1319 1525 1844 1518 2004 2186 1521 1759 2061 1886 2215 2188 1887 2216 2189 1518 2004 2186 1517 2003 2185 1881 1760 2062 1521 1759 2061 1881 1760 2062 1517 2003 2185 1516 1758 2060 1515 1757 2059 898 1023 1712 1312 1025 1714 1881 1760 2062 1515 1757 2059 1683 2217 2190 1685 2218 2191 1889 2219 2192 1888 2220 2193 1882 1750 2052 1520 2002 2184 1889 2219 2192 1890 2221 2194 1884 2222 2195 1885 2223 2196 1892 2224 2197 1891 2225 2198 1315 1538 1857 1514 1754 2056 1898 2226 2199 1320 1539 1858 1519 2001 2183 1518 2004 2186 1887 2216 2189 1888 2220 2193 1512 1751 2053 1882 1750 2052 1890 2221 2194 1891 2225 2198 1729 2040 651 1692 2047 658 1884 2227 880 1845 2228 863 1690 2022 637 1682 2229 640 1885 2230 881 1689 2049 660 1883 1753 2055 1513 1752 2054 1892 2224 2197 1893 2231 2200 1885 2232 881 1884 2233 880 1692 2047 658 1689 2049 660 1521 1759 2061 905 1028 1717 1319 1525 1844 1886 2215 2188 1720 2234 2201 1069 2235 1862 1320 1539 1858 1898 2226 2199 1684 2236 2187 1726 2237 2202 1887 2216 2189 1886 2215 2188 1726 2238 2202 1683 2239 2190 1888 2220 2193 1887 2216 2189 1520 2002 2184 1519 2001 2183 1888 2220 2193 1889 2219 2192 1685 2240 2191 1845 2241 2203 1890 2221 2194 1889 2219 2192 1845 2242 2203 1884 2243 2195 1891 2225 2198 1890 2221 2194 1513 1752 2054 1512 1751 2053 1891 2225 2198 1892 2224 2197 1885 2244 2196 1682 2245 2204 1893 2231 2200 1892 2224 2197 1682 2246 2204 1720 2247 2201 1898 2226 2199 1893 2231 2200 1894 2248 882 1697 2201 869 1770 2154 825 1829 2157 828 1790 2051 662 1894 2248 882 1829 2157 828 1828 2151 822 1895 2249 883 1894 2248 882 1790 2051 662 1812 2050 661 1736 2061 672 1735 2060 671 1697 2201 869 1894 2248 882 1896 2194 864 1736 2061 672 1894 2248 882 1895 2249 883 1689 2049 660 1692 2047 658 1896 2194 864 1895 2249 883 1689 2049 660 1895 2249 883 1812 2050 661 1731 2046 657 1815 2045 656 1736 2061 672 1896 2194 864 1883 1753 2055 1893 2231 2200 1898 2226 2199 1514 1754 2056 1359 1584 1886 1371 1600 1902 1899 1601 1903 1360 1586 1888 1371 1600 1902 1382 1613 1915 1900 1614 1916 1899 1601 1903 1382 1613 1915 1393 1626 1928 1901 1627 1929 1900 1614 1916 1393 1626 1928 1404 1639 1941 1902 1640 1942 1901 1627 1929 1404 1639 1941 1415 1652 1954 350 790 1479 1902 1640 1942 1415 1652 1954 1426 1664 1966 433 793 1482 350 790 1479 1497 1735 2037 1903 1756 2058 430 806 1495 1503 1741 2043 1509 1747 2049 1904 1755 2057 1903 1756 2058 1051 1105 1734 986 1090 1719 1906 1093 1722 1905 1106 1735 1048 1091 1720 908 1109 1738 1908 1096 1725 1907 1092 1721 1017 1095 1724 951 1107 1736 1906 1093 1722 1907 1092 1721 1019 1108 1737 925 1101 1730 1909 1103 1732 1905 1106 1735 1020 1113 1742 923 1094 1723 1908 1096 1725 1910 1111 1740 1050 1098 1727 909 1104 1733 1909 1103 1732 1911 1099 1728 1052 1110 1739 910 1115 1744 1912 1114 1743 1910 1111 1740 1018 1102 1731 952 1148 1777 1913 1100 1729 1911 1099 1728 1021 1119 1748 924 1112 1741 1912 1114 1743 1914 1117 1746 1055 1146 1775 990 1097 1726 1913 1100 1729 1915 1147 1776 1053 1116 1745 982 1125 1754 1916 1120 1749 1914 1117 1746 1026 1149 1778 928 1142 1771 1917 1144 1773 1915 1147 1776 1022 1122 1751 926 1118 1747 1916 1120 1749 1918 1123 1752 1049 1140 1769 912 1145 1774 1917 1144 1773 1919 1141 1770 1046 1126 1755 984 1127 1756 1920 1124 1753 1918 1123 1752 1025 1143 1772 930 1136 1765 1921 1138 1767 1919 1141 1770 1023 1131 1760 927 1121 1750 1920 1124 1753 1922 1129 1758 1054 1134 1763 988 1139 1768 1921 1138 1767 1923 1135 1764 1047 1128 1757 911 1133 1762 1924 1132 1761 1922 1129 1758 1024 1137 1766 929 1130 1759 1924 1132 1761 1923 1135 1764 1522 1841 2083 1662 1821 2063 1926 1824 2066 1925 1827 2069 1600 1822 2064 1665 1835 2077 1928 1837 2079 1927 1823 2065 1565 1839 2081 1631 1825 2067 1926 1824 2066 1927 1823 2065 1537 1826 2068 1634 1843 2085 1929 1842 2084 1925 1827 2069 1539 1833 2075 1633 1838 2080 1928 1837 2079 1930 1834 2076 1524 1847 2089 1666 1840 2082 1929 1842 2084 1931 1845 2087 1523 1836 2078 1664 1828 2070 1932 1831 2073 1930 1834 2076 1538 1844 2086 1635 1849 2091 1933 1848 2090 1931 1845 2087 1566 1880 2122 1632 1832 2074 1932 1831 2073 1934 1830 2072 1596 1857 2099 1667 1846 2088 1933 1848 2090 1935 1851 2093 1604 1829 2071 1669 1876 2118 1936 1878 2120 1934 1830 2072 1540 1850 2092 1636 1852 2094 1937 1855 2097 1935 1851 2093 1542 1874 2116 1640 1879 2121 1936 1878 2120 1938 1875 2117 1598 1859 2101 1660 1856 2098 1937 1855 2097 1939 1854 2096 1526 1877 2119 1663 1870 2112 1940 1872 2114 1938 1875 2117 1541 1853 2095 1637 1861 2103 1941 1860 2102 1939 1854 2096 1544 1868 2110 1639 1873 2115 1940 1872 2114 1942 1869 2111 1525 1865 2107 1661 1858 2100 1941 1860 2102 1943 1863 2105 1602 1871 2113 1668 1864 2106 1944 1866 2108 1942 1869 2111 1543 1862 2104 1638 1867 2109 1944 1866 2108 1943 1863 2105 651 570 1332 1945 675 1416 2086 2250 2205 2087 571 1333 1964 507 1303 374 512 1308 393 653 1394 1945 675 1416 2086 2250 2205 1945 675 1416 393 653 1394 2107 723 1448 401 620 1368 521 619 1367 1948 772 1467 1949 771 1466 579 623 1371 660 630 1378 1950 770 1465 1949 771 1466 402 628 1376 524 626 1374 1950 770 1465 1951 769 1464 578 631 1379 577 664 1405 1952 767 1462 1951 769 1464 577 664 1405 2094 700 1429 2096 768 1463 1952 767 1462 419 742 977 584 693 281 1954 765 1000 1955 764 999 575 553 236 659 556 239 1957 762 997 1956 763 998 404 636 250 527 634 248 1957 762 997 1958 761 996 574 558 241 658 569 245 1959 760 995 1958 761 996 407 643 257 530 641 255 1959 760 995 1960 759 994 573 568 244 657 672 268 1961 758 993 1960 759 994 412 649 263 533 647 261 1961 758 993 1962 757 992 571 755 990 671 732 309 1947 734 311 1963 756 991 1470 1708 2010 1481 1719 2021 347 801 1490 431 800 1489 1459 1697 1999 1470 1708 2010 431 800 1489 348 798 1487 1448 1686 1988 1459 1697 1999 348 798 1487 432 797 1486 1437 1675 1977 1448 1686 1988 432 797 1486 349 794 1483 1491 1727 2029 351 803 1492 347 801 1490 1481 1719 2021 1497 1735 2037 430 806 1495 351 803 1492 1491 1727 2029 435 438 1234 430 806 1495 1903 1756 2058 1986 1021 1710 435 438 1234 1986 1021 1710 320 1020 1709 88 375 1186 433 793 1482 1426 1664 1966 1437 1675 1977 349 794 1483 2048 2251 2206 2049 2252 2207 1973 1589 1891 1972 1588 1890 1902 1640 1942 350 790 1479 434 436 1232 1974 1641 1943 2047 2253 2208 2048 2251 2206 1972 1588 1890 1975 1602 1904 2046 2254 2209 2047 2253 2208 1975 1602 1904 1976 1615 1917 2045 2255 2210 2046 2254 2209 1976 1615 1917 1977 1628 1930 2044 1653 1955 2045 2255 2210 1977 1628 1930 1974 1641 1943 606 781 1473 684 410 1214 2026 413 1217 2027 423 2211 310 111 904 1978 113 906 2025 412 1216 2024 409 1213 867 985 1674 858 976 1665 4 371 1182 84 373 1184 858 976 1665 845 964 1653 0 369 1180 4 371 1182 721 832 1521 1331 831 1520 1980 836 1525 1979 835 1524 774 2256 2212 3 360 1171 87 359 1170 1981 892 1581 722 834 1523 735 2257 2213 1982 850 1539 1979 835 1524 735 2257 2213 748 2258 2214 1983 864 1553 1982 850 1539 748 2258 2214 761 2259 2215 1984 878 1567 1983 864 1553 761 2259 2215 774 2256 2212 1981 892 1581 1984 878 1567 810 928 1617 798 916 1605 86 364 1175 1 365 1176 1 365 1176 85 367 1178 822 940 1629 810 928 1617 834 952 1641 822 940 1629 85 367 1178 0 369 1180 845 964 1653 834 952 1641 0 369 1180 88 375 1186 320 1020 1709 2015 2260 2216 2015 2260 2216 84 373 1184 88 375 1186 1904 1755 2057 1514 1754 2056 1315 1538 1857 1985 1019 1708 1337 1017 1706 1985 1019 1708 1315 1538 1857 897 1018 1707 90 2 28 243 1 26 1987 2261 2217 1988 2262 2218 243 1 26 91 4 30 1989 2263 2219 1987 2261 2217 91 4 30 244 7 35 1990 2264 2220 1989 2263 2219 244 7 35 299 8 36 1991 2265 2221 1990 2264 2220 164 179 1042 163 178 1041 1992 2266 2222 1993 2267 2223 266 181 1045 165 180 1043 1994 2268 2224 1995 2269 2225 163 178 1041 266 181 1045 1995 2269 2225 1992 2266 2222 288 184 1048 90 2 28 1988 2262 2218 1996 2270 2226 167 186 1050 164 179 1042 1993 2267 2223 1997 2271 2227 324 333 1144 288 184 1048 1996 2270 2226 1998 2272 2228 315 351 1162 167 186 1050 1997 2271 2227 1999 2273 2229 165 180 1043 324 333 1144 1998 2272 2228 1994 2268 2224 1991 2265 2221 299 8 36 2017 378 1189 2018 2274 2230 690 432 1228 315 351 1162 1999 2273 2229 2001 2275 2231 622 442 1238 437 441 1237 2002 2276 2232 2003 2277 2233 438 443 1239 622 442 1238 2003 2277 2233 2004 2278 2234 623 446 1242 438 443 1239 2004 2278 2234 2005 2279 2235 440 447 1243 623 446 1242 2005 2279 2235 2006 2280 2236 519 618 1366 520 617 1365 2007 2281 2237 2008 2282 2238 521 619 1367 645 622 1370 2009 2283 2239 2010 2284 2240 645 622 1370 519 618 1366 2008 2282 2238 2009 2283 2239 437 441 1237 661 624 1372 2011 2285 2241 2002 2276 2232 520 617 1365 523 625 1373 2012 2286 2242 2007 2281 2237 661 624 1372 1948 772 1467 2013 2287 2243 2011 2285 2241 672 774 1469 440 447 1243 2006 2280 2236 2000 2288 2244 523 625 1373 690 432 1228 2001 2275 2231 2012 2286 2242 1948 772 1467 521 619 1367 2010 2284 2240 2013 2287 2243 1988 2262 2218 1987 2261 2217 2014 2289 2245 1987 2261 2217 1989 2263 2219 2014 2289 2245 1989 2263 2219 1990 2264 2220 2014 2289 2245 1990 2264 2220 1991 2265 2221 2014 2289 2245 1993 2267 2223 1992 2266 2222 2014 2289 2245 1995 2269 2225 1994 2268 2224 2014 2289 2245 1992 2266 2222 1995 2269 2225 2014 2289 2245 1996 2270 2226 1988 2262 2218 2014 2289 2245 1997 2271 2227 1993 2267 2223 2014 2289 2245 1998 2272 2228 1996 2270 2226 2014 2289 2245 1999 2273 2229 1997 2271 2227 2014 2289 2245 1994 2268 2224 1998 2272 2228 2014 2289 2245 1991 2265 2221 2018 2274 2230 2000 2288 2244 2014 2289 2245 2001 2275 2231 1999 2273 2229 2014 2289 2245 2003 2277 2233 2002 2276 2232 2014 2289 2245 2004 2278 2234 2003 2277 2233 2014 2289 2245 2005 2279 2235 2004 2278 2234 2014 2289 2245 2006 2280 2236 2005 2279 2235 2014 2289 2245 2008 2282 2238 2007 2281 2237 2014 2289 2245 2010 2284 2240 2009 2283 2239 2014 2289 2245 2009 2283 2239 2008 2282 2238 2014 2289 2245 2002 2276 2232 2011 2285 2241 2014 2289 2245 2007 2281 2237 2012 2286 2242 2014 2289 2245 2011 2285 2241 2013 2287 2243 2014 2289 2245 2000 2288 2244 2006 2280 2236 2014 2289 2245 2012 2286 2242 2001 2275 2231 2014 2289 2245 2013 2287 2243 2010 2284 2240 2014 2289 2245 2015 2260 2216 320 1020 1709 884 1002 1691 877 995 1684 877 995 1684 867 985 1674 84 373 1184 2015 2260 2216 1497 1735 2037 1503 1741 2043 1903 1756 2058 672 774 1469 2000 2288 2244 2018 2274 2230 2017 378 1189 308 85 74 228 88 77 2020 406 151 2019 402 150 673 775 1470 590 773 1468 2022 377 1188 2021 379 1190 590 773 1468 672 774 1469 2017 378 1189 2022 377 1188 591 776 1471 673 775 1470 2021 379 1190 2023 380 1191 683 780 1472 591 776 1471 2023 380 1191 2024 409 1213 604 411 1215 683 780 1472 2024 409 1213 2025 412 1216 1978 113 906 142 124 914 2026 413 1217 2025 412 1216 142 124 914 229 126 916 2027 423 2211 2026 413 1217 687 782 229 606 781 228 2027 423 153 2028 422 152 607 783 230 687 782 229 2028 422 152 2029 424 154 688 784 231 607 783 230 2029 424 154 2030 425 155 603 778 224 688 784 231 2030 425 155 2031 408 147 682 779 225 603 778 224 2031 408 147 2032 407 146 601 777 222 682 779 225 2032 407 146 2033 403 145 681 405 223 601 777 222 2033 403 145 2019 402 2263 2020 406 151 228 88 77 312 154 107 2016 420 160 312 154 107 41 140 103 2034 414 156 2016 420 160 41 140 103 311 135 100 2035 415 157 2034 414 156 311 135 921 29 77 897 2036 394 1205 2035 415 1218 29 77 897 307 76 896 2037 395 1206 2036 394 1205 307 76 896 227 79 899 2038 398 1209 2037 395 1206 227 79 899 45 81 901 2039 400 1211 2038 398 1209 45 81 901 162 353 1164 2040 428 1224 2039 400 1211 162 353 1164 79 355 1166 2041 430 1226 2040 428 1224 79 355 1166 233 358 1169 2042 433 1229 2041 430 1226 233 358 1169 3 360 1171 2043 435 1231 2042 433 1229 3 360 1171 774 2256 2212 2044 1653 1955 2043 435 1231 774 2256 2212 761 2259 2215 2045 2255 2210 2044 1653 1955 761 2259 2215 748 2258 2214 2046 2254 2209 2045 2255 2210 748 2258 2214 735 2257 2213 2047 2253 2208 2046 2254 2209 735 2257 2213 722 834 1523 2048 2251 2206 2047 2253 2208 722 834 1523 708 833 1522 2049 2252 2207 2048 2251 2206 907 1029 1718 2049 2252 2207 708 833 1522 1973 1589 1891 2049 2252 2207 907 1029 1718 907 1029 1718 1980 836 1525 1331 831 1520 2050 292 123 2051 291 122 2065 133 1002 2064 288 1003 282 294 125 322 296 127 2067 376 1004 2066 134 1005 2051 291 122 282 294 125 2066 134 1005 2065 133 1002 185 244 52 278 242 50 2069 237 1006 2068 245 1007 184 241 49 279 251 56 2071 246 1008 2070 238 1009 278 242 50 184 241 49 2070 238 1009 2069 237 1006 2052 263 64 185 244 52 2068 245 1007 2072 261 1010 186 250 55 2050 292 123 2064 288 1003 2073 247 1011 279 251 56 186 250 55 2073 247 1011 2071 246 1008 187 259 1104 280 257 1103 2075 252 1099 2074 260 1105 2053 256 59 2054 327 235 2077 328 1014 2076 253 1015 280 257 60 2053 256 59 2076 253 1015 2075 252 2276 2055 266 1109 187 259 1104 2074 260 1105 2078 264 1107 2054 327 235 2052 263 64 2072 261 1010 2077 328 1014 188 268 1111 2055 266 1109 2078 264 1107 2079 269 1112 2056 272 1115 188 268 1111 2079 269 1112 2080 270 1113 189 274 1117 2056 272 1115 2080 270 1113 2081 275 1118 2057 287 1128 189 274 1117 2081 275 1118 2082 285 1126 191 283 88 281 281 2271 2084 276 1021 2083 284 1022 190 280 1123 2057 287 1128 2082 285 1126 2085 277 1120 281 281 1124 190 280 1123 2085 277 1120 2084 276 1119 322 296 127 191 283 88 2083 284 1022 2067 376 1004 1946 735 970 656 733 310 2087 571 1024 2086 2250 1025 2058 731 308 2059 730 307 2089 727 1026 2088 572 1027 656 733 310 2058 731 308 2088 572 1027 2087 571 1024 653 689 279 554 681 274 2091 676 1028 2090 686 1029 652 680 273 555 683 276 2093 684 1030 2092 677 1031 554 681 274 652 680 273 2092 677 1031 2091 676 1028 555 683 276 2060 702 288 2094 700 1032 2093 684 1030 2059 730 307 556 690 280 2095 685 1033 2089 727 1026 556 690 280 653 689 279 2090 686 1029 2095 685 1033 1953 766 1001 557 696 284 2097 691 1034 2096 768 1035 654 695 1427 558 698 1426 2099 699 1428 2098 692 1423 557 696 284 654 695 2270 2098 692 1037 2097 691 1034 558 698 1426 2061 705 1432 2100 703 1430 2099 699 1428 2060 702 288 1953 766 1001 2096 768 1035 2094 700 1032 2061 705 1432 559 707 1434 2101 708 1435 2100 703 1430 559 707 1434 2062 711 1438 2102 709 1436 2101 708 1435 2062 711 1438 560 713 1440 2103 714 1441 2102 709 1436 560 713 1440 2063 726 1451 2104 724 1449 2103 714 1441 2063 726 1451 561 720 1447 2105 715 1442 2104 724 1449 655 719 299 562 722 302 2107 723 1044 2106 716 2266 561 720 1447 655 719 1446 2106 716 1443 2105 715 1442 562 722 302 1946 735 970 2086 2250 1025 2107 723 1044 1686 2081 751 1687 2006 621 1807 2005 620 1117 1276 374 1237 1275 373 1151 1277 375

+
+
+
+
+ + + + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + + + 20.63 815.2 21.21 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + -20.63 -815.2 -21.21 + 20.63 815.2 21.21 + -20.63 -815.2 -21.21 + + + + + + + + + + + + + + + + +
diff --git a/test/data/externalRef.dae b/test/data/externalRef.dae new file mode 100644 index 0000000..d3a9bea --- /dev/null +++ b/test/data/externalRef.dae @@ -0,0 +1,12 @@ + + + + 2008-04-16T18:46:43Z + 2006-04-16T18:46:43Z + + + + + + + diff --git a/test/data/extraTest.dae b/test/data/extraTest.dae new file mode 100644 index 0000000..746d3b8 --- /dev/null +++ b/test/data/extraTest.dae @@ -0,0 +1,25 @@ + + + + 2006-08-23T22:34:52Z + 2006-08-23T22:34:52Z + + + + + + + + + + + float_array + fx_sampler2D_common + any + + + + + diff --git a/test/data/quotesProblem.dae b/test/data/quotesProblem.dae new file mode 100644 index 0000000..4c21715 --- /dev/null +++ b/test/data/quotesProblem.dae @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/test/data/sidResolveTest.dae b/test/data/sidResolveTest.dae new file mode 100644 index 0000000..255308a --- /dev/null +++ b/test/data/sidResolveTest.dae @@ -0,0 +1,131 @@ + + + + + stthomas + Feeling ColladaMax v3.02 with FCollada v3.02. + ColladaMax Export Options: ExportNormals=1;ExportEPolyAsTriangles=1;ExportXRefs=1;ExportSelected=0;ExportTangents=0;ExportAnimations=1;SampleAnim=0;ExportAnimClip=0;BakeMatrices=0;ExportRelativePaths=1;AnimStart=0;AnimEnd=100; + + 2007-05-24T01:33:59Z + 2007-05-24T01:34:01Z + + Z_UP + + + + + + 0 + + + 0 + + + 0 + + + + + + + + + myFloat1 element + myFloat.2 element + .myFloat. element + + + + + + + + + + + + + 10 20 30 + 0 1 0 90 + 40 50 60 + + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 0 0 0 1 + + + + + + + + + 10 20 30 + + + + + + + + + + + + + + + + + + + + + + + + myNode element + myNode/subNode1 element + myNode/subNode1/subNode2 element + myNode/subNode1/subNode2/trans array + myNode/trans.X scalar + myNode/trans.Y scalar + myNode/trans(2) scalar + myNode/subNode1/rot(1) scalar + myNode/rot.ANGLE scalar + myNode/mtx(1)(2) scalar + ./rot array + myNode/.trans.late..X scalar + myNode/trans(-1) failed + myNode/trans.F failed + myNode/trans(20) failed + myNode/mtx(1)(2)(3) failed + test/trans failed + myNode/trans.X.Y failed + myNode/trans.X(1) failed + myNode/mtx(1) scalar + myNode/mtx(1).X failed + myNode/mtx(1)(5) scalar + my.Node/trans.X scalar + + + + + myNode2/subNode2 myNode5 + myNode2/subNode1/subNode2 myNode4 + myNode2/blah failed + + + + myNode6/customElem profile1 customElem1 + myNode6/customElem profile2 customElem2 + myNode6/customElem profile3 failed + + + + diff --git a/test/data/texture.bmp b/test/data/texture.bmp new file mode 100644 index 0000000..491b818 Binary files /dev/null and b/test/data/texture.bmp differ diff --git a/test/data/uri.dae b/test/data/uri.dae new file mode 100644 index 0000000..3576c44 --- /dev/null +++ b/test/data/uri.dae @@ -0,0 +1,8 @@ + + + + + file.tga + + + \ No newline at end of file diff --git a/test/domTest.cpp b/test/domTest.cpp new file mode 100644 index 0000000..deabada --- /dev/null +++ b/test/domTest.cpp @@ -0,0 +1,1550 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "domTest.h" + +// Windows memory leak checking +#if defined _MSC_VER && defined _DEBUG +#define _CRTDBG_MAP_ALLOC +#include +#include +#endif + +namespace fs = boost::filesystem; +using namespace std; +using namespace cdom; + +float toFloat(const string& s) { + istringstream stream(s); + float f; + stream >> f; + return f; +} + +#define CheckResultWithMsg(val, msg) \ + if (!(val)) { \ + return testResult(false, __FILE__, __LINE__, msg); \ + } + +#define CompareDocs(dae, file1, file2) \ + { \ + domCOLLADA *root1 = (dae).getRoot(file1), \ + *root2 = (dae).getRoot(file2); \ + daeElement::compareResult result = daeElement::compareWithFullResult(*root1, *root2); \ + if (result.compareValue != 0) { \ + return testResult(false, __FILE__, __LINE__, result.format()); \ + } \ + } + +map& registeredTests() { + static map tests; + return tests; +} + +fs::path& dataPath() { + static fs::path dataPath_; + return dataPath_; +} + +fs::path& tmpPath() { + static fs::path tmpPath_; + return tmpPath_; +} + +#define RunTest(testName) \ + { \ + map::iterator iter = registeredTests().find(#testName); \ + CheckResult(iter != registeredTests().end()); \ + CheckResult(iter->second->run()); \ + } + + +string lookupTestFile(const string& fileName) { + return (dataPath() / fileName).native_file_string(); +} + +string getTmpFile(const string& fileName) { + return (tmpPath() / fileName).native_file_string(); +} + + +string chopWS(const string& s) { + string ws = " \t\n\r"; + size_t beginPos = s.find_first_not_of(ws); + size_t endPos = s.find_last_not_of(ws); + if (beginPos == string::npos) + return ""; + return s.substr(beginPos, endPos-beginPos+1); +} + +DefineTest(chopWS) { + CheckResult(chopWS("") == ""); + CheckResult(chopWS("") == ""); + CheckResult(chopWS(" ") == ""); + CheckResult(chopWS(" test") == "test"); + CheckResult(chopWS("test ") == "test"); + CheckResult(chopWS(" test ") == "test"); + CheckResult(chopWS(" a ") == "a"); + return testResult(true); +} + + +DefineTest(utils) { + CheckResult(replace("abc", "abc", "def") == "def"); + CheckResult(replace("abc", "a", "1") == "1bc"); + CheckResult(replace("abc", "c", "1") == "ab1"); + CheckResult(replace("abc123", "bc12", "b") == "ab3"); + CheckResult(replace("abracadabra", "a", "") == "brcdbr"); + + CheckResult(tokenize("1|2|3|4", "|") == makeStringList("1", "2", "3", "4", 0)); + CheckResult(tokenize("|1|", "|") == makeStringList("1", 0)); + CheckResult(tokenize("1|||2||3|", "|") == makeStringList("1", "2", "3", 0)); + CheckResult(tokenize("1|||2||3|", "|", true) == + makeStringList("1", "|", "|", "|", "2", "|", "|", "3", "|", 0)); + CheckResult(tokenize("this/is some#text", "/#", true) == + makeStringList("this", "/", "is some", "#", "text", 0)); + CheckResult(tokenize("this/is some#text", "/# ", false) == + makeStringList("this", "is", "some", "text", 0)); + + CheckResult(toString(5) == "5"); + CheckResult(toFloat(toString(4.0f)) == 4.0f); + + return testResult(true); +} + + +DefineTest(elementAddFunctions) { + DAE dae; + const char* uri = "file.dae"; + + // Test the new 'add' functions + daeElement* root = dae.add(uri); + CheckResult(root); + daeElement* geomLib = root->add("library_geometries"); + CheckResult(geomLib); + daeElement* effectLib = root->add("library_effects", 0); + CheckResult(effectLib && root->getChildren()[0] == effectLib); + root->addBefore(geomLib, effectLib); + CheckResult(root->getChildren()[0] == geomLib); + CheckResult(root->removeChildElement(geomLib)); + root->addAfter(geomLib, effectLib); + CheckResult(root->getChildren()[1] == geomLib); + CheckResult(root->removeChildElement(geomLib)); + root->add(geomLib); + CheckResult(root->getDescendant("library_geometries")); + daeElement* instanceGeom = root->add("library_nodes node instance_geometry"); + CheckResult(instanceGeom && instanceGeom->typeID() == domInstance_geometry::ID()); + CheckResult(root->add("library_materials material blah") == NULL); + CheckResult(root->getDescendant("library_materials") == NULL); + + // Test the deprecated functions + dae.close(uri); + root = dae.add(uri); + CheckResult(root); + geomLib = root->createAndPlace("library_geometries"); + CheckResult(geomLib); + effectLib = root->createAndPlaceAt(0, "library_effects"); + CheckResult(effectLib && root->getChildren()[0] == effectLib); + root->placeElementBefore(effectLib, geomLib); + CheckResult(root->getChildren()[0] == geomLib); + CheckResult(root->removeChildElement(geomLib)); + root->placeElementAfter(effectLib, geomLib); + CheckResult(root->getChildren()[1] == geomLib); + CheckResult(root->removeChildElement(geomLib)); + root->placeElement(geomLib); + CheckResult(root->getDescendant("library_geometries")); + + return testResult(true); +} + + +DefineTest(loadClipPlane) { + DAE dae; + CheckResult(dae.open(lookupTestFile("clipPlane.dae"))); + return testResult(true); +} + + +DefineTest(renderStates) { + string memoryUri = "renderStates_create.dae"; + string file = getTmpFile("renderStates.dae"); + + DAE dae; + daeElement* root = dae.add(memoryUri); + CheckResult(root); + daeElement* pass = root->add("library_effects effect profile_CG technique pass"); + CheckResult(pass); + pass->add("color_clear")->setCharData("0 0 0 0"); + pass->add("depth_mask")->setAttribute("value", "true"); + pass->add("cull_face_enable")->setAttribute("value", "true"); + pass->add("blend_enable")->setAttribute("value", "true"); + pass->add("blend_func_separate")->setAttribute("value", "true"); + pass->add("cull_face")->setAttribute("value", "FRONT"); + pass->add("polygon_offset_fill_enable")->setAttribute("value", "true"); + pass->add("clear_color")->setAttribute("value", "0 0 0 0"); + + // Write the document to disk + CheckResult(dae.writeTo(memoryUri, file)); + + // Load up the saved document and see if it's the same as our in-memory document + root = dae.open(file); + CheckResult(root); + CompareDocs(dae, memoryUri, file); + + // Check default attribute value suppression + CheckResult(root->getDescendant("depth_mask")->isAttributeSet("value") == false); + CheckResult(root->getDescendant("clear_color")->isAttributeSet("value") == false); + CheckResult(root->getDescendant("color_clear")->getCharData() != ""); + CheckResult(root->getDescendant("polygon_offset_fill_enable")->isAttributeSet("value")); + + return testResult(true); +} + + +DefineTest(compareElements) { + string memoryUri = "file.dae"; + + DAE dae; + daeElement* root = dae.add(memoryUri); + CheckResult(root); + + daeElement* technique = root->add("extra technique"); + CheckResult(technique); + + // Make sure attribute order doesn't matter + daeElement* elt1 = technique->add("elt"); + daeElement* elt2 = technique->add("elt"); + CheckResult(elt1 && elt2); + + elt1->setAttribute("attr1", "val1"); + elt1->setAttribute("attr2", "val2"); + elt2->setAttribute("attr2", "val2"); + elt2->setAttribute("attr1", "val1"); + + CheckResult(daeElement::compare(*elt1, *elt2) == 0); + + // Make sure that element comparison fails when appropriate + elt2->setAttribute("attr3", "val3"); + CheckResult(daeElement::compare(*elt1, *elt2) < 0); + + return testResult(true); +} + + +DefineTest(writeCamera) { + string memoryUri = "camera_create.dae"; + string file = getTmpFile("camera.dae"); + + DAE dae; + daeElement* elt = dae.add(memoryUri); + CheckResult(elt); + elt = elt->add("library_cameras camera optics technique_common perspective xfov"); + CheckResult(elt); + elt->setCharData("1.0"); + + CheckResult(dae.writeTo(memoryUri, file)); + domCOLLADA* root = dae.open(file); + CheckResult(root); + CompareDocs(dae, memoryUri, file); + CheckResult(toFloat(root->getDescendant("xfov")->getCharData()) == 1.0f); + + return testResult(true); +} + + +string getRoundTripFile(const string& name) { + return getTmpFile(fs::basename(fs::path(name)) + "_roundTrip.dae"); +} + +bool roundTrip(const string& file) { + DAE dae; + if (!dae.open(file)) + return false; + return dae.writeTo(file, getRoundTripFile(file)); +} + +DefineTest(roundTripSeymour) { + string file1 = lookupTestFile("Seymour.dae"), + file2 = getRoundTripFile(file1); + DAE dae; + CheckResult(dae.open(file1)); + CheckResult(dae.writeTo(file1, file2)); + CheckResult(dae.open(file2)); + CompareDocs(dae, file1, file2); + return testResult(true); +} + + +DefineTest(rawSupport) { + string seymourOrig = lookupTestFile("Seymour.dae"), + seymourRaw = getTmpFile("Seymour_raw.dae"); + DAE dae; + + CheckResult(dae.open(seymourOrig)); + dae.getIOPlugin()->setOption("saveRawBinary", "true"); + CheckResult(dae.writeTo(seymourOrig, seymourRaw)); + dae.clear(); + + // Make sure the .raw file is there + CheckResult(fs::exists(fs::path(seymourRaw + ".raw"))); + + daeElement* seymourRawRoot = dae.open(seymourRaw); + CheckResult(seymourRawRoot); + CheckResult(dae.getDatabase()->idLookup("l_hip_rotateY_l_hip_rotateY_ANGLE-input", + seymourRawRoot->getDocument())); + domAccessor* accessor = dae.getDatabase()->typeLookup().at(0); + daeURI& uri = accessor->getSource(); + CheckResult(uri.pathExt().find(".raw") != string::npos); + CheckResult(uri.getElement()); + + return testResult(true); +} + +DefineTest(extraTypeTest) { + DAE dae; + string file = lookupTestFile("extraTest.dae"); + daeElement* root = dae.open(file); + CheckResult(root); + + daeElement *technique = root->getDescendant("technique"), + *expectedTypesElt = root->getDescendant("expected_types"); + CheckResult(technique && expectedTypesElt); + + istringstream expectedTypesStream(expectedTypesElt->getCharData()); + vector expectedTypes; + string tmp; + while (expectedTypesStream >> tmp) + expectedTypes.push_back(tmp); + + daeElementRefArray elements = technique->getChildren(); + + CheckResult(expectedTypes.size() == elements.getCount()-1); + for (size_t i = 0; i < elements.getCount()-1; i++) { + ostringstream msg; + msg << "Actual type - " << elements[i]->getTypeName() << ", Expected type - " << expectedTypes[i]; + CheckResultWithMsg(expectedTypes[i] == elements[i]->getTypeName(), msg.str()); + } + + return testResult(true); +} + +#if defined(TINYXML) +#include +DefineTest(tinyXmlLoad) { + string seymourOrig = lookupTestFile("Seymour.dae"), + seymourTinyXml = getTmpFile("Seymour_tinyXml.dae"); + + // Plan: Load Seymour with libxml, then save with TinyXml and immediately reload the + // saved document, and make sure the results are the same. + DAE dae; + CheckResult(dae.open(seymourOrig)); + auto_ptr tinyXmlPlugin(new daeTinyXMLPlugin); + dae.setIOPlugin(tinyXmlPlugin.get()); + CheckResult(dae.writeTo(seymourOrig, seymourTinyXml)); + CheckResult(dae.open(seymourTinyXml)); + CompareDocs(dae, seymourOrig, seymourTinyXml); + + return testResult(true); +} +#endif + + +string resolveResultToString(const string& sidRef, daeElement* refElt) { + daeSidRef::resolveData rd = daeSidRef(sidRef, refElt).resolve(); + if (rd.scalar) return "scalar"; + else if (rd.array) return "array"; + else if (rd.elt) return "element"; + else return "failed"; +} + +DefineTest(sidResolve) { + DAE dae; + daeElement* root = dae.open(lookupTestFile("sidResolveTest.dae")); + CheckResult(root); + daeDatabase& database = *dae.getDatabase(); + daeDocument* doc = root->getDocument(); + + daeElement *effect = database.idLookup("myEffect", doc), + *effectExtra = database.idLookup("effectExtra", doc); + CheckResult(effect && effectExtra); + + istringstream stream(effectExtra->getCharData()); + string sidRef, expectedResult; + while (stream >> sidRef >> expectedResult) { + string result = resolveResultToString(sidRef, effect); + CheckResultWithMsg(result == expectedResult, + string("sid ref=") + sidRef + ", expectedResult=" + expectedResult + ", actualResult=" + result); + } + + daeElement* nodeSidRefExtra = database.idLookup("nodeSidRefExtra", doc); + CheckResult(nodeSidRefExtra); + + stream.clear(); + stream.str(nodeSidRefExtra->getCharData()); + while (stream >> sidRef >> expectedResult) { + string result = resolveResultToString(sidRef, root); + CheckResultWithMsg(result == expectedResult, + string("sid ref=") + sidRef + ", expectedResult=" + expectedResult + ", actualResult=" + result); + } + + nodeSidRefExtra = database.idLookup("nodeSidRefExtra2", doc); + CheckResult(nodeSidRefExtra); + + stream.clear(); + stream.str(nodeSidRefExtra->getCharData()); + while (stream >> sidRef >> expectedResult) { + daeElement* elt = daeSidRef(sidRef, root).resolve().elt; + string result = elt ? elt->getAttribute("id") : "failed"; + CheckResultWithMsg(result == expectedResult, + string("sid ref=") + sidRef + ", expectedResult=" + expectedResult + ", actualResult=" + result); + } + + nodeSidRefExtra = database.idLookup("nodeSidRefExtra3", doc); + CheckResult(nodeSidRefExtra); + + stream.clear(); + stream.str(nodeSidRefExtra->getCharData()); + string profile; + while (stream >> sidRef >> profile >> expectedResult) { + daeElement* elt = daeSidRef(sidRef, root, profile).resolve().elt; + string result = elt ? elt->getAttribute("id") : "failed"; + CheckResultWithMsg(result == expectedResult, + string("sid ref=") + sidRef + ", profile=" + profile + + ", expectedResult=" + expectedResult + ", actualResult=" + result); + } + + + return testResult(true); +} + +daeElement* findChildByName(daeElement* el, daeString name) { + if (!el) + return 0; + + daeElementRefArray children = el->getChildren(); + for (size_t i = 0; i < children.getCount(); i++) + if (strcmp(children[i]->getElementName(), name) == 0) + return children[i]; + + return 0; +} + +daeElement* findAncestorByType(daeElement* el, daeString type) { + if (el == 0 || strcmp(el->getTypeName(), type) == 0) + return el; + return findAncestorByType(el->getParentElement(), type); +} + +daeElement* resolveID(daeString id, daeDocument& document) { + return document.getDatabase()->idLookup(id, &document); +} + +daeElement* resolveSid(const string& sid, daeElement& refElt) { + return daeSidRef(sid, &refElt).resolve().elt; +} + +string getCharData(daeElement* el) { + return el ? el->getCharData() : ""; +} + +daeURI* getTextureUri(const string& samplerSid, daeElement& effect) { + daeElement* sampler = findChildByName(resolveSid(samplerSid, effect), "sampler2D"); + string surfaceSid = getCharData(findChildByName(sampler, "source")); + daeElement* surface = findChildByName(resolveSid(surfaceSid, effect), "surface"); + domImage* image = daeSafeCast( + resolveID(getCharData(findChildByName(surface, "init_from")).c_str(), *effect.getDocument())); + if (image && image->getInit_from()) + return &image->getInit_from()->getValue(); + return 0; +} + +DefineTest(getTexture) { + DAE dae; + CheckResult(dae.open(lookupTestFile("Seymour.dae"))); + + daeElement* effect = dae.getDatabase()->idLookup("face-fx").at(0); + daeElement* texture = effect->getDescendant("texture"); + CheckResult(texture); + + daeURI* uri = getTextureUri(texture->getAttribute("texture"), *effect); + CheckResult(uri); + CheckResult(uri->pathFile() == "boy_10.tga"); + + return testResult(true); +} + + +DefineTest(removeElement) { + DAE dae; + daeElement* collada = dae.open(lookupTestFile("Seymour.dae")); + CheckResult(collada); + + daeElement *animLib = dae.getDatabase()->typeLookup(domLibrary_animations::ID()).at(0), + *asset = dae.getDatabase()->typeLookup(domAsset::ID()).at(0); + + collada->removeChildElement(asset); + daeElement::removeFromParent(animLib); + + CheckResult(collada->getDescendant("asset") == NULL); + CheckResult(collada->getDescendant("library_animations") == NULL); + + CheckResult(dae.writeTo(lookupTestFile("Seymour.dae"), + getTmpFile("Seymour_removeElements.dae"))); + return testResult(true); +} + + +void nameArraySet(domListOfNames& names, size_t index, const char* name) { + *(daeStringRef*)&names[index] = name; +} + +void nameArrayAppend(domListOfNames& names, const char* name) { + names.append(NULL); + nameArraySet(names, names.getCount()-1, name); +} + +DefineTest(nameArray) { + domListOfNames names; + for (int i = 0; i < 10; i++) + nameArrayAppend(names, (string("name") + toString(i)).c_str()); + for (int i = 0; i < 10; i++) { + CheckResult(string("name") + toString(i) == names[i]); + } + + return testResult(true); +} + +daeTArray makeIntArray(int i, ...) { + va_list args; + va_start(args, i); + daeTArray result; + while (i != INT_MAX) { + result.append(i); + i = va_arg(args, int); + } + va_end(args); + return result; +} + +DefineTest(arrayOps) { + daeTArray zeroToFour = makeIntArray(0, 1, 2, 3, 4, INT_MAX); + + // Test removeIndex + daeTArray array = zeroToFour; + array.removeIndex(2); + CheckResult(array == makeIntArray(0, 1, 3, 4, INT_MAX)); + + // Insert several values into the middle of an array + array = zeroToFour; + array.insert(3, 5, 9); // Insert five copies of '9' at the third element of the array + CheckResult(array == makeIntArray(0, 1, 2, 9, 9, 9, 9, 9, 3, 4, INT_MAX)); + + // Insert several values beyond the end of an array + array = zeroToFour; + array.insert(7, 2, 5); + CheckResult(array == makeIntArray(0, 1, 2, 3, 4, 5, 5, 5, 5, INT_MAX)); + + return testResult(true); +} + + +void printMemoryToStringResult(daeAtomicType& type, daeMemoryRef value) { + ostringstream buffer; + type.memoryToString(value, buffer); + cout << buffer.str() << endl; +} + +string toString(daeAtomicType& type, daeMemoryRef value) { + ostringstream buffer; + type.memoryToString(value, buffer); + return buffer.str(); +} + +DefineTest(atomicTypeOps) { + DAE dae; + daeUIntType UIntType(dae); + daeIntType IntType(dae); + daeLongType LongType(dae); + daeShortType ShortType(dae); + daeULongType ULongType(dae); + daeFloatType FloatType(dae); + daeDoubleType DoubleType(dae); + daeStringRefType StringRefType(dae); + daeElementRefType ElementRefType(dae); + daeEnumType EnumType(dae); + daeResolverType ResolverType(dae); + daeIDResolverType IDResolverType(dae); + daeBoolType BoolType(dae); + daeTokenType TokenType(dae); + + EnumType._values = new daeEnumArray; + EnumType._strings = new daeStringRefArray; + EnumType._values->append(0); + EnumType._strings->append("myEnumValue"); + + daeUInt UInt(1); + daeInt Int(2); + daeLong Long(3); + daeShort Short(4); + daeULong ULong(5); + daeFloat Float(6.123f); + daeDouble Double(7.456); + daeStringRef StringRef("StringRef"); + // daeElementRef ElementRef(0x12345678); + daeEnum Enum(0); + daeURI uri(dae, "http://www.example.com/#fragment"); + daeIDRef IDRef("sampleID"); + daeBool Bool(false); + daeStringRef Token("token"); + + + CheckResult(toString(UIntType, (daeMemoryRef)&UInt) == "1"); + CheckResult(toString(IntType, (daeMemoryRef)&Int) == "2"); + CheckResult(toString(LongType, (daeMemoryRef)&Long) == "3"); + CheckResult(toString(ShortType, (daeMemoryRef)&Short) == "4"); + CheckResult(toString(ULongType, (daeMemoryRef)&ULong) == "5"); + CheckResult(toString(FloatType, (daeMemoryRef)&Float) == "6.123"); + CheckResult(toString(DoubleType, (daeMemoryRef)&Double) == "7.456"); + CheckResult(toString(StringRefType, (daeMemoryRef)&StringRef) == "StringRef"); + // CheckResult(toString(ElementRefType, (daeMemoryRef)&ElementRef) == ""); + CheckResult(toString(EnumType, (daeMemoryRef)&Enum) == "myEnumValue"); + CheckResult(toString(ResolverType, (daeMemoryRef)&uri) == "http://www.example.com/#fragment"); + CheckResult(toString(IDResolverType, (daeMemoryRef)&IDRef) == "sampleID"); + CheckResult(toString(BoolType, (daeMemoryRef)&Bool) == "false"); + CheckResult(toString(TokenType, (daeMemoryRef)&Token) == "token"); + + return testResult(true); +} + + +DefineTest(clone) { + DAE dae; + CheckResult(dae.open(lookupTestFile("Seymour.dae"))); + + daeElement* el = dae.getDatabase()->idLookup("l_ulna").at(0); + daeElementRef clone = el->clone("-foo", "-bar"); + el->getParentElement()->placeElement(clone); + + CheckResult(dae.writeTo(lookupTestFile("Seymour.dae"), getTmpFile("cloneTest.dae"))); + + return testResult(true); +} + + +DefineTest(genericOps) { + string file = lookupTestFile("cube.dae"); + DAE dae; + CheckResult(dae.open(file)); + daeDatabase& database = *dae.getDatabase(); + + // Attribute getter/setter tests + daeElement* el = database.idLookup("box-lib-positions-array").at(0); + + CheckResult(el->hasAttribute("digits")); + CheckResult(el->getAttribute("count") == "24"); + CheckResult(el->setAttribute("blah", "hey") == false); + CheckResult(el->setAttribute("magnitude", "30")); + + el = database.idLookup("Blue-fx").at(0); + CheckResult(el->hasAttribute("name")); + CheckResult(el->isAttributeSet("name") == false); + CheckResult(el->isAttributeSet("hello") == false); + + // Character data getter/setter tests + el = database.typeLookup(domAsset::domUp_axis::ID()).at(0); + + CheckResult(el->getCharData() == "Y_UP"); + el->setCharData("X_UP"); + + el = database.idLookup("PerspCamera").at(0); + CheckResult(!el->hasCharData()); + + // tests using daeElement interface + el = database.idLookup("my_test_element").at(0); + daeElementRef clone = el->clone("-clone", "-clone"); + + CheckResult(el->getAttribute("attr1") == "value1" && + el->getAttribute("attr2") == "value2"); + CheckResult(el->setAttribute("attr1", "value_1")); + CheckResult(el->setAttribute("attr3", "value3")); + + CheckResult(chopWS(el->getCharData()) == "this is some text"); + el->setCharData("reset text"); + + // tests using domAny interface + el->getParentElement()->placeElementAfter(el, clone); + domAny* any = (domAny*)clone.cast(); + CheckResult(any); + CheckResult(any->getAttributeCount() == 3); + CheckResult(string(any->getAttributeName(0)) == "id"); + CheckResult(string(any->getAttributeValue(1)) == "value1"); + CheckResult(chopWS(any->getValue()) == "this is some text"); + any->setValue("reset text 2"); + + // Test for lots of attributes + for (size_t i = 0; i < 50; i++) { + ostringstream name, value; + name << "attr" << static_cast(i); + value << "value" << static_cast(i); + any->setAttribute(name.str().c_str(), value.str().c_str()); + } + + CheckResult(dae.writeTo(file, getTmpFile(fs::basename(fs::path(file)) + "_genericOps.dae"))); + + return testResult(true); +} + + +daeArray* getSkewArray(daeElement* node, const string& sid) { + if (!node) + return NULL; + + daeElement* skew = resolveSid(sid, *node); + if (!skew || skew->getElementType() != COLLADA_TYPE::SKEW) + return NULL; + + return (daeArray*)skew->getCharDataObject()->get(skew); +} + +DefineTest(badSkew) { + DAE dae; + CheckResult(dae.open(lookupTestFile("badSkew.dae"))); + + daeElement* node = dae.getDatabase()->idLookup("my-node").at(0); + + daeArray* array1 = getSkewArray(node, "tooFew"); + daeArray* array2 = getSkewArray(node, "justRight"); + daeArray* array3 = getSkewArray(node, "tooMany"); + CheckResult(array1 && array2 && array3); + + CheckResult(array1->getCount() == 4); + CheckResult(array2->getCount() == 7); + CheckResult(array3->getCount() == 11); + + return testResult(true); +} + + +DefineTest(stringTable) { + daeStringTable stringTable; + stringTable.allocString("hello"); + // These next two lines used to cause an abort + stringTable.clear(); + stringTable.allocString("goodbye"); + return testResult(true); +} + + +// We can only do this test if we have breps +#if 0 +DefineTest(sidResolveSpeed) { + DAE dae; + string file = lookupTestFile("crankarm.dae"); + domCOLLADA* root = dae.open(file); + CheckResult(root); + + vector sidRefArrays = dae.getDatabase()->typeLookup(); + for (size_t i = 0; i < sidRefArrays.size(); i++) { + domListOfNames& sidRefs = sidRefArrays[i]->getValue(); + for (size_t j = 0; j < sidRefs.getCount(); j++) { + CheckResult(resolveSid(sidRefs[i], root)); + } + } + + return testResult(true); +} +#endif + + +DefineTest(seymourSidResolve) { + DAE dae; + string file = lookupTestFile("Seymour.dae"); + CheckResult(dae.open(file)); + + vector nodes = dae.getDatabase()->typeLookup(domNode::ID()); + for (size_t i = 0; i < nodes.size(); i++) { + daeElementRefArray children = nodes[i]->getChildren(); + for (size_t j = 0; j < children.getCount(); j++) { + string sid = children[j]->getAttribute("sid"); + if (!sid.empty()) { + CheckResult(daeSidRef(sid, nodes[i]).resolve().elt); + } + } + } + + return testResult(true); +} + + +vector getChildNames(daeElement* elt) { + vector result; + if (!elt) + return result; + + daeElementRefArray children = elt->getChildren(); + for (size_t i = 0; i < children.getCount(); i++) + result.push_back(children[i]->getElementName()); + + return result; +} + +DefineTest(placeElement) { + DAE dae; + CheckResult(dae.open(lookupTestFile("cube.dae"))); + + daeElement* node = dae.getDatabase()->idLookup("Box").at(0); + + CheckResult(getChildNames(node) == makeStringArray( + "rotate", "rotate", "rotate", "instance_geometry", 0)); + + // Place a new after the first using placeElementAfter, and + // make sure the shows up in the right spot. + node->placeElementAfter(node->getChildren()[0], node->createElement("translate")); + CheckResult(getChildNames(node) == makeStringArray( + "rotate", "translate", "rotate", "rotate", "instance_geometry", 0)); + + node->placeElementBefore(node->getChildren()[0], node->createElement("scale")); + CheckResult(getChildNames(node) == makeStringArray( + "scale", "rotate", "translate", "rotate", "rotate", "instance_geometry", 0)); + + return testResult(true); +}; + + +DefineTest(nativePathConversion) { + // Windows file path to URI + CheckResult(cdom::nativePathToUri("C:\\myFolder\\myFile.dae", cdom::Windows) == "/C:/myFolder/myFile.dae"); + CheckResult(cdom::nativePathToUri("\\myFolder\\myFile.dae", cdom::Windows) == "/myFolder/myFile.dae"); + CheckResult(cdom::nativePathToUri("..\\myFolder\\myFile.dae", cdom::Windows) == "../myFolder/myFile.dae"); + CheckResult(cdom::nativePathToUri("\\\\otherComputer\\myFile.dae", cdom::Windows) == "//otherComputer/myFile.dae"); + + // Linux/Mac file path to URI + CheckResult(cdom::nativePathToUri("/myFolder/myFile.dae", cdom::Posix) == "/myFolder/myFile.dae"); + CheckResult(cdom::nativePathToUri("../myFolder/myFile.dae", cdom::Posix) == "../myFolder/myFile.dae"); + CheckResult(cdom::nativePathToUri("/my folder/my file.dae", cdom::Posix) == "/my%20folder/my%20file.dae"); + + // URI to Windows file path + CheckResult(cdom::uriToNativePath("../folder/file.dae", cdom::Windows) == "..\\folder\\file.dae"); + CheckResult(cdom::uriToNativePath("/C:/folder/file.dae", cdom::Windows) == "C:\\folder\\file.dae"); + CheckResult(cdom::uriToNativePath("file:///C:/folder/file.dae", cdom::Windows) == "C:\\folder\\file.dae"); + CheckResult(cdom::uriToNativePath("//otherComputer/file.dae", cdom::Windows) == "\\\\otherComputer\\file.dae"); + CheckResult(cdom::uriToNativePath("file://///otherComputer/file.dae", cdom::Windows) == "\\\\otherComputer\\file.dae"); + CheckResult(cdom::uriToNativePath("http://www.slashdot.org", cdom::Windows) == ""); + + // URI to Linux/Mac file path + CheckResult(cdom::uriToNativePath("../folder/file.dae", cdom::Posix) == "../folder/file.dae"); + CheckResult(cdom::uriToNativePath("/folder/file.dae", cdom::Posix) == "/folder/file.dae"); + CheckResult(cdom::uriToNativePath("file:///folder/file.dae", cdom::Posix) == "/folder/file.dae"); + CheckResult(cdom::uriToNativePath("http://www.slashdot.org", cdom::Posix) == ""); + + return testResult(true); +} + + +DefineTest(libxmlUriBugWorkaround) { + if (cdom::getSystemType() == cdom::Posix) { + // libxml doesn't like file scheme uris that don't have an authority component + CheckResult(cdom::fixUriForLibxml("file:/folder/file.dae") == "file:///folder/file.dae"); + } + else if (cdom::getSystemType() == cdom::Windows) { + // libxml doesn't like file scheme uris that don't have an authority component + CheckResult(cdom::fixUriForLibxml("file:/c:/folder/file.dae") == "file:///c:/folder/file.dae"); + // libxml wants UNC paths that contain an empty authority followed by three slashes + CheckResult(cdom::fixUriForLibxml("file://otherComputer/file.dae") == "file://///otherComputer/file.dae"); + // libxml wants absolute paths that don't contain a drive letter to have an + // empty authority followed by two slashes. + CheckResult(cdom::fixUriForLibxml("file:/folder/file.dae") == "file:////folder/file.dae"); + } + + return testResult(true); +} + + +// !!!steveT I want this to be a test of the DOM's ability to open files +// using all the various ways of referencing files: relative paths, absolute +// paths, absolute paths with no drive letter (Windows), UNC paths (Windows), +// http scheme URIs, zipped files, etc. +#if 0 +DefineTest(uriOpen) { + DAE dae; + CheckResult(dae.open("file:/c:/models/cube.dae")); + CheckResult(dae.open("/c:/models/cube.dae")); + CheckResult(dae.open("/models/cube.dae")); + CheckResult(dae.open("file:////models/cube.dae")); + CheckResult(dae.open("file://isis/sceard/COLLADA/forsteve/cube.dae")); + CheckResult(dae.open("file://///isis/sceard/COLLADA/forsteve/cube.dae")); + return testResult(true); +} +#endif + + +DefineTest(uriOps) { + DAE dae; + + // Check construction of absolute uris + CheckResult(daeURI(dae, "file:///home/sthomas/file.txt").str() == "file:/home/sthomas/file.txt"); + CheckResult(daeURI(dae, "http://www.example.com/path").str() == "http://www.example.com/path"); + CheckResult(daeURI(dae, "file:home/sthomas/file.txt").str() == "file:home/sthomas/file.txt"); + CheckResult(daeURI(dae, "file:file.txt#fragment", true).str() == "file:file.txt"); + + // Check construction of relative uri references + { + daeURI base(dae, "file:/home/sthomas/file.txt?baseQuery#baseFragment"); + CheckResult(base.str() == "file:/home/sthomas/file.txt?baseQuery#baseFragment"); + CheckResult(daeURI(base, "file:/home/sthomas").str() == "file:/home/sthomas"); + CheckResult(daeURI(base, "//authority").str() == "file://authority"); + CheckResult(daeURI(base, "//authority/path").str() == "file://authority/path"); + CheckResult(daeURI(base, "/home/johnny").str() == "file:/home/johnny"); + CheckResult(daeURI(base, "myFile.txt").str() == "file:/home/sthomas/myFile.txt"); + CheckResult(daeURI(base, "?query#fragment").str() == "file:/home/sthomas/file.txt?query#fragment"); + CheckResult(daeURI(base, "?query").str() == "file:/home/sthomas/file.txt?query"); + CheckResult(daeURI(base, "").str() == "file:/home/sthomas/file.txt?baseQuery"); + CheckResult(daeURI(daeURI(dae, "http://www.example.com/path"), "myFolder/file.txt").str() == "http://www.example.com/myFolder/file.txt"); + CheckResult(daeURI(daeURI(dae, "http://www.example.com/path/"), "myFolder/file.txt").str() == "http://www.example.com/path/myFolder/file.txt"); + CheckResult(daeURI(daeURI(dae, "http://www.example.com"), "myFolder/file.txt").str() == "http://www.example.com/myFolder/file.txt"); + } + + // More reference resolution tests. These are taken from http://tools.ietf.org/html/rfc3986#section-5.4 + { + daeURI base(dae, "http://a/b/c/d;p?q"); + + CheckResult(daeURI(base, "g:h").str() == "g:h"); + CheckResult(daeURI(base, "g").str() == "http://a/b/c/g"); + CheckResult(daeURI(base, "./g").str() == "http://a/b/c/g"); + CheckResult(daeURI(base, "g/").str() == "http://a/b/c/g/"); + CheckResult(daeURI(base, "/g").str() == "http://a/g"); + CheckResult(daeURI(base, "//g").str() == "http://g"); + CheckResult(daeURI(base, "?y").str() == "http://a/b/c/d;p?y"); + CheckResult(daeURI(base, "g?y").str() == "http://a/b/c/g?y"); + CheckResult(daeURI(base, "#s").str() == "http://a/b/c/d;p?q#s"); + CheckResult(daeURI(base, "g#s").str() == "http://a/b/c/g#s"); + CheckResult(daeURI(base, "g?y#s").str() == "http://a/b/c/g?y#s"); + CheckResult(daeURI(base, ";x").str() == "http://a/b/c/;x"); + CheckResult(daeURI(base, "g;x").str() == "http://a/b/c/g;x"); + CheckResult(daeURI(base, "g;x?y#s").str() == "http://a/b/c/g;x?y#s"); + CheckResult(daeURI(base, "").str() == "http://a/b/c/d;p?q"); + CheckResult(daeURI(base, ".").str() == "http://a/b/c/"); + CheckResult(daeURI(base, "./").str() == "http://a/b/c/"); + CheckResult(daeURI(base, "..").str() == "http://a/b/"); + CheckResult(daeURI(base, "../").str() == "http://a/b/"); + CheckResult(daeURI(base, "../g").str() == "http://a/b/g"); + CheckResult(daeURI(base, "../..").str() == "http://a/"); + CheckResult(daeURI(base, "../../").str() == "http://a/"); + CheckResult(daeURI(base, "../../g").str() == "http://a/g"); + + CheckResult(daeURI(base, "../../../g").str() == "http://a/g"); + CheckResult(daeURI(base, "../../../../g").str() == "http://a/g"); + CheckResult(daeURI(base, "/./g").str() == "http://a/g"); + CheckResult(daeURI(base, "/../g").str() == "http://a/g"); + CheckResult(daeURI(base, "g.").str() == "http://a/b/c/g."); + CheckResult(daeURI(base, ".g").str() == "http://a/b/c/.g"); + CheckResult(daeURI(base, "g..").str() == "http://a/b/c/g.."); + CheckResult(daeURI(base, "..g").str() == "http://a/b/c/..g"); + + CheckResult(daeURI(base, "./../g").str() == "http://a/b/g"); + CheckResult(daeURI(base, "./g/.").str() == "http://a/b/c/g/"); + CheckResult(daeURI(base, "g/./h").str() == "http://a/b/c/g/h"); + CheckResult(daeURI(base, "g/../h").str() == "http://a/b/c/h"); + CheckResult(daeURI(base, "g;x=1/./y").str() == "http://a/b/c/g;x=1/y"); + CheckResult(daeURI(base, "g;x=1/../y").str() == "http://a/b/c/y"); + + + CheckResult(daeURI(base, "g?y/./x").str() == "http://a/b/c/g?y/./x"); + CheckResult(daeURI(base, "g?y/../x").str() == "http://a/b/c/g?y/../x"); + CheckResult(daeURI(base, "g#s/./x").str() == "http://a/b/c/g#s/./x"); + CheckResult(daeURI(base, "g#s/../x").str() == "http://a/b/c/g#s/../x"); + + CheckResult(daeURI(base, "http:g").str() == "http:g"); + } + + // Check originalStr + CheckResult(daeURI(dae, "relPath/file.txt").originalStr() == "relPath/file.txt"); + + // Check main setters + { + daeURI uri(dae); + uri.set("file:/path/file.txt"); + CheckResult(uri.str() == "file:/path/file.txt"); + uri.set("http", "www.example.com", "/path", "q", "f"); + CheckResult(uri.str() == "http://www.example.com/path?q#f"); + } + + // Check component accessors + CheckResult(daeURI(dae, "file:/home/sthomas/file.txt").scheme() == "file"); + CheckResult(daeURI(dae, "http://www.example.com").authority() == "www.example.com"); + CheckResult(daeURI(dae, "file:/home/sthomas/file.txt").path() == "/home/sthomas/file.txt"); + CheckResult(daeURI(dae, "file:/home/sthomas/file.txt?query").query() == "query"); + CheckResult(daeURI(dae, "file:/home/sthomas/file.txt?query#fragment").fragment() == "fragment"); + CheckResult(daeURI(dae, "file:/home/sthomas/file.txt?query#fragment").id() == "fragment"); + + // Check component setters + { + daeURI uri(dae); + uri.scheme("file"); + uri.authority("myAuth"); + uri.path("/home/sthomas/file.txt"); + uri.query("q"); + uri.fragment("f"); + CheckResult(uri.str() == "file://myAuth/home/sthomas/file.txt?q#f"); + uri.id("id"); + CheckResult(uri.str() == "file://myAuth/home/sthomas/file.txt?q#id"); + } + + // Check path component accessors + { + daeURI uri(dae, "file:/home/sthomas/file.txt"); + CheckResult(uri.str() == "file:/home/sthomas/file.txt"); + string dir, base, ext; + uri.pathComponents(dir, base, ext); + CheckResult(dir == "/home/sthomas/"); + CheckResult(base == "file"); + CheckResult(ext == ".txt"); + CheckResult(uri.pathDir() == "/home/sthomas/"); + CheckResult(uri.pathFileBase() == "file"); + CheckResult(uri.pathExt() == ".txt"); + CheckResult(uri.pathFile() == "file.txt"); + } + + // Check path component setters + { + daeURI uri(dae, "file:"); + CheckResult(uri.str() == "file:"); + uri.path("/home/sthomas/", "file", ".txt"); + CheckResult(uri.str() == "file:/home/sthomas/file.txt"); + uri.pathDir("/home/johnny"); // A / should automatically be added to the end for us + uri.pathFileBase("otherFile"); + uri.pathExt(".dae"); + CheckResult(uri.str() == "file:/home/johnny/otherFile.dae"); + uri.pathFile("file.txt"); + CheckResult(uri.str() == "file:/home/johnny/file.txt"); + } + + // Check path normalization + CheckResult(daeURI(dae, "file:/d1/d2/d3/../../d4/./file.txt").str() == "file:/d1/d4/file.txt"); + + // Check old C string methods + CheckResult(strcmp(daeURI(dae, "file:/dir/file.txt").getURI(), "file:/dir/file.txt") == 0); + CheckResult(strcmp(daeURI(dae, "dir/file.txt").getOriginalURI(), "dir/file.txt") == 0); + { + daeURI uri(dae), base(dae); + base.setURI("http://www.example.com"); + uri.setURI("dir/file.txt", &base); + CheckResult(uri.str() == "http://www.example.com/dir/file.txt"); + uri.setURI("http://www.example.com/dir/file.txt?q#f"); + CheckResult(strcmp(uri.getScheme(), "http") == 0); + CheckResult(strcmp(uri.getProtocol(), "http") == 0); + CheckResult(strcmp(uri.getAuthority(), "www.example.com") == 0); + CheckResult(strcmp(uri.getPath(), "/dir/file.txt") == 0); + CheckResult(strcmp(uri.getQuery(), "q") == 0); + CheckResult(strcmp(uri.getFragment(), "f") == 0); + CheckResult(strcmp(uri.getID(), "f") == 0); + char buffer1[4], buffer2[32]; + CheckResult(!uri.getPath(buffer1, sizeof(buffer1))); + CheckResult(uri.getPath(buffer2, sizeof(buffer2))); + CheckResult(strcmp(buffer2, "/dir/file.txt") == 0); + } + + // Check makeRelativeTo + { + daeURI base(dae, "file:/home/sthomas/"); + daeURI uri1(base, "folder1/file.dae"); + daeURI uri2(base, "folder2/file.dae"); + uri2.makeRelativeTo(&uri1); + CheckResult(uri2.originalStr() == "../folder2/file.dae"); + CheckResult(uri2.str() == "file:/home/sthomas/folder2/file.dae"); + } + + // Make sure we can handle paths that start with '//'. Libxml uses such paths + // to represent UNC paths and absolute paths without a drive letter on Windows. + { + string scheme, authority, path, query, fragment; + cdom::parseUriRef("file:////models/cube.dae", scheme, authority, path, query, fragment); + CheckResult(cdom::assembleUri(scheme, authority, path, query, fragment) == "file:////models/cube.dae"); + } + + return testResult(true); +} + + +DefineTest(uriBase) { + DAE dae; + daeURI uri(dae, cdom::nativePathToUri(lookupTestFile("uri.dae"))); + CheckResult(dae.open(uri.str())); + domImage::domInit_from* initFrom = dae.getDatabase()->typeLookup().at(0); + CheckResult(initFrom->getValue().pathDir() == uri.pathDir()); + return testResult(true); +} + + +DefineTest(xmlNavigation) { + DAE dae; + string file = lookupTestFile("cube.dae"); + domCOLLADA* root = dae.open(file); + CheckResult(root); + + CheckResult(root->getChild("library_cameras")); + CheckResult(root->getChild("contributor") == 0); + CheckResult(root->getDescendant("steveT") == 0); + daeElement* upAxis = root->getDescendant("up_axis"); + CheckResult(upAxis); + CheckResult(upAxis->getParent()); + CheckResult(upAxis->getAncestor("asset")); + CheckResult(upAxis->getAncestor("library_geometries") == 0); + + CheckResult(root->getChild(daeElement::matchType(domLibrary_cameras::ID()))); + CheckResult(root->getChild(daeElement::matchType(domAsset::domContributor::ID())) == 0); + CheckResult(root->getDescendant(daeElement::matchType(-10)) == 0); + upAxis = root->getDescendant(daeElement::matchType(domAsset::domUp_axis::ID())); + CheckResult(upAxis); + CheckResult(upAxis->getParent()); + CheckResult(upAxis->getAncestor(daeElement::matchType(domAsset::ID()))); + CheckResult(upAxis->getAncestor(daeElement::matchType(domLibrary_geometries::ID())) == 0); + + return testResult(true); +} + + +DefineTest(multipleDae) { + // Basically we just want to make sure that having multiple DAE objects doesn't + // crash the DOM. + DAE dae1; + DAE dae2; + CheckResult(dae2.open(lookupTestFile("cube.dae"))); + CheckResult(dae1.open(lookupTestFile("duck.dae"))); + return testResult(true); +} + + +DefineTest(unusedTypeCheck) { + DAE dae; + + // The following types are defined in the schema but aren't used anywhere in + // Collada, so they should have a null meta entry: + // ellipsoid + // ellipsoid/size + // InputGlobal + // Also, doesn't use a single global meta, so it'll also show up in the + // set of elements that don't have metas. + set expectedUnusedTypes; + expectedUnusedTypes.insert(domEllipsoid::ID()); + expectedUnusedTypes.insert(domEllipsoid::domSize::ID()); + expectedUnusedTypes.insert(domInputGlobal::ID()); + expectedUnusedTypes.insert(domAny::ID()); + + // Collect the list of types that don't have a corresponding meta defined + set actualUnusedTypes; + const daeMetaElementRefArray &metas = dae.getAllMetas(); + for (size_t i = 0; i < metas.getCount(); i++) + if (!metas[i]) + actualUnusedTypes.insert((int)i); + + // Make sure the set of unused types matches what we expect + return testResult(expectedUnusedTypes == actualUnusedTypes); +} + + +DefineTest(domCommon_transparent_type) { + DAE dae; + CheckResult(dae.open(lookupTestFile("cube.dae"))); + + domCommon_transparent_type* transparent = + dae.getDatabase()->typeLookup().at(0); + + CheckResult(transparent->getColor() != NULL); + CheckResult(transparent->getParam() == NULL); + CheckResult(transparent->getTexture() == NULL); + CheckResult(transparent->getOpaque() == FX_OPAQUE_ENUM_A_ONE); + + return testResult(true); +}; + + +DefineTest(autoResolve) { + // When you load a document, daeIDRefs, xsIDREFS, and daeURIs should resolve automatically. + // Make sure that works properly. + DAE dae; + daeDatabase& database = *dae.getDatabase(); + CheckResult(dae.open(lookupTestFile("Seymour.dae"))); + + { + // Make sure the IDREF_array element had all its daeIDRef objects resolved + xsIDREFS& idRefs = database.typeLookup().at(0)->getValue(); + for (size_t i = 0; i < idRefs.getCount(); i++) { + CheckResult(idRefs[i].getElement()); + } + + domInstance_controller& ic = *database.typeLookup().at(0); + CheckResult(ic.getUrl().getElement()); + + domFx_surface_init_from_common& initFrom = + *database.typeLookup().at(0); + CheckResult(initFrom.getValue().getElement()); + } + + // When you're modifying a new document or creating a new one and you create some + // new ID or URI refs, they should resolve automatically. + dae.clear(); + domCOLLADA* root = dae.add("tmp.dae"); + CheckResult(root); + + // Create a with an + CheckResult(root->add("library_geometries geometry mesh source IDREF_array")); + daeElement* geom = root->getDescendant("geometry"); + geom->setAttribute("id", "myGeom"); + xsIDREFS& idRefs = database.typeLookup().at(0)->getValue(); + idRefs.append(daeIDRef("myGeom")); + + // Create a with a that we'll instantiate via + daeElement* node1 = root->add("library_nodes node"); + node1->setAttribute("id", "myNode"); + + // Create a with an and to test URIs + daeElement* node2 = root->getDescendant("library_nodes")->add("node"); + domInstance_node& instanceNode = *daeSafeCast(node2->add("instance_node")); + domInstance_geometry& instanceGeom = *daeSafeCast( + node2->add("instance_geometry")); + instanceNode.setUrl("#myNode"); + instanceGeom.setUrl("#myGeom"); + + // Create a with an to test ID refs + domFx_surface_init_from_common& initFrom = *daeSafeCast( + root->add("library_effects effect profile_COMMON newparam surface init_from")); + initFrom.setValue("myGeom"); + + // Make sure everything resolves automatically + CheckResult(idRefs[0].getElement() == geom); + CheckResult(instanceGeom.getUrl().getElement() == geom); + CheckResult(initFrom.getValue().getElement() == geom); + CheckResult(instanceNode.getUrl().getElement() == node1); + + return testResult(true); +} + + +DefineTest(baseURI) { + DAE dae1, dae2; + dae1.setBaseURI("http://www.example.com/"); + daeURI uri1(dae1, "myFolder/myFile.dae"); + daeURI uri2(dae2, "myFolder/myFile.dae"); + CheckResult(uri1.str() != uri2.str()); + CheckResult(uri1.str() == "http://www.example.com/myFolder/myFile.dae"); + return testResult(true); +} + + +DefineTest(databaseLookup) { + DAE dae; + CheckResult(dae.open(lookupTestFile("cube.dae"))); + daeDatabase& database = *dae.getDatabase(); + daeDocument* doc = database.getDoc(0); + CheckResult(doc); + + // Test the new functions + CheckResult(database.idLookup("light-lib").size() == 1); + CheckResult(database.idLookup("light-lib", doc)); + CheckResult(database.typeLookup(domNode::ID()).size() == 5); + vector elts; + database.typeLookup(domRotate::ID(), elts, doc); + CheckResult(elts.size() == 15); + CheckResult(database.typeLookup().size() == 5); + vector rotateElts; + database.typeLookup(rotateElts); + CheckResult(rotateElts.size() == 15); + + // Test the old functions + CheckResult(database.getElementCount("light-lib") == 1); + daeElement* elt = NULL; + database.getElement(&elt, 0, "light-lib", NULL, doc->getDocumentURI()->getURI()); + CheckResult(elt); + CheckResult(database.getElementCount(NULL, "node") == 5); + database.getElement(&elt, 8, NULL, "rotate"); + CheckResult(elt); + + return testResult(true); +} + + +DefineTest(fileExtension) { + // The DOM used to have a bug where it couldn't resolve URIs or ID refs of + // documents with extensions other than .dae or .xml. This test ensures that + // the DOM is extension-agnostic. + DAE dae; + CheckResult(dae.open(lookupTestFile("cube.cstm"))); + CheckResult(dae.getDatabase()->typeLookup().at(0)->getSource().getElement()); + CheckResult(dae.writeTo(lookupTestFile("cube.cstm"), getTmpFile("cube_roundTrip.cstm"))); + return testResult(true); +} + + +DefineTest(zipFile) { + // The DOM should be able to load a gzip/zlib-compressed dae via libxml. + DAE dae; + CheckResult(dae.open(lookupTestFile("cube.dae.gz"))); + CheckResult(dae.getDatabase()->typeLookup(domAsset::ID()).size() == 1); + return testResult(true); +} + + +DefineTest(charEncoding) { + // Basically we're just looking for crashes or memory leaks here. + string file = getTmpFile("charEncoding.dae"); + DAE dae; + dae.setCharEncoding(DAE::Latin1); + daeElement* elt = dae.add(file)->add("asset contributor comments"); + CheckResult(elt); + elt->setCharData("æ ø å ü ä ö"); + CheckResult(dae.writeAll()); + dae.clear(); + CheckResult(dae.open(file)); + return testResult(true); +} + + +DefineTest(getElementBug) { + DAE dae; + CheckResult(dae.open(lookupTestFile("cube.dae"))); + + // Check daeURI::getElement + domInstance_geometry* geomInst = dae.getDatabase()->typeLookup().at(0); + CheckResult(geomInst->getUrl().getElement()); + daeElement::removeFromParent(geomInst->getUrl().getElement()); + CheckResult(geomInst->getUrl().getElement() == 0); + + // Check daeIDRef::getElement + daeIDRef idRef(*geomInst); + idRef.setID("PerspCamera"); + CheckResult(idRef.getElement()); + daeElement::removeFromParent(idRef.getElement()); + CheckResult(idRef.getElement() == 0); + + // Check daeSidRef::resolve + daeSidRefCache& cache = dae.getSidRefCache(); + daeElement* effect = dae.getDatabase()->typeLookup(domEffect::ID()).at(0); + daeSidRef sidRef("common", effect); + + CheckResult(cache.empty() && cache.hits() == 0 && cache.misses() == 0); + daeElement* technique = sidRef.resolve().elt; + CheckResult(technique && cache.misses() == 1 && !cache.empty()); + sidRef.resolve(); + CheckResult(cache.misses() == 1 && cache.hits() == 1); + daeElement::removeFromParent(technique); + CheckResult(cache.empty() && cache.misses() == 0 && cache.hits() == 0); + CheckResult(sidRef.resolve().elt == NULL); + CheckResult(cache.empty() && cache.misses() == 1); + + return testResult(true); +} + + +DefineTest(externalRef) { + DAE dae; + CheckResult(dae.open(lookupTestFile("externalRef.dae"))); + domInstance_geometry* geomInst = dae.getDatabase()->typeLookup().at(0); + daeURI& uri = geomInst->getUrl(); + CheckResult(uri.isExternalReference() == true); + CheckResult(uri.getReferencedDocument() == NULL); + CheckResult(uri.getElement()); + CheckResult(uri.getReferencedDocument()); + return testResult(true); +} + + +DefineTest(charEncodingSetting) { + DAE dae; + dae.setGlobalCharEncoding(DAE::Utf8); + CheckResult(dae.getCharEncoding() == DAE::Utf8); + dae.setCharEncoding(DAE::Latin1); + CheckResult(dae.getCharEncoding() == DAE::Latin1); + DAE dae2; + CheckResult(dae2.getCharEncoding() == DAE::Utf8); + return testResult(true); +} + + +DefineTest(uriCopy) { + DAE dae; + CheckResult(dae.open(lookupTestFile("cube.dae"))); + domInstance_geometry* geomInst = dae.getDatabase()->typeLookup().at(0); + daeURI& uri = geomInst->getUrl(); + CheckResult(uri.getElement()); + daeURI uriCopy = geomInst->getUrl(); + CheckResult(uriCopy.getElement()); + return testResult(true); +} + + +// I don't want to enable this test until I figure out how to disable the extra +// error messages that libxml spits out. +// +// DefineTest(spuriousQuotes) { +// DAE dae; +// CheckResult(dae.open(lookupTestFile("quotesProblem.dae"))); +// return testResult(true); +// } + + +// DefineTest(hauntedHouse) { +// DAE dae; +// CheckResult(dae.open("/home/sthomas/models/hauntedHouse.dae")); +// return testResult(true); +// } + + +// Returns true if all test names are valid +bool checkTests(const set& tests) { + bool invalidTestFound = false; + for (set::const_iterator iter = tests.begin(); iter != tests.end(); iter++) { + if (registeredTests().find(*iter) == registeredTests().end()) { + if (!invalidTestFound) + cout << "Invalid arguments:\n"; + cout << " " << *iter << endl; + invalidTestFound = true; + } + } + + return !invalidTestFound; +} + +// Returns the set of tests that failed +map runTests(const set& tests) { + map failedTests; + for (set::const_iterator iter = tests.begin(); iter != tests.end(); iter++) { + testResult result = registeredTests()[*iter]->run(); + if (!result.passed) + failedTests[*iter] = result; + } + return failedTests; +} + +// Prints test results to the console. +// Returns true if all tests passed, false otherwise. +bool printTestResults(const map& failedTests) { + if (!failedTests.empty()) { + cout << "Failed tests:\n"; + for (map::const_iterator iter = failedTests.begin(); + iter != failedTests.end(); + iter++) { + cout << " " << iter->first; + if (!iter->second.file.empty()) { + cout << " (file " << fs::path(iter->second.file).leaf(); + if (iter->second.line != -1) + cout << ", line " << iter->second.line << ")"; + else + cout << ")"; + } + cout << endl; + if (!iter->second.msg.empty()) // Make sure to indent the message + cout << " " << replace(iter->second.msg, "\n", "\n ") << "\n"; + } + return false; + } + else { + cout << "All tests passed.\n"; + return true; + } +} + +struct tmpDir { + fs::path path; + bool deleteWhenDone; + + tmpDir(fs::path& path, bool deleteWhenDone) + : path(path), + deleteWhenDone(deleteWhenDone) { + fs::create_directories(path); + } + + ~tmpDir() { + if (deleteWhenDone) + fs::remove_all(path); + } +}; + + +int main(int argc, char* argv[]) { + // Windows memory leak checking +#if defined _MSC_VER && defined _DEBUG + _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_EVERY_1024_DF); +#endif + + if (argc == 1) { + cout << "Usage:\n" + " -printTests - Print the names of all available tests\n" + " -all - Run all tests\n" + " -leaveTmpFiles - Don't delete the tmp folder containing the generated test files\n" + " test1 test2 ... - Run the named tests\n"; + return 0; + } + + bool printTests = false; + bool allTests = false; + bool leaveTmpFiles = false; + set tests; + for (int i = 1; i < argc; i++) { + if (string(argv[i]) == "-printTests") + printTests = true; + else if (string(argv[i]) == "-all") + allTests = true; + else if (string(argv[i]) == "-leaveTmpFiles") + leaveTmpFiles = true; + else + tests.insert(argv[i]); + } + +#ifdef __CELLOS_LV2__ + // The program crashes on PS3 if we try to delete the tmp directory when we're done. + // That shouldn't be the case, but it's really not worth trying to fix it now. + // Just leave the tmp folder. + leaveTmpFiles = true; +#endif + + // Shut the DOM up + daeErrorHandler::setErrorHandler(&quietErrorHandler::getInstance()); + + dataPath() = (fs::path(argv[0]).branch_path()/"domTestData/").normalize(); + if (!fs::exists(dataPath())) + dataPath() = (fs::path(argv[0]).branch_path()/"../../test/data/").normalize(); + tmpPath() = dataPath() / "tmp"; + tmpDir tmp(tmpPath(), !leaveTmpFiles); + + if (checkTests(tests) == false) + return 0; + + // -printTest + if (printTests) { + map::iterator iter; + for (iter = registeredTests().begin(); iter != registeredTests().end(); iter++) + cout << iter->second->name << endl; + return 0; + } + + // -all + if (allTests) { + map::iterator iter; + for (iter = registeredTests().begin(); iter != registeredTests().end(); iter++) + tests.insert(iter->first); + } + + // test1 test2 ... + return printTestResults(runTests(tests)) ? 0 : 1; +} diff --git a/test/domTest.h b/test/domTest.h new file mode 100644 index 0000000..0b2941c --- /dev/null +++ b/test/domTest.h @@ -0,0 +1,83 @@ +#ifndef domTest_h +#define domTest_h + +#include +#include + +// We use the boost filesystem library for cross-platform file system support. You'll need +// to have boost on your machine for this to work. For the Windows build boost is provided +// in the external-libs folder, but for Linux it's expected that you'll install a boost +// obtained via your distro's package manager. For example on Debian/Ubuntu, you can run +// apt-get install libboost-filesystem-dev +// to install the boost filesystem library on your machine. +// +// Disable the warnings we get from Boost +// warning C4180: qualifier applied to function type has no meaning; ignored +// warning C4245: 'argument' : conversion from 'int' to 'boost::filesystem::system_error_type', +// signed/unsigned mismatch +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable: 4180 4245) +#endif +#include +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +struct domTest; +std::map& registeredTests(); +boost::filesystem::path& dataPath(); +boost::filesystem::path& tmpPath(); + +struct testResult { + bool passed; + std::string file; // If the test failed, the file it failed in. + int line; // If the test failed, the line number it failed on, or -1 if the line + // number isn't available. + std::string msg; // An error message for the user. Usually empty. + + testResult() : passed(true), line(-1) { } + testResult(bool passed, const std::string& file = "", int line = -1, const std::string& msg = "") + : passed(passed), + file(file), + line(line), + msg(msg) { + } +}; + +struct domTest { + std::string name; + domTest(const std::string& name) : name(name) { + registeredTests()[name] = this; + } + virtual ~domTest() { }; + virtual testResult run() = 0; +}; + +#define DefineTest(testName) \ + struct domTest_##testName : public domTest { \ + domTest_##testName() : domTest(#testName) { } \ + testResult run(); \ + }; \ + domTest_##testName domTest_##testName##Obj; \ + testResult domTest_##testName::run() + +#define CheckResult(val) \ + if (!(val)) { \ + return testResult(false, __FILE__, __LINE__); \ + } + +#define CheckTestResult(result) \ + { \ + testResult res = result; \ + if (!res.passed) \ + return res; \ + } + +#define SafeAdd(elt, name, var) \ + daeElement* var = elt->add(name); CheckResult(var); + +std::string lookupTestFile(const std::string& fileName); +std::string getTmpFile(const std::string& fileName); + +#endif diff --git a/test/export.cpp b/test/export.cpp new file mode 100644 index 0000000..9c1ab4b --- /dev/null +++ b/test/export.cpp @@ -0,0 +1,259 @@ +#include +#include +#include +#include "domTest.h" + +using namespace std; +using namespace cdom; + +// Demonstrates how to use the DOM to create a simple, textured Collada model +// and save it to disk. + +testResult addAsset(daeElement* root); +testResult addGeometry(daeElement* root); +testResult addImage(daeElement* root); +testResult addEffect(daeElement* root); +testResult addMaterial(daeElement* root); +testResult addVisualScene(daeElement* root); + +DefineTest(export) { + DAE dae; + string file = getTmpFile("export.dae"); + domCOLLADA* root = dae.add(file); + CheckResult(root); + + CheckTestResult(addAsset(root)); + CheckTestResult(addGeometry(root)); + CheckTestResult(addImage(root)); + CheckTestResult(addEffect(root)); + CheckTestResult(addMaterial(root)); + CheckTestResult(addVisualScene(root)); + + dae.writeAll(); + + // As a very simple check for possible errors, make sure the document loads + // back in successfully. + dae.clear(); + CheckResult(dae.open(file)); + + return testResult(true); +} + +testResult addAsset(daeElement* root) { + SafeAdd(root, "asset", asset); + asset->add("created")->setCharData("2008-02-23T13:30:00Z"); + asset->add("modified")->setCharData("2008-02-23T13:30:00Z"); + return testResult(true); +} + +template +daeTArray rawArrayToDaeArray(T rawArray[], size_t count) { + daeTArray result; + for (size_t i = 0; i < count; i++) + result.append(rawArray[i]); + return result; +} + +// "myGeom" --> "#myGeom" +string makeUriRef(const string& id) { + return string("#") + id; +} + +testResult addSource(daeElement* mesh, + const string& srcID, + const string& paramNames, + domFloat values[], + int valueCount) { + SafeAdd(mesh, "source", src); + src->setAttribute("id", srcID.c_str()); + + domFloat_array* fa = daeSafeCast(src->add("float_array")); + CheckResult(fa); + fa->setId((src->getAttribute("id") + "-array").c_str()); + fa->setCount(valueCount); + fa->getValue() = rawArrayToDaeArray(values, valueCount); + + domAccessor* acc = daeSafeCast(src->add("technique_common accessor")); + CheckResult(acc); + acc->setSource(makeUriRef(fa->getId()).c_str()); + + list params = tokenize(paramNames, " "); + acc->setStride(params.size()); + acc->setCount(valueCount/params.size()); + for (tokenIter iter = params.begin(); iter != params.end(); iter++) { + SafeAdd(acc, "param", p); + p->setAttribute("name", iter->c_str()); + p->setAttribute("type", "float"); + } + + return testResult(true); +} + +testResult addInput(daeElement* triangles, + const string& semantic, + const string& srcID, + int offset) { + domInputLocalOffset* input = daeSafeCast(triangles->add("input")); + CheckResult(input); + input->setSemantic(semantic.c_str()); + input->setOffset(offset); + input->setSource(makeUriRef(srcID).c_str()); + if (semantic == "TEXCOORD") + input->setSet(0); + return testResult(true); +} + +testResult addGeometry(daeElement* root) { + SafeAdd(root, "library_geometries", geomLib); + SafeAdd(geomLib, "geometry", geom); + string geomID = "cubeGeom"; + geom->setAttribute("id", geomID.c_str()); + SafeAdd(geom, "mesh", mesh); + + // Add the position data + domFloat posArray[] = { -10, -10, -10, + -10, -10, 10, + -10, 10, -10, + -10, 10, 10, + 10, -10, -10, + 10, -10, 10, + 10, 10, -10, + 10, 10, 10 }; + int count = sizeof(posArray)/sizeof(posArray[0]); + CheckTestResult(addSource(mesh, geomID + "-positions", "X Y Z", posArray, count)); + + // Add the normal data + domFloat normalArray[] = { 1, 0, 0, + -1, 0, 0, + 0, 1, 0, + 0, -1, 0, + 0, 0, 1, + 0, 0, -1 }; + count = sizeof(normalArray)/sizeof(normalArray[0]); + CheckTestResult(addSource(mesh, geomID + "-normals", "X Y Z", normalArray, count)); + + // Add the tex coord data + domFloat uvArray[] = { 0, 0, + 0, 1, + 1, 0, + 1, 1 }; + count = sizeof(uvArray)/sizeof(uvArray[0]); + CheckTestResult(addSource(mesh, geomID + "-uv", "S T", uvArray, count)); + + // Add the element + SafeAdd(mesh, "vertices", vertices); + vertices->setAttribute("id", (geomID + "-vertices").c_str()); + SafeAdd(vertices, "input", verticesInput); + verticesInput->setAttribute("semantic", "POSITION"); + verticesInput->setAttribute("source", makeUriRef(geomID + "-positions").c_str()); + + // Add the element. + // Each line is one triangle. + domUint indices[] = { 0, 1, 0, 1, 1, 1, 2, 1, 2, + 1, 1, 1, 3, 1, 3, 2, 1, 2, + 0, 2, 0, 4, 2, 1, 1, 2, 2, + 4, 2, 1, 5, 2, 3, 1, 2, 2, + 1, 4, 0, 5, 4, 1, 3, 4, 2, + 5, 4, 1, 7, 4, 3, 3, 4, 2, + 5, 0, 0, 4, 0, 1, 7, 0, 2, + 4, 0, 1, 6, 0, 3, 7, 0, 2, + 4, 5, 0, 0, 5, 1, 6, 5, 2, + 0, 5, 1, 2, 5, 3, 6, 5, 2, + 3, 3, 0, 7, 3, 1, 2, 3, 2, + 7, 3, 1, 6, 3, 3, 2, 3, 2 }; + count = sizeof(indices)/sizeof(indices[0]); + + domTriangles* triangles = daeSafeCast(mesh->add("triangles")); + CheckResult(triangles); + triangles->setCount(count/(3*3)); // 3 indices per vertex, 3 vertices per triangle + triangles->setMaterial("mtl"); + + CheckTestResult(addInput(triangles, "VERTEX", geomID + "-vertices", 0)); + CheckTestResult(addInput(triangles, "NORMAL", geomID + "-normals", 1)); + CheckTestResult(addInput(triangles, "TEXCOORD", geomID + "-uv", 2)); + + domP* p = daeSafeCast(triangles->add("p")); + CheckResult(p); + p->getValue() = rawArrayToDaeArray(indices, count); + + return testResult(true); +} + +testResult addImage(daeElement* root) { + SafeAdd(root, "library_images", imageLib); + SafeAdd(imageLib, "image", image); + image->setAttribute("id", "img"); + image->add("init_from")->setCharData("../texture.bmp"); + return testResult(true); +} + +testResult addEffect(daeElement* root) { + SafeAdd(root, "library_effects", effectLib); + SafeAdd(effectLib, "effect", effect); + effect->setAttribute("id", "cubeEffect"); + SafeAdd(effect, "profile_COMMON", profile); + + // Add a + SafeAdd(profile, "newparam", newparam); + newparam->setAttribute("sid", "surface"); + SafeAdd(newparam, "surface", surface); + surface->setAttribute("type", "2D"); + surface->add("init_from")->setCharData("img"); + + // Add a + newparam = profile->add("newparam"); + CheckResult(newparam); + newparam->setAttribute("sid", "sampler"); + SafeAdd(newparam, "sampler2D", sampler); + sampler->add("source")->setCharData("surface"); + sampler->add("minfilter")->setCharData("LINEAR_MIPMAP_LINEAR"); + sampler->add("magfilter")->setCharData("LINEAR"); + + SafeAdd(profile, "technique", technique); + technique->setAttribute("sid", "common"); + SafeAdd(technique, "phong diffuse texture", texture); + texture->setAttribute("texture", "sampler"); + texture->setAttribute("texcoord", "uv0"); + + return testResult(true); +} + +testResult addMaterial(daeElement* root) { + SafeAdd(root, "library_materials", materialLib); + SafeAdd(materialLib, "material", material); + material->setAttribute("id", "cubeMaterial"); + material->add("instance_effect")->setAttribute("url", makeUriRef("cubeEffect").c_str()); + + return testResult(true); +} + +testResult addVisualScene(daeElement* root) { + SafeAdd(root, "library_visual_scenes", visualSceneLib); + SafeAdd(visualSceneLib, "visual_scene", visualScene); + visualScene->setAttribute("id", "cubeScene"); + + // Add a with a simple transformation + SafeAdd(visualScene, "node", node); + node->setAttribute("id", "cubeNode"); + node->add("rotate")->setCharData("1 0 0 45"); + node->add("translate")->setCharData("0 10 0"); + + // Instantiate the + SafeAdd(node, "instance_geometry", instanceGeom); + instanceGeom->setAttribute("url", makeUriRef("cubeGeom").c_str()); + + // Bind material parameters + SafeAdd(instanceGeom, "bind_material technique_common instance_material", instanceMaterial); + instanceMaterial->setAttribute("symbol", "mtl"); + instanceMaterial->setAttribute("target", makeUriRef("cubeMaterial").c_str()); + + SafeAdd(instanceMaterial, "bind_vertex_input", bindVertexInput); + bindVertexInput->setAttribute("semantic", "uv0"); + bindVertexInput->setAttribute("input_semantic", "TEXCOORD"); + bindVertexInput->setAttribute("input_set", "0"); + + // Add a + root->add("scene instance_visual_scene")->setAttribute("url", makeUriRef("cubeScene").c_str()); + + return testResult(true); +} diff --git a/test/integrationExample.cpp b/test/integrationExample.cpp new file mode 100644 index 0000000..edc912c --- /dev/null +++ b/test/integrationExample.cpp @@ -0,0 +1,160 @@ +// The DOM used to provide an "integration library", which was a mechanism for +// converting the DOM's representation of a Collada model to the user's representation. +// The integration classes were very clumsy and not particularly useful, so they +// were removed in December 07. In their place, setUserData and getUserData methods +// were added to the daeElement class. This program shows how you might write a Collada +// importer using these new methods instead of the integration classes. +// +// Our model structure consists of nodes, meshes, and materials. We create them by +// converting from domNode, domGeometry, and domMaterial, respectively. We'll +// demonstrate how you can write an importer to traverse the Collada DOM element +// hierarchy and attach our model representation structures to the dom* classes. + +#include +#include +#include +#include +#include +#include +#include +#include +#include "domTest.h" + +using namespace std; + +#define Check(val) if (!(val)) throw exception(); + + +// Our material structure, which we create by converting a domMaterial object +class Material { +public: + vector diffuseColor; + string diffuseTexture; + // ... and lots of other parameters + + Material(domMaterial& mtl) { + // Grab the from the and initalize the parameters + } +}; + + +// Our mesh structure, which we create by converting a domGeometry object +class Mesh { +public: + Material* mtl; + // Vertex info, etc + + Mesh(domGeometry& geom) { + // Parse the element, extract vertex data, etc + } +}; + + +// Our node structure, which we create by converting a domNode object +class Node { +public: + list meshes; + list childNodes; + + // This is defined later to work around a circular dependency on the lookup function + Node(domNode& node); +}; + + +// This function checks to see if a user data object has already been attached to +// the DOM object. If so, that object is casted from void* to the appropriate type +// and returned, otherwise the object is created and attached to the DOM object +// via the setUserData method. +template +MyType& lookup(DomType& domObject) { + if (!domObject.getUserData()) + domObject.setUserData(new MyType(domObject)); + return *(MyType*)(domObject.getUserData()); +} + +// This function traverses all the DOM objects of a particular type and frees +// destroys the associated user data object. +template +void freeConversionObjects(DAE& dae) { + vector elts = dae.getDatabase()->typeLookup(DomType::ID()); + for (size_t i = 0; i < elts.size(); i++) + delete (MyType*)elts[i]->getUserData(); +} + + +Node::Node(domNode& node) { + // Recursively convert all child nodes. First iterate over the elements. + for (size_t i = 0; i < node.getNode_array().getCount(); i++) + childNodes.push_back(&lookup(*node.getNode_array()[i])); + + // Then iterate over the elements. + for (size_t i = 0; i < node.getInstance_node_array().getCount(); i++) { + domNode* child = daeSafeCast( + node.getInstance_node_array()[i]->getUrl().getElement()); + Check(child); + childNodes.push_back(&lookup(*child)); + } + + // Iterate over all the elements + for (size_t i = 0; i < node.getInstance_geometry_array().getCount(); i++) { + domInstance_geometry* instanceGeom = node.getInstance_geometry_array()[i]; + domGeometry* geom = daeSafeCast(instanceGeom->getUrl().getElement()); + Check(geom); + + // Lookup the material that we should apply to the . In a real app + // we'd need to worry about having multiple s, but in this + // test let's just convert the first we find. + domInstance_material* instanceMtl = daeSafeCast( + instanceGeom->getDescendant("instance_material")); + Check(instanceMtl); + domMaterial* mtl = daeSafeCast(instanceMtl->getTarget().getElement()); + Check(mtl); + Material& convertedMtl = lookup(*mtl); + + // Now convert the geometry, add the result to our list of meshes, and assign + // the mesh a material. + meshes.push_back(&lookup(*geom)); + meshes.back()->mtl = &convertedMtl; + } +} + + +void convertModel(domCOLLADA& root) { + // We need to convert the model from the DOM's representation to our internal representation. + // First find a to load. In a real app we would look for and load all + // the s in a document, but for this app we just convert the first + // we find. + domVisual_scene* visualScene = daeSafeCast(root.getDescendant("visual_scene")); + Check(visualScene); + + // Now covert all the s in the . This is a recursive process, + // so any child nodes will also be converted. + domNode_Array& nodes = visualScene->getNode_array(); + for (size_t i = 0; i < nodes.getCount(); i++) + lookup(*nodes[i]); +} + + +DefineTest(integration) { + // Load a document from disk + string file = lookupTestFile("cube.dae"); + DAE dae; + domCOLLADA* root = dae.open(file); + CheckResult(root); + + // Do the conversion. The conversion process throws an exception on error, so + // we'll include a try/catch handler. + try { + convertModel(*root); + } + catch (const exception&) { + return testResult(false); + } + + // Don't forget to destroy the objects we created during the conversion process + freeConversionObjects(dae); + freeConversionObjects(dae); + freeConversionObjects(dae); + + return testResult(true); +}